@itwin/components-react 4.8.3 → 4.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/lib/cjs/components-react/UiComponents.d.ts.map +1 -1
  3. package/lib/cjs/components-react/UiComponents.js +1 -0
  4. package/lib/cjs/components-react/UiComponents.js.map +1 -1
  5. package/lib/cjs/components-react/common/DelayedSpinner.d.ts +2 -2
  6. package/lib/cjs/components-react/common/DelayedSpinner.d.ts.map +1 -1
  7. package/lib/cjs/components-react/common/HighlightedText.d.ts +2 -2
  8. package/lib/cjs/components-react/common/HighlightedText.d.ts.map +1 -1
  9. package/lib/cjs/components-react/common/ImageRenderer.d.ts.map +1 -1
  10. package/lib/cjs/components-react/common/ImageRenderer.js +1 -0
  11. package/lib/cjs/components-react/common/ImageRenderer.js.map +1 -1
  12. package/lib/cjs/components-react/common/UseContextWithMandatoryProvider.d.ts.map +1 -1
  13. package/lib/cjs/components-react/common/UseContextWithMandatoryProvider.js +1 -0
  14. package/lib/cjs/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
  15. package/lib/cjs/components-react/datepicker/DateField.d.ts +2 -2
  16. package/lib/cjs/components-react/datepicker/DateField.d.ts.map +1 -1
  17. package/lib/cjs/components-react/datepicker/DatePicker.d.ts +2 -2
  18. package/lib/cjs/components-react/datepicker/DatePicker.d.ts.map +1 -1
  19. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.d.ts +1 -1
  20. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.d.ts.map +1 -1
  21. package/lib/cjs/components-react/datepicker/TimeField.d.ts +2 -2
  22. package/lib/cjs/components-react/datepicker/TimeField.d.ts.map +1 -1
  23. package/lib/cjs/components-react/editors/BooleanEditor.d.ts +1 -1
  24. package/lib/cjs/components-react/editors/EditorContainer.d.ts +1 -1
  25. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.d.ts +1 -1
  26. package/lib/cjs/components-react/editors/EnumEditor.d.ts +1 -1
  27. package/lib/cjs/components-react/editors/IconEditor.d.ts +1 -1
  28. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.d.ts +1 -1
  29. package/lib/cjs/components-react/editors/PopupButton.d.ts +2 -2
  30. package/lib/cjs/components-react/editors/PopupButton.d.ts.map +1 -1
  31. package/lib/cjs/components-react/editors/ToggleEditor.d.ts +1 -1
  32. package/lib/cjs/components-react/favorite/FavoritePropertyList.d.ts +2 -2
  33. package/lib/cjs/components-react/favorite/FavoritePropertyList.d.ts.map +1 -1
  34. package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts +7 -3
  35. package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
  36. package/lib/cjs/components-react/filter-builder/FilterBuilder.js +3 -7
  37. package/lib/cjs/components-react/filter-builder/FilterBuilder.js.map +1 -1
  38. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts +0 -36
  39. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -1
  40. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js +1 -73
  41. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
  42. package/lib/cjs/components-react/filter-builder/FilterBuilderLogicalOperator.d.ts +24 -0
  43. package/lib/cjs/components-react/filter-builder/FilterBuilderLogicalOperator.d.ts.map +1 -0
  44. package/lib/cjs/components-react/filter-builder/FilterBuilderLogicalOperator.js +30 -0
  45. package/lib/cjs/components-react/filter-builder/FilterBuilderLogicalOperator.js.map +1 -0
  46. package/lib/cjs/components-react/filter-builder/FilterBuilderRangeValue.d.ts +31 -0
  47. package/lib/cjs/components-react/filter-builder/FilterBuilderRangeValue.d.ts.map +1 -0
  48. package/lib/cjs/components-react/filter-builder/FilterBuilderRangeValue.js +76 -0
  49. package/lib/cjs/components-react/filter-builder/FilterBuilderRangeValue.js.map +1 -0
  50. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts +4 -3
  51. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
  52. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js +16 -12
  53. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  54. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.scss +38 -29
  55. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +10 -6
  56. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
  57. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js +15 -40
  58. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  59. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.scss +25 -59
  60. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +11 -6
  61. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
  62. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js +43 -6
  63. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  64. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +1 -1
  65. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
  66. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js +1 -1
  67. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  68. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts +4 -4
  69. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
  70. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js +40 -2
  71. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  72. package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts +10 -11
  73. package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
  74. package/lib/cjs/components-react/filter-builder/FilterBuilderState.js +151 -44
  75. package/lib/cjs/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  76. package/lib/cjs/components-react/filter-builder/FilterBuilderToolbar.d.ts +20 -0
  77. package/lib/cjs/components-react/filter-builder/FilterBuilderToolbar.d.ts.map +1 -0
  78. package/lib/cjs/components-react/filter-builder/FilterBuilderToolbar.js +30 -0
  79. package/lib/cjs/components-react/filter-builder/FilterBuilderToolbar.js.map +1 -0
  80. package/lib/cjs/components-react/filter-builder/Operators.d.ts +24 -19
  81. package/lib/cjs/components-react/filter-builder/Operators.d.ts.map +1 -1
  82. package/lib/cjs/components-react/filter-builder/Operators.js +40 -64
  83. package/lib/cjs/components-react/filter-builder/Operators.js.map +1 -1
  84. package/lib/cjs/components-react/filter-builder/Types.d.ts +2 -2
  85. package/lib/cjs/components-react/filter-builder/Types.d.ts.map +1 -1
  86. package/lib/cjs/components-react/filter-builder/Types.js.map +1 -1
  87. package/lib/cjs/components-react/filtering/FilteringInput.d.ts +1 -1
  88. package/lib/cjs/components-react/filtering/ResultSelector.d.ts +1 -1
  89. package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts +1 -1
  90. package/lib/cjs/components-react/properties/LinkHandler.d.ts +1 -1
  91. package/lib/cjs/components-react/properties/LinkHandler.d.ts.map +1 -1
  92. package/lib/cjs/components-react/properties/renderers/ActionButtonList.d.ts +1 -1
  93. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts +1 -1
  94. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts +1 -1
  95. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.d.ts +1 -1
  96. package/lib/cjs/components-react/properties/renderers/PropertyView.d.ts +1 -1
  97. package/lib/cjs/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.d.ts +1 -1
  98. package/lib/cjs/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.d.ts +1 -1
  99. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.d.ts +1 -1
  100. package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts +2 -2
  101. package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts.map +1 -1
  102. package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts +2 -2
  103. package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts.map +1 -1
  104. package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.d.ts +2 -2
  105. package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.d.ts.map +1 -1
  106. package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.d.ts +2 -2
  107. package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.d.ts.map +1 -1
  108. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts +1 -1
  109. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts +1 -1
  110. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.d.ts +1 -1
  111. package/lib/cjs/components-react/propertygrid/component/FlatItemNestedBorderWrapper.d.ts +1 -1
  112. package/lib/cjs/components-react/propertygrid/component/FlatItemNestedBorderWrapper.d.ts.map +1 -1
  113. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.d.ts +1 -1
  114. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts +1 -1
  115. package/lib/cjs/components-react/propertygrid/component/PropertyList.d.ts +1 -1
  116. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts +1 -1
  117. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts +5 -2
  118. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts.map +1 -1
  119. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js +42 -10
  120. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
  121. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.d.ts +12 -0
  122. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.d.ts.map +1 -1
  123. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js +22 -1
  124. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  125. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts +1 -1
  126. package/lib/cjs/components-react/selectable-content/SelectableContent.d.ts +2 -2
  127. package/lib/cjs/components-react/selectable-content/SelectableContent.d.ts.map +1 -1
  128. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.d.ts +2 -2
  129. package/lib/cjs/components-react/toolbar/InternalToolbarComponent.d.ts.map +1 -1
  130. package/lib/cjs/components-react/toolbar/ItemWrapper.d.ts +1 -1
  131. package/lib/cjs/components-react/toolbar/ItemWrapper.d.ts.map +1 -1
  132. package/lib/cjs/components-react/toolbar/Items.d.ts +1 -1
  133. package/lib/cjs/components-react/toolbar/Items.d.ts.map +1 -1
  134. package/lib/cjs/components-react/toolbar/Overflow.d.ts +1 -1
  135. package/lib/cjs/components-react/toolbar/Overflow.d.ts.map +1 -1
  136. package/lib/cjs/components-react/toolbar/OverflowPanel.d.ts +1 -1
  137. package/lib/cjs/components-react/toolbar/OverflowPanel.d.ts.map +1 -1
  138. package/lib/cjs/components-react/toolbar/PopupItem.d.ts +2 -2
  139. package/lib/cjs/components-react/toolbar/PopupItem.d.ts.map +1 -1
  140. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.d.ts +2 -2
  141. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.d.ts.map +1 -1
  142. package/lib/cjs/components-react/toolbar/PopupItemsPanel.d.ts +2 -2
  143. package/lib/cjs/components-react/toolbar/PopupItemsPanel.d.ts.map +1 -1
  144. package/lib/cjs/components-react/toolbar/Toolbar.d.ts +1 -1
  145. package/lib/cjs/components-react/toolbar/Toolbar.d.ts.map +1 -1
  146. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
  147. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  148. package/lib/cjs/components-react/toolbar/groupPanel/Column.d.ts +1 -1
  149. package/lib/cjs/components-react/toolbar/groupPanel/Column.d.ts.map +1 -1
  150. package/lib/cjs/components-react/toolbar/groupPanel/Columns.d.ts +1 -1
  151. package/lib/cjs/components-react/toolbar/groupPanel/Columns.d.ts.map +1 -1
  152. package/lib/cjs/components-react/toolbar/groupPanel/Panel.d.ts +1 -1
  153. package/lib/cjs/components-react/toolbar/groupPanel/Panel.d.ts.map +1 -1
  154. package/lib/cjs/components-react/toolbar/groupPanel/Title.d.ts +1 -1
  155. package/lib/cjs/components-react/toolbar/groupPanel/Title.d.ts.map +1 -1
  156. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.d.ts +1 -1
  157. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.d.ts.map +1 -1
  158. package/lib/cjs/components-react/tree/controlled/TreeHooks.d.ts +12 -0
  159. package/lib/cjs/components-react/tree/controlled/TreeHooks.d.ts.map +1 -1
  160. package/lib/cjs/components-react/tree/controlled/TreeHooks.js +22 -1
  161. package/lib/cjs/components-react/tree/controlled/TreeHooks.js.map +1 -1
  162. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js +1 -0
  163. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  164. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.d.ts +1 -1
  165. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.d.ts.map +1 -1
  166. package/lib/cjs/components-react/tree/controlled/component/NodeContent.d.ts +2 -2
  167. package/lib/cjs/components-react/tree/controlled/component/NodeContent.d.ts.map +1 -1
  168. package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.d.ts +1 -1
  169. package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.d.ts.map +1 -1
  170. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.d.ts +1 -1
  171. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.d.ts.map +1 -1
  172. package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.d.ts +1 -1
  173. package/lib/cjs/components-react.d.ts +3 -0
  174. package/lib/cjs/components-react.d.ts.map +1 -1
  175. package/lib/cjs/components-react.js +3 -0
  176. package/lib/cjs/components-react.js.map +1 -1
  177. package/lib/esm/components-react/UiComponents.d.ts.map +1 -1
  178. package/lib/esm/components-react/UiComponents.js +1 -0
  179. package/lib/esm/components-react/UiComponents.js.map +1 -1
  180. package/lib/esm/components-react/common/DelayedSpinner.d.ts +2 -2
  181. package/lib/esm/components-react/common/DelayedSpinner.d.ts.map +1 -1
  182. package/lib/esm/components-react/common/HighlightedText.d.ts +2 -2
  183. package/lib/esm/components-react/common/HighlightedText.d.ts.map +1 -1
  184. package/lib/esm/components-react/common/ImageRenderer.d.ts.map +1 -1
  185. package/lib/esm/components-react/common/ImageRenderer.js +1 -0
  186. package/lib/esm/components-react/common/ImageRenderer.js.map +1 -1
  187. package/lib/esm/components-react/common/UseContextWithMandatoryProvider.d.ts.map +1 -1
  188. package/lib/esm/components-react/common/UseContextWithMandatoryProvider.js +1 -0
  189. package/lib/esm/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
  190. package/lib/esm/components-react/datepicker/DateField.d.ts +2 -2
  191. package/lib/esm/components-react/datepicker/DateField.d.ts.map +1 -1
  192. package/lib/esm/components-react/datepicker/DatePicker.d.ts +2 -2
  193. package/lib/esm/components-react/datepicker/DatePicker.d.ts.map +1 -1
  194. package/lib/esm/components-react/datepicker/DatePickerPopupButton.d.ts +1 -1
  195. package/lib/esm/components-react/datepicker/DatePickerPopupButton.d.ts.map +1 -1
  196. package/lib/esm/components-react/datepicker/TimeField.d.ts +2 -2
  197. package/lib/esm/components-react/datepicker/TimeField.d.ts.map +1 -1
  198. package/lib/esm/components-react/editors/BooleanEditor.d.ts +1 -1
  199. package/lib/esm/components-react/editors/EditorContainer.d.ts +1 -1
  200. package/lib/esm/components-react/editors/EnumButtonGroupEditor.d.ts +1 -1
  201. package/lib/esm/components-react/editors/EnumEditor.d.ts +1 -1
  202. package/lib/esm/components-react/editors/IconEditor.d.ts +1 -1
  203. package/lib/esm/components-react/editors/ImageCheckBoxEditor.d.ts +1 -1
  204. package/lib/esm/components-react/editors/PopupButton.d.ts +2 -2
  205. package/lib/esm/components-react/editors/PopupButton.d.ts.map +1 -1
  206. package/lib/esm/components-react/editors/ToggleEditor.d.ts +1 -1
  207. package/lib/esm/components-react/favorite/FavoritePropertyList.d.ts +2 -2
  208. package/lib/esm/components-react/favorite/FavoritePropertyList.d.ts.map +1 -1
  209. package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts +7 -3
  210. package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
  211. package/lib/esm/components-react/filter-builder/FilterBuilder.js +4 -8
  212. package/lib/esm/components-react/filter-builder/FilterBuilder.js.map +1 -1
  213. package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts +0 -36
  214. package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -1
  215. package/lib/esm/components-react/filter-builder/FilterBuilderContext.js +0 -71
  216. package/lib/esm/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
  217. package/lib/esm/components-react/filter-builder/FilterBuilderLogicalOperator.d.ts +24 -0
  218. package/lib/esm/components-react/filter-builder/FilterBuilderLogicalOperator.d.ts.map +1 -0
  219. package/lib/esm/components-react/filter-builder/FilterBuilderLogicalOperator.js +23 -0
  220. package/lib/esm/components-react/filter-builder/FilterBuilderLogicalOperator.js.map +1 -0
  221. package/lib/esm/components-react/filter-builder/FilterBuilderRangeValue.d.ts +31 -0
  222. package/lib/esm/components-react/filter-builder/FilterBuilderRangeValue.d.ts.map +1 -0
  223. package/lib/esm/components-react/filter-builder/FilterBuilderRangeValue.js +73 -0
  224. package/lib/esm/components-react/filter-builder/FilterBuilderRangeValue.js.map +1 -0
  225. package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts +4 -3
  226. package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
  227. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js +20 -16
  228. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  229. package/lib/esm/components-react/filter-builder/FilterBuilderRule.scss +38 -29
  230. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +10 -6
  231. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
  232. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js +17 -42
  233. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  234. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.scss +25 -59
  235. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +11 -6
  236. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
  237. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js +41 -5
  238. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  239. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +1 -1
  240. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
  241. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js +1 -1
  242. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  243. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts +4 -4
  244. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
  245. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js +39 -1
  246. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  247. package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts +10 -11
  248. package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
  249. package/lib/esm/components-react/filter-builder/FilterBuilderState.js +149 -42
  250. package/lib/esm/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  251. package/lib/esm/components-react/filter-builder/FilterBuilderToolbar.d.ts +20 -0
  252. package/lib/esm/components-react/filter-builder/FilterBuilderToolbar.d.ts.map +1 -0
  253. package/lib/esm/components-react/filter-builder/FilterBuilderToolbar.js +23 -0
  254. package/lib/esm/components-react/filter-builder/FilterBuilderToolbar.js.map +1 -0
  255. package/lib/esm/components-react/filter-builder/Operators.d.ts +24 -19
  256. package/lib/esm/components-react/filter-builder/Operators.d.ts.map +1 -1
  257. package/lib/esm/components-react/filter-builder/Operators.js +37 -61
  258. package/lib/esm/components-react/filter-builder/Operators.js.map +1 -1
  259. package/lib/esm/components-react/filter-builder/Types.d.ts +2 -2
  260. package/lib/esm/components-react/filter-builder/Types.d.ts.map +1 -1
  261. package/lib/esm/components-react/filter-builder/Types.js.map +1 -1
  262. package/lib/esm/components-react/filtering/FilteringInput.d.ts +1 -1
  263. package/lib/esm/components-react/filtering/ResultSelector.d.ts +1 -1
  264. package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts +1 -1
  265. package/lib/esm/components-react/properties/LinkHandler.d.ts +1 -1
  266. package/lib/esm/components-react/properties/LinkHandler.d.ts.map +1 -1
  267. package/lib/esm/components-react/properties/renderers/ActionButtonList.d.ts +1 -1
  268. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts +1 -1
  269. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts +1 -1
  270. package/lib/esm/components-react/properties/renderers/PropertyRenderer.d.ts +1 -1
  271. package/lib/esm/components-react/properties/renderers/PropertyView.d.ts +1 -1
  272. package/lib/esm/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.d.ts +1 -1
  273. package/lib/esm/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.d.ts +1 -1
  274. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.d.ts +1 -1
  275. package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts +2 -2
  276. package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts.map +1 -1
  277. package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts +2 -2
  278. package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts.map +1 -1
  279. package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.d.ts +2 -2
  280. package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.d.ts.map +1 -1
  281. package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.d.ts +2 -2
  282. package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.d.ts.map +1 -1
  283. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts +1 -1
  284. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts +1 -1
  285. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.d.ts +1 -1
  286. package/lib/esm/components-react/propertygrid/component/FlatItemNestedBorderWrapper.d.ts +1 -1
  287. package/lib/esm/components-react/propertygrid/component/FlatItemNestedBorderWrapper.d.ts.map +1 -1
  288. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.d.ts +1 -1
  289. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts +1 -1
  290. package/lib/esm/components-react/propertygrid/component/PropertyList.d.ts +1 -1
  291. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts +1 -1
  292. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts +5 -2
  293. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts.map +1 -1
  294. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js +21 -9
  295. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
  296. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.d.ts +12 -0
  297. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.d.ts.map +1 -1
  298. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js +20 -0
  299. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  300. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts +1 -1
  301. package/lib/esm/components-react/selectable-content/SelectableContent.d.ts +2 -2
  302. package/lib/esm/components-react/selectable-content/SelectableContent.d.ts.map +1 -1
  303. package/lib/esm/components-react/toolbar/InternalToolbarComponent.d.ts +2 -2
  304. package/lib/esm/components-react/toolbar/InternalToolbarComponent.d.ts.map +1 -1
  305. package/lib/esm/components-react/toolbar/ItemWrapper.d.ts +1 -1
  306. package/lib/esm/components-react/toolbar/ItemWrapper.d.ts.map +1 -1
  307. package/lib/esm/components-react/toolbar/Items.d.ts +1 -1
  308. package/lib/esm/components-react/toolbar/Items.d.ts.map +1 -1
  309. package/lib/esm/components-react/toolbar/Overflow.d.ts +1 -1
  310. package/lib/esm/components-react/toolbar/Overflow.d.ts.map +1 -1
  311. package/lib/esm/components-react/toolbar/OverflowPanel.d.ts +1 -1
  312. package/lib/esm/components-react/toolbar/OverflowPanel.d.ts.map +1 -1
  313. package/lib/esm/components-react/toolbar/PopupItem.d.ts +2 -2
  314. package/lib/esm/components-react/toolbar/PopupItem.d.ts.map +1 -1
  315. package/lib/esm/components-react/toolbar/PopupItemWithDrag.d.ts +2 -2
  316. package/lib/esm/components-react/toolbar/PopupItemWithDrag.d.ts.map +1 -1
  317. package/lib/esm/components-react/toolbar/PopupItemsPanel.d.ts +2 -2
  318. package/lib/esm/components-react/toolbar/PopupItemsPanel.d.ts.map +1 -1
  319. package/lib/esm/components-react/toolbar/Toolbar.d.ts +1 -1
  320. package/lib/esm/components-react/toolbar/Toolbar.d.ts.map +1 -1
  321. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
  322. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  323. package/lib/esm/components-react/toolbar/groupPanel/Column.d.ts +1 -1
  324. package/lib/esm/components-react/toolbar/groupPanel/Column.d.ts.map +1 -1
  325. package/lib/esm/components-react/toolbar/groupPanel/Columns.d.ts +1 -1
  326. package/lib/esm/components-react/toolbar/groupPanel/Columns.d.ts.map +1 -1
  327. package/lib/esm/components-react/toolbar/groupPanel/Panel.d.ts +1 -1
  328. package/lib/esm/components-react/toolbar/groupPanel/Panel.d.ts.map +1 -1
  329. package/lib/esm/components-react/toolbar/groupPanel/Title.d.ts +1 -1
  330. package/lib/esm/components-react/toolbar/groupPanel/Title.d.ts.map +1 -1
  331. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.d.ts +1 -1
  332. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.d.ts.map +1 -1
  333. package/lib/esm/components-react/tree/controlled/TreeHooks.d.ts +12 -0
  334. package/lib/esm/components-react/tree/controlled/TreeHooks.d.ts.map +1 -1
  335. package/lib/esm/components-react/tree/controlled/TreeHooks.js +21 -1
  336. package/lib/esm/components-react/tree/controlled/TreeHooks.js.map +1 -1
  337. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js +1 -0
  338. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  339. package/lib/esm/components-react/tree/controlled/component/ControlledTree.d.ts +1 -1
  340. package/lib/esm/components-react/tree/controlled/component/ControlledTree.d.ts.map +1 -1
  341. package/lib/esm/components-react/tree/controlled/component/NodeContent.d.ts +2 -2
  342. package/lib/esm/components-react/tree/controlled/component/NodeContent.d.ts.map +1 -1
  343. package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.d.ts +1 -1
  344. package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.d.ts.map +1 -1
  345. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.d.ts +1 -1
  346. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.d.ts.map +1 -1
  347. package/lib/esm/components-react/tree/controlled/component/TreeRenderer.d.ts +1 -1
  348. package/lib/esm/components-react.d.ts +3 -0
  349. package/lib/esm/components-react.d.ts.map +1 -1
  350. package/lib/esm/components-react.js +3 -0
  351. package/lib/esm/components-react.js.map +1 -1
  352. package/lib/public/locales/en/UiComponents.json +12 -7
  353. package/package.json +8 -8
