@itwin/components-react 4.9.0-dev.1 → 4.10.0-dev.1

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 (473) hide show
  1. package/CHANGELOG.md +30 -1
  2. package/lib/cjs/components-react/common/DelayedSpinner.d.ts +1 -1
  3. package/lib/cjs/components-react/common/DelayedSpinner.d.ts.map +1 -1
  4. package/lib/cjs/components-react/common/DelayedSpinner.js +2 -3
  5. package/lib/cjs/components-react/common/DelayedSpinner.js.map +1 -1
  6. package/lib/cjs/components-react/common/HighlightedText.d.ts +2 -2
  7. package/lib/cjs/components-react/common/HighlightedText.d.ts.map +1 -1
  8. package/lib/cjs/components-react/common/UseDebouncedAsyncValue.js +1 -2
  9. package/lib/cjs/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
  10. package/lib/cjs/components-react/converters/NumericTypeConverter.js +2 -4
  11. package/lib/cjs/components-react/converters/NumericTypeConverter.js.map +1 -1
  12. package/lib/cjs/components-react/converters/TypeConverter.js +1 -2
  13. package/lib/cjs/components-react/converters/TypeConverter.js.map +1 -1
  14. package/lib/cjs/components-react/datepicker/DateField.d.ts +2 -2
  15. package/lib/cjs/components-react/datepicker/DateField.d.ts.map +1 -1
  16. package/lib/cjs/components-react/datepicker/DatePicker.d.ts +2 -2
  17. package/lib/cjs/components-react/datepicker/DatePicker.d.ts.map +1 -1
  18. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.d.ts +1 -1
  19. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.d.ts.map +1 -1
  20. package/lib/cjs/components-react/datepicker/TimeField.d.ts +2 -2
  21. package/lib/cjs/components-react/datepicker/TimeField.d.ts.map +1 -1
  22. package/lib/cjs/components-react/datepicker/TimeField.scss +1 -1
  23. package/lib/cjs/components-react/editors/BooleanEditor.d.ts +1 -1
  24. package/lib/cjs/components-react/editors/CustomNumberEditor.js +6 -8
  25. package/lib/cjs/components-react/editors/CustomNumberEditor.js.map +1 -1
  26. package/lib/cjs/components-react/editors/DateTimeEditor.js +2 -3
  27. package/lib/cjs/components-react/editors/DateTimeEditor.js.map +1 -1
  28. package/lib/cjs/components-react/editors/EditorContainer.d.ts +1 -1
  29. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.d.ts +1 -1
  30. package/lib/cjs/components-react/editors/EnumEditor.d.ts +1 -1
  31. package/lib/cjs/components-react/editors/EnumEditor.js +1 -1
  32. package/lib/cjs/components-react/editors/EnumEditor.js.map +1 -1
  33. package/lib/cjs/components-react/editors/IconEditor.d.ts +1 -1
  34. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.d.ts +1 -1
  35. package/lib/cjs/components-react/editors/PopupButton.d.ts +2 -2
  36. package/lib/cjs/components-react/editors/PopupButton.d.ts.map +1 -1
  37. package/lib/cjs/components-react/editors/PopupButton.js +3 -4
  38. package/lib/cjs/components-react/editors/PopupButton.js.map +1 -1
  39. package/lib/cjs/components-react/editors/TextEditor.js +2 -4
  40. package/lib/cjs/components-react/editors/TextEditor.js.map +1 -1
  41. package/lib/cjs/components-react/editors/ToggleEditor.d.ts +1 -1
  42. package/lib/cjs/components-react/favorite/FavoritePropertyList.d.ts +2 -2
  43. package/lib/cjs/components-react/favorite/FavoritePropertyList.d.ts.map +1 -1
  44. package/lib/cjs/components-react/favorite/FavoritePropertyList.js +3 -3
  45. package/lib/cjs/components-react/favorite/FavoritePropertyList.js.map +1 -1
  46. package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts +7 -3
  47. package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
  48. package/lib/cjs/components-react/filter-builder/FilterBuilder.js +3 -7
  49. package/lib/cjs/components-react/filter-builder/FilterBuilder.js.map +1 -1
  50. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts +0 -36
  51. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -1
  52. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js +1 -73
  53. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
  54. package/lib/cjs/components-react/filter-builder/FilterBuilderLogicalOperator.d.ts +24 -0
  55. package/lib/cjs/components-react/filter-builder/FilterBuilderLogicalOperator.d.ts.map +1 -0
  56. package/lib/cjs/components-react/filter-builder/FilterBuilderLogicalOperator.js +30 -0
  57. package/lib/cjs/components-react/filter-builder/FilterBuilderLogicalOperator.js.map +1 -0
  58. package/lib/cjs/components-react/filter-builder/FilterBuilderRangeValue.d.ts +31 -0
  59. package/lib/cjs/components-react/filter-builder/FilterBuilderRangeValue.d.ts.map +1 -0
  60. package/lib/cjs/components-react/filter-builder/FilterBuilderRangeValue.js +76 -0
  61. package/lib/cjs/components-react/filter-builder/FilterBuilderRangeValue.js.map +1 -0
  62. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts +4 -3
  63. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
  64. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js +15 -9
  65. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  66. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.scss +37 -22
  67. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +10 -6
  68. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
  69. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js +15 -40
  70. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  71. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.scss +25 -59
  72. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +11 -6
  73. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
  74. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js +44 -8
  75. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  76. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +1 -1
  77. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
  78. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js +4 -4
  79. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  80. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts +4 -4
  81. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
  82. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js +41 -3
  83. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  84. package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts +10 -11
  85. package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
  86. package/lib/cjs/components-react/filter-builder/FilterBuilderState.js +153 -46
  87. package/lib/cjs/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  88. package/lib/cjs/components-react/filter-builder/FilterBuilderToolbar.d.ts +20 -0
  89. package/lib/cjs/components-react/filter-builder/FilterBuilderToolbar.d.ts.map +1 -0
  90. package/lib/cjs/components-react/filter-builder/FilterBuilderToolbar.js +30 -0
  91. package/lib/cjs/components-react/filter-builder/FilterBuilderToolbar.js.map +1 -0
  92. package/lib/cjs/components-react/filter-builder/Operators.d.ts +24 -19
  93. package/lib/cjs/components-react/filter-builder/Operators.d.ts.map +1 -1
  94. package/lib/cjs/components-react/filter-builder/Operators.js +40 -64
  95. package/lib/cjs/components-react/filter-builder/Operators.js.map +1 -1
  96. package/lib/cjs/components-react/filter-builder/Types.d.ts +2 -2
  97. package/lib/cjs/components-react/filter-builder/Types.d.ts.map +1 -1
  98. package/lib/cjs/components-react/filter-builder/Types.js.map +1 -1
  99. package/lib/cjs/components-react/filtering/FilteringInput.d.ts +1 -1
  100. package/lib/cjs/components-react/filtering/ResultSelector.d.ts +1 -1
  101. package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts +1 -1
  102. package/lib/cjs/components-react/properties/LinkHandler.d.ts +1 -1
  103. package/lib/cjs/components-react/properties/LinkHandler.d.ts.map +1 -1
  104. package/lib/cjs/components-react/properties/renderers/ActionButtonList.d.ts +1 -1
  105. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js +3 -4
  106. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  107. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts +1 -1
  108. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js +1 -1
  109. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  110. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts +1 -1
  111. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js +2 -3
  112. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  113. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.d.ts +1 -1
  114. package/lib/cjs/components-react/properties/renderers/PropertyView.d.ts +1 -1
  115. package/lib/cjs/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.d.ts +1 -1
  116. package/lib/cjs/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.d.ts +1 -1
  117. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.d.ts +1 -1
  118. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.js +4 -4
  119. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
  120. package/lib/cjs/components-react/properties/renderers/value/Common.js +1 -2
  121. package/lib/cjs/components-react/properties/renderers/value/Common.js.map +1 -1
  122. package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts +2 -2
  123. package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts.map +1 -1
  124. package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js +3 -6
  125. package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  126. package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts +2 -2
  127. package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts.map +1 -1
  128. package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.d.ts +2 -2
  129. package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.d.ts.map +1 -1
  130. package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js +3 -6
  131. package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
  132. package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.d.ts +2 -2
  133. package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.d.ts.map +1 -1
  134. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts +1 -1
  135. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts +1 -1
  136. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.d.ts +1 -1
  137. package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.js +1 -2
  138. package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
  139. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js +1 -2
  140. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  141. package/lib/cjs/components-react/propertygrid/component/FlatItemNestedBorderWrapper.d.ts +1 -1
  142. package/lib/cjs/components-react/propertygrid/component/FlatItemNestedBorderWrapper.d.ts.map +1 -1
  143. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.d.ts +1 -1
  144. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js +1 -2
  145. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  146. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js +2 -2
  147. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  148. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts +1 -1
  149. package/lib/cjs/components-react/propertygrid/component/PropertyList.d.ts +1 -1
  150. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts +1 -1
  151. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js +49 -54
  152. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  153. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts +5 -2
  154. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts.map +1 -1
  155. package/lib/cjs/components-react/propertygrid/dataproviders/FilteringDataProvider.js +11 -13
  156. package/lib/cjs/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
  157. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js +2 -2
  158. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
  159. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js +1 -2
  160. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
  161. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js +1 -2
  162. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
  163. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js +2 -2
  164. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  165. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js +2 -3
  166. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  167. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js +1 -1
  168. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  169. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts +1 -1
  170. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js +1 -1
  171. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  172. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js +5 -7
  173. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  174. package/lib/cjs/components-react/selectable-content/SelectableContent.d.ts +2 -2
  175. package/lib/cjs/components-react/selectable-content/SelectableContent.d.ts.map +1 -1
  176. package/lib/cjs/components-react/selectable-content/SelectableContent.js +2 -3
  177. package/lib/cjs/components-react/selectable-content/SelectableContent.js.map +1 -1
  178. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.d.ts +2 -2
  179. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.d.ts.map +1 -1
  180. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.js +4 -6
  181. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.js.map +1 -1
  182. package/lib/cjs/components-react/toolbar/ItemWrapper.d.ts +1 -1
  183. package/lib/cjs/components-react/toolbar/ItemWrapper.d.ts.map +1 -1
  184. package/lib/cjs/components-react/toolbar/Items.d.ts +1 -1
  185. package/lib/cjs/components-react/toolbar/Items.d.ts.map +1 -1
  186. package/lib/cjs/components-react/toolbar/Overflow.d.ts +1 -1
  187. package/lib/cjs/components-react/toolbar/Overflow.d.ts.map +1 -1
  188. package/lib/cjs/components-react/toolbar/OverflowPanel.d.ts +1 -1
  189. package/lib/cjs/components-react/toolbar/OverflowPanel.d.ts.map +1 -1
  190. package/lib/cjs/components-react/toolbar/PopupItem.d.ts +2 -2
  191. package/lib/cjs/components-react/toolbar/PopupItem.d.ts.map +1 -1
  192. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.d.ts +2 -2
  193. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.d.ts.map +1 -1
  194. package/lib/cjs/components-react/toolbar/PopupItemsPanel.d.ts +2 -2
  195. package/lib/cjs/components-react/toolbar/PopupItemsPanel.d.ts.map +1 -1
  196. package/lib/cjs/components-react/toolbar/Toolbar.d.ts +1 -1
  197. package/lib/cjs/components-react/toolbar/Toolbar.d.ts.map +1 -1
  198. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
  199. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  200. package/lib/cjs/components-react/toolbar/groupPanel/Column.d.ts +1 -1
  201. package/lib/cjs/components-react/toolbar/groupPanel/Column.d.ts.map +1 -1
  202. package/lib/cjs/components-react/toolbar/groupPanel/Columns.d.ts +1 -1
  203. package/lib/cjs/components-react/toolbar/groupPanel/Columns.d.ts.map +1 -1
  204. package/lib/cjs/components-react/toolbar/groupPanel/Panel.d.ts +1 -1
  205. package/lib/cjs/components-react/toolbar/groupPanel/Panel.d.ts.map +1 -1
  206. package/lib/cjs/components-react/toolbar/groupPanel/Title.d.ts +1 -1
  207. package/lib/cjs/components-react/toolbar/groupPanel/Title.d.ts.map +1 -1
  208. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.d.ts +1 -1
  209. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.d.ts.map +1 -1
  210. package/lib/cjs/components-react/toolbar/useConditionalSynchedItems.js +5 -6
  211. package/lib/cjs/components-react/toolbar/useConditionalSynchedItems.js.map +1 -1
  212. package/lib/cjs/components-react/tree/controlled/TreeHooks.d.ts +12 -0
  213. package/lib/cjs/components-react/tree/controlled/TreeHooks.d.ts.map +1 -1
  214. package/lib/cjs/components-react/tree/controlled/TreeHooks.js +22 -1
  215. package/lib/cjs/components-react/tree/controlled/TreeHooks.js.map +1 -1
  216. package/lib/cjs/components-react/tree/controlled/TreeModel.js +7 -8
  217. package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
  218. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js +6 -8
  219. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  220. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.d.ts +1 -1
  221. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.d.ts.map +1 -1
  222. package/lib/cjs/components-react/tree/controlled/component/NodeContent.d.ts +2 -2
  223. package/lib/cjs/components-react/tree/controlled/component/NodeContent.d.ts.map +1 -1
  224. package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.d.ts +1 -1
  225. package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.d.ts.map +1 -1
  226. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.d.ts +1 -1
  227. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.d.ts.map +1 -1
  228. package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.d.ts +1 -1
  229. package/lib/cjs/components-react/tree/controlled/internal/SparseTree.js +1 -2
  230. package/lib/cjs/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
  231. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js +2 -4
  232. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  233. package/lib/cjs/components-react.d.ts +3 -0
  234. package/lib/cjs/components-react.d.ts.map +1 -1
  235. package/lib/cjs/components-react.js +3 -0
  236. package/lib/cjs/components-react.js.map +1 -1
  237. package/lib/esm/components-react/common/DelayedSpinner.d.ts +1 -1
  238. package/lib/esm/components-react/common/DelayedSpinner.d.ts.map +1 -1
  239. package/lib/esm/components-react/common/DelayedSpinner.js +2 -3
  240. package/lib/esm/components-react/common/DelayedSpinner.js.map +1 -1
  241. package/lib/esm/components-react/common/HighlightedText.d.ts +2 -2
  242. package/lib/esm/components-react/common/HighlightedText.d.ts.map +1 -1
  243. package/lib/esm/components-react/common/UseDebouncedAsyncValue.js +1 -2
  244. package/lib/esm/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
  245. package/lib/esm/components-react/converters/NumericTypeConverter.js +2 -4
  246. package/lib/esm/components-react/converters/NumericTypeConverter.js.map +1 -1
  247. package/lib/esm/components-react/converters/TypeConverter.js +1 -2
  248. package/lib/esm/components-react/converters/TypeConverter.js.map +1 -1
  249. package/lib/esm/components-react/datepicker/DateField.d.ts +2 -2
  250. package/lib/esm/components-react/datepicker/DateField.d.ts.map +1 -1
  251. package/lib/esm/components-react/datepicker/DatePicker.d.ts +2 -2
  252. package/lib/esm/components-react/datepicker/DatePicker.d.ts.map +1 -1
  253. package/lib/esm/components-react/datepicker/DatePickerPopupButton.d.ts +1 -1
  254. package/lib/esm/components-react/datepicker/DatePickerPopupButton.d.ts.map +1 -1
  255. package/lib/esm/components-react/datepicker/TimeField.d.ts +2 -2
  256. package/lib/esm/components-react/datepicker/TimeField.d.ts.map +1 -1
  257. package/lib/esm/components-react/datepicker/TimeField.scss +1 -1
  258. package/lib/esm/components-react/editors/BooleanEditor.d.ts +1 -1
  259. package/lib/esm/components-react/editors/CustomNumberEditor.js +6 -8
  260. package/lib/esm/components-react/editors/CustomNumberEditor.js.map +1 -1
  261. package/lib/esm/components-react/editors/DateTimeEditor.js +2 -3
  262. package/lib/esm/components-react/editors/DateTimeEditor.js.map +1 -1
  263. package/lib/esm/components-react/editors/EditorContainer.d.ts +1 -1
  264. package/lib/esm/components-react/editors/EnumButtonGroupEditor.d.ts +1 -1
  265. package/lib/esm/components-react/editors/EnumEditor.d.ts +1 -1
  266. package/lib/esm/components-react/editors/EnumEditor.js +1 -1
  267. package/lib/esm/components-react/editors/EnumEditor.js.map +1 -1
  268. package/lib/esm/components-react/editors/IconEditor.d.ts +1 -1
  269. package/lib/esm/components-react/editors/ImageCheckBoxEditor.d.ts +1 -1
  270. package/lib/esm/components-react/editors/PopupButton.d.ts +2 -2
  271. package/lib/esm/components-react/editors/PopupButton.d.ts.map +1 -1
  272. package/lib/esm/components-react/editors/PopupButton.js +3 -4
  273. package/lib/esm/components-react/editors/PopupButton.js.map +1 -1
  274. package/lib/esm/components-react/editors/TextEditor.js +2 -4
  275. package/lib/esm/components-react/editors/TextEditor.js.map +1 -1
  276. package/lib/esm/components-react/editors/ToggleEditor.d.ts +1 -1
  277. package/lib/esm/components-react/favorite/FavoritePropertyList.d.ts +2 -2
  278. package/lib/esm/components-react/favorite/FavoritePropertyList.d.ts.map +1 -1
  279. package/lib/esm/components-react/favorite/FavoritePropertyList.js +3 -3
  280. package/lib/esm/components-react/favorite/FavoritePropertyList.js.map +1 -1
  281. package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts +7 -3
  282. package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
  283. package/lib/esm/components-react/filter-builder/FilterBuilder.js +4 -8
  284. package/lib/esm/components-react/filter-builder/FilterBuilder.js.map +1 -1
  285. package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts +0 -36
  286. package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -1
  287. package/lib/esm/components-react/filter-builder/FilterBuilderContext.js +0 -71
  288. package/lib/esm/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
  289. package/lib/esm/components-react/filter-builder/FilterBuilderLogicalOperator.d.ts +24 -0
  290. package/lib/esm/components-react/filter-builder/FilterBuilderLogicalOperator.d.ts.map +1 -0
  291. package/lib/esm/components-react/filter-builder/FilterBuilderLogicalOperator.js +23 -0
  292. package/lib/esm/components-react/filter-builder/FilterBuilderLogicalOperator.js.map +1 -0
  293. package/lib/esm/components-react/filter-builder/FilterBuilderRangeValue.d.ts +31 -0
  294. package/lib/esm/components-react/filter-builder/FilterBuilderRangeValue.d.ts.map +1 -0
  295. package/lib/esm/components-react/filter-builder/FilterBuilderRangeValue.js +73 -0
  296. package/lib/esm/components-react/filter-builder/FilterBuilderRangeValue.js.map +1 -0
  297. package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts +4 -3
  298. package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
  299. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js +19 -13
  300. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  301. package/lib/esm/components-react/filter-builder/FilterBuilderRule.scss +37 -22
  302. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +10 -6
  303. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
  304. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js +17 -42
  305. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  306. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.scss +25 -59
  307. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +11 -6
  308. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
  309. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js +42 -7
  310. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  311. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +1 -1
  312. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
  313. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js +4 -4
  314. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  315. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts +4 -4
  316. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
  317. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js +40 -2
  318. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  319. package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts +10 -11
  320. package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
  321. package/lib/esm/components-react/filter-builder/FilterBuilderState.js +151 -44
  322. package/lib/esm/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  323. package/lib/esm/components-react/filter-builder/FilterBuilderToolbar.d.ts +20 -0
  324. package/lib/esm/components-react/filter-builder/FilterBuilderToolbar.d.ts.map +1 -0
  325. package/lib/esm/components-react/filter-builder/FilterBuilderToolbar.js +23 -0
  326. package/lib/esm/components-react/filter-builder/FilterBuilderToolbar.js.map +1 -0
  327. package/lib/esm/components-react/filter-builder/Operators.d.ts +24 -19
  328. package/lib/esm/components-react/filter-builder/Operators.d.ts.map +1 -1
  329. package/lib/esm/components-react/filter-builder/Operators.js +37 -61
  330. package/lib/esm/components-react/filter-builder/Operators.js.map +1 -1
  331. package/lib/esm/components-react/filter-builder/Types.d.ts +2 -2
  332. package/lib/esm/components-react/filter-builder/Types.d.ts.map +1 -1
  333. package/lib/esm/components-react/filter-builder/Types.js.map +1 -1
  334. package/lib/esm/components-react/filtering/FilteringInput.d.ts +1 -1
  335. package/lib/esm/components-react/filtering/ResultSelector.d.ts +1 -1
  336. package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts +1 -1
  337. package/lib/esm/components-react/properties/LinkHandler.d.ts +1 -1
  338. package/lib/esm/components-react/properties/LinkHandler.d.ts.map +1 -1
  339. package/lib/esm/components-react/properties/renderers/ActionButtonList.d.ts +1 -1
  340. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js +3 -4
  341. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  342. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts +1 -1
  343. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js +1 -1
  344. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  345. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts +1 -1
  346. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js +2 -3
  347. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  348. package/lib/esm/components-react/properties/renderers/PropertyRenderer.d.ts +1 -1
  349. package/lib/esm/components-react/properties/renderers/PropertyView.d.ts +1 -1
  350. package/lib/esm/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.d.ts +1 -1
  351. package/lib/esm/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.d.ts +1 -1
  352. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.d.ts +1 -1
  353. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.js +4 -4
  354. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
  355. package/lib/esm/components-react/properties/renderers/value/Common.js +1 -2
  356. package/lib/esm/components-react/properties/renderers/value/Common.js.map +1 -1
  357. package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts +2 -2
  358. package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts.map +1 -1
  359. package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js +3 -6
  360. package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  361. package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts +2 -2
  362. package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts.map +1 -1
  363. package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.d.ts +2 -2
  364. package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.d.ts.map +1 -1
  365. package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js +3 -6
  366. package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
  367. package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.d.ts +2 -2
  368. package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.d.ts.map +1 -1
  369. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts +1 -1
  370. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts +1 -1
  371. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.d.ts +1 -1
  372. package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.js +1 -2
  373. package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
  374. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js +1 -2
  375. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  376. package/lib/esm/components-react/propertygrid/component/FlatItemNestedBorderWrapper.d.ts +1 -1
  377. package/lib/esm/components-react/propertygrid/component/FlatItemNestedBorderWrapper.d.ts.map +1 -1
  378. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.d.ts +1 -1
  379. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js +1 -2
  380. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  381. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js +2 -2
  382. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  383. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts +1 -1
  384. package/lib/esm/components-react/propertygrid/component/PropertyList.d.ts +1 -1
  385. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts +1 -1
  386. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js +49 -54
  387. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  388. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts +5 -2
  389. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts.map +1 -1
  390. package/lib/esm/components-react/propertygrid/dataproviders/FilteringDataProvider.js +11 -13
  391. package/lib/esm/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
  392. package/lib/esm/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js +2 -2
  393. package/lib/esm/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
  394. package/lib/esm/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js +1 -2
  395. package/lib/esm/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
  396. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js +1 -2
  397. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
  398. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js +2 -2
  399. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  400. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js +2 -3
  401. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  402. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js +1 -1
  403. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  404. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts +1 -1
  405. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js +1 -1
  406. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  407. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js +5 -7
  408. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  409. package/lib/esm/components-react/selectable-content/SelectableContent.d.ts +2 -2
  410. package/lib/esm/components-react/selectable-content/SelectableContent.d.ts.map +1 -1
  411. package/lib/esm/components-react/selectable-content/SelectableContent.js +2 -3
  412. package/lib/esm/components-react/selectable-content/SelectableContent.js.map +1 -1
  413. package/lib/esm/components-react/toolbar/InternalToolbarComponent.d.ts +2 -2
  414. package/lib/esm/components-react/toolbar/InternalToolbarComponent.d.ts.map +1 -1
  415. package/lib/esm/components-react/toolbar/InternalToolbarComponent.js +4 -6
  416. package/lib/esm/components-react/toolbar/InternalToolbarComponent.js.map +1 -1
  417. package/lib/esm/components-react/toolbar/ItemWrapper.d.ts +1 -1
  418. package/lib/esm/components-react/toolbar/ItemWrapper.d.ts.map +1 -1
  419. package/lib/esm/components-react/toolbar/Items.d.ts +1 -1
  420. package/lib/esm/components-react/toolbar/Items.d.ts.map +1 -1
  421. package/lib/esm/components-react/toolbar/Overflow.d.ts +1 -1
  422. package/lib/esm/components-react/toolbar/Overflow.d.ts.map +1 -1
  423. package/lib/esm/components-react/toolbar/OverflowPanel.d.ts +1 -1
  424. package/lib/esm/components-react/toolbar/OverflowPanel.d.ts.map +1 -1
  425. package/lib/esm/components-react/toolbar/PopupItem.d.ts +2 -2
  426. package/lib/esm/components-react/toolbar/PopupItem.d.ts.map +1 -1
  427. package/lib/esm/components-react/toolbar/PopupItemWithDrag.d.ts +2 -2
  428. package/lib/esm/components-react/toolbar/PopupItemWithDrag.d.ts.map +1 -1
  429. package/lib/esm/components-react/toolbar/PopupItemsPanel.d.ts +2 -2
  430. package/lib/esm/components-react/toolbar/PopupItemsPanel.d.ts.map +1 -1
  431. package/lib/esm/components-react/toolbar/Toolbar.d.ts +1 -1
  432. package/lib/esm/components-react/toolbar/Toolbar.d.ts.map +1 -1
  433. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
  434. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  435. package/lib/esm/components-react/toolbar/groupPanel/Column.d.ts +1 -1
  436. package/lib/esm/components-react/toolbar/groupPanel/Column.d.ts.map +1 -1
  437. package/lib/esm/components-react/toolbar/groupPanel/Columns.d.ts +1 -1
  438. package/lib/esm/components-react/toolbar/groupPanel/Columns.d.ts.map +1 -1
  439. package/lib/esm/components-react/toolbar/groupPanel/Panel.d.ts +1 -1
  440. package/lib/esm/components-react/toolbar/groupPanel/Panel.d.ts.map +1 -1
  441. package/lib/esm/components-react/toolbar/groupPanel/Title.d.ts +1 -1
  442. package/lib/esm/components-react/toolbar/groupPanel/Title.d.ts.map +1 -1
  443. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.d.ts +1 -1
  444. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.d.ts.map +1 -1
  445. package/lib/esm/components-react/toolbar/useConditionalSynchedItems.js +5 -6
  446. package/lib/esm/components-react/toolbar/useConditionalSynchedItems.js.map +1 -1
  447. package/lib/esm/components-react/tree/controlled/TreeHooks.d.ts +12 -0
  448. package/lib/esm/components-react/tree/controlled/TreeHooks.d.ts.map +1 -1
  449. package/lib/esm/components-react/tree/controlled/TreeHooks.js +21 -1
  450. package/lib/esm/components-react/tree/controlled/TreeHooks.js.map +1 -1
  451. package/lib/esm/components-react/tree/controlled/TreeModel.js +7 -8
  452. package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
  453. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js +6 -8
  454. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  455. package/lib/esm/components-react/tree/controlled/component/ControlledTree.d.ts +1 -1
  456. package/lib/esm/components-react/tree/controlled/component/ControlledTree.d.ts.map +1 -1
  457. package/lib/esm/components-react/tree/controlled/component/NodeContent.d.ts +2 -2
  458. package/lib/esm/components-react/tree/controlled/component/NodeContent.d.ts.map +1 -1
  459. package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.d.ts +1 -1
  460. package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.d.ts.map +1 -1
  461. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.d.ts +1 -1
  462. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.d.ts.map +1 -1
  463. package/lib/esm/components-react/tree/controlled/component/TreeRenderer.d.ts +1 -1
  464. package/lib/esm/components-react/tree/controlled/internal/SparseTree.js +1 -2
  465. package/lib/esm/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
  466. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js +2 -4
  467. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  468. package/lib/esm/components-react.d.ts +3 -0
  469. package/lib/esm/components-react.d.ts.map +1 -1
  470. package/lib/esm/components-react.js +3 -0
  471. package/lib/esm/components-react.js.map +1 -1
  472. package/lib/public/locales/en/UiComponents.json +12 -7
  473. package/package.json +7 -8
@@ -48,12 +48,11 @@ export class TextEditor extends React.PureComponent {
48
48
  };
49
49
  }
50
50
  async getPropertyValue() {
51
- var _a;
52
51
  const record = this.props.propertyRecord;
53
52
  let propertyValue;
54
53
  // istanbul ignore else
55
54
  if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {
56
- propertyValue = await TypeConverterManager.getConverter(record.property.typename, (_a = record.property.converter) === null || _a === void 0 ? void 0 : _a.name).convertFromStringToPropertyValue(this.state.inputValue, record);
55
+ propertyValue = await TypeConverterManager.getConverter(record.property.typename, record.property.converter?.name).convertFromStringToPropertyValue(this.state.inputValue, record);
57
56
  propertyValue.displayValue = this.state.inputValue;
58
57
  }
59
58
  return propertyValue;
@@ -80,13 +79,12 @@ export class TextEditor extends React.PureComponent {
80
79
  }
81
80
  }
82
81
  async setStateFromProps() {
83
- var _a;
84
82
  const record = this.props.propertyRecord;
85
83
  let initialValue = "";
86
84
  // istanbul ignore else
87
85
  if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {
88
86
  const value = record.value.value;
89
- initialValue = await TypeConverterManager.getConverter(record.property.typename, (_a = record.property.converter) === null || _a === void 0 ? void 0 : _a.name).convertPropertyToString(record.property, value);
87
+ initialValue = await TypeConverterManager.getConverter(record.property.typename, record.property.converter?.name).convertPropertyToString(record.property, value);
90
88
  }
91
89
  const readonly = record && undefined !== record.isReadonly ? record.isReadonly : false;
92
90
  let size;
@@ -1 +1 @@
1
- {"version":3,"file":"TextEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/TextEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PropertyEditors\n */\n\nimport \"./TextEditor.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type {\n IconEditorParams,\n InputEditorSizeParams,\n PrimitiveValue,\n PropertyEditorParams,\n PropertyValue,\n} from \"@itwin/appui-abstract\";\nimport {\n PropertyEditorParamTypes,\n PropertyValueFormat,\n} from \"@itwin/appui-abstract\";\nimport { Icon, IconInput } from \"@itwin/core-react\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport { TypeConverterManager } from \"../converters/TypeConverterManager\";\nimport type { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\nimport { UiComponents } from \"../UiComponents\";\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Input>;\n\n/** @internal */\ninterface TextEditorState {\n inputValue: string;\n readonly: boolean;\n isDisabled?: boolean;\n size?: number;\n maxLength?: number;\n iconSpec?: string;\n}\n\n/** TextEditor React component that is a property editor with text input\n * @public\n */\nexport class TextEditor\n extends React.PureComponent<PropertyEditorProps, TextEditorState>\n implements TypeEditor\n{\n private _isMounted = false;\n private _ariaLabel = UiComponents.translate(\"editor.text\");\n private _inputElement = React.createRef<HTMLInputElement>();\n\n /** @internal */\n public override readonly state: Readonly<TextEditorState> = {\n inputValue: \"\",\n readonly: false,\n };\n\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\n const record = this.props.propertyRecord;\n let propertyValue: PropertyValue | undefined;\n\n // istanbul ignore else\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n propertyValue = await TypeConverterManager.getConverter(\n record.property.typename,\n record.property.converter?.name\n ).convertFromStringToPropertyValue(this.state.inputValue, record);\n (propertyValue as PrimitiveValue).displayValue = this.state.inputValue;\n }\n\n return propertyValue;\n }\n\n public get htmlElement(): HTMLElement | null {\n return this._inputElement.current;\n }\n\n public get hasFocus(): boolean {\n return document.activeElement === this._inputElement.current;\n }\n\n private _updateInputValue = (e: React.ChangeEvent<HTMLInputElement>) => {\n // istanbul ignore else\n if (this._isMounted)\n this.setState(\n {\n inputValue: e.target.value,\n },\n async () => {\n if (\n this.props.shouldCommitOnChange &&\n this.props.onCommit &&\n this.props.propertyRecord\n ) {\n const newValue = await this.getPropertyValue();\n // istanbul ignore else\n if (newValue)\n this.props.onCommit({\n propertyRecord: this.props.propertyRecord,\n newValue,\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 record = this.props.propertyRecord;\n let initialValue = \"\";\n\n // istanbul ignore else\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n const value = record.value.value;\n initialValue = await TypeConverterManager.getConverter(\n record.property.typename,\n record.property.converter?.name\n ).convertPropertyToString(record.property, value);\n }\n\n const readonly =\n record && undefined !== record.isReadonly ? record.isReadonly : false;\n let size: number | undefined;\n let maxLength: number | undefined;\n let iconSpec: string | undefined;\n\n const isDisabled = record ? record.isDisabled : undefined;\n\n if (\n record &&\n record.property &&\n record.property.editor &&\n record.property.editor.params\n ) {\n const editorSizeParams = record.property.editor.params.find(\n (param: PropertyEditorParams) =>\n param.type === PropertyEditorParamTypes.InputEditorSize\n ) as InputEditorSizeParams;\n if (editorSizeParams) {\n // istanbul ignore else\n if (editorSizeParams.size) size = editorSizeParams.size;\n // istanbul ignore else\n if (editorSizeParams.maxLength) maxLength = editorSizeParams.maxLength;\n }\n\n const iconParams = record.property.editor.params.find(\n (param: PropertyEditorParams) =>\n param.type === PropertyEditorParamTypes.Icon\n ) as IconEditorParams;\n if (iconParams) {\n iconSpec = iconParams.definition.iconSpec;\n }\n }\n\n // istanbul ignore else\n if (this._isMounted)\n this.setState({\n inputValue: initialValue,\n readonly,\n size,\n maxLength,\n isDisabled,\n iconSpec,\n });\n }\n\n /** @internal */\n public override render(): React.ReactNode {\n const className = classnames(\n \"components-cell-editor\",\n \"components-text-editor\",\n this.props.className\n );\n const minSize = this.state.size ? this.state.size : 8;\n const minWidthStyle: React.CSSProperties = {\n minWidth: `${minSize * 0.75}em`,\n };\n const inputProps: InputProps = {\n type: \"text\",\n className,\n style: this.props.style ? this.props.style : minWidthStyle,\n readOnly: this.state.readonly,\n disabled: this.state.isDisabled,\n maxLength: this.state.maxLength,\n value: this.state.inputValue,\n onBlur: this.props.onBlur,\n onChange: this._updateInputValue,\n autoFocus: this.props.setFocus && !this.state.isDisabled,\n };\n\n inputProps[\"aria-label\"] = this._ariaLabel;\n\n let reactNode: React.ReactNode;\n if (this.state.iconSpec) {\n const icon = <Icon iconSpec={this.state.iconSpec} />;\n reactNode = (\n <IconInput\n {...inputProps}\n ref={this._inputElement}\n icon={icon}\n data-testid=\"components-text-editor\"\n />\n );\n } else {\n reactNode = (\n <Input\n {...inputProps}\n ref={this._inputElement}\n data-testid=\"components-text-editor\"\n size=\"small\"\n />\n );\n }\n\n return reactNode;\n }\n}\n"]}
1
+ {"version":3,"file":"TextEditor.js","sourceRoot":"","sources":["../../../../src/components-react/editors/TextEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PropertyEditors\n */\n\nimport \"./TextEditor.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type {\n IconEditorParams,\n InputEditorSizeParams,\n PrimitiveValue,\n PropertyEditorParams,\n PropertyValue,\n} from \"@itwin/appui-abstract\";\nimport {\n PropertyEditorParamTypes,\n PropertyValueFormat,\n} from \"@itwin/appui-abstract\";\nimport { Icon, IconInput } from \"@itwin/core-react\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport { TypeConverterManager } from \"../converters/TypeConverterManager\";\nimport type { PropertyEditorProps, TypeEditor } from \"./EditorContainer\";\nimport { UiComponents } from \"../UiComponents\";\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Input>;\n\n/** @internal */\ninterface TextEditorState {\n inputValue: string;\n readonly: boolean;\n isDisabled?: boolean;\n size?: number;\n maxLength?: number;\n iconSpec?: string;\n}\n\n/** TextEditor React component that is a property editor with text input\n * @public\n */\nexport class TextEditor\n extends React.PureComponent<PropertyEditorProps, TextEditorState>\n implements TypeEditor\n{\n private _isMounted = false;\n private _ariaLabel = UiComponents.translate(\"editor.text\");\n private _inputElement = React.createRef<HTMLInputElement>();\n\n /** @internal */\n public override readonly state: Readonly<TextEditorState> = {\n inputValue: \"\",\n readonly: false,\n };\n\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\n const record = this.props.propertyRecord;\n let propertyValue: PropertyValue | undefined;\n\n // istanbul ignore else\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n propertyValue = await TypeConverterManager.getConverter(\n record.property.typename,\n record.property.converter?.name\n ).convertFromStringToPropertyValue(this.state.inputValue, record);\n (propertyValue as PrimitiveValue).displayValue = this.state.inputValue;\n }\n\n return propertyValue;\n }\n\n public get htmlElement(): HTMLElement | null {\n return this._inputElement.current;\n }\n\n public get hasFocus(): boolean {\n return document.activeElement === this._inputElement.current;\n }\n\n private _updateInputValue = (e: React.ChangeEvent<HTMLInputElement>) => {\n // istanbul ignore else\n if (this._isMounted)\n this.setState(\n {\n inputValue: e.target.value,\n },\n async () => {\n if (\n this.props.shouldCommitOnChange &&\n this.props.onCommit &&\n this.props.propertyRecord\n ) {\n const newValue = await this.getPropertyValue();\n // istanbul ignore else\n if (newValue)\n this.props.onCommit({\n propertyRecord: this.props.propertyRecord,\n newValue,\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 record = this.props.propertyRecord;\n let initialValue = \"\";\n\n // istanbul ignore else\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n const value = record.value.value;\n initialValue = await TypeConverterManager.getConverter(\n record.property.typename,\n record.property.converter?.name\n ).convertPropertyToString(record.property, value);\n }\n\n const readonly =\n record && undefined !== record.isReadonly ? record.isReadonly : false;\n let size: number | undefined;\n let maxLength: number | undefined;\n let iconSpec: string | undefined;\n\n const isDisabled = record ? record.isDisabled : undefined;\n\n if (\n record &&\n record.property &&\n record.property.editor &&\n record.property.editor.params\n ) {\n const editorSizeParams = record.property.editor.params.find(\n (param: PropertyEditorParams) =>\n param.type === PropertyEditorParamTypes.InputEditorSize\n ) as InputEditorSizeParams;\n if (editorSizeParams) {\n // istanbul ignore else\n if (editorSizeParams.size) size = editorSizeParams.size;\n // istanbul ignore else\n if (editorSizeParams.maxLength) maxLength = editorSizeParams.maxLength;\n }\n\n const iconParams = record.property.editor.params.find(\n (param: PropertyEditorParams) =>\n param.type === PropertyEditorParamTypes.Icon\n ) as IconEditorParams;\n if (iconParams) {\n iconSpec = iconParams.definition.iconSpec;\n }\n }\n\n // istanbul ignore else\n if (this._isMounted)\n this.setState({\n inputValue: initialValue,\n readonly,\n size,\n maxLength,\n isDisabled,\n iconSpec,\n });\n }\n\n /** @internal */\n public override render(): React.ReactNode {\n const className = classnames(\n \"components-cell-editor\",\n \"components-text-editor\",\n this.props.className\n );\n const minSize = this.state.size ? this.state.size : 8;\n const minWidthStyle: React.CSSProperties = {\n minWidth: `${minSize * 0.75}em`,\n };\n const inputProps: InputProps = {\n type: \"text\",\n className,\n style: this.props.style ? this.props.style : minWidthStyle,\n readOnly: this.state.readonly,\n disabled: this.state.isDisabled,\n maxLength: this.state.maxLength,\n value: this.state.inputValue,\n onBlur: this.props.onBlur,\n onChange: this._updateInputValue,\n autoFocus: this.props.setFocus && !this.state.isDisabled,\n };\n\n inputProps[\"aria-label\"] = this._ariaLabel;\n\n let reactNode: React.ReactNode;\n if (this.state.iconSpec) {\n const icon = <Icon iconSpec={this.state.iconSpec} />;\n reactNode = (\n <IconInput\n {...inputProps}\n ref={this._inputElement}\n icon={icon}\n data-testid=\"components-text-editor\"\n />\n );\n } else {\n reactNode = (\n <Input\n {...inputProps}\n ref={this._inputElement}\n data-testid=\"components-text-editor\"\n size=\"small\"\n />\n );\n }\n\n return reactNode;\n }\n}\n"]}
@@ -31,7 +31,7 @@ export declare class ToggleEditor extends React.PureComponent<PropertyEditorProp
31
31
  componentDidUpdate(prevProps: PropertyEditorProps): void;