@@ -2,67 +2,33 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
-
6
- .filter-builder > .rule-group {
7
- & > .rule-group-content {
8
- border-left: 0;
9
- padding-left: 0;
10
- }
11
-
12
- & > .rule-group-remove-action {
13
- padding-right: 0;
14
- }
15
- }
16
-
17
- .rule-group {
18
- display: grid;
19
- grid-template-columns: min-content auto;
20
- padding: 11px 0;
21
-
22
- &[data-isactive="true"] > .rule-group-remove-action {
23
- visibility: visible;
24
- }
25
-
26
- &[data-isactive="true"] > .rule-group-content {
27
- border-color: var(--iui-color-border-foreground-hover);
28
- }
29
-
30
- &[data-isactive="false"]
31
- > .rule-group-content
32
- > .rule-group-actions
33
- .iui-button {
34
- color: var(--iui-color-icon);
35
- }
36
-
37
- .rule-group-remove-action {
38
- padding: 3px var(--iui-size-s) 3px 0;
39
- visibility: hidden;
40
- }
41
-
42
- .rule-group-content {
43
- padding-left: var(--iui-size-s);
44
- border-left: 1px solid;
5
+ .fb-group {
6
+ --border-color: var(--iui-color-border);
7
+ --fb-operator-width: 110px;
8
+ --divider-width: var(--iui-size-2xs);
9
+ --divider-background-color: var(--iui-color-border-subtle);
10
+
11
+ .fb-wrapper {
12
+ width: 100%;
13
+ }
14
+
15
+ .fb-logical-operator {
16
+ width: var(--fb-operator-width);
17
+ height: 100%;
18
+ text-align: center;
19
+ background-color: var(--iui-color-background-hover);
20
+ user-select: none;
21
+ display: grid;
22
+ place-items: center;
45
23
  box-sizing: border-box;
46
- border-color: var(--iui-color-border-subtle);
47
-
48
- .rule-group-operator {
49
- padding: 3px 0;
50
- width: max-content;
51
- }
52
-
53
- .rule-group-actions {
54
- padding: 3px 0;
55
- display: grid;
56
- grid-template-columns: min-content min-content;
57
- gap: 8px;
58
- }
24
+ font-size: var(--iui-font-size-2);
25
+ font-weight: var(--iui-font-weight-semibold);
26
+ padding-block: var(--iui-size-s);
59
27
  }
60
- }
61
-
62
- .rule-group-items > .rule-group {
63
- padding-bottom: 22px;
64
28
 
65
- &:last-child {
66
- padding-bottom: 11px;
29
+ .fb-group-operator {
30
+ border-style: solid;
31
+ border-color: var(--border-color);
32
+ border-width: 1px 0 1px 1px;
67
33
  }
68
34
  }
@@ -1,24 +1,29 @@
1
1
  /** @packageDocumentation
2
2
  * @module PropertyFilterBuilder
3
3
  */
4
- /// <reference types="react" />
5
- import type { PropertyDescription } from "@itwin/appui-abstract";
6
- import type { PropertyFilterRuleOperator } from "./Operators";
4
+ import * as React from "react";
5
+ import { type PropertyDescription } from "@itwin/appui-abstract";
6
+ import type { PropertyFilterBuilderRuleOperator } from "./Operators";
7
7
  /**
8
8
  * Props for [[PropertyFilterBuilderRuleOperator]] component.
9
9
  * @beta
10
10
  */
11
11
  export interface PropertyFilterBuilderRuleOperatorProps {
12
12
  /** Currently selected operator. */
13
- operator?: PropertyFilterRuleOperator;
13
+ operator?: PropertyFilterBuilderRuleOperator;
14
14
  /** Property used in rule for which this operator will be used. */
15
15
  property: PropertyDescription;
16
16
  /** Callback that is invoked when selected operator changes. */
17
- onChange: (operator: PropertyFilterRuleOperator) => void;
17
+ onChange: (operator: PropertyFilterBuilderRuleOperator) => void;
18
18
  }
19
19
  /**
20
20
  * Component that renders [[PropertyFilterBuilderRuleRenderer]] operator selector.
21
21
  * @internal
22
22
  */
23
- export declare function PropertyFilterBuilderRuleOperator(props: PropertyFilterBuilderRuleOperatorProps): JSX.Element;
23
+ export declare function PropertyFilterBuilderRuleOperatorRenderer(props: PropertyFilterBuilderRuleOperatorProps): React.JSX.Element;
24
+ /**
25
+ * Function that returns display label for [[PropertyFilterBuilderRuleOperator]].
26
+ * @beta
27
+ */
28
+ export declare function getPropertyFilterBuilderOperatorLabel(operator: PropertyFilterBuilderRuleOperator): string;
24
29
  //# sourceMappingURL=FilterBuilderRuleOperator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleOperator.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleOperator.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAM9D;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,mCAAmC;IACnC,QAAQ,CAAC,EAAE,0BAA0B,CAAC;IACtC,kEAAkE;IAClE,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,CAAC;CAC1D;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,sCAAsC,eAkC9C"}
1
+ {"version":3,"file":"FilterBuilderRuleOperator.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleOperator.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAIrE;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,mCAAmC;IACnC,QAAQ,CAAC,EAAE,iCAAiC,CAAC;IAC7C,kEAAkE;IAClE,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,QAAQ,EAAE,iCAAiC,KAAK,IAAI,CAAC;CACjE;AAED;;;GAGG;AACH,wBAAgB,yCAAyC,CACvD,KAAK,EAAE,sCAAsC,qBAkC9C;AAGD;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,iCAAiC,UA8B5C"}
@@ -7,24 +7,60 @@
7
7
  */
8
8
  import * as React from "react";
9
9
  import { Select } from "@itwin/itwinui-react";
10
- import { getPropertyFilterOperatorLabel, getPropertyFilterOperators, } from "./Operators";
10
+ import { getPropertyFilterBuilderOperators } from "./Operators";
11
+ import { UiComponents } from "../UiComponents";
11
12
  /**
12
13
  * Component that renders [[PropertyFilterBuilderRuleRenderer]] operator selector.
13
14
  * @internal
14
15
  */
15
- export function PropertyFilterBuilderRuleOperator(props) {
16
+ export function PropertyFilterBuilderRuleOperatorRenderer(props) {
16
17
  var _a;
17
18
  const { operator, property, onChange } = props;
18
- const availableOperators = React.useMemo(() => getPropertyFilterOperators(property), [property]);
19
+ const availableOperators = React.useMemo(() => getPropertyFilterBuilderOperators(property), [property]);
19
20
  const selectedOperator = (_a = availableOperators.find((op) => op === operator)) !== null && _a !== void 0 ? _a : availableOperators[0];
20
21
  React.useEffect(() => {
21
22
  onChange(selectedOperator);
22
23
  }, [onChange, selectedOperator]);
23
24
  const availableOptions = React.useMemo(() => availableOperators.map((op) => ({
24
25
  value: op,
25
- label: getPropertyFilterOperatorLabel(op),
26
+ label: getPropertyFilterBuilderOperatorLabel(op),
26
27
  })), [availableOperators]);
27
- return (React.createElement("div", { className: "rule-operator" },
28
+ return (React.createElement("div", { className: "fb-row-condition" },
28
29
  React.createElement(Select, { options: availableOptions, value: selectedOperator, onChange: onChange, size: "small" })));
29
30
  }
31
+ /* istanbul ignore next */
32
+ /**
33
+ * Function that returns display label for [[PropertyFilterBuilderRuleOperator]].
34
+ * @beta
35
+ */
36
+ export function getPropertyFilterBuilderOperatorLabel(operator) {
37
+ switch (operator) {
38
+ case "is-true":
39
+ return UiComponents.translate("filterBuilder.operators.isTrue");
40
+ case "is-false":
41
+ return UiComponents.translate("filterBuilder.operators.isFalse");
42
+ case "is-equal":
43
+ return UiComponents.translate("filterBuilder.operators.equal");
44
+ case "is-not-equal":
45
+ return UiComponents.translate("filterBuilder.operators.notEqual");
46
+ case "greater":
47
+ return ">";
48
+ case "greater-or-equal":
49
+ return ">=";
50
+ case "less":
51
+ return "<";
52
+ case "less-or-equal":
53
+ return "<=";
54
+ case "like":
55
+ return UiComponents.translate("filterBuilder.operators.contains");
56
+ case "is-null":
57
+ return UiComponents.translate("filterBuilder.operators.isNull");
58
+ case "is-not-null":
59
+ return UiComponents.translate("filterBuilder.operators.isNotNull");
60
+ case "between":
61
+ return UiComponents.translate("filterBuilder.operators.between");
62
+ case "not-between":
63
+ return UiComponents.translate("filterBuilder.operators.notBetween");
64
+ }
65
+ }
30
66
  //# sourceMappingURL=FilterBuilderRuleOperator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleOperator.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleOperator.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAerB;;;GAGG;AACH,MAAM,UAAU,iCAAiC,CAC/C,KAA6C;;IAE7C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE/C,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CACtC,GAAG,EAAE,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAC1C,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,gBAAgB,GACpB,MAAA,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,mCAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAE5E,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEjC,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CACpC,GAAG,EAAE,CACH,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9B,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,8BAA8B,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAC,EACL,CAAC,kBAAkB,CAAC,CACrB,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,eAAe;QAC5B,oBAAC,MAAM,IACL,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,GACZ,CACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PropertyFilterBuilder\n */\n\nimport * as React from \"react\";\nimport type { PropertyDescription } from \"@itwin/appui-abstract\";\nimport { Select } from \"@itwin/itwinui-react\";\nimport type { PropertyFilterRuleOperator } from \"./Operators\";\nimport {\n getPropertyFilterOperatorLabel,\n getPropertyFilterOperators,\n} from \"./Operators\";\n\n/**\n * Props for [[PropertyFilterBuilderRuleOperator]] component.\n * @beta\n */\nexport interface PropertyFilterBuilderRuleOperatorProps {\n /** Currently selected operator. */\n operator?: PropertyFilterRuleOperator;\n /** Property used in rule for which this operator will be used. */\n property: PropertyDescription;\n /** Callback that is invoked when selected operator changes. */\n onChange: (operator: PropertyFilterRuleOperator) => void;\n}\n\n/**\n * Component that renders [[PropertyFilterBuilderRuleRenderer]] operator selector.\n * @internal\n */\nexport function PropertyFilterBuilderRuleOperator(\n props: PropertyFilterBuilderRuleOperatorProps\n) {\n const { operator, property, onChange } = props;\n\n const availableOperators = React.useMemo(\n () => getPropertyFilterOperators(property),\n [property]\n );\n const selectedOperator =\n availableOperators.find((op) => op === operator) ?? availableOperators[0];\n\n React.useEffect(() => {\n onChange(selectedOperator);\n }, [onChange, selectedOperator]);\n\n const availableOptions = React.useMemo(\n () =>\n availableOperators.map((op) => ({\n value: op,\n label: getPropertyFilterOperatorLabel(op),\n })),\n [availableOperators]\n );\n\n return (\n <div className=\"rule-operator\">\n <Select\n options={availableOptions}\n value={selectedOperator}\n onChange={onChange}\n size=\"small\"\n />\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"FilterBuilderRuleOperator.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleOperator.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAe/C;;;GAGG;AACH,MAAM,UAAU,yCAAyC,CACvD,KAA6C;;IAE7C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE/C,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CACtC,GAAG,EAAE,CAAC,iCAAiC,CAAC,QAAQ,CAAC,EACjD,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,gBAAgB,GACpB,MAAA,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,mCAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAE5E,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEjC,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CACpC,GAAG,EAAE,CACH,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9B,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,qCAAqC,CAAC,EAAE,CAAC;KACjD,CAAC,CAAC,EACL,CAAC,kBAAkB,CAAC,CACrB,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,kBAAkB;QAC/B,oBAAC,MAAM,IACL,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,OAAO,GACb,CACE,CACP,CAAC;AACJ,CAAC;AAED,0BAA0B;AAC1B;;;GAGG;AACH,MAAM,UAAU,qCAAqC,CACnD,QAA2C;IAE3C,QAAQ,QAAQ,EAAE;QAChB,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QAClE,KAAK,UAAU;YACb,OAAO,YAAY,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QACnE,KAAK,UAAU;YACb,OAAO,YAAY,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACjE,KAAK,cAAc;YACjB,OAAO,YAAY,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;QACpE,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC;QACb,KAAK,kBAAkB;YACrB,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,eAAe;YAClB,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,YAAY,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;QACpE,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QAClE,KAAK,aAAa;YAChB,OAAO,YAAY,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;QACrE,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QACnE,KAAK,aAAa;YAChB,OAAO,YAAY,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;KACvE;AACH,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 { Select } from \"@itwin/itwinui-react\";\nimport type { PropertyFilterBuilderRuleOperator } from \"./Operators\";\nimport { getPropertyFilterBuilderOperators } from \"./Operators\";\nimport { UiComponents } from \"../UiComponents\";\n\n/**\n * Props for [[PropertyFilterBuilderRuleOperator]] component.\n * @beta\n */\nexport interface PropertyFilterBuilderRuleOperatorProps {\n /** Currently selected operator. */\n operator?: PropertyFilterBuilderRuleOperator;\n /** Property used in rule for which this operator will be used. */\n property: PropertyDescription;\n /** Callback that is invoked when selected operator changes. */\n onChange: (operator: PropertyFilterBuilderRuleOperator) => void;\n}\n\n/**\n * Component that renders [[PropertyFilterBuilderRuleRenderer]] operator selector.\n * @internal\n */\nexport function PropertyFilterBuilderRuleOperatorRenderer(\n props: PropertyFilterBuilderRuleOperatorProps\n) {\n const { operator, property, onChange } = props;\n\n const availableOperators = React.useMemo(\n () => getPropertyFilterBuilderOperators(property),\n [property]\n );\n const selectedOperator =\n availableOperators.find((op) => op === operator) ?? availableOperators[0];\n\n React.useEffect(() => {\n onChange(selectedOperator);\n }, [onChange, selectedOperator]);\n\n const availableOptions = React.useMemo(\n () =>\n availableOperators.map((op) => ({\n value: op,\n label: getPropertyFilterBuilderOperatorLabel(op),\n })),\n [availableOperators]\n );\n\n return (\n <div className=\"fb-row-condition\">\n <Select\n options={availableOptions}\n value={selectedOperator}\n onChange={onChange}\n size={\"small\"}\n />\n </div>\n );\n}\n\n/* istanbul ignore next */\n/**\n * Function that returns display label for [[PropertyFilterBuilderRuleOperator]].\n * @beta\n */\nexport function getPropertyFilterBuilderOperatorLabel(\n operator: PropertyFilterBuilderRuleOperator\n) {\n switch (operator) {\n case \"is-true\":\n return UiComponents.translate(\"filterBuilder.operators.isTrue\");\n case \"is-false\":\n return UiComponents.translate(\"filterBuilder.operators.isFalse\");\n case \"is-equal\":\n return UiComponents.translate(\"filterBuilder.operators.equal\");\n case \"is-not-equal\":\n return UiComponents.translate(\"filterBuilder.operators.notEqual\");\n case \"greater\":\n return \">\";\n case \"greater-or-equal\":\n return \">=\";\n case \"less\":\n return \"<\";\n case \"less-or-equal\":\n return \"<=\";\n case \"like\":\n return UiComponents.translate(\"filterBuilder.operators.contains\");\n case \"is-null\":\n return UiComponents.translate(\"filterBuilder.operators.isNull\");\n case \"is-not-null\":\n return UiComponents.translate(\"filterBuilder.operators.isNotNull\");\n case \"between\":\n return UiComponents.translate(\"filterBuilder.operators.between\");\n case \"not-between\":\n return UiComponents.translate(\"filterBuilder.operators.notBetween\");\n }\n}\n"]}
@@ -23,5 +23,5 @@ export interface PropertyFilterBuilderRulePropertyProps {
23
23
  * Component that renders [[PropertyFilterBuilderRuleRenderer]] property selector.
24
24
  * @internal
25
25
  */
26
- export declare function PropertyFilterBuilderRuleProperty(props: PropertyFilterBuilderRulePropertyProps): JSX.Element;
26
+ export declare function PropertyFilterBuilderRuleProperty(props: PropertyFilterBuilderRulePropertyProps): React.JSX.Element;
27
27
  //# sourceMappingURL=FilterBuilderRuleProperty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleProperty.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleProperty.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,oCAAoC;IACpC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,+DAA+D;IAC/D,yBAAyB,EAAE,CAAC,QAAQ,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpE,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,sCAAsC,eAoE9C"}
1
+ {"version":3,"file":"FilterBuilderRuleProperty.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleProperty.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,oCAAoC;IACpC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,+DAA+D;IAC/D,yBAAyB,EAAE,CAAC,QAAQ,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpE,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,sCAAsC,qBAoE9C"}
@@ -32,7 +32,7 @@ export function PropertyFilterBuilderRuleProperty(props) {
32
32
  ? propertyRenderer(selectOption.value)
33
33
  : selectOption.label));
34
34
  }, [propertyRenderer]);
35
- return (React.createElement("div", { className: "rule-property" },
35
+ return (React.createElement("div", { className: "fb-property-name" },
36
36
  React.createElement(ComboBox, { options: selectOptions, onChange: onPropertyChanged, value: selectedProperty === null || selectedProperty === void 0 ? void 0 : selectedProperty.name, inputProps: {
37
37
  placeholder: UiComponents.translate("filterBuilder.chooseProperty"),
38
38
  disabled: isDisabled,
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleProperty.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleProperty.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAmB/C;;;GAGG;AACH,MAAM,UAAU,iCAAiC,CAC/C,KAA6C;IAE7C,MAAM,EACJ,gBAAgB,EAChB,UAAU,EACV,yBAAyB,EACzB,gBAAgB,EAChB,UAAU,GACX,GAAG,KAAK,CAAC;IAEV,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CACjC,GAAG,EAAE,CACH,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5B,EAAE,EAAE,QAAQ,CAAC,IAAI;QACjB,KAAK,EAAE,QAAQ,CAAC,YAAY;QAC5B,KAAK,EAAE,QAAQ,CAAC,IAAI;KACrB,CAAC,CAAC,EACL,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CACzC,CAAC,IAAY,EAAE,EAAE;QACf,yBAAyB,CACvB,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CACtD,CAAC;IACJ,CAAC,EACD,CAAC,UAAU,EAAE,yBAAyB,CAAC,CACxC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,uBAAuB,GAAG,UAAU,CAAC,IAAI,CAC7C,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,MAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAA,CACvD,CAAC;QACF,IAAI,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,IAAI,OAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAA;YAC1D,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;IACvD,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAGpC,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE;QACnC,OAAO,CACL,oBAAC,QAAQ,IAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,IAC9C,gBAAgB;YACf,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC;YACtC,CAAC,CAAC,YAAY,CAAC,KAAK,CACb,CACZ,CAAC;IACJ,CAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,eAAe;QAC5B,oBAAC,QAAQ,IACP,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,EAC7B,UAAU,EAAE;gBACV,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC,8BAA8B,CAAC;gBACnE,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,OAAO;aACd,EACD,YAAY,EAAE,YAAY,EAC1B,oBAAoB,EAAE,IAAI,GAC1B,CACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PropertyFilterBuilder\n */\n\nimport * as React from \"react\";\nimport type { PropertyDescription } from \"@itwin/appui-abstract\";\nimport type { ComboBoxProps, SelectOption } from \"@itwin/itwinui-react\";\nimport { ComboBox, MenuItem } from \"@itwin/itwinui-react\";\nimport { UiComponents } from \"../UiComponents\";\n\n/**\n * Props for [[PropertyFilterBuilderRuleProperty]] component.\n * @internal\n */\nexport interface PropertyFilterBuilderRulePropertyProps {\n /** List of available properties. */\n properties: PropertyDescription[];\n /** Currently selected property. */\n selectedProperty?: PropertyDescription;\n /** Callback that is invoked when selected property changes. */\n onSelectedPropertyChanged: (property?: PropertyDescription) => void;\n /** Custom renderer for property item inside selector. */\n propertyRenderer?: (name: string) => React.ReactNode;\n /** Specifies whether selector should be disabled or not. */\n isDisabled?: boolean;\n}\n\n/**\n * Component that renders [[PropertyFilterBuilderRuleRenderer]] property selector.\n * @internal\n */\nexport function PropertyFilterBuilderRuleProperty(\n props: PropertyFilterBuilderRulePropertyProps\n) {\n const {\n selectedProperty,\n properties,\n onSelectedPropertyChanged,\n propertyRenderer,\n isDisabled,\n } = props;\n\n const selectOptions = React.useMemo<SelectOption<string>[]>(\n () =>\n properties.map((property) => ({\n id: property.name,\n label: property.displayLabel,\n value: property.name,\n })),\n [properties]\n );\n\n const onPropertyChanged = React.useCallback(\n (name: string) => {\n onSelectedPropertyChanged(\n properties.find((property) => property.name === name)\n );\n },\n [properties, onSelectedPropertyChanged]\n );\n\n React.useEffect(() => {\n const currentSelectedProperty = properties.find(\n (property) => property.name === selectedProperty?.name\n );\n if (currentSelectedProperty?.name !== selectedProperty?.name)\n onSelectedPropertyChanged(currentSelectedProperty);\n }, [properties, selectedProperty, onSelectedPropertyChanged]);\n\n const itemRenderer = React.useCallback<\n Required<ComboBoxProps<string>>[\"itemRenderer\"]\n >(\n (selectOption, { isSelected, id }) => {\n return (\n <MenuItem key={id} id={id} isSelected={isSelected}>\n {propertyRenderer\n ? propertyRenderer(selectOption.value)\n : selectOption.label}\n </MenuItem>\n );\n },\n [propertyRenderer]\n );\n\n return (\n <div className=\"rule-property\">\n <ComboBox\n options={selectOptions}\n onChange={onPropertyChanged}\n value={selectedProperty?.name}\n inputProps={{\n placeholder: UiComponents.translate(\"filterBuilder.chooseProperty\"),\n disabled: isDisabled,\n size: \"small\",\n }}\n itemRenderer={itemRenderer}\n enableVirtualization={true}\n />\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"FilterBuilderRuleProperty.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleProperty.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAmB/C;;;GAGG;AACH,MAAM,UAAU,iCAAiC,CAC/C,KAA6C;IAE7C,MAAM,EACJ,gBAAgB,EAChB,UAAU,EACV,yBAAyB,EACzB,gBAAgB,EAChB,UAAU,GACX,GAAG,KAAK,CAAC;IAEV,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CACjC,GAAG,EAAE,CACH,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5B,EAAE,EAAE,QAAQ,CAAC,IAAI;QACjB,KAAK,EAAE,QAAQ,CAAC,YAAY;QAC5B,KAAK,EAAE,QAAQ,CAAC,IAAI;KACrB,CAAC,CAAC,EACL,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CACzC,CAAC,IAAY,EAAE,EAAE;QACf,yBAAyB,CACvB,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CACtD,CAAC;IACJ,CAAC,EACD,CAAC,UAAU,EAAE,yBAAyB,CAAC,CACxC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,uBAAuB,GAAG,UAAU,CAAC,IAAI,CAC7C,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,MAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAA,CACvD,CAAC;QACF,IAAI,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,IAAI,OAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAA;YAC1D,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;IACvD,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAGpC,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE;QACnC,OAAO,CACL,oBAAC,QAAQ,IAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,IAC9C,gBAAgB;YACf,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC;YACtC,CAAC,CAAC,YAAY,CAAC,KAAK,CACb,CACZ,CAAC;IACJ,CAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,kBAAkB;QAC/B,oBAAC,QAAQ,IACP,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,EAC7B,UAAU,EAAE;gBACV,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC,8BAA8B,CAAC;gBACnE,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,OAAO;aACd,EACD,YAAY,EAAE,YAAY,EAC1B,oBAAoB,EAAE,IAAI,GAC1B,CACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PropertyFilterBuilder\n */\n\nimport * as React from \"react\";\nimport type { PropertyDescription } from \"@itwin/appui-abstract\";\nimport type { ComboBoxProps, SelectOption } from \"@itwin/itwinui-react\";\nimport { ComboBox, MenuItem } from \"@itwin/itwinui-react\";\nimport { UiComponents } from \"../UiComponents\";\n\n/**\n * Props for [[PropertyFilterBuilderRuleProperty]] component.\n * @internal\n */\nexport interface PropertyFilterBuilderRulePropertyProps {\n /** List of available properties. */\n properties: PropertyDescription[];\n /** Currently selected property. */\n selectedProperty?: PropertyDescription;\n /** Callback that is invoked when selected property changes. */\n onSelectedPropertyChanged: (property?: PropertyDescription) => void;\n /** Custom renderer for property item inside selector. */\n propertyRenderer?: (name: string) => React.ReactNode;\n /** Specifies whether selector should be disabled or not. */\n isDisabled?: boolean;\n}\n\n/**\n * Component that renders [[PropertyFilterBuilderRuleRenderer]] property selector.\n * @internal\n */\nexport function PropertyFilterBuilderRuleProperty(\n props: PropertyFilterBuilderRulePropertyProps\n) {\n const {\n selectedProperty,\n properties,\n onSelectedPropertyChanged,\n propertyRenderer,\n isDisabled,\n } = props;\n\n const selectOptions = React.useMemo<SelectOption<string>[]>(\n () =>\n properties.map((property) => ({\n id: property.name,\n label: property.displayLabel,\n value: property.name,\n })),\n [properties]\n );\n\n const onPropertyChanged = React.useCallback(\n (name: string) => {\n onSelectedPropertyChanged(\n properties.find((property) => property.name === name)\n );\n },\n [properties, onSelectedPropertyChanged]\n );\n\n React.useEffect(() => {\n const currentSelectedProperty = properties.find(\n (property) => property.name === selectedProperty?.name\n );\n if (currentSelectedProperty?.name !== selectedProperty?.name)\n onSelectedPropertyChanged(currentSelectedProperty);\n }, [properties, selectedProperty, onSelectedPropertyChanged]);\n\n const itemRenderer = React.useCallback<\n Required<ComboBoxProps<string>>[\"itemRenderer\"]\n >(\n (selectOption, { isSelected, id }) => {\n return (\n <MenuItem key={id} id={id} isSelected={isSelected}>\n {propertyRenderer\n ? propertyRenderer(selectOption.value)\n : selectOption.label}\n </MenuItem>\n );\n },\n [propertyRenderer]\n );\n\n return (\n <div className=\"fb-property-name\">\n <ComboBox\n options={selectOptions}\n onChange={onPropertyChanged}\n value={selectedProperty?.name}\n inputProps={{\n placeholder: UiComponents.translate(\"filterBuilder.chooseProperty\"),\n disabled: isDisabled,\n size: \"small\",\n }}\n itemRenderer={itemRenderer}\n enableVirtualization={true}\n />\n </div>\n );\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  /** @packageDocumentation
2
2
  * @module PropertyFilterBuilder
3
3
  */
4
- /// <reference types="react" />
4
+ import * as React from "react";
5
5
  import type { PropertyDescription, PropertyValue } from "@itwin/appui-abstract";
6
- import type { PropertyFilterRuleOperator } from "./Operators";
6
+ import type { PropertyFilterBuilderRuleOperator } from "./Operators";
7
7
  /**
8
8
  * Props for [[PropertyFilterBuilderRuleValue]] component.
9
9
  * @beta
@@ -22,11 +22,11 @@ export interface PropertyFilterBuilderRuleValueProps {
22
22
  */
23
23
  export interface PropertyFilterBuilderRuleValueRendererProps extends PropertyFilterBuilderRuleValueProps {
24
24
  /** Current operator. */
25
- operator: PropertyFilterRuleOperator;
25
+ operator: PropertyFilterBuilderRuleOperator;
26
26
  }
27
27
  /**
28
28
  * Component that renders [[PropertyFilterBuilderRuleRenderer]] value input.
29
29
  * @beta
30
30
  */
31
- export declare function PropertyFilterBuilderRuleValue(props: PropertyFilterBuilderRuleValueProps): JSX.Element;
31
+ export declare function PropertyFilterBuilderRuleValue(props: PropertyFilterBuilderRuleValueRendererProps): React.JSX.Element;
32
32
  //# sourceMappingURL=FilterBuilderRuleValue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleValue.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleValue.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAIhF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,mCAAmC;IAClD,+BAA+B;IAC/B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,qEAAqE;IACrE,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,2CACf,SAAQ,mCAAmC;IAC3C,wBAAwB;IACxB,QAAQ,EAAE,0BAA0B,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,mCAAmC,eA2B3C"}
1
+ {"version":3,"file":"FilterBuilderRuleValue.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleValue.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAMhF,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAGrE;;;GAGG;AACH,MAAM,WAAW,mCAAmC;IAClD,+BAA+B;IAC/B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,qEAAqE;IACrE,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,2CACf,SAAQ,mCAAmC;IAC3C,wBAAwB;IACxB,QAAQ,EAAE,iCAAiC,CAAC;CAC7C;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,2CAA2C,qBASnD"}
@@ -8,12 +8,18 @@
8
8
  import * as React from "react";
9
9
  import { PropertyRecord, PropertyValueFormat } from "@itwin/appui-abstract";
10
10
  import { EditorContainer } from "../editors/EditorContainer";
11
+ import { Flex, Text } from "@itwin/itwinui-react";
12
+ import { PropertyFilterBuilderRuleRangeValue } from "./FilterBuilderRangeValue";
13
+ import { UiComponents } from "../UiComponents";
11
14
  /**
12
15
  * Component that renders [[PropertyFilterBuilderRuleRenderer]] value input.
13
16
  * @beta
14
17
  */
15
18
  export function PropertyFilterBuilderRuleValue(props) {
16
- const { value, property, onChange } = props;
19
+ const { operator, ...restProps } = props;
20
+ return operator === "between" || operator === "not-between" ? (React.createElement(FilterBuilderRuleRangeValueRenderer, { ...restProps })) : (React.createElement(FilterBuilderRulePrimitiveValueRenderer, { ...restProps }));
21
+ }
22
+ function FilterBuilderRulePrimitiveValueRenderer({ property, value, onChange, }) {
17
23
  const propertyRecord = React.useMemo(() => {
18
24
  return new PropertyRecord(value !== null && value !== void 0 ? value : { valueFormat: PropertyValueFormat.Primitive }, property);
19
25
  }, [value, property]);
@@ -22,4 +28,36 @@ export function PropertyFilterBuilderRuleValue(props) {
22
28
  }, [onChange]);
23
29
  return (React.createElement(EditorContainer, { propertyRecord: propertyRecord, onCancel: /* istanbul ignore next */ () => { }, onCommit: onValueChange, setFocus: false, shouldCommitOnChange: false }));
24
30
  }
31
+ function FilterBuilderRuleRangeValueRenderer({ property, value, onChange, }) {
32
+ const { from, to } = React.useMemo(() => {
33
+ const rangeValue = PropertyFilterBuilderRuleRangeValue.parse(value);
34
+ return {
35
+ from: new PropertyRecord(rangeValue.from, property),
36
+ to: new PropertyRecord(rangeValue.to, property),
37
+ };
38
+ }, [property, value]);
39
+ const handleFromValue = React.useCallback(({ newValue }) => {
40
+ onChange(getSerializedRangeValue(newValue, to.value));
41
+ }, [onChange, to]);
42
+ const handleToValue = React.useCallback(({ newValue }) => {
43
+ onChange(getSerializedRangeValue(from.value, newValue));
44
+ }, [onChange, from]);
45
+ return (React.createElement(Flex, { className: "rule-value-range", display: "inline-flex", flexDirection: "row" },
46
+ React.createElement(Flex.Item, null,
47
+ React.createElement(EditorContainer, { propertyRecord: from, onCancel: /* istanbul ignore next */ () => { }, onCommit: handleFromValue, setFocus: false, shouldCommitOnChange: false })),
48
+ React.createElement(Text, null, UiComponents.translate("filterBuilder.operators.and").toLowerCase()),
49
+ React.createElement(Flex.Item, null,
50
+ React.createElement(EditorContainer, { propertyRecord: to, onCancel: /* istanbul ignore next */ () => { }, onCommit: handleToValue, setFocus: false, shouldCommitOnChange: false }))));
51
+ }
52
+ // istanbul ignore next
53
+ function getSerializedRangeValue(from, to) {
54
+ return PropertyFilterBuilderRuleRangeValue.serialize({
55
+ from: from.valueFormat === PropertyValueFormat.Primitive
56
+ ? from
57
+ : { valueFormat: PropertyValueFormat.Primitive },
58
+ to: to.valueFormat === PropertyValueFormat.Primitive
59
+ ? to
60
+ : { valueFormat: PropertyValueFormat.Primitive },
61
+ });
62
+ }
25
63
  //# sourceMappingURL=FilterBuilderRuleValue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleValue.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleValue.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AA0B7D;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAA0C;IAE1C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE5C,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxC,OAAO,IAAI,cAAc,CACvB,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,WAAW,EAAE,mBAAmB,CAAC,SAAS,EAAE,EACvD,QAAQ,CACT,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtB,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC,EAAE,QAAQ,EAAuB,EAAE,EAAE;QACpC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO,CACL,oBAAC,eAAe,IACd,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,0BAA0B,CAAC,GAAG,EAAE,GAAE,CAAC,EAC7C,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,KAAK,EACf,oBAAoB,EAAE,KAAK,GAC3B,CACH,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, PropertyValue } from \"@itwin/appui-abstract\";\nimport { PropertyRecord, PropertyValueFormat } from \"@itwin/appui-abstract\";\nimport type { PropertyUpdatedArgs } from \"../editors/EditorContainer\";\nimport { EditorContainer } from \"../editors/EditorContainer\";\nimport type { PropertyFilterRuleOperator } from \"./Operators\";\n\n/**\n * Props for [[PropertyFilterBuilderRuleValue]] component.\n * @beta\n */\nexport interface PropertyFilterBuilderRuleValueProps {\n /** Currently entered value. */\n value?: PropertyValue;\n /** Property used in rule to which this value will be compared to. */\n property: PropertyDescription;\n /** Callback that is invoked when value changes. */\n onChange: (value: PropertyValue) => void;\n}\n\n/**\n * Props for custom [[PropertyFilterBuilderRuleValue]] renderer.\n * @beta\n */\nexport interface PropertyFilterBuilderRuleValueRendererProps\n extends PropertyFilterBuilderRuleValueProps {\n /** Current operator. */\n operator: PropertyFilterRuleOperator;\n}\n\n/**\n * Component that renders [[PropertyFilterBuilderRuleRenderer]] value input.\n * @beta\n */\nexport function PropertyFilterBuilderRuleValue(\n props: PropertyFilterBuilderRuleValueProps\n) {\n const { value, property, onChange } = props;\n\n const propertyRecord = React.useMemo(() => {\n return new PropertyRecord(\n value ?? { valueFormat: PropertyValueFormat.Primitive },\n property\n );\n }, [value, property]);\n\n const onValueChange = React.useCallback(\n ({ newValue }: PropertyUpdatedArgs) => {\n onChange(newValue);\n },\n [onChange]\n );\n\n return (\n <EditorContainer\n propertyRecord={propertyRecord}\n onCancel={/* istanbul ignore next */ () => {}}\n onCommit={onValueChange}\n setFocus={false}\n shouldCommitOnChange={false}\n />\n );\n}\n"]}
1
+ {"version":3,"file":"FilterBuilderRuleValue.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleValue.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, PropertyValue } from \"@itwin/appui-abstract\";\nimport { PropertyRecord, PropertyValueFormat } from \"@itwin/appui-abstract\";\nimport type { PropertyUpdatedArgs } from \"../editors/EditorContainer\";\nimport { EditorContainer } from \"../editors/EditorContainer\";\nimport { Flex, Text } from \"@itwin/itwinui-react\";\nimport { PropertyFilterBuilderRuleRangeValue } from \"./FilterBuilderRangeValue\";\nimport type { PropertyFilterBuilderRuleOperator } from \"./Operators\";\nimport { UiComponents } from \"../UiComponents\";\n\n/**\n * Props for [[PropertyFilterBuilderRuleValue]] component.\n * @beta\n */\nexport interface PropertyFilterBuilderRuleValueProps {\n /** Currently entered value. */\n value?: PropertyValue;\n /** Property used in rule to which this value will be compared to. */\n property: PropertyDescription;\n /** Callback that is invoked when value changes. */\n onChange: (value: PropertyValue) => void;\n}\n\n/**\n * Props for custom [[PropertyFilterBuilderRuleValue]] renderer.\n * @beta\n */\nexport interface PropertyFilterBuilderRuleValueRendererProps\n extends PropertyFilterBuilderRuleValueProps {\n /** Current operator. */\n operator: PropertyFilterBuilderRuleOperator;\n}\n\n/**\n * Component that renders [[PropertyFilterBuilderRuleRenderer]] value input.\n * @beta\n */\nexport function PropertyFilterBuilderRuleValue(\n props: PropertyFilterBuilderRuleValueRendererProps\n) {\n const { operator, ...restProps } = props;\n\n return operator === \"between\" || operator === \"not-between\" ? (\n <FilterBuilderRuleRangeValueRenderer {...restProps} />\n ) : (\n <FilterBuilderRulePrimitiveValueRenderer {...restProps} />\n );\n}\n\nfunction FilterBuilderRulePrimitiveValueRenderer({\n property,\n value,\n onChange,\n}: PropertyFilterBuilderRuleValueProps) {\n const propertyRecord = React.useMemo(() => {\n return new PropertyRecord(\n value ?? { valueFormat: PropertyValueFormat.Primitive },\n property\n );\n }, [value, property]);\n\n const onValueChange = React.useCallback(\n ({ newValue }: PropertyUpdatedArgs) => {\n onChange(newValue);\n },\n [onChange]\n );\n\n return (\n <EditorContainer\n propertyRecord={propertyRecord}\n onCancel={/* istanbul ignore next */ () => {}}\n onCommit={onValueChange}\n setFocus={false}\n shouldCommitOnChange={false}\n />\n );\n}\n\nfunction FilterBuilderRuleRangeValueRenderer({\n property,\n value,\n onChange,\n}: PropertyFilterBuilderRuleValueProps) {\n const { from, to } = React.useMemo(() => {\n const rangeValue = PropertyFilterBuilderRuleRangeValue.parse(value);\n return {\n from: new PropertyRecord(rangeValue.from, property),\n to: new PropertyRecord(rangeValue.to, property),\n };\n }, [property, value]);\n\n const handleFromValue = React.useCallback(\n ({ newValue }: PropertyUpdatedArgs) => {\n onChange(getSerializedRangeValue(newValue, to.value));\n },\n [onChange, to]\n );\n\n const handleToValue = React.useCallback(\n ({ newValue }: PropertyUpdatedArgs) => {\n onChange(getSerializedRangeValue(from.value, newValue));\n },\n [onChange, from]\n );\n\n return (\n <Flex\n className=\"rule-value-range\"\n display=\"inline-flex\"\n flexDirection=\"row\"\n >\n <Flex.Item>\n <EditorContainer\n propertyRecord={from}\n onCancel={/* istanbul ignore next */ () => {}}\n onCommit={handleFromValue}\n setFocus={false}\n shouldCommitOnChange={false}\n />\n </Flex.Item>\n <Text>\n {UiComponents.translate(\"filterBuilder.operators.and\").toLowerCase()}\n </Text>\n <Flex.Item>\n <EditorContainer\n propertyRecord={to}\n onCancel={/* istanbul ignore next */ () => {}}\n onCommit={handleToValue}\n setFocus={false}\n shouldCommitOnChange={false}\n />\n </Flex.Item>\n </Flex>\n );\n}\n\n// istanbul ignore next\nfunction getSerializedRangeValue(from: PropertyValue, to: PropertyValue) {\n return PropertyFilterBuilderRuleRangeValue.serialize({\n from:\n from.valueFormat === PropertyValueFormat.Primitive\n ? from\n : { valueFormat: PropertyValueFormat.Primitive },\n to:\n to.valueFormat === PropertyValueFormat.Primitive\n ? to\n : { valueFormat: PropertyValueFormat.Primitive },\n });\n}\n"]}
@@ -2,8 +2,7 @@
2
2
  * @module PropertyFilterBuilder
3
3
  */
4
4
  import type { PropertyDescription, PropertyValue } from "@itwin/appui-abstract";
5
- import { PropertyFilterRuleOperator } from "./Operators";
6
- import { PropertyFilterRuleGroupOperator } from "./Operators";
5
+ import type { PropertyFilterBuilderRuleOperator, PropertyFilterRuleGroupOperator } from "./Operators";
7
6
  import type { PropertyFilter } from "./Types";
8
7
  /**
9
8
  * Data structure that describes [[PropertyFilterBuilder]] component state.
@@ -28,7 +27,7 @@ export interface PropertyFilterBuilderRuleGroup {
28
27
  /** Id of rule group that this group is nested in. */
29
28
  groupId?: string;
30
29
  /** Operator that should join items in this group. */
31
- operator: PropertyFilterRuleGroupOperator;
30
+ operator: `${PropertyFilterRuleGroupOperator}`;
32
31
  /** Items in this group. */
33
32
  items: PropertyFilterBuilderRuleGroupItem[];
34
33
  }
@@ -44,12 +43,17 @@ export interface PropertyFilterBuilderRule {
44
43
  /** Property used in this rule. */
45
44
  property?: PropertyDescription;
46
45
  /** Operator that should be used to compare property value. */
47
- operator?: PropertyFilterRuleOperator;
46
+ operator?: PropertyFilterBuilderRuleOperator;
48
47
  /** Value that property should be compared to. */
49
48
  value?: PropertyValue;
50
49
  /** Error message of this rule. */
51
50
  errorMessage?: string;
52
51
  }
52
+ /**
53
+ * Function to check if supplied [[PropertyFilterBuilderRuleGroupItem]] is [[PropertyFilterBuilderRuleGroup]].
54
+ * @beta
55
+ */
56
+ export declare function isPropertyFilterBuilderRuleGroup(item: PropertyFilterBuilderRuleGroupItem): item is PropertyFilterBuilderRuleGroup;
53
57
  /**
54
58
  * Actions for controlling [[PropertyFilterBuilder]] component state.
55
59
  * @beta
@@ -65,11 +69,11 @@ export declare class PropertyFilterBuilderActions {
65
69
  /** Removes all items from root group. */
66
70
  removeAllItems(): void;
67
71
  /** Sets operator of rule group specified by the path. */
68
- setRuleGroupOperator(path: string[], operator: PropertyFilterRuleGroupOperator): void;
72
+ setRuleGroupOperator(path: string[], operator: `${PropertyFilterRuleGroupOperator}`): void;
69
73
  /** Sets property of rule specified by the path. */
70
74
  setRuleProperty(path: string[], property?: PropertyDescription): void;
71
75
  /** Sets operator of rule specified by the path. */
72
- setRuleOperator(path: string[], operator: PropertyFilterRuleOperator): void;
76
+ setRuleOperator(path: string[], operator: PropertyFilterBuilderRuleOperator): void;
73
77
  /** Sets value of rule specified by the path. */
74
78
  setRuleValue(path: string[], value: PropertyValue): void;
75
79
  /**
@@ -78,11 +82,6 @@ export declare class PropertyFilterBuilderActions {
78
82
  */
79
83
  setRuleErrorMessages(ruleIdsAndErrorMessages: Map<string, string>): void;
80
84
  }
81
- /**
82
- * Function to check if supplied [[PropertyFilterBuilderRuleGroupItem]] is [[PropertyFilterBuilderRuleGroup]].
83
- * @beta
84
- */
85
- export declare function isPropertyFilterBuilderRuleGroup(item: PropertyFilterBuilderRuleGroupItem): item is PropertyFilterBuilderRuleGroup;
86
85
  /**
87
86
  * Props for [[usePropertyFilterBuilder]]
88
87
  * @beta
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderState.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FilterBuilderState.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderState.ts"],"names":[],"mappings":"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"}