32
32
  private setStateFromProps;
33
33
  /** @internal */
34
- render(): JSX.Element;
34
+ render(): React.JSX.Element;
35
35
  }
36
36
  /** Toggle Property Editor registered for the "bool" and "boolean" type names and "toggle" editor name.
37
37
  * It uses the [[ToggleEditor]] React component.
@@ -1,7 +1,7 @@
1
1
  /** @packageDocumentation
2
2
  * @module Favorite
3
3
  */
4
- /// <reference types="react" />
4
+ import * as React from "react";
5
5
  import { Orientation } from "@itwin/core-react";
6
6
  import { PropertyValueRendererManager } from "../properties/ValueRendererManager";
7
7
  import type { PropertyData } from "../propertygrid/PropertyDataProvider";
@@ -16,5 +16,5 @@ export interface FavoritePropertyListProps {
16
16
  /** Favorite Property List React component
17
17
  * @alpha
18
18
  */
19
- export declare function FavoritePropertyList(props: FavoritePropertyListProps): JSX.Element | null;
19
+ export declare function FavoritePropertyList(props: FavoritePropertyListProps): React.JSX.Element | null;
20
20
  //# sourceMappingURL=FavoritePropertyList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FavoritePropertyList.d.ts","sourceRoot":"","sources":["../../../../src/components-react/favorite/FavoritePropertyList.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAGH,OAAO,EAAE,WAAW,EAA8B,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAElF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,YAAY,CAAC;IAC3B,4BAA4B,CAAC,EAAE,4BAA4B,CAAC;IAC5D,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,sBAwBpE"}
1
+ {"version":3,"file":"FavoritePropertyList.d.ts","sourceRoot":"","sources":["../../../../src/components-react/favorite/FavoritePropertyList.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAA8B,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAElF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,YAAY,CAAC;IAC3B,4BAA4B,CAAC,EAAE,4BAA4B,CAAC;IAC5D,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,4BAwBpE"}
@@ -13,12 +13,12 @@ import { PropertyList } from "../propertygrid/component/PropertyList";
13
13
  * @alpha
14
14
  */
15
15
  export function FavoritePropertyList(props) {
16
- var _a, _b;
17
16
  const [listWidth, setListWidth] = React.useState();
18
17
  const onListResize = React.useCallback(setListWidth, [setListWidth]);
19
18
  if (props.propertyData.records.Favorite !== undefined) {
20
- const propertyValueRendererManager = (_a = props.propertyValueRendererManager) !== null && _a !== void 0 ? _a : PropertyValueRendererManager.defaultManager;
21
- const orientation = (_b = props.orientation) !== null && _b !== void 0 ? _b : Orientation.Horizontal;
19
+ const propertyValueRendererManager = props.propertyValueRendererManager ??
20
+ PropertyValueRendererManager.defaultManager;
21
+ const orientation = props.orientation ?? Orientation.Horizontal;
22
22
  return (React.createElement("div", { className: "components-favorite-property-list" },
23
23
  React.createElement(ResizableContainerObserver, { onResize: onListResize }),
24
24
  listWidth ? (React.createElement(PropertyList, { orientation: orientation, width: listWidth, properties: props.propertyData.records.Favorite, columnRatio: 1 / 3, propertyValueRendererManager: propertyValueRendererManager })) : null));
@@ -1 +1 @@
1
- {"version":3,"file":"FavoritePropertyList.js","sourceRoot":"","sources":["../../../../src/components-react/favorite/FavoritePropertyList.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAYtE;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAgC;;IACnE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAsB,CAAC;IACvE,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IACrE,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;QACrD,MAAM,4BAA4B,GAChC,MAAA,KAAK,CAAC,4BAA4B,mCAClC,4BAA4B,CAAC,cAAc,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,WAAW,mCAAI,WAAW,CAAC,UAAU,CAAC;QAChE,OAAO,CACL,6BAAK,SAAS,EAAC,mCAAmC;YAChD,oBAAC,0BAA0B,IAAC,QAAQ,EAAE,YAAY,GAAI;YACrD,SAAS,CAAC,CAAC,CAAC,CACX,oBAAC,YAAY,IACX,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAC/C,WAAW,EAAE,CAAC,GAAG,CAAC,EAClB,4BAA4B,EAAE,4BAA4B,GAC1D,CACH,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Favorite\n */\n\nimport * as React from \"react\";\nimport { Orientation, ResizableContainerObserver } from \"@itwin/core-react\";\nimport { PropertyValueRendererManager } from \"../properties/ValueRendererManager\";\nimport { PropertyList } from \"../propertygrid/component/PropertyList\";\nimport type { PropertyData } from \"../propertygrid/PropertyDataProvider\";\n\n/** Properties for [[FavoritePropertyList]] React component\n * @alpha\n */\nexport interface FavoritePropertyListProps {\n propertyData: PropertyData;\n propertyValueRendererManager?: PropertyValueRendererManager;\n orientation?: Orientation;\n}\n\n/** Favorite Property List React component\n * @alpha\n */\nexport function FavoritePropertyList(props: FavoritePropertyListProps) {\n const [listWidth, setListWidth] = React.useState<number | undefined>();\n const onListResize = React.useCallback(setListWidth, [setListWidth]);\n if (props.propertyData.records.Favorite !== undefined) {\n const propertyValueRendererManager =\n props.propertyValueRendererManager ??\n PropertyValueRendererManager.defaultManager;\n const orientation = props.orientation ?? Orientation.Horizontal;\n return (\n <div className=\"components-favorite-property-list\">\n <ResizableContainerObserver onResize={onListResize} />\n {listWidth ? (\n <PropertyList\n orientation={orientation}\n width={listWidth}\n properties={props.propertyData.records.Favorite}\n columnRatio={1 / 3}\n propertyValueRendererManager={propertyValueRendererManager}\n />\n ) : null}\n </div>\n );\n }\n return null;\n}\n"]}
1
+ {"version":3,"file":"FavoritePropertyList.js","sourceRoot":"","sources":["../../../../src/components-react/favorite/FavoritePropertyList.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAYtE;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAgC;IACnE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAsB,CAAC;IACvE,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IACrE,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;QACrD,MAAM,4BAA4B,GAChC,KAAK,CAAC,4BAA4B;YAClC,4BAA4B,CAAC,cAAc,CAAC;QAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,UAAU,CAAC;QAChE,OAAO,CACL,6BAAK,SAAS,EAAC,mCAAmC;YAChD,oBAAC,0BAA0B,IAAC,QAAQ,EAAE,YAAY,GAAI;YACrD,SAAS,CAAC,CAAC,CAAC,CACX,oBAAC,YAAY,IACX,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAC/C,WAAW,EAAE,CAAC,GAAG,CAAC,EAClB,4BAA4B,EAAE,4BAA4B,GAC1D,CACH,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Favorite\n */\n\nimport * as React from \"react\";\nimport { Orientation, ResizableContainerObserver } from \"@itwin/core-react\";\nimport { PropertyValueRendererManager } from \"../properties/ValueRendererManager\";\nimport { PropertyList } from \"../propertygrid/component/PropertyList\";\nimport type { PropertyData } from \"../propertygrid/PropertyDataProvider\";\n\n/** Properties for [[FavoritePropertyList]] React component\n * @alpha\n */\nexport interface FavoritePropertyListProps {\n propertyData: PropertyData;\n propertyValueRendererManager?: PropertyValueRendererManager;\n orientation?: Orientation;\n}\n\n/** Favorite Property List React component\n * @alpha\n */\nexport function FavoritePropertyList(props: FavoritePropertyListProps) {\n const [listWidth, setListWidth] = React.useState<number | undefined>();\n const onListResize = React.useCallback(setListWidth, [setListWidth]);\n if (props.propertyData.records.Favorite !== undefined) {\n const propertyValueRendererManager =\n props.propertyValueRendererManager ??\n PropertyValueRendererManager.defaultManager;\n const orientation = props.orientation ?? Orientation.Horizontal;\n return (\n <div className=\"components-favorite-property-list\">\n <ResizableContainerObserver onResize={onListResize} />\n {listWidth ? (\n <PropertyList\n orientation={orientation}\n width={listWidth}\n properties={props.propertyData.records.Favorite}\n columnRatio={1 / 3}\n propertyValueRendererManager={propertyValueRendererManager}\n />\n ) : null}\n </div>\n );\n }\n return null;\n}\n"]}
@@ -19,7 +19,7 @@ export interface PropertyFilterBuilderProps extends Omit<PropertyFilterBuilderRe
19
19
  * Component for building complex filters. It allows to create filter rules or rule groups based on provided list of properties.
20
20
  * @beta
21
21
  */
22
- export declare function PropertyFilterBuilder(props: PropertyFilterBuilderProps): JSX.Element;
22
+ export declare function PropertyFilterBuilder(props: PropertyFilterBuilderProps): React.JSX.Element;
23
23
  /**
24
24
  * Props for [[PropertyFilterBuilderRenderer]] component.
25
25
  * @beta
@@ -39,14 +39,18 @@ export interface PropertyFilterBuilderRendererProps {
39
39
  ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueRendererProps) => React.ReactNode;
40
40
  /** Custom renderer for property selector in rule. */
41
41
  propertyRenderer?: (name: string) => React.ReactNode;
42
- /** Specifies how deep rule groups can be nested. */
42
+ /** Specifies how deep rule groups can be nested.
43
+ * @deprecated in 4.9.0. Nesting is no longer supported moving forward.
44
+ */
43
45
  ruleGroupDepthLimit?: number;
44
46
  /** Specifies whether component is disabled or not. */
45
47
  isDisabled?: boolean;
48
+ /** Controls whether the group operator is toggle-able. */
49
+ isGroupOperatorDisabled?: boolean;
46
50
  }
47
51
  /**
48
52
  * Renderer for [[PropertyFilterBuilder]] component.
49
53
  * @beta
50
54
  */
51
- export declare function PropertyFilterBuilderRenderer(props: PropertyFilterBuilderRendererProps): JSX.Element;
55
+ export declare function PropertyFilterBuilderRenderer(props: PropertyFilterBuilderRendererProps): React.JSX.Element;
52
56
  //# sourceMappingURL=FilterBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilder.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAYjE,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,0BAA0B,CAAC;AAK5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EACV,4BAA4B,EAC5B,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,sBAAsB,CAAC;AAE9B;;;GAGG;AACH,MAAM,WAAW,0BACf,SAAQ,IAAI,CAAC,kCAAkC,EAAE,SAAS,GAAG,WAAW,CAAC,EACvE,6BAA6B;IAC/B,oDAAoD;IACpD,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;CACpD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,eAuBtE;AAED;;;GAGG;AACH,MAAM,WAAW,kCAAkC;IACjD,kEAAkE;IAClE,SAAS,EAAE,8BAA8B,CAAC;IAC1C,6DAA6D;IAC7D,OAAO,EAAE,4BAA4B,CAAC;IACtC,+DAA+D;IAC/D,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,sEAAsE;IACtE,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjE,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,CACrB,KAAK,EAAE,sCAAsC,KAC1C,KAAK,CAAC,SAAS,CAAC;IACrB,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,2CAA2C,KAC/C,KAAK,CAAC,SAAS,CAAC;IACrB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAID;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kCAAkC,eAoD1C"}
1
+ {"version":3,"file":"FilterBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilder.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAUjE,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,0BAA0B,CAAC;AAK5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EACV,4BAA4B,EAC5B,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,sBAAsB,CAAC;AAE9B;;;GAGG;AACH,MAAM,WAAW,0BACf,SAAQ,IAAI,CAAC,kCAAkC,EAAE,SAAS,GAAG,WAAW,CAAC,EACvE,6BAA6B;IAC/B,oDAAoD;IACpD,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;CACpD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,qBAuBtE;AAED;;;GAGG;AACH,MAAM,WAAW,kCAAkC;IACjD,kEAAkE;IAClE,SAAS,EAAE,8BAA8B,CAAC;IAC1C,6DAA6D;IAC7D,OAAO,EAAE,4BAA4B,CAAC;IACtC,+DAA+D;IAC/D,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,sEAAsE;IACtE,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjE,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,CACrB,KAAK,EAAE,sCAAsC,KAC1C,KAAK,CAAC,SAAS,CAAC;IACrB,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,2CAA2C,KAC/C,KAAK,CAAC,SAAS,CAAC;IACrB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0DAA0D;IAC1D,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAID;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kCAAkC,qBA6C1C"}
@@ -6,7 +6,7 @@
6
6
  * @module PropertyFilterBuilder
7
7
  */
8
8
  import * as React from "react";
9
- import { ActiveRuleGroupContext, PropertyFilterBuilderContext, PropertyFilterBuilderRuleRenderingContext, useActiveRuleGroupContextProps, } from "./FilterBuilderContext";
9
+ import { PropertyFilterBuilderContext, PropertyFilterBuilderRuleRenderingContext, } from "./FilterBuilderContext";
10
10
  import { PropertyFilterBuilderRuleGroupRenderer } from "./FilterBuilderRuleGroup";
11
11
  import { buildPropertyFilter, usePropertyFilterBuilder, } from "./FilterBuilderState";
12
12
  /**
@@ -33,14 +33,12 @@ const ROOT_GROUP_PATH = [];
33
33
  * @beta
34
34
  */
35
35
  export function PropertyFilterBuilderRenderer(props) {
36
- const { rootGroup, actions, properties, onRulePropertySelected, ruleOperatorRenderer, ruleValueRenderer, ruleGroupDepthLimit, propertyRenderer, isDisabled, } = props;
37
- const rootRef = React.useRef(null);
36
+ const { rootGroup, actions, properties, onRulePropertySelected, ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, isDisabled, isGroupOperatorDisabled, } = props;
38
37
  const contextValue = React.useMemo(() => ({
39
38
  actions,
40
39
  properties,
41
40
  onRulePropertySelected,
42
- ruleGroupDepthLimit,
43
- }), [actions, properties, onRulePropertySelected, ruleGroupDepthLimit]);
41
+ }), [actions, properties, onRulePropertySelected]);
44
42
  const renderingContextValue = React.useMemo(() => ({
45
43
  ruleOperatorRenderer,
46
44
  ruleValueRenderer,
@@ -49,8 +47,6 @@ export function PropertyFilterBuilderRenderer(props) {
49
47
  }), [ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, isDisabled]);
50
48
  return (React.createElement(PropertyFilterBuilderRuleRenderingContext.Provider, { value: renderingContextValue },
51
49
  React.createElement(PropertyFilterBuilderContext.Provider, { value: contextValue },
52
- React.createElement(ActiveRuleGroupContext.Provider, { value: useActiveRuleGroupContextProps(rootRef) },
53
- React.createElement("div", { ref: rootRef, className: "filter-builder" },
54
- React.createElement(PropertyFilterBuilderRuleGroupRenderer, { path: ROOT_GROUP_PATH, group: rootGroup }))))));
50
+ React.createElement(PropertyFilterBuilderRuleGroupRenderer, { path: ROOT_GROUP_PATH, group: rootGroup, isGroupOperatorDisabled: isGroupOperatorDisabled }))));
55
51
  }
56
52
  //# sourceMappingURL=FilterBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilder.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilder.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,yCAAyC,EACzC,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sCAAsC,EAAE,MAAM,0BAA0B,CAAC;AAGlF,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAmB9B;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAiC;IACrE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IACjD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,wBAAwB,CAAC;QACtD,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAC1B,GAAG,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,EACpC,CAAC,SAAS,CAAC,CACZ,CAAC;IACF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAClD,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9B,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAE9B,OAAO,CACL,oBAAC,6BAA6B,OACxB,KAAK,EACT,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;AACJ,CAAC;AA+BD,MAAM,eAAe,GAAa,EAAE,CAAC;AAErC;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAyC;IAEzC,MAAM,EACJ,SAAS,EACT,OAAO,EACP,UAAU,EACV,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,GACX,GAAG,KAAK,CAAC;IACV,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEnD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC;QACL,OAAO;QACP,UAAU;QACV,sBAAsB;QACtB,mBAAmB;KACpB,CAAC,EACF,CAAC,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,CACnE,CAAC;IACF,MAAM,qBAAqB,GACzB,KAAK,CAAC,OAAO,CACX,GAAG,EAAE,CAAC,CAAC;QACL,oBAAoB;QACpB,iBAAiB;QACjB,gBAAgB;QAChB,UAAU;KACX,CAAC,EACF,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,CAAC,CACxE,CAAC;IACJ,OAAO,CACL,oBAAC,yCAAyC,CAAC,QAAQ,IACjD,KAAK,EAAE,qBAAqB;QAE5B,oBAAC,4BAA4B,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY;YACxD,oBAAC,sBAAsB,CAAC,QAAQ,IAC9B,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC;gBAE9C,6BAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,gBAAgB;oBAC3C,oBAAC,sCAAsC,IACrC,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,SAAS,GAChB,CACE,CAC0B,CACI,CACW,CACtD,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PropertyFilterBuilder\n */\n\nimport * as React from \"react\";\nimport type { PropertyDescription } from \"@itwin/appui-abstract\";\nimport type {\n PropertyFilterBuilderContextProps,\n PropertyFilterBuilderRuleRenderingContextProps,\n} from \"./FilterBuilderContext\";\nimport {\n ActiveRuleGroupContext,\n PropertyFilterBuilderContext,\n PropertyFilterBuilderRuleRenderingContext,\n useActiveRuleGroupContextProps,\n} from \"./FilterBuilderContext\";\nimport { PropertyFilterBuilderRuleGroupRenderer } from \"./FilterBuilderRuleGroup\";\nimport type { PropertyFilterBuilderRuleOperatorProps } from \"./FilterBuilderRuleOperator\";\nimport type { PropertyFilterBuilderRuleValueRendererProps } from \"./FilterBuilderRuleValue\";\nimport {\n buildPropertyFilter,\n usePropertyFilterBuilder,\n} from \"./FilterBuilderState\";\nimport type { PropertyFilter } from \"./Types\";\nimport type {\n PropertyFilterBuilderActions,\n PropertyFilterBuilderRuleGroup,\n UsePropertyFilterBuilderProps,\n} from \"./FilterBuilderState\";\n\n/**\n * Props for [[PropertyFilterBuilder]] component.\n * @beta\n */\nexport interface PropertyFilterBuilderProps\n extends Omit<PropertyFilterBuilderRendererProps, \"actions\" | \"rootGroup\">,\n UsePropertyFilterBuilderProps {\n /** Callback that is invoked when filter changes. */\n onFilterChanged: (filter?: PropertyFilter) => void;\n}\n\n/**\n * Component for building complex filters. It allows to create filter rules or rule groups based on provided list of properties.\n * @beta\n */\nexport function PropertyFilterBuilder(props: PropertyFilterBuilderProps) {\n const { initialFilter, onFilterChanged } = props;\n const { actions, rootGroup } = usePropertyFilterBuilder({\n initialFilter,\n });\n\n const firstRender = React.useRef(true);\n const filter = React.useMemo(\n () => buildPropertyFilter(rootGroup),\n [rootGroup]\n );\n React.useEffect(() => {\n if (!firstRender.current) onFilterChanged(filter);\n firstRender.current = false;\n }, [filter, onFilterChanged]);\n\n return (\n <PropertyFilterBuilderRenderer\n {...props}\n actions={actions}\n rootGroup={rootGroup}\n />\n );\n}\n\n/**\n * Props for [[PropertyFilterBuilderRenderer]] component.\n * @beta\n */\nexport interface PropertyFilterBuilderRendererProps {\n /** Root group of rules in [[PropertyFilterBuilder]] component. */\n rootGroup: PropertyFilterBuilderRuleGroup;\n /** Actions for modifying [[PropertyFilterBuilder]] state. */\n actions: PropertyFilterBuilderActions;\n /** List of properties available to be used in filter rules. */\n properties: PropertyDescription[];\n /** Callback that is invoked when property is selected in any rule. */\n onRulePropertySelected?: (property: PropertyDescription) => void;\n /** Custom renderer for rule operator selector. */\n ruleOperatorRenderer?: (\n props: PropertyFilterBuilderRuleOperatorProps\n ) => React.ReactNode;\n /** Custom renderer for rule value input. */\n ruleValueRenderer?: (\n props: PropertyFilterBuilderRuleValueRendererProps\n ) => React.ReactNode;\n /** Custom renderer for property selector in rule. */\n propertyRenderer?: (name: string) => React.ReactNode;\n /** Specifies how deep rule groups can be nested. */\n ruleGroupDepthLimit?: number;\n /** Specifies whether component is disabled or not. */\n isDisabled?: boolean;\n}\n\nconst ROOT_GROUP_PATH: string[] = [];\n\n/**\n * Renderer for [[PropertyFilterBuilder]] component.\n * @beta\n */\nexport function PropertyFilterBuilderRenderer(\n props: PropertyFilterBuilderRendererProps\n) {\n const {\n rootGroup,\n actions,\n properties,\n onRulePropertySelected,\n ruleOperatorRenderer,\n ruleValueRenderer,\n ruleGroupDepthLimit,\n propertyRenderer,\n isDisabled,\n } = props;\n const rootRef = React.useRef<HTMLDivElement>(null);\n\n const contextValue = React.useMemo<PropertyFilterBuilderContextProps>(\n () => ({\n actions,\n properties,\n onRulePropertySelected,\n ruleGroupDepthLimit,\n }),\n [actions, properties, onRulePropertySelected, ruleGroupDepthLimit]\n );\n const renderingContextValue =\n React.useMemo<PropertyFilterBuilderRuleRenderingContextProps>(\n () => ({\n ruleOperatorRenderer,\n ruleValueRenderer,\n propertyRenderer,\n isDisabled,\n }),\n [ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, isDisabled]\n );\n return (\n <PropertyFilterBuilderRuleRenderingContext.Provider\n value={renderingContextValue}\n >\n <PropertyFilterBuilderContext.Provider value={contextValue}>\n <ActiveRuleGroupContext.Provider\n value={useActiveRuleGroupContextProps(rootRef)}\n >\n <div ref={rootRef} className=\"filter-builder\">\n <PropertyFilterBuilderRuleGroupRenderer\n path={ROOT_GROUP_PATH}\n group={rootGroup}\n />\n </div>\n </ActiveRuleGroupContext.Provider>\n </PropertyFilterBuilderContext.Provider>\n </PropertyFilterBuilderRuleRenderingContext.Provider>\n );\n}\n"]}
1
+ {"version":3,"file":"FilterBuilder.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilder.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EACL,4BAA4B,EAC5B,yCAAyC,GAC1C,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sCAAsC,EAAE,MAAM,0BAA0B,CAAC;AAGlF,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAmB9B;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAiC;IACrE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IACjD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,wBAAwB,CAAC;QACtD,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAC1B,GAAG,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,EACpC,CAAC,SAAS,CAAC,CACZ,CAAC;IACF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAClD,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9B,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAE9B,OAAO,CACL,oBAAC,6BAA6B,OACxB,KAAK,EACT,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;AACJ,CAAC;AAmCD,MAAM,eAAe,GAAa,EAAE,CAAC;AAErC;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAyC;IAEzC,MAAM,EACJ,SAAS,EACT,OAAO,EACP,UAAU,EACV,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,uBAAuB,GACxB,GAAG,KAAK,CAAC;IAEV,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC;QACL,OAAO;QACP,UAAU;QACV,sBAAsB;KACvB,CAAC,EACF,CAAC,OAAO,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAC9C,CAAC;IACF,MAAM,qBAAqB,GACzB,KAAK,CAAC,OAAO,CACX,GAAG,EAAE,CAAC,CAAC;QACL,oBAAoB;QACpB,iBAAiB;QACjB,gBAAgB;QAChB,UAAU;KACX,CAAC,EACF,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,CAAC,CACxE,CAAC;IACJ,OAAO,CACL,oBAAC,yCAAyC,CAAC,QAAQ,IACjD,KAAK,EAAE,qBAAqB;QAE5B,oBAAC,4BAA4B,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY;YACxD,oBAAC,sCAAsC,IACrC,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,SAAS,EAChB,uBAAuB,EAAE,uBAAuB,GAChD,CACoC,CACW,CACtD,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PropertyFilterBuilder\n */\n\nimport * as React from \"react\";\nimport type { PropertyDescription } from \"@itwin/appui-abstract\";\nimport type {\n PropertyFilterBuilderContextProps,\n PropertyFilterBuilderRuleRenderingContextProps,\n} from \"./FilterBuilderContext\";\nimport {\n PropertyFilterBuilderContext,\n PropertyFilterBuilderRuleRenderingContext,\n} from \"./FilterBuilderContext\";\nimport { PropertyFilterBuilderRuleGroupRenderer } from \"./FilterBuilderRuleGroup\";\nimport type { PropertyFilterBuilderRuleOperatorProps } from \"./FilterBuilderRuleOperator\";\nimport type { PropertyFilterBuilderRuleValueRendererProps } from \"./FilterBuilderRuleValue\";\nimport {\n buildPropertyFilter,\n usePropertyFilterBuilder,\n} from \"./FilterBuilderState\";\nimport type { PropertyFilter } from \"./Types\";\nimport type {\n PropertyFilterBuilderActions,\n PropertyFilterBuilderRuleGroup,\n UsePropertyFilterBuilderProps,\n} from \"./FilterBuilderState\";\n\n/**\n * Props for [[PropertyFilterBuilder]] component.\n * @beta\n */\nexport interface PropertyFilterBuilderProps\n extends Omit<PropertyFilterBuilderRendererProps, \"actions\" | \"rootGroup\">,\n UsePropertyFilterBuilderProps {\n /** Callback that is invoked when filter changes. */\n onFilterChanged: (filter?: PropertyFilter) => void;\n}\n\n/**\n * Component for building complex filters. It allows to create filter rules or rule groups based on provided list of properties.\n * @beta\n */\nexport function PropertyFilterBuilder(props: PropertyFilterBuilderProps) {\n const { initialFilter, onFilterChanged } = props;\n const { actions, rootGroup } = usePropertyFilterBuilder({\n initialFilter,\n });\n\n const firstRender = React.useRef(true);\n const filter = React.useMemo(\n () => buildPropertyFilter(rootGroup),\n [rootGroup]\n );\n React.useEffect(() => {\n if (!firstRender.current) onFilterChanged(filter);\n firstRender.current = false;\n }, [filter, onFilterChanged]);\n\n return (\n <PropertyFilterBuilderRenderer\n {...props}\n actions={actions}\n rootGroup={rootGroup}\n />\n );\n}\n\n/**\n * Props for [[PropertyFilterBuilderRenderer]] component.\n * @beta\n */\nexport interface PropertyFilterBuilderRendererProps {\n /** Root group of rules in [[PropertyFilterBuilder]] component. */\n rootGroup: PropertyFilterBuilderRuleGroup;\n /** Actions for modifying [[PropertyFilterBuilder]] state. */\n actions: PropertyFilterBuilderActions;\n /** List of properties available to be used in filter rules. */\n properties: PropertyDescription[];\n /** Callback that is invoked when property is selected in any rule. */\n onRulePropertySelected?: (property: PropertyDescription) => void;\n /** Custom renderer for rule operator selector. */\n ruleOperatorRenderer?: (\n props: PropertyFilterBuilderRuleOperatorProps\n ) => React.ReactNode;\n /** Custom renderer for rule value input. */\n ruleValueRenderer?: (\n props: PropertyFilterBuilderRuleValueRendererProps\n ) => React.ReactNode;\n /** Custom renderer for property selector in rule. */\n propertyRenderer?: (name: string) => React.ReactNode;\n /** Specifies how deep rule groups can be nested.\n * @deprecated in 4.9.0. Nesting is no longer supported moving forward.\n */\n ruleGroupDepthLimit?: number;\n /** Specifies whether component is disabled or not. */\n isDisabled?: boolean;\n /** Controls whether the group operator is toggle-able. */\n isGroupOperatorDisabled?: boolean;\n}\n\nconst ROOT_GROUP_PATH: string[] = [];\n\n/**\n * Renderer for [[PropertyFilterBuilder]] component.\n * @beta\n */\nexport function PropertyFilterBuilderRenderer(\n props: PropertyFilterBuilderRendererProps\n) {\n const {\n rootGroup,\n actions,\n properties,\n onRulePropertySelected,\n ruleOperatorRenderer,\n ruleValueRenderer,\n propertyRenderer,\n isDisabled,\n isGroupOperatorDisabled,\n } = props;\n\n const contextValue = React.useMemo<PropertyFilterBuilderContextProps>(\n () => ({\n actions,\n properties,\n onRulePropertySelected,\n }),\n [actions, properties, onRulePropertySelected]\n );\n const renderingContextValue =\n React.useMemo<PropertyFilterBuilderRuleRenderingContextProps>(\n () => ({\n ruleOperatorRenderer,\n ruleValueRenderer,\n propertyRenderer,\n isDisabled,\n }),\n [ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, isDisabled]\n );\n return (\n <PropertyFilterBuilderRuleRenderingContext.Provider\n value={renderingContextValue}\n >\n <PropertyFilterBuilderContext.Provider value={contextValue}>\n <PropertyFilterBuilderRuleGroupRenderer\n path={ROOT_GROUP_PATH}\n group={rootGroup}\n isGroupOperatorDisabled={isGroupOperatorDisabled}\n />\n </PropertyFilterBuilderContext.Provider>\n </PropertyFilterBuilderRuleRenderingContext.Provider>\n );\n}\n"]}
@@ -44,40 +44,4 @@ export interface PropertyFilterBuilderRuleRenderingContextProps {
44
44
  * @internal
45
45
  */
46
46
  export declare const PropertyFilterBuilderRuleRenderingContext: React.Context<PropertyFilterBuilderRuleRenderingContextProps>;
47
- /**
48
- * Data structure that describes value of [[ActiveRuleGroupContext]].
49
- * @internal
50
- */
51
- export interface ActiveRuleGroupContextProps {
52
- /** Element of currently focused rule group. */
53
- focusedElement: HTMLElement | undefined;
54
- /** Element of currently hovered rule group. */
55
- hoveredElement: HTMLElement | undefined;
56
- /** Even handler for rule group element 'onFocus' event */
57
- onFocus: React.FocusEventHandler<HTMLElement>;
58
- /** Even handler for rule group element 'onBlur' event */
59
- onBlur: React.FocusEventHandler<HTMLElement>;
60
- /** Even handler for rule group element 'onMouseOver' event */
61
- onMouseOver: React.MouseEventHandler<HTMLElement>;
62
- /** Even handler for rule group element 'onMouseOut' event */
63
- onMouseOut: React.MouseEventHandler<HTMLElement>;
64
- }
65
- /**
66
- * Context for tracking and storing active rule group in [[PropertyFilterBuilder]].
67
- * Group is considered active if it is focused or hovered.
68
- * @internal
69
- */
70
- export declare const ActiveRuleGroupContext: React.Context<ActiveRuleGroupContextProps>;
71
- /**
72
- * Custom hook that created value for [[ActiveRuleGroupContext]].
73
- * @internal
74
- */
75
- export declare function useActiveRuleGroupContextProps(rootElementRef: React.RefObject<HTMLElement>): {
76
- focusedElement: HTMLElement | undefined;
77
- hoveredElement: HTMLElement | undefined;
78
- onFocus: React.FocusEventHandler<HTMLElement>;
79
- onBlur: React.FocusEventHandler<HTMLElement>;
80
- onMouseOver: React.MouseEventHandler<HTMLElement>;
81
- onMouseOut: React.MouseEventHandler<HTMLElement>;
82
- };
83
47
  //# sourceMappingURL=FilterBuilderContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderContext.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderContext.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,0BAA0B,CAAC;AAE5F;;;GAGG;AACH,MAAM,WAAW,iCAAiC;IAChD,6DAA6D;IAC7D,OAAO,EAAE,4BAA4B,CAAC;IACtC,oCAAoC;IACpC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,gEAAgE;IAChE,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjE,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kDACsB,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,8CAA8C;IAC7D,qDAAqD;IACrD,oBAAoB,CAAC,EAAE,CACrB,KAAK,EAAE,sCAAsC,KAC1C,KAAK,CAAC,SAAS,CAAC;IACrB,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,2CAA2C,KAC/C,KAAK,CAAC,SAAS,CAAC;IACrB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,yCAAyC,+DACmB,CAAC;AAE1E;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,+CAA+C;IAC/C,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,+CAA+C;IAC/C,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,0DAA0D;IAC1D,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9C,yDAAyD;IACzD,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7C,8DAA8D;IAC9D,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAClD,6DAA6D;IAC7D,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;CAClD;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,4CACsB,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC;;;;;;;EA6D7C"}
1
+ {"version":3,"file":"FilterBuilderContext.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderContext.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,0BAA0B,CAAC;AAE5F;;;GAGG;AACH,MAAM,WAAW,iCAAiC;IAChD,6DAA6D;IAC7D,OAAO,EAAE,4BAA4B,CAAC;IACtC,oCAAoC;IACpC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,gEAAgE;IAChE,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjE,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kDACsB,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,8CAA8C;IAC7D,qDAAqD;IACrD,oBAAoB,CAAC,EAAE,CACrB,KAAK,EAAE,sCAAsC,KAC1C,KAAK,CAAC,SAAS,CAAC;IACrB,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,2CAA2C,KAC/C,KAAK,CAAC,SAAS,CAAC;IACrB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,yCAAyC,+DACmB,CAAC"}
@@ -16,75 +16,4 @@ export const PropertyFilterBuilderContext = React.createContext(null);
16
16
  * @internal
17
17
  */
18
18
  export const PropertyFilterBuilderRuleRenderingContext = React.createContext({});
19
- /**
20
- * Context for tracking and storing active rule group in [[PropertyFilterBuilder]].
21
- * Group is considered active if it is focused or hovered.
22
- * @internal
23
- */
24
- export const ActiveRuleGroupContext = React.createContext(null);
25
- /**
26
- * Custom hook that created value for [[ActiveRuleGroupContext]].
27
- * @internal
28
- */
29
- export function useActiveRuleGroupContextProps(rootElementRef) {
30
- const [focusedElement, setFocusedElement] = React.useState();
31
- const [hoveredElement, setHoveredElement] = React.useState();
32
- // This is used to prevent handling onFocus, onBlur, onMouseOver, onMouseOut in the same event cycle.
33
- const focusedTimeout = useSetTimeout();
34
- const hoveredTimeout = useSetTimeout();
35
- const onFocus = (e) => {
36
- e.stopPropagation();
37
- const target = e.currentTarget;
38
- focusedTimeout(() => {
39
- setFocusedElement(target);
40
- });
41
- };
42
- const onBlur = (e) => {
43
- e.stopPropagation();
44
- if (focusedElement !== e.currentTarget ||
45
- (rootElementRef.current &&
46
- rootElementRef.current.contains(e.relatedTarget)))
47
- return;
48
- focusedTimeout(() => {
49
- setFocusedElement(undefined);
50
- });
51
- };
52
- const onMouseOver = (e) => {
53
- const target = e.currentTarget;
54
- e.stopPropagation();
55
- hoveredTimeout(() => {
56
- setHoveredElement(target);
57
- });
58
- };
59
- const onMouseOut = (e) => {
60
- e.stopPropagation();
61
- // istanbul ignore if
62
- if (hoveredElement !== e.currentTarget)
63
- return;
64
- hoveredTimeout(() => {
65
- setHoveredElement(undefined);
66
- });
67
- };
68
- return {
69
- focusedElement,
70
- hoveredElement,
71
- onFocus,
72
- onBlur,
73
- onMouseOver,
74
- onMouseOut,
75
- };
76
- }
77
- function useSetTimeout() {
78
- const timeoutRef = React.useRef();
79
- React.useEffect(() => {
80
- // clear pending timeout on unmount
81
- return () => {
82
- window.clearTimeout(timeoutRef.current);
83
- };
84
- }, []);
85
- return (callback) => {
86
- window.clearTimeout(timeoutRef.current);
87
- timeoutRef.current = window.setTimeout(callback);
88
- };
89
- }
90
19
  //# sourceMappingURL=FilterBuilderContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderContext.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderContext.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 PropertyFilterBuilder\n */\n\nimport * as React from \"react\";\nimport type { PropertyDescription } from \"@itwin/appui-abstract\";\nimport type { PropertyFilterBuilderActions } from \"./FilterBuilderState\";\nimport type { PropertyFilterBuilderRuleOperatorProps } from \"./FilterBuilderRuleOperator\";\nimport type { PropertyFilterBuilderRuleValueRendererProps } from \"./FilterBuilderRuleValue\";\n\n/**\n * Data structure that describes [[PropertyFilterBuilderContext]] value.\n * @internal\n */\nexport interface PropertyFilterBuilderContextProps {\n /** Actions for modifying [[PropertyFilterBuilder]] state. */\n actions: PropertyFilterBuilderActions;\n /** List of available properties. */\n properties: PropertyDescription[];\n /** Callback to invoke when property is selected in any rule. */\n onRulePropertySelected?: (property: PropertyDescription) => void;\n /** Specifies how deep rule groups can be nested. */\n ruleGroupDepthLimit?: number;\n}\n\n/**\n * Context used to store data for rules and rule groups rendered inside [[PropertyFilterBuilder]] component.\n * @internal\n */\nexport const PropertyFilterBuilderContext =\n React.createContext<PropertyFilterBuilderContextProps>(null!);\n\n/**\n * Data structure that describes [[PropertyFilterBuilderRuleRenderingContext]] value.\n * @internal\n */\nexport interface PropertyFilterBuilderRuleRenderingContextProps {\n /** Custom renderer for operator selector in rule. */\n ruleOperatorRenderer?: (\n props: PropertyFilterBuilderRuleOperatorProps\n ) => React.ReactNode;\n /** Custom renderer for value input in rule. */\n ruleValueRenderer?: (\n props: PropertyFilterBuilderRuleValueRendererProps\n ) => React.ReactNode;\n /** Custom renderer for property selector in rule. */\n propertyRenderer?: (name: string) => React.ReactNode;\n /** Specifies that properties selection is disabled. */\n isDisabled?: boolean;\n}\n\n/**\n * Context for rendering rules and rule groups inside [[PropertyFilterBuilder]] component.\n * @internal\n */\nexport const PropertyFilterBuilderRuleRenderingContext =\n React.createContext<PropertyFilterBuilderRuleRenderingContextProps>({});\n\n/**\n * Data structure that describes value of [[ActiveRuleGroupContext]].\n * @internal\n */\nexport interface ActiveRuleGroupContextProps {\n /** Element of currently focused rule group. */\n focusedElement: HTMLElement | undefined;\n /** Element of currently hovered rule group. */\n hoveredElement: HTMLElement | undefined;\n /** Even handler for rule group element 'onFocus' event */\n onFocus: React.FocusEventHandler<HTMLElement>;\n /** Even handler for rule group element 'onBlur' event */\n onBlur: React.FocusEventHandler<HTMLElement>;\n /** Even handler for rule group element 'onMouseOver' event */\n onMouseOver: React.MouseEventHandler<HTMLElement>;\n /** Even handler for rule group element 'onMouseOut' event */\n onMouseOut: React.MouseEventHandler<HTMLElement>;\n}\n\n/**\n * Context for tracking and storing active rule group in [[PropertyFilterBuilder]].\n * Group is considered active if it is focused or hovered.\n * @internal\n */\nexport const ActiveRuleGroupContext =\n React.createContext<ActiveRuleGroupContextProps>(null!);\n\n/**\n * Custom hook that created value for [[ActiveRuleGroupContext]].\n * @internal\n */\nexport function useActiveRuleGroupContextProps(\n rootElementRef: React.RefObject<HTMLElement>\n) {\n const [focusedElement, setFocusedElement] = React.useState<\n HTMLElement | undefined\n >();\n const [hoveredElement, setHoveredElement] = React.useState<\n HTMLElement | undefined\n >();\n\n // This is used to prevent handling onFocus, onBlur, onMouseOver, onMouseOut in the same event cycle.\n const focusedTimeout = useSetTimeout();\n const hoveredTimeout = useSetTimeout();\n\n const onFocus: React.FocusEventHandler<HTMLElement> = (e) => {\n e.stopPropagation();\n const target = e.currentTarget;\n focusedTimeout(() => {\n setFocusedElement(target);\n });\n };\n\n const onBlur: React.FocusEventHandler<HTMLElement> = (e) => {\n e.stopPropagation();\n if (\n focusedElement !== e.currentTarget ||\n (rootElementRef.current &&\n rootElementRef.current.contains(e.relatedTarget))\n )\n return;\n\n focusedTimeout(() => {\n setFocusedElement(undefined);\n });\n };\n\n const onMouseOver: React.MouseEventHandler<HTMLElement> = (e) => {\n const target = e.currentTarget;\n e.stopPropagation();\n hoveredTimeout(() => {\n setHoveredElement(target);\n });\n };\n\n const onMouseOut: React.MouseEventHandler<HTMLElement> = (e) => {\n e.stopPropagation();\n // istanbul ignore if\n if (hoveredElement !== e.currentTarget) return;\n\n hoveredTimeout(() => {\n setHoveredElement(undefined);\n });\n };\n\n return {\n focusedElement,\n hoveredElement,\n onFocus,\n onBlur,\n onMouseOver,\n onMouseOut,\n };\n}\n\nfunction useSetTimeout() {\n const timeoutRef = React.useRef<number>();\n\n React.useEffect(() => {\n // clear pending timeout on unmount\n return () => {\n window.clearTimeout(timeoutRef.current);\n };\n }, []);\n\n return (callback: () => void) => {\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(callback);\n };\n}\n"]}
1
+ {"version":3,"file":"FilterBuilderContext.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderContext.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqB/B;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GACvC,KAAK,CAAC,aAAa,CAAoC,IAAK,CAAC,CAAC;AAqBhE;;;GAGG;AACH,MAAM,CAAC,MAAM,yCAAyC,GACpD,KAAK,CAAC,aAAa,CAAiD,EAAE,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PropertyFilterBuilder\n */\n\nimport * as React from \"react\";\nimport type { PropertyDescription } from \"@itwin/appui-abstract\";\nimport type { PropertyFilterBuilderActions } from \"./FilterBuilderState\";\nimport type { PropertyFilterBuilderRuleOperatorProps } from \"./FilterBuilderRuleOperator\";\nimport type { PropertyFilterBuilderRuleValueRendererProps } from \"./FilterBuilderRuleValue\";\n\n/**\n * Data structure that describes [[PropertyFilterBuilderContext]] value.\n * @internal\n */\nexport interface PropertyFilterBuilderContextProps {\n /** Actions for modifying [[PropertyFilterBuilder]] state. */\n actions: PropertyFilterBuilderActions;\n /** List of available properties. */\n properties: PropertyDescription[];\n /** Callback to invoke when property is selected in any rule. */\n onRulePropertySelected?: (property: PropertyDescription) => void;\n /** Specifies how deep rule groups can be nested. */\n ruleGroupDepthLimit?: number;\n}\n\n/**\n * Context used to store data for rules and rule groups rendered inside [[PropertyFilterBuilder]] component.\n * @internal\n */\nexport const PropertyFilterBuilderContext =\n React.createContext<PropertyFilterBuilderContextProps>(null!);\n\n/**\n * Data structure that describes [[PropertyFilterBuilderRuleRenderingContext]] value.\n * @internal\n */\nexport interface PropertyFilterBuilderRuleRenderingContextProps {\n /** Custom renderer for operator selector in rule. */\n ruleOperatorRenderer?: (\n props: PropertyFilterBuilderRuleOperatorProps\n ) => React.ReactNode;\n /** Custom renderer for value input in rule. */\n ruleValueRenderer?: (\n props: PropertyFilterBuilderRuleValueRendererProps\n ) => React.ReactNode;\n /** Custom renderer for property selector in rule. */\n propertyRenderer?: (name: string) => React.ReactNode;\n /** Specifies that properties selection is disabled. */\n isDisabled?: boolean;\n}\n\n/**\n * Context for rendering rules and rule groups inside [[PropertyFilterBuilder]] component.\n * @internal\n */\nexport const PropertyFilterBuilderRuleRenderingContext =\n React.createContext<PropertyFilterBuilderRuleRenderingContextProps>({});\n"]}
@@ -0,0 +1,24 @@
1
+ /** @packageDocumentation
2
+ * @module PropertyFilterBuilder
3
+ */
4
+ import React from "react";
5
+ import type { PropertyFilterRuleGroupOperator } from "./Operators";
6
+ /**
7
+ * Props for [[PropertyFilterBuilderLogicalOperator]] component.
8
+ * @beta
9
+ */
10
+ export interface PropertyFilterBuilderLogicalOperatorProps {
11
+ /** Allows toggling of operator by clicking operator text. */
12
+ isDisabled?: boolean;
13
+ /** Operator to combine FilterBuilderRules. Must be either "and" or "or". */
14
+ operator: `${PropertyFilterRuleGroupOperator}`;
15
+ /** Callback that is invoked when operator changes. */
16
+ onOperatorChange: (operator: `${PropertyFilterRuleGroupOperator}`) => void;
17
+ /** Classname to specify CSS styling */
18
+ className?: string;
19
+ }
20
+ /** Component to render the operator inside of the filter builder
21
+ * @beta
22
+ */
23
+ export declare const PropertyFilterBuilderLogicalOperator: (props: PropertyFilterBuilderLogicalOperatorProps) => React.JSX.Element;
24
+ //# sourceMappingURL=FilterBuilderLogicalOperator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterBuilderLogicalOperator.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderLogicalOperator.tsx"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,yCAAyC;IACxD,6DAA6D;IAC7D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,QAAQ,EAAE,GAAG,+BAA+B,EAAE,CAAC;IAC/C,sDAAsD;IACtD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,GAAG,+BAA+B,EAAE,KAAK,IAAI,CAAC;IAC3E,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,oCAAoC,UACxC,yCAAyC,sBAyBjD,CAAC"}
@@ -0,0 +1,23 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module PropertyFilterBuilder
7
+ */
8
+ import React from "react";
9
+ import cx from "classnames";
10
+ import { Anchor } from "@itwin/itwinui-react";
11
+ import { UiComponents } from "../UiComponents";
12
+ /** Component to render the operator inside of the filter builder
13
+ * @beta
14
+ */
15
+ export const PropertyFilterBuilderLogicalOperator = (props) => {
16
+ const { isDisabled, operator, onOperatorChange, className } = props;
17
+ const toggle = () => (operator === "and" ? "or" : "and");
18
+ const operatorDisplayText = operator === "and"
19
+ ? UiComponents.translate("filterBuilder.operators.and")
20
+ : UiComponents.translate("filterBuilder.operators.or");
21
+ return (React.createElement("div", { className: cx("fb-logical-operator", className) }, isDisabled ? (React.createElement("span", null, operatorDisplayText)) : (React.createElement(Anchor, { className: "fb-logical-operator-toggle", onClick: () => onOperatorChange(toggle()) }, operatorDisplayText))));
22
+ };
23
+ //# sourceMappingURL=FilterBuilderLogicalOperator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterBuilderLogicalOperator.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderLogicalOperator.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAkB/C;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAClD,KAAgD,EAChD,EAAE;IACF,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEpE,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAEzD,MAAM,mBAAmB,GACvB,QAAQ,KAAK,KAAK;QAChB,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,6BAA6B,CAAC;QACvD,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAE3D,OAAO,CACL,6BAAK,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,IACjD,UAAU,CAAC,CAAC,CAAC,CACZ,kCAAO,mBAAmB,CAAQ,CACnC,CAAC,CAAC,CAAC,CACF,oBAAC,MAAM,IACL,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAExC,mBAAmB,CACb,CACV,CACG,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PropertyFilterBuilder\n */\nimport React from \"react\";\nimport cx from \"classnames\";\nimport { Anchor } from \"@itwin/itwinui-react\";\nimport { UiComponents } from \"../UiComponents\";\nimport type { PropertyFilterRuleGroupOperator } from \"./Operators\";\n\n/**\n * Props for [[PropertyFilterBuilderLogicalOperator]] component.\n * @beta\n */\nexport interface PropertyFilterBuilderLogicalOperatorProps {\n /** Allows toggling of operator by clicking operator text. */\n isDisabled?: boolean;\n /** Operator to combine FilterBuilderRules. Must be either \"and\" or \"or\". */\n operator: `${PropertyFilterRuleGroupOperator}`;\n /** Callback that is invoked when operator changes. */\n onOperatorChange: (operator: `${PropertyFilterRuleGroupOperator}`) => void;\n /** Classname to specify CSS styling */\n className?: string;\n}\n\n/** Component to render the operator inside of the filter builder\n * @beta\n */\nexport const PropertyFilterBuilderLogicalOperator = (\n props: PropertyFilterBuilderLogicalOperatorProps\n) => {\n const { isDisabled, operator, onOperatorChange, className } = props;\n\n const toggle = () => (operator === \"and\" ? \"or\" : \"and\");\n\n const operatorDisplayText =\n operator === \"and\"\n ? UiComponents.translate(\"filterBuilder.operators.and\")\n : UiComponents.translate(\"filterBuilder.operators.or\");\n\n return (\n <div className={cx(\"fb-logical-operator\", className)}>\n {isDisabled ? (\n <span>{operatorDisplayText}</span>\n ) : (\n <Anchor\n className=\"fb-logical-operator-toggle\"\n onClick={() => onOperatorChange(toggle())}\n >\n {operatorDisplayText}\n </Anchor>\n )}\n </div>\n );\n};\n"]}
@@ -0,0 +1,31 @@
1
+ /** @packageDocumentation
2
+ * @module PropertyFilterBuilder
3
+ */
4
+ import type { PrimitiveValue, PropertyValue } from "@itwin/appui-abstract";
5
+ /**
6
+ * Data structure that describes range value.
7
+ * @beta
8
+ */
9
+ export interface PropertyFilterBuilderRuleRangeValue {
10
+ from: PrimitiveValue;
11
+ to: PrimitiveValue;
12
+ }
13
+ /** @beta */
14
+ export declare namespace PropertyFilterBuilderRuleRangeValue {
15
+ /**
16
+ * Parses [[PropertyFilterBuilderRuleRangeValue]] from [[PropertyValue]].
17
+ * @beta
18
+ */
19
+ function parse(val?: PropertyValue): PropertyFilterBuilderRuleRangeValue;
20
+ /**
21
+ * Serializes [[PropertyFilterBuilderRuleRangeValue]] into [[PrimitiveValue]].
22
+ * @beta
23
+ */
24
+ function serialize(val: PropertyFilterBuilderRuleRangeValue): PrimitiveValue;
25
+ /**
26
+ * Checks if [[PropertyFilterBuilderRuleRangeValue]] has valid range.
27
+ * @beta
28
+ */
29
+ function isRangeValid({ from, to, }: PropertyFilterBuilderRuleRangeValue): boolean;
30
+ }
31
+ //# sourceMappingURL=FilterBuilderRangeValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterBuilderRangeValue.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRangeValue.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3E;;;GAGG;AACH,MAAM,WAAW,mCAAmC;IAClD,IAAI,EAAE,cAAc,CAAC;IACrB,EAAE,EAAE,cAAc,CAAC;CACpB;AAED,YAAY;AACZ,yBAAiB,mCAAmC,CAAC;IACnD;;;OAGG;IACH,SAAgB,KAAK,CACnB,GAAG,CAAC,EAAE,aAAa,GAClB,mCAAmC,CAErC;IAED;;;OAGG;IACH,SAAgB,SAAS,CACvB,GAAG,EAAE,mCAAmC,GACvC,cAAc,CAKhB;IAED;;;OAGG;IACH,SAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,EAAE,GACH,EAAE,mCAAmC,WAUrC;CACF"}
@@ -0,0 +1,73 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module PropertyFilterBuilder
7
+ */
8
+ import { PropertyValueFormat } from "@itwin/appui-abstract";
9
+ /** @beta */
10
+ export var PropertyFilterBuilderRuleRangeValue;
11
+ (function (PropertyFilterBuilderRuleRangeValue) {
12
+ /**
13
+ * Parses [[PropertyFilterBuilderRuleRangeValue]] from [[PropertyValue]].
14
+ * @beta
15
+ */
16
+ function parse(val) {
17
+ return parseRangeValue(val);
18
+ }
19
+ PropertyFilterBuilderRuleRangeValue.parse = parse;
20
+ /**
21
+ * Serializes [[PropertyFilterBuilderRuleRangeValue]] into [[PrimitiveValue]].
22
+ * @beta
23
+ */
24
+ function serialize(val) {
25
+ return {
26
+ valueFormat: PropertyValueFormat.Primitive,
27
+ value: JSON.stringify(val),
28
+ };
29
+ }
30
+ PropertyFilterBuilderRuleRangeValue.serialize = serialize;
31
+ /**
32
+ * Checks if [[PropertyFilterBuilderRuleRangeValue]] has valid range.
33
+ * @beta
34
+ */
35
+ function isRangeValid({ from, to, }) {
36
+ if (isNumericValue(from) && isNumericValue(to)) {
37
+ return from.value < to.value;
38
+ }
39
+ if (isDateValue(from) && isDateValue(to)) {
40
+ return new Date(from.value) < new Date(to.value);
41
+ }
42
+ return false;
43
+ }
44
+ PropertyFilterBuilderRuleRangeValue.isRangeValid = isRangeValid;
45
+ })(PropertyFilterBuilderRuleRangeValue || (PropertyFilterBuilderRuleRangeValue = {}));
46
+ function isNumericValue(value) {
47
+ return typeof value.value === "number";
48
+ }
49
+ function isDateValue(value) {
50
+ return typeof value.value === "string" || value.value instanceof Date;
51
+ }
52
+ function parseRangeValue(val) {
53
+ if (!val ||
54
+ val.valueFormat !== PropertyValueFormat.Primitive ||
55
+ typeof val.value !== "string") {
56
+ return {
57
+ from: { valueFormat: PropertyValueFormat.Primitive },
58
+ to: { valueFormat: PropertyValueFormat.Primitive },
59
+ };
60
+ }
61
+ try {
62
+ const value = JSON.parse(val.value);
63
+ if (value.from !== undefined && value.to !== undefined) {
64
+ return value;
65
+ }
66
+ }
67
+ catch { }
68
+ return {
69
+ from: { valueFormat: PropertyValueFormat.Primitive },
70
+ to: { valueFormat: PropertyValueFormat.Primitive },
71
+ };
72
+ }
73
+ //# sourceMappingURL=FilterBuilderRangeValue.js.map