@itwin/components-react 3.6.0-dev.8 → 3.6.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 (383) hide show
  1. package/CHANGELOG.md +51 -1
  2. package/LICENSE.md +1 -1
  3. package/lib/cjs/components-react/breadcrumb/Breadcrumb.d.ts +5 -5
  4. package/lib/cjs/components-react/breadcrumb/Breadcrumb.js +3 -3
  5. package/lib/cjs/components-react/breadcrumb/Breadcrumb.js.map +1 -1
  6. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.d.ts +2 -2
  7. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.js +1 -1
  8. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
  9. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.d.ts +3 -3
  10. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.js +2 -2
  11. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
  12. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.d.ts +1 -1
  13. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.js +1 -1
  14. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
  15. package/lib/cjs/components-react/common/UseDebouncedAsyncValue.d.ts +4 -1
  16. package/lib/cjs/components-react/common/UseDebouncedAsyncValue.d.ts.map +1 -1
  17. package/lib/cjs/components-react/common/UseDebouncedAsyncValue.js +4 -1
  18. package/lib/cjs/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
  19. package/lib/cjs/components-react/common/showhide/ShowHideDialog.d.ts +2 -2
  20. package/lib/cjs/components-react/common/showhide/ShowHideDialog.js +1 -1
  21. package/lib/cjs/components-react/common/showhide/ShowHideDialog.js.map +1 -1
  22. package/lib/cjs/components-react/common/showhide/ShowHideItem.d.ts +2 -2
  23. package/lib/cjs/components-react/common/showhide/ShowHideItem.js.map +1 -1
  24. package/lib/cjs/components-react/common/showhide/ShowHideMenu.d.ts +2 -2
  25. package/lib/cjs/components-react/common/showhide/ShowHideMenu.js +1 -1
  26. package/lib/cjs/components-react/common/showhide/ShowHideMenu.js.map +1 -1
  27. package/lib/cjs/components-react/converters/TypeConverterManager.d.ts.map +1 -1
  28. package/lib/cjs/components-react/converters/TypeConverterManager.js +3 -4
  29. package/lib/cjs/components-react/converters/TypeConverterManager.js.map +1 -1
  30. package/lib/cjs/components-react/editors/ThemedEnumEditor.d.ts +3 -3
  31. package/lib/cjs/components-react/editors/ThemedEnumEditor.js +2 -2
  32. package/lib/cjs/components-react/editors/ThemedEnumEditor.js.map +1 -1
  33. package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts +22 -24
  34. package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
  35. package/lib/cjs/components-react/filter-builder/FilterBuilder.js +24 -83
  36. package/lib/cjs/components-react/filter-builder/FilterBuilder.js.map +1 -1
  37. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts +80 -0
  38. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -0
  39. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js +83 -0
  40. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js.map +1 -0
  41. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts +14 -3
  42. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
  43. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js +22 -12
  44. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  45. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.scss +4 -0
  46. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +25 -16
  47. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
  48. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js +22 -14
  49. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  50. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +14 -2
  51. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
  52. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js +11 -5
  53. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  54. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +16 -2
  55. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
  56. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js +11 -5
  57. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  58. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts +14 -2
  59. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
  60. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js +11 -5
  61. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  62. package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts +52 -8
  63. package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
  64. package/lib/cjs/components-react/filter-builder/FilterBuilderState.js +102 -12
  65. package/lib/cjs/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  66. package/lib/cjs/components-react/filter-builder/Operators.d.ts +23 -5
  67. package/lib/cjs/components-react/filter-builder/Operators.d.ts.map +1 -1
  68. package/lib/cjs/components-react/filter-builder/Operators.js +25 -7
  69. package/lib/cjs/components-react/filter-builder/Operators.js.map +1 -1
  70. package/lib/cjs/components-react/filter-builder/Types.d.ts +24 -4
  71. package/lib/cjs/components-react/filter-builder/Types.d.ts.map +1 -1
  72. package/lib/cjs/components-react/filter-builder/Types.js +11 -1
  73. package/lib/cjs/components-react/filter-builder/Types.js.map +1 -1
  74. package/lib/cjs/components-react/filtering/FilteringInput.js +1 -1
  75. package/lib/cjs/components-react/filtering/FilteringInput.js.map +1 -1
  76. package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts +2 -2
  77. package/lib/cjs/components-react/iconpicker/IconPickerButton.js +2 -2
  78. package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
  79. package/lib/cjs/components-react/properties/LinkHandler.d.ts +2 -2
  80. package/lib/cjs/components-react/properties/LinkHandler.js +1 -1
  81. package/lib/cjs/components-react/properties/LinkHandler.js.map +1 -1
  82. package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.d.ts +3 -3
  83. package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.js +1 -1
  84. package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
  85. package/lib/cjs/components-react/propertygrid/PropertyDataProvider.d.ts +2 -2
  86. package/lib/cjs/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
  87. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.d.ts +3 -1
  88. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.d.ts.map +1 -1
  89. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.js +1 -0
  90. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
  91. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.d.ts +5 -10
  92. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.d.ts.map +1 -1
  93. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  94. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts +3 -3
  95. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js +1 -1
  96. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  97. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +11 -0
  98. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts +2 -2
  99. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js +1 -1
  100. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
  101. package/lib/cjs/components-react/propertygrid/internal/PropertyGridEventHandler.d.ts +2 -2
  102. package/lib/cjs/components-react/propertygrid/internal/PropertyGridEventHandler.js +1 -1
  103. package/lib/cjs/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
  104. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.d.ts +3 -3
  105. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js +3 -3
  106. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  107. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModel.d.ts +3 -3
  108. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModel.js +1 -1
  109. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
  110. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelChangeEvent.d.ts +2 -2
  111. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js +1 -1
  112. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
  113. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.d.ts +2 -2
  114. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.d.ts.map +1 -1
  115. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.js +1 -1
  116. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
  117. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts +6 -6
  118. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts.map +1 -1
  119. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  120. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts +1 -1
  121. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js +1 -1
  122. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  123. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.d.ts +1 -1
  124. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js +1 -1
  125. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
  126. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.d.ts +1 -1
  127. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js +1 -1
  128. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
  129. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts +10 -10
  130. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js +3 -3
  131. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  132. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.d.ts +2 -2
  133. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js +1 -1
  134. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  135. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.d.ts +2 -2
  136. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js +1 -1
  137. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  138. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.d.ts +3 -6
  139. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.d.ts.map +1 -1
  140. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  141. package/lib/cjs/components-react/table/SimpleTableDataProvider.d.ts +1 -1
  142. package/lib/cjs/components-react/table/SimpleTableDataProvider.js +1 -1
  143. package/lib/cjs/components-react/table/SimpleTableDataProvider.js.map +1 -1
  144. package/lib/cjs/components-react/table/TableDataProvider.d.ts +8 -8
  145. package/lib/cjs/components-react/table/TableDataProvider.js +2 -2
  146. package/lib/cjs/components-react/table/TableDataProvider.js.map +1 -1
  147. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.d.ts +16 -16
  148. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js +6 -6
  149. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
  150. package/lib/cjs/components-react/table/component/ColumnDragLayer.d.ts +1 -1
  151. package/lib/cjs/components-react/table/component/ColumnDragLayer.js +1 -1
  152. package/lib/cjs/components-react/table/component/ColumnDragLayer.js.map +1 -1
  153. package/lib/cjs/components-react/table/component/Table.d.ts +9 -9
  154. package/lib/cjs/components-react/table/component/Table.d.ts.map +1 -1
  155. package/lib/cjs/components-react/table/component/Table.js +2 -2
  156. package/lib/cjs/components-react/table/component/Table.js.map +1 -1
  157. package/lib/cjs/components-react/table/component/TableCell.d.ts +6 -6
  158. package/lib/cjs/components-react/table/component/TableCell.js +3 -3
  159. package/lib/cjs/components-react/table/component/TableCell.js.map +1 -1
  160. package/lib/cjs/components-react/table/component/TableColumn.d.ts +1 -1
  161. package/lib/cjs/components-react/table/component/TableColumn.js.map +1 -1
  162. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.d.ts +1 -1
  163. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.js +1 -1
  164. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
  165. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.d.ts +8 -8
  166. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.js +2 -2
  167. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
  168. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.d.ts +2 -2
  169. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.js +1 -1
  170. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
  171. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.d.ts +2 -2
  172. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.js +1 -1
  173. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
  174. package/lib/cjs/components-react/toolbar/Toolbar.d.ts +1 -1
  175. package/lib/cjs/components-react/toolbar/Toolbar.d.ts.map +1 -1
  176. package/lib/cjs/components-react/toolbar/Toolbar.js.map +1 -1
  177. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts +2 -2
  178. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  179. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  180. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts +2 -2
  181. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  182. package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
  183. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.d.ts +1 -4
  184. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.d.ts.map +1 -1
  185. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  186. package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.d.ts +2 -5
  187. package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.d.ts.map +1 -1
  188. package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
  189. package/lib/cjs/components-react.d.ts +4 -6
  190. package/lib/cjs/components-react.d.ts.map +1 -1
  191. package/lib/cjs/components-react.js +4 -6
  192. package/lib/cjs/components-react.js.map +1 -1
  193. package/lib/esm/components-react/breadcrumb/Breadcrumb.d.ts +5 -5
  194. package/lib/esm/components-react/breadcrumb/Breadcrumb.js +3 -3
  195. package/lib/esm/components-react/breadcrumb/Breadcrumb.js.map +1 -1
  196. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.d.ts +2 -2
  197. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.js +1 -1
  198. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
  199. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.d.ts +3 -3
  200. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.js +2 -2
  201. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
  202. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.d.ts +1 -1
  203. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.js +1 -1
  204. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
  205. package/lib/esm/components-react/common/UseDebouncedAsyncValue.d.ts +4 -1
  206. package/lib/esm/components-react/common/UseDebouncedAsyncValue.d.ts.map +1 -1
  207. package/lib/esm/components-react/common/UseDebouncedAsyncValue.js +4 -1
  208. package/lib/esm/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
  209. package/lib/esm/components-react/common/showhide/ShowHideDialog.d.ts +2 -2
  210. package/lib/esm/components-react/common/showhide/ShowHideDialog.js +1 -1
  211. package/lib/esm/components-react/common/showhide/ShowHideDialog.js.map +1 -1
  212. package/lib/esm/components-react/common/showhide/ShowHideItem.d.ts +2 -2
  213. package/lib/esm/components-react/common/showhide/ShowHideItem.js.map +1 -1
  214. package/lib/esm/components-react/common/showhide/ShowHideMenu.d.ts +2 -2
  215. package/lib/esm/components-react/common/showhide/ShowHideMenu.js +1 -1
  216. package/lib/esm/components-react/common/showhide/ShowHideMenu.js.map +1 -1
  217. package/lib/esm/components-react/converters/TypeConverterManager.d.ts.map +1 -1
  218. package/lib/esm/components-react/converters/TypeConverterManager.js +3 -4
  219. package/lib/esm/components-react/converters/TypeConverterManager.js.map +1 -1
  220. package/lib/esm/components-react/editors/ThemedEnumEditor.d.ts +3 -3
  221. package/lib/esm/components-react/editors/ThemedEnumEditor.js +2 -2
  222. package/lib/esm/components-react/editors/ThemedEnumEditor.js.map +1 -1
  223. package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts +22 -24
  224. package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
  225. package/lib/esm/components-react/filter-builder/FilterBuilder.js +17 -75
  226. package/lib/esm/components-react/filter-builder/FilterBuilder.js.map +1 -1
  227. package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts +80 -0
  228. package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -0
  229. package/lib/esm/components-react/filter-builder/FilterBuilderContext.js +60 -0
  230. package/lib/esm/components-react/filter-builder/FilterBuilderContext.js.map +1 -0
  231. package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts +14 -3
  232. package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
  233. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js +17 -7
  234. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  235. package/lib/esm/components-react/filter-builder/FilterBuilderRule.scss +4 -0
  236. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +25 -16
  237. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
  238. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js +15 -7
  239. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  240. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +14 -2
  241. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
  242. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js +7 -1
  243. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  244. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +16 -2
  245. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
  246. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js +7 -1
  247. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  248. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts +14 -2
  249. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
  250. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js +7 -1
  251. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  252. package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts +52 -8
  253. package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
  254. package/lib/esm/components-react/filter-builder/FilterBuilderState.js +96 -7
  255. package/lib/esm/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  256. package/lib/esm/components-react/filter-builder/Operators.d.ts +23 -5
  257. package/lib/esm/components-react/filter-builder/Operators.d.ts.map +1 -1
  258. package/lib/esm/components-react/filter-builder/Operators.js +23 -5
  259. package/lib/esm/components-react/filter-builder/Operators.js.map +1 -1
  260. package/lib/esm/components-react/filter-builder/Types.d.ts +24 -4
  261. package/lib/esm/components-react/filter-builder/Types.d.ts.map +1 -1
  262. package/lib/esm/components-react/filter-builder/Types.js +11 -1
  263. package/lib/esm/components-react/filter-builder/Types.js.map +1 -1
  264. package/lib/esm/components-react/filtering/FilteringInput.js +1 -1
  265. package/lib/esm/components-react/filtering/FilteringInput.js.map +1 -1
  266. package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts +2 -2
  267. package/lib/esm/components-react/iconpicker/IconPickerButton.js +2 -2
  268. package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
  269. package/lib/esm/components-react/properties/LinkHandler.d.ts +2 -2
  270. package/lib/esm/components-react/properties/LinkHandler.js +1 -1
  271. package/lib/esm/components-react/properties/LinkHandler.js.map +1 -1
  272. package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.d.ts +3 -3
  273. package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.js +1 -1
  274. package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
  275. package/lib/esm/components-react/propertygrid/PropertyDataProvider.d.ts +2 -2
  276. package/lib/esm/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
  277. package/lib/esm/components-react/propertygrid/component/PropertyGrid.d.ts +3 -1
  278. package/lib/esm/components-react/propertygrid/component/PropertyGrid.d.ts.map +1 -1
  279. package/lib/esm/components-react/propertygrid/component/PropertyGrid.js +1 -0
  280. package/lib/esm/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
  281. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.d.ts +5 -10
  282. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.d.ts.map +1 -1
  283. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  284. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts +3 -3
  285. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js +1 -1
  286. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  287. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +11 -0
  288. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts +2 -2
  289. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js +1 -1
  290. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
  291. package/lib/esm/components-react/propertygrid/internal/PropertyGridEventHandler.d.ts +2 -2
  292. package/lib/esm/components-react/propertygrid/internal/PropertyGridEventHandler.js +1 -1
  293. package/lib/esm/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
  294. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.d.ts +3 -3
  295. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js +3 -3
  296. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  297. package/lib/esm/components-react/propertygrid/internal/PropertyGridModel.d.ts +3 -3
  298. package/lib/esm/components-react/propertygrid/internal/PropertyGridModel.js +1 -1
  299. package/lib/esm/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
  300. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelChangeEvent.d.ts +2 -2
  301. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js +1 -1
  302. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
  303. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.d.ts +2 -2
  304. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.d.ts.map +1 -1
  305. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.js +1 -1
  306. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
  307. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts +6 -6
  308. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts.map +1 -1
  309. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  310. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts +1 -1
  311. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js +1 -1
  312. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  313. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.d.ts +1 -1
  314. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js +1 -1
  315. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
  316. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.d.ts +1 -1
  317. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js +1 -1
  318. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
  319. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts +10 -10
  320. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js +3 -3
  321. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  322. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.d.ts +2 -2
  323. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js +1 -1
  324. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  325. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.d.ts +2 -2
  326. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js +1 -1
  327. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  328. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.d.ts +3 -6
  329. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.d.ts.map +1 -1
  330. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  331. package/lib/esm/components-react/table/SimpleTableDataProvider.d.ts +1 -1
  332. package/lib/esm/components-react/table/SimpleTableDataProvider.js +1 -1
  333. package/lib/esm/components-react/table/SimpleTableDataProvider.js.map +1 -1
  334. package/lib/esm/components-react/table/TableDataProvider.d.ts +8 -8
  335. package/lib/esm/components-react/table/TableDataProvider.js +2 -2
  336. package/lib/esm/components-react/table/TableDataProvider.js.map +1 -1
  337. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.d.ts +16 -16
  338. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js +6 -6
  339. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
  340. package/lib/esm/components-react/table/component/ColumnDragLayer.d.ts +1 -1
  341. package/lib/esm/components-react/table/component/ColumnDragLayer.js +1 -1
  342. package/lib/esm/components-react/table/component/ColumnDragLayer.js.map +1 -1
  343. package/lib/esm/components-react/table/component/Table.d.ts +9 -9
  344. package/lib/esm/components-react/table/component/Table.d.ts.map +1 -1
  345. package/lib/esm/components-react/table/component/Table.js +2 -2
  346. package/lib/esm/components-react/table/component/Table.js.map +1 -1
  347. package/lib/esm/components-react/table/component/TableCell.d.ts +6 -6
  348. package/lib/esm/components-react/table/component/TableCell.js +3 -3
  349. package/lib/esm/components-react/table/component/TableCell.js.map +1 -1
  350. package/lib/esm/components-react/table/component/TableColumn.d.ts +1 -1
  351. package/lib/esm/components-react/table/component/TableColumn.js.map +1 -1
  352. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.d.ts +1 -1
  353. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.js +1 -1
  354. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
  355. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.d.ts +8 -8
  356. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.js +2 -2
  357. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
  358. package/lib/esm/components-react/table/component/dragdrop/withDragSource.d.ts +2 -2
  359. package/lib/esm/components-react/table/component/dragdrop/withDragSource.js +1 -1
  360. package/lib/esm/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
  361. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.d.ts +2 -2
  362. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.js +1 -1
  363. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
  364. package/lib/esm/components-react/toolbar/Toolbar.d.ts +1 -1
  365. package/lib/esm/components-react/toolbar/Toolbar.d.ts.map +1 -1
  366. package/lib/esm/components-react/toolbar/Toolbar.js.map +1 -1
  367. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts +2 -2
  368. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  369. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  370. package/lib/esm/components-react/tree/TreeDataProvider.d.ts +2 -2
  371. package/lib/esm/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  372. package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
  373. package/lib/esm/components-react/tree/controlled/component/ControlledTree.d.ts +1 -4
  374. package/lib/esm/components-react/tree/controlled/component/ControlledTree.d.ts.map +1 -1
  375. package/lib/esm/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  376. package/lib/esm/components-react/tree/controlled/component/TreeRenderer.d.ts +2 -5
  377. package/lib/esm/components-react/tree/controlled/component/TreeRenderer.d.ts.map +1 -1
  378. package/lib/esm/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
  379. package/lib/esm/components-react.d.ts +4 -6
  380. package/lib/esm/components-react.d.ts.map +1 -1
  381. package/lib/esm/components-react.js +4 -6
  382. package/lib/esm/components-react.js.map +1 -1
  383. package/package.json +23 -13
@@ -1,4 +1,11 @@
1
1
  "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module PropertyFilterBuilder
8
+ */
2
9
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
10
  if (k2 === undefined) k2 = k;
4
11
  Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
@@ -19,100 +26,34 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
26
  return result;
20
27
  };
21
28
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.buildPropertyFilter = exports.PropertyFilterBuilder = exports.PropertyFilterBuilderRuleRenderingContext = exports.PropertyFilterBuilderContext = void 0;
23
- /*---------------------------------------------------------------------------------------------
24
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
25
- * See LICENSE.md in the project root for license terms and full copyright notice.
26
- *--------------------------------------------------------------------------------------------*/
29
+ exports.PropertyFilterBuilder = void 0;
27
30
  const React = __importStar(require("react"));
28
- const appui_abstract_1 = require("@itwin/appui-abstract");
31
+ const FilterBuilderContext_1 = require("./FilterBuilderContext");
29
32
  const FilterBuilderRuleGroup_1 = require("./FilterBuilderRuleGroup");
30
33
  const FilterBuilderState_1 = require("./FilterBuilderState");
31
- const Operators_1 = require("./Operators");
32
- /** @alpha */
33
- exports.PropertyFilterBuilderContext = React.createContext(null);
34
- /** @alpha */
35
- exports.PropertyFilterBuilderRuleRenderingContext = React.createContext({});
36
34
  const ROOT_GROUP_PATH = [];
37
- /** @alpha */
35
+ /**
36
+ * Component for building complex filters. It allows to create filter rules or rule groups based on provided list of properties.
37
+ * @beta
38
+ */
38
39
  function PropertyFilterBuilder(props) {
39
- const { properties, onFilterChanged, onRulePropertySelected, ruleOperatorRenderer, ruleValueRenderer, ruleGroupDepthLimit, propertyRenderer, disablePropertySelection } = props;
40
- const { state, actions } = (0, FilterBuilderState_1.usePropertyFilterBuilderState)();
40
+ const { properties, onFilterChanged, onRulePropertySelected, ruleOperatorRenderer, ruleValueRenderer, ruleGroupDepthLimit, propertyRenderer, isDisabled, initialFilter } = props;
41
+ const { state, actions } = (0, FilterBuilderState_1.usePropertyFilterBuilderState)(initialFilter);
41
42
  const rootRef = React.useRef(null);
42
- const filter = React.useMemo(() => buildPropertyFilter(state.rootGroup), [state]);
43
+ const firstRender = React.useRef(true);
44
+ const filter = React.useMemo(() => (0, FilterBuilderState_1.buildPropertyFilter)(state.rootGroup), [state]);
43
45
  React.useEffect(() => {
44
- onFilterChanged(filter);
46
+ if (!firstRender.current)
47
+ onFilterChanged(filter);
48
+ firstRender.current = false;
45
49
  }, [filter, onFilterChanged]);
46
50
  const contextValue = React.useMemo(() => ({ actions, properties, onRulePropertySelected, ruleGroupDepthLimit }), [actions, properties, onRulePropertySelected, ruleGroupDepthLimit]);
47
- const renderingContextValue = React.useMemo(() => ({ ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, disablePropertySelection }), [ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, disablePropertySelection]);
48
- return (React.createElement(exports.PropertyFilterBuilderRuleRenderingContext.Provider, { value: renderingContextValue },
49
- React.createElement(exports.PropertyFilterBuilderContext.Provider, { value: contextValue },
50
- React.createElement(FilterBuilderRuleGroup_1.ActiveRuleGroupContext.Provider, { value: useActiveRuleGroupContextProps(rootRef) },
51
+ const renderingContextValue = React.useMemo(() => ({ ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, isDisabled }), [ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, isDisabled]);
52
+ return (React.createElement(FilterBuilderContext_1.PropertyFilterBuilderRuleRenderingContext.Provider, { value: renderingContextValue },
53
+ React.createElement(FilterBuilderContext_1.PropertyFilterBuilderContext.Provider, { value: contextValue },
54
+ React.createElement(FilterBuilderContext_1.ActiveRuleGroupContext.Provider, { value: (0, FilterBuilderContext_1.useActiveRuleGroupContextProps)(rootRef) },
51
55
  React.createElement("div", { ref: rootRef, className: "filter-builder" },
52
56
  React.createElement(FilterBuilderRuleGroup_1.PropertyFilterBuilderRuleGroupRenderer, { path: ROOT_GROUP_PATH, group: state.rootGroup }))))));
53
57
  }
54
58
  exports.PropertyFilterBuilder = PropertyFilterBuilder;
55
- /** @internal */
56
- function buildPropertyFilter(groupItem) {
57
- if ((0, FilterBuilderState_1.isPropertyFilterBuilderRuleGroup)(groupItem))
58
- return buildPropertyFilterFromRuleGroup(groupItem);
59
- return buildPropertyFilterFromRule(groupItem);
60
- }
61
- exports.buildPropertyFilter = buildPropertyFilter;
62
- function buildPropertyFilterFromRuleGroup(rootGroup) {
63
- if (rootGroup.items.length === 0)
64
- return undefined;
65
- const rules = new Array();
66
- for (const item of rootGroup.items) {
67
- const rule = buildPropertyFilter(item);
68
- if (!rule)
69
- return undefined;
70
- rules.push(rule);
71
- }
72
- if (rules.length === 1)
73
- return rules[0];
74
- return {
75
- operator: rootGroup.operator,
76
- rules,
77
- };
78
- }
79
- function buildPropertyFilterFromRule(rule) {
80
- const { property, operator, value } = rule;
81
- if (!property || operator === undefined)
82
- return undefined;
83
- if (!(0, Operators_1.isUnaryPropertyFilterOperator)(operator) && (value === undefined || value.valueFormat !== appui_abstract_1.PropertyValueFormat.Primitive || value.value === undefined))
84
- return undefined;
85
- return { property, operator, value };
86
- }
87
- function useActiveRuleGroupContextProps(rootElementRef) {
88
- const [activeElement, setActiveElement] = React.useState();
89
- const onFocus = React.useCallback((e) => {
90
- e.stopPropagation();
91
- setActiveElement(e.currentTarget);
92
- }, []);
93
- const onBlur = React.useCallback((e) => {
94
- e.stopPropagation();
95
- if (activeElement !== e.currentTarget || (rootElementRef.current && rootElementRef.current.contains(e.relatedTarget)))
96
- return;
97
- setActiveElement(undefined);
98
- }, [activeElement, rootElementRef]);
99
- const onMouseOver = React.useCallback((e) => {
100
- e.stopPropagation();
101
- setActiveElement(e.currentTarget);
102
- }, []);
103
- const onMouseOut = React.useCallback((e) => {
104
- e.stopPropagation();
105
- // istanbul ignore if
106
- if (activeElement !== e.currentTarget)
107
- return;
108
- setActiveElement(undefined);
109
- }, [activeElement]);
110
- return React.useMemo(() => ({
111
- activeElement,
112
- onFocus,
113
- onBlur,
114
- onMouseOver,
115
- onMouseOut,
116
- }), [activeElement, onFocus, onBlur, onMouseOver, onMouseOut]);
117
- }
118
59
  //# sourceMappingURL=FilterBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilder.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilder.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,6CAA+B;AAC/B,0DAAiF;AACjF,qEAA0G;AAG1G,6DAG8B;AAC9B,2CAA4D;AAuB5D,aAAa;AACA,QAAA,4BAA4B,GAAG,KAAK,CAAC,aAAa,CAAoC,IAAK,CAAC,CAAC;AAU1G,aAAa;AACA,QAAA,yCAAyC,GAAG,KAAK,CAAC,aAAa,CAAiD,EAAE,CAAC,CAAC;AAEjI,MAAM,eAAe,GAAa,EAAE,CAAC;AAErC,aAAa;AACb,SAAgB,qBAAqB,CAAC,KAAiC;IACrE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,GAAG,KAAK,CAAC;IAChL,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAA,kDAA6B,GAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAE9B,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,CAAC,EAC5E,CAAC,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,CACnE,CAAC;IACF,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CACzC,GAAG,EAAE,CAAC,CAAC,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,CAAC,EAC/F,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,wBAAwB,CAAC,CACtF,CAAC;IACF,OAAO,CACL,oBAAC,iDAAyC,CAAC,QAAQ,IAAC,KAAK,EAAE,qBAAqB;QAC9E,oBAAC,oCAA4B,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY;YACxD,oBAAC,+CAAsB,CAAC,QAAQ,IAAC,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC;gBAC7E,6BAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,gBAAgB;oBAC3C,oBAAC,+DAAsC,IAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,GAAI,CACrF,CAC0B,CACI,CACW,CACtD,CAAC;AACJ,CAAC;AA7BD,sDA6BC;AAED,gBAAgB;AAChB,SAAgB,mBAAmB,CAAC,SAA6C;IAC/E,IAAI,IAAA,qDAAgC,EAAC,SAAS,CAAC;QAC7C,OAAO,gCAAgC,CAAC,SAAS,CAAC,CAAC;IACrD,OAAO,2BAA2B,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAJD,kDAIC;AAED,SAAS,gCAAgC,CAAC,SAAyC;IACjF,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAC9B,OAAO,SAAS,CAAC;IAEnB,MAAM,KAAK,GAAG,IAAI,KAAK,EAAkB,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE;QAClC,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI;YACP,OAAO,SAAS,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClB;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QACpB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAElB,OAAO;QACL,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,IAA+B;IAClE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC3C,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,SAAS;QACrC,OAAO,SAAS,CAAC;IAEnB,IAAI,CAAC,IAAA,yCAA6B,EAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,oCAAmB,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;QACvJ,OAAO,SAAS,CAAC;IAEnB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,8BAA8B,CAAC,cAA4C;IAClF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAA2B,CAAC;IAEpF,MAAM,OAAO,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5E,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3E,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,aAAa,KAAK,CAAC,CAAC,aAAa,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YACnH,OAAO;QAET,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;IAEpC,MAAM,WAAW,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAChF,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/E,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,qBAAqB;QACrB,IAAI,aAAa,KAAK,CAAC,CAAC,aAAa;YACnC,OAAO;QAET,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,aAAa;QACb,OAAO;QACP,MAAM;QACN,WAAW;QACX,UAAU;KACX,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AACjE,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport * as React from \"react\";\r\nimport { PropertyDescription, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { ActiveRuleGroupContext, PropertyFilterBuilderRuleGroupRenderer } from \"./FilterBuilderRuleGroup\";\r\nimport { PropertyFilterBuilderRuleOperatorProps } from \"./FilterBuilderRuleOperator\";\r\nimport { PropertyFilterBuilderRuleValueProps } from \"./FilterBuilderRuleValue\";\r\nimport {\r\n isPropertyFilterBuilderRuleGroup, PropertyFilterBuilderActions, PropertyFilterBuilderRule, PropertyFilterBuilderRuleGroup,\r\n PropertyFilterBuilderRuleGroupItem, usePropertyFilterBuilderState,\r\n} from \"./FilterBuilderState\";\r\nimport { isUnaryPropertyFilterOperator } from \"./Operators\";\r\nimport { PropertyFilter } from \"./Types\";\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderProps {\r\n properties: PropertyDescription[];\r\n onFilterChanged: (filter?: PropertyFilter) => void;\r\n onRulePropertySelected?: (property: PropertyDescription) => void;\r\n ruleOperatorRenderer?: (props: PropertyFilterBuilderRuleOperatorProps) => React.ReactNode;\r\n ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueProps) => React.ReactNode;\r\n ruleGroupDepthLimit?: number;\r\n propertyRenderer?: (name: string) => React.ReactNode;\r\n disablePropertySelection?: boolean;\r\n}\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderContextProps {\r\n actions: PropertyFilterBuilderActions;\r\n properties: PropertyDescription[];\r\n onRulePropertySelected?: (property: PropertyDescription) => void;\r\n ruleGroupDepthLimit?: number;\r\n}\r\n\r\n/** @alpha */\r\nexport const PropertyFilterBuilderContext = React.createContext<PropertyFilterBuilderContextProps>(null!);\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRuleRenderingContextProps {\r\n ruleOperatorRenderer?: (props: PropertyFilterBuilderRuleOperatorProps) => React.ReactNode;\r\n ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueProps) => React.ReactNode;\r\n propertyRenderer?: (name: string) => React.ReactNode;\r\n disablePropertySelection?: boolean;\r\n}\r\n\r\n/** @alpha */\r\nexport const PropertyFilterBuilderRuleRenderingContext = React.createContext<PropertyFilterBuilderRuleRenderingContextProps>({});\r\n\r\nconst ROOT_GROUP_PATH: string[] = [];\r\n\r\n/** @alpha */\r\nexport function PropertyFilterBuilder(props: PropertyFilterBuilderProps) {\r\n const { properties, onFilterChanged, onRulePropertySelected, ruleOperatorRenderer, ruleValueRenderer, ruleGroupDepthLimit, propertyRenderer, disablePropertySelection } = props;\r\n const { state, actions } = usePropertyFilterBuilderState();\r\n const rootRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const filter = React.useMemo(() => buildPropertyFilter(state.rootGroup), [state]);\r\n React.useEffect(() => {\r\n onFilterChanged(filter);\r\n }, [filter, onFilterChanged]);\r\n\r\n const contextValue = React.useMemo<PropertyFilterBuilderContextProps>(\r\n () => ({ actions, properties, onRulePropertySelected, ruleGroupDepthLimit }),\r\n [actions, properties, onRulePropertySelected, ruleGroupDepthLimit]\r\n );\r\n const renderingContextValue = React.useMemo<PropertyFilterBuilderRuleRenderingContextProps>(\r\n () => ({ ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, disablePropertySelection }),\r\n [ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, disablePropertySelection]\r\n );\r\n return (\r\n <PropertyFilterBuilderRuleRenderingContext.Provider value={renderingContextValue}>\r\n <PropertyFilterBuilderContext.Provider value={contextValue}>\r\n <ActiveRuleGroupContext.Provider value={useActiveRuleGroupContextProps(rootRef)}>\r\n <div ref={rootRef} className=\"filter-builder\">\r\n <PropertyFilterBuilderRuleGroupRenderer path={ROOT_GROUP_PATH} group={state.rootGroup} />\r\n </div>\r\n </ActiveRuleGroupContext.Provider>\r\n </PropertyFilterBuilderContext.Provider>\r\n </PropertyFilterBuilderRuleRenderingContext.Provider>\r\n );\r\n}\r\n\r\n/** @internal */\r\nexport function buildPropertyFilter(groupItem: PropertyFilterBuilderRuleGroupItem): PropertyFilter | undefined {\r\n if (isPropertyFilterBuilderRuleGroup(groupItem))\r\n return buildPropertyFilterFromRuleGroup(groupItem);\r\n return buildPropertyFilterFromRule(groupItem);\r\n}\r\n\r\nfunction buildPropertyFilterFromRuleGroup(rootGroup: PropertyFilterBuilderRuleGroup): PropertyFilter | undefined {\r\n if (rootGroup.items.length === 0)\r\n return undefined;\r\n\r\n const rules = new Array<PropertyFilter>();\r\n for (const item of rootGroup.items) {\r\n const rule = buildPropertyFilter(item);\r\n if (!rule)\r\n return undefined;\r\n rules.push(rule);\r\n }\r\n\r\n if (rules.length === 1)\r\n return rules[0];\r\n\r\n return {\r\n operator: rootGroup.operator,\r\n rules,\r\n };\r\n}\r\n\r\nfunction buildPropertyFilterFromRule(rule: PropertyFilterBuilderRule): PropertyFilter | undefined {\r\n const { property, operator, value } = rule;\r\n if (!property || operator === undefined)\r\n return undefined;\r\n\r\n if (!isUnaryPropertyFilterOperator(operator) && (value === undefined || value.valueFormat !== PropertyValueFormat.Primitive || value.value === undefined))\r\n return undefined;\r\n\r\n return { property, operator, value };\r\n}\r\n\r\nfunction useActiveRuleGroupContextProps(rootElementRef: React.RefObject<HTMLElement>) {\r\n const [activeElement, setActiveElement] = React.useState<HTMLElement | undefined>();\r\n\r\n const onFocus: React.FocusEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n setActiveElement(e.currentTarget);\r\n }, []);\r\n\r\n const onBlur: React.FocusEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n if (activeElement !== e.currentTarget || (rootElementRef.current && rootElementRef.current.contains(e.relatedTarget)))\r\n return;\r\n\r\n setActiveElement(undefined);\r\n }, [activeElement, rootElementRef]);\r\n\r\n const onMouseOver: React.MouseEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n setActiveElement(e.currentTarget);\r\n }, []);\r\n\r\n const onMouseOut: React.MouseEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n // istanbul ignore if\r\n if (activeElement !== e.currentTarget)\r\n return;\r\n\r\n setActiveElement(undefined);\r\n }, [activeElement]);\r\n\r\n return React.useMemo(() => ({\r\n activeElement,\r\n onFocus,\r\n onBlur,\r\n onMouseOver,\r\n onMouseOut,\r\n }), [activeElement, onFocus, onBlur, onMouseOver, onMouseOut]);\r\n}\r\n"]}
1
+ {"version":3,"file":"FilterBuilder.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilder.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AAE/B,iEAGgC;AAChC,qEAAkF;AAGlF,6DAA0F;AA4B1F,MAAM,eAAe,GAAa,EAAE,CAAC;AAErC;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,KAAiC;IACrE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IACjL,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAA,kDAA6B,EAAC,aAAa,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEnD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAA,wCAAmB,EAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,WAAW,CAAC,OAAO;YACtB,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1B,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9B,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAE9B,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,CAAC,EAC5E,CAAC,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,CACnE,CAAC;IACF,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CACzC,GAAG,EAAE,CAAC,CAAC,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,EACjF,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,CAAC,CACxE,CAAC;IACF,OAAO,CACL,oBAAC,gEAAyC,CAAC,QAAQ,IAAC,KAAK,EAAE,qBAAqB;QAC9E,oBAAC,mDAA4B,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY;YACxD,oBAAC,6CAAsB,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAA,qDAA8B,EAAC,OAAO,CAAC;gBAC7E,6BAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,gBAAgB;oBAC3C,oBAAC,+DAAsC,IAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,GAAI,CACrF,CAC0B,CACI,CACW,CACtD,CAAC;AACJ,CAAC;AAhCD,sDAgCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module PropertyFilterBuilder\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { PropertyDescription } from \"@itwin/appui-abstract\";\r\nimport {\r\n ActiveRuleGroupContext, PropertyFilterBuilderContext, PropertyFilterBuilderContextProps, PropertyFilterBuilderRuleRenderingContext,\r\n PropertyFilterBuilderRuleRenderingContextProps, useActiveRuleGroupContextProps,\r\n} from \"./FilterBuilderContext\";\r\nimport { PropertyFilterBuilderRuleGroupRenderer } from \"./FilterBuilderRuleGroup\";\r\nimport { PropertyFilterBuilderRuleOperatorProps } from \"./FilterBuilderRuleOperator\";\r\nimport { PropertyFilterBuilderRuleValueProps } from \"./FilterBuilderRuleValue\";\r\nimport { buildPropertyFilter, usePropertyFilterBuilderState } from \"./FilterBuilderState\";\r\nimport { PropertyFilter } from \"./Types\";\r\n\r\n/**\r\n * Props for [[PropertyFilterBuilder]] component.\r\n * @beta\r\n */\r\nexport interface PropertyFilterBuilderProps {\r\n /** List of properties available to be used in filter rules. */\r\n properties: PropertyDescription[];\r\n /** Callback that is invoked when filter changes. */\r\n onFilterChanged: (filter?: PropertyFilter) => void;\r\n /** Callback that is invoked when property is selected in any rule. */\r\n onRulePropertySelected?: (property: PropertyDescription) => void;\r\n /** Custom renderer for rule operator selector. */\r\n ruleOperatorRenderer?: (props: PropertyFilterBuilderRuleOperatorProps) => React.ReactNode;\r\n /** Custom renderer for rule value input. */\r\n ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueProps) => React.ReactNode;\r\n /** Custom renderer for property selector in rule. */\r\n propertyRenderer?: (name: string) => React.ReactNode;\r\n /** Specifies how deep rule groups can be nested. */\r\n ruleGroupDepthLimit?: number;\r\n /** Specifies whether component is disabled or not. */\r\n isDisabled?: boolean;\r\n /** Initial filter that should be shown when component is mounted. */\r\n initialFilter?: PropertyFilter;\r\n}\r\n\r\nconst ROOT_GROUP_PATH: string[] = [];\r\n\r\n/**\r\n * Component for building complex filters. It allows to create filter rules or rule groups based on provided list of properties.\r\n * @beta\r\n */\r\nexport function PropertyFilterBuilder(props: PropertyFilterBuilderProps) {\r\n const { properties, onFilterChanged, onRulePropertySelected, ruleOperatorRenderer, ruleValueRenderer, ruleGroupDepthLimit, propertyRenderer, isDisabled, initialFilter } = props;\r\n const { state, actions } = usePropertyFilterBuilderState(initialFilter);\r\n const rootRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const firstRender = React.useRef(true);\r\n const filter = React.useMemo(() => buildPropertyFilter(state.rootGroup), [state]);\r\n React.useEffect(() => {\r\n if (!firstRender.current)\r\n onFilterChanged(filter);\r\n firstRender.current = false;\r\n }, [filter, onFilterChanged]);\r\n\r\n const contextValue = React.useMemo<PropertyFilterBuilderContextProps>(\r\n () => ({ actions, properties, onRulePropertySelected, ruleGroupDepthLimit }),\r\n [actions, properties, onRulePropertySelected, ruleGroupDepthLimit]\r\n );\r\n const renderingContextValue = React.useMemo<PropertyFilterBuilderRuleRenderingContextProps>(\r\n () => ({ ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, isDisabled }),\r\n [ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, isDisabled]\r\n );\r\n return (\r\n <PropertyFilterBuilderRuleRenderingContext.Provider value={renderingContextValue}>\r\n <PropertyFilterBuilderContext.Provider value={contextValue}>\r\n <ActiveRuleGroupContext.Provider value={useActiveRuleGroupContextProps(rootRef)}>\r\n <div ref={rootRef} className=\"filter-builder\">\r\n <PropertyFilterBuilderRuleGroupRenderer path={ROOT_GROUP_PATH} group={state.rootGroup} />\r\n </div>\r\n </ActiveRuleGroupContext.Provider>\r\n </PropertyFilterBuilderContext.Provider>\r\n </PropertyFilterBuilderRuleRenderingContext.Provider>\r\n );\r\n}\r\n"]}
@@ -0,0 +1,80 @@
1
+ /** @packageDocumentation
2
+ * @module PropertyFilterBuilder
3
+ */
4
+ import * as React from "react";
5
+ import { PropertyDescription } from "@itwin/appui-abstract";
6
+ import { PropertyFilterBuilderActions } from "./FilterBuilderState";
7
+ import { PropertyFilterBuilderRuleOperatorProps } from "./FilterBuilderRuleOperator";
8
+ import { PropertyFilterBuilderRuleValueProps } from "./FilterBuilderRuleValue";
9
+ /**
10
+ * Data structure that describes [[PropertyFilterBuilderContext]] value.
11
+ * @internal
12
+ */
13
+ export interface PropertyFilterBuilderContextProps {
14
+ /** Actions for modifying [[PropertyFilterBuilder]] state. */
15
+ actions: PropertyFilterBuilderActions;
16
+ /** List of available properties. */
17
+ properties: PropertyDescription[];
18
+ /** Callback to invoke when property is selected in any rule. */
19
+ onRulePropertySelected?: (property: PropertyDescription) => void;
20
+ /** Specifies how deep rule groups can be nested. */
21
+ ruleGroupDepthLimit?: number;
22
+ }
23
+ /**
24
+ * Context used to store data for rules and rule groups rendered inside [[PropertyFilterBuilder]] component.
25
+ * @internal
26
+ */
27
+ export declare const PropertyFilterBuilderContext: React.Context<PropertyFilterBuilderContextProps>;
28
+ /**
29
+ * Data structure that describes [[PropertyFilterBuilderRuleRenderingContext]] value.
30
+ * @internal
31
+ */
32
+ export interface PropertyFilterBuilderRuleRenderingContextProps {
33
+ /** Custom renderer for operator selector in rule. */
34
+ ruleOperatorRenderer?: (props: PropertyFilterBuilderRuleOperatorProps) => React.ReactNode;
35
+ /** Custom renderer for value input in rule. */
36
+ ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueProps) => React.ReactNode;
37
+ /** Custom renderer for property selector in rule. */
38
+ propertyRenderer?: (name: string) => React.ReactNode;
39
+ /** Specifies that properties selection is disabled. */
40
+ isDisabled?: boolean;
41
+ }
42
+ /**
43
+ * Context for rendering rules and rule groups inside [[PropertyFilterBuilder]] component.
44
+ * @internal
45
+ */
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 active rule group. */
53
+ activeElement: HTMLElement | undefined;
54
+ /** Even handler for rule group element 'onFocus' event */
55
+ onFocus: React.FocusEventHandler<HTMLElement>;
56
+ /** Even handler for rule group element 'onBlur' event */
57
+ onBlur: React.FocusEventHandler<HTMLElement>;
58
+ /** Even handler for rule group element 'onMouseOver' event */
59
+ onMouseOver: React.MouseEventHandler<HTMLElement>;
60
+ /** Even handler for rule group element 'onMouseOut' event */
61
+ onMouseOut: React.MouseEventHandler<HTMLElement>;
62
+ }
63
+ /**
64
+ * Context for tracking and storing active rule group in [[PropertyFilterBuilder]].
65
+ * Group is considered active if it is focused or hovered.
66
+ * @internal
67
+ */
68
+ export declare const ActiveRuleGroupContext: React.Context<ActiveRuleGroupContextProps>;
69
+ /**
70
+ * Custom hook that created value for [[ActiveRuleGroupContext]].
71
+ * @internal
72
+ */
73
+ export declare function useActiveRuleGroupContextProps(rootElementRef: React.RefObject<HTMLElement>): {
74
+ activeElement: HTMLElement | undefined;
75
+ onFocus: React.FocusEventHandler<HTMLElement>;
76
+ onBlur: React.FocusEventHandler<HTMLElement>;
77
+ onMouseOver: React.MouseEventHandler<HTMLElement>;
78
+ onMouseOut: React.MouseEventHandler<HTMLElement>;
79
+ };
80
+ //# sourceMappingURL=FilterBuilderContext.d.ts.map
@@ -0,0 +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,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,sCAAsC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAC;AAE/E;;;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,kDAAgE,CAAC;AAE1G;;;GAGG;AACH,MAAM,WAAW,8CAA8C;IAC7D,qDAAqD;IACrD,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,sCAAsC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1F,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,mCAAmC,KAAK,KAAK,CAAC,SAAS,CAAC;IACpF,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,+DAA0E,CAAC;AAEjI;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,8CAA8C;IAC9C,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC;IACvC,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,4CAA0D,CAAC;AAE9F;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC;;;;;;EAqC1F"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module PropertyFilterBuilder
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.useActiveRuleGroupContextProps = exports.ActiveRuleGroupContext = exports.PropertyFilterBuilderRuleRenderingContext = exports.PropertyFilterBuilderContext = void 0;
30
+ const React = __importStar(require("react"));
31
+ /**
32
+ * Context used to store data for rules and rule groups rendered inside [[PropertyFilterBuilder]] component.
33
+ * @internal
34
+ */
35
+ exports.PropertyFilterBuilderContext = React.createContext(null);
36
+ /**
37
+ * Context for rendering rules and rule groups inside [[PropertyFilterBuilder]] component.
38
+ * @internal
39
+ */
40
+ exports.PropertyFilterBuilderRuleRenderingContext = React.createContext({});
41
+ /**
42
+ * Context for tracking and storing active rule group in [[PropertyFilterBuilder]].
43
+ * Group is considered active if it is focused or hovered.
44
+ * @internal
45
+ */
46
+ exports.ActiveRuleGroupContext = React.createContext(null);
47
+ /**
48
+ * Custom hook that created value for [[ActiveRuleGroupContext]].
49
+ * @internal
50
+ */
51
+ function useActiveRuleGroupContextProps(rootElementRef) {
52
+ const [activeElement, setActiveElement] = React.useState();
53
+ const onFocus = React.useCallback((e) => {
54
+ e.stopPropagation();
55
+ setActiveElement(e.currentTarget);
56
+ }, []);
57
+ const onBlur = React.useCallback((e) => {
58
+ e.stopPropagation();
59
+ if (activeElement !== e.currentTarget || (rootElementRef.current && rootElementRef.current.contains(e.relatedTarget)))
60
+ return;
61
+ setActiveElement(undefined);
62
+ }, [activeElement, rootElementRef]);
63
+ const onMouseOver = React.useCallback((e) => {
64
+ e.stopPropagation();
65
+ setActiveElement(e.currentTarget);
66
+ }, []);
67
+ const onMouseOut = React.useCallback((e) => {
68
+ e.stopPropagation();
69
+ // istanbul ignore if
70
+ if (activeElement !== e.currentTarget)
71
+ return;
72
+ setActiveElement(undefined);
73
+ }, [activeElement]);
74
+ return React.useMemo(() => ({
75
+ activeElement,
76
+ onFocus,
77
+ onBlur,
78
+ onMouseOver,
79
+ onMouseOut,
80
+ }), [activeElement, onFocus, onBlur, onMouseOver, onMouseOut]);
81
+ }
82
+ exports.useActiveRuleGroupContextProps = useActiveRuleGroupContextProps;
83
+ //# sourceMappingURL=FilterBuilderContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterBuilderContext.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderContext.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AAqB/B;;;GAGG;AACU,QAAA,4BAA4B,GAAG,KAAK,CAAC,aAAa,CAAoC,IAAK,CAAC,CAAC;AAiB1G;;;GAGG;AACU,QAAA,yCAAyC,GAAG,KAAK,CAAC,aAAa,CAAiD,EAAE,CAAC,CAAC;AAmBjI;;;;GAIG;AACU,QAAA,sBAAsB,GAAG,KAAK,CAAC,aAAa,CAA8B,IAAK,CAAC,CAAC;AAE9F;;;GAGG;AACH,SAAgB,8BAA8B,CAAC,cAA4C;IACzF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAA2B,CAAC;IAEpF,MAAM,OAAO,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5E,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3E,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,aAAa,KAAK,CAAC,CAAC,aAAa,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YACnH,OAAO;QAET,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;IAEpC,MAAM,WAAW,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAChF,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/E,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,qBAAqB;QACrB,IAAI,aAAa,KAAK,CAAC,CAAC,aAAa;YACnC,OAAO;QAET,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,aAAa;QACb,OAAO;QACP,MAAM;QACN,WAAW;QACX,UAAU;KACX,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AACjE,CAAC;AArCD,wEAqCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module PropertyFilterBuilder\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { PropertyDescription } from \"@itwin/appui-abstract\";\r\nimport { PropertyFilterBuilderActions } from \"./FilterBuilderState\";\r\nimport { PropertyFilterBuilderRuleOperatorProps } from \"./FilterBuilderRuleOperator\";\r\nimport { PropertyFilterBuilderRuleValueProps } from \"./FilterBuilderRuleValue\";\r\n\r\n/**\r\n * Data structure that describes [[PropertyFilterBuilderContext]] value.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderContextProps {\r\n /** Actions for modifying [[PropertyFilterBuilder]] state. */\r\n actions: PropertyFilterBuilderActions;\r\n /** List of available properties. */\r\n properties: PropertyDescription[];\r\n /** Callback to invoke when property is selected in any rule. */\r\n onRulePropertySelected?: (property: PropertyDescription) => void;\r\n /** Specifies how deep rule groups can be nested. */\r\n ruleGroupDepthLimit?: number;\r\n}\r\n\r\n/**\r\n * Context used to store data for rules and rule groups rendered inside [[PropertyFilterBuilder]] component.\r\n * @internal\r\n */\r\nexport const PropertyFilterBuilderContext = React.createContext<PropertyFilterBuilderContextProps>(null!);\r\n\r\n/**\r\n * Data structure that describes [[PropertyFilterBuilderRuleRenderingContext]] value.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderRuleRenderingContextProps {\r\n /** Custom renderer for operator selector in rule. */\r\n ruleOperatorRenderer?: (props: PropertyFilterBuilderRuleOperatorProps) => React.ReactNode;\r\n /** Custom renderer for value input in rule. */\r\n ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueProps) => React.ReactNode;\r\n /** Custom renderer for property selector in rule. */\r\n propertyRenderer?: (name: string) => React.ReactNode;\r\n /** Specifies that properties selection is disabled. */\r\n isDisabled?: boolean;\r\n}\r\n\r\n/**\r\n * Context for rendering rules and rule groups inside [[PropertyFilterBuilder]] component.\r\n * @internal\r\n */\r\nexport const PropertyFilterBuilderRuleRenderingContext = React.createContext<PropertyFilterBuilderRuleRenderingContextProps>({});\r\n\r\n/**\r\n * Data structure that describes value of [[ActiveRuleGroupContext]].\r\n * @internal\r\n */\r\nexport interface ActiveRuleGroupContextProps {\r\n /** Element of currently active rule group. */\r\n activeElement: HTMLElement | undefined;\r\n /** Even handler for rule group element 'onFocus' event */\r\n onFocus: React.FocusEventHandler<HTMLElement>;\r\n /** Even handler for rule group element 'onBlur' event */\r\n onBlur: React.FocusEventHandler<HTMLElement>;\r\n /** Even handler for rule group element 'onMouseOver' event */\r\n onMouseOver: React.MouseEventHandler<HTMLElement>;\r\n /** Even handler for rule group element 'onMouseOut' event */\r\n onMouseOut: React.MouseEventHandler<HTMLElement>;\r\n}\r\n\r\n/**\r\n * Context for tracking and storing active rule group in [[PropertyFilterBuilder]].\r\n * Group is considered active if it is focused or hovered.\r\n * @internal\r\n */\r\nexport const ActiveRuleGroupContext = React.createContext<ActiveRuleGroupContextProps>(null!);\r\n\r\n/**\r\n * Custom hook that created value for [[ActiveRuleGroupContext]].\r\n * @internal\r\n */\r\nexport function useActiveRuleGroupContextProps(rootElementRef: React.RefObject<HTMLElement>) {\r\n const [activeElement, setActiveElement] = React.useState<HTMLElement | undefined>();\r\n\r\n const onFocus: React.FocusEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n setActiveElement(e.currentTarget);\r\n }, []);\r\n\r\n const onBlur: React.FocusEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n if (activeElement !== e.currentTarget || (rootElementRef.current && rootElementRef.current.contains(e.relatedTarget)))\r\n return;\r\n\r\n setActiveElement(undefined);\r\n }, [activeElement, rootElementRef]);\r\n\r\n const onMouseOver: React.MouseEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n setActiveElement(e.currentTarget);\r\n }, []);\r\n\r\n const onMouseOut: React.MouseEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n // istanbul ignore if\r\n if (activeElement !== e.currentTarget)\r\n return;\r\n\r\n setActiveElement(undefined);\r\n }, [activeElement]);\r\n\r\n return React.useMemo(() => ({\r\n activeElement,\r\n onFocus,\r\n onBlur,\r\n onMouseOver,\r\n onMouseOut,\r\n }), [activeElement, onFocus, onBlur, onMouseOver, onMouseOut]);\r\n}\r\n"]}
@@ -1,11 +1,22 @@
1
+ /** @packageDocumentation
2
+ * @module PropertyFilterBuilder
3
+ */
1
4
  /// <reference types="react" />
2
- import { PropertyFilterBuilderRule } from "./FilterBuilderState";
3
5
  import "./FilterBuilderRule.scss";
4
- /** @alpha */
6
+ import { PropertyFilterBuilderRule } from "./FilterBuilderState";
7
+ /**
8
+ * Props for [[PropertyFilterBuilderRuleRenderer]] component.
9
+ * @internal
10
+ */
5
11
  export interface PropertyFilterBuilderRuleRendererProps {
12
+ /** Path from [[PropertyFilterBuilder]] root to this rule. */
6
13
  path: string[];
14
+ /** Rule to render. */
7
15
  rule: PropertyFilterBuilderRule;
8
16
  }
9
- /** @alpha */
17
+ /**
18
+ * Component that renders single rule in [[PropertyFilterBuilder]] component.
19
+ * @internal
20
+ */
10
21
  export declare function PropertyFilterBuilderRuleRenderer(props: PropertyFilterBuilderRuleRendererProps): JSX.Element;
11
22
  //# sourceMappingURL=FilterBuilderRule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRule.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRule.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,0BAA0B,CAAC;AAElC,aAAa;AACb,MAAM,WAAW,sCAAsC;IACrD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,yBAAyB,CAAC;CACjC;AAED,aAAa;AACb,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,sCAAsC,eAsD9F"}
1
+ {"version":3,"file":"FilterBuilderRule.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRule.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,0BAA0B,CAAC;AASlC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAGjE;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,6DAA6D;IAC7D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,sBAAsB;IACtB,IAAI,EAAE,yBAAyB,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,sCAAsC,eA8D9F"}
@@ -1,4 +1,11 @@
1
1
  "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module PropertyFilterBuilder
8
+ */
2
9
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
10
  if (k2 === undefined) k2 = k;
4
11
  Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
@@ -20,24 +27,23 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
27
  };
21
28
  Object.defineProperty(exports, "__esModule", { value: true });
22
29
  exports.PropertyFilterBuilderRuleRenderer = void 0;
23
- /*---------------------------------------------------------------------------------------------
24
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
25
- * See LICENSE.md in the project root for license terms and full copyright notice.
26
- *--------------------------------------------------------------------------------------------*/
30
+ require("./FilterBuilderRule.scss");
27
31
  const React = __importStar(require("react"));
28
32
  const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
29
33
  const itwinui_react_1 = require("@itwin/itwinui-react");
30
- const FilterBuilder_1 = require("./FilterBuilder");
34
+ const FilterBuilderContext_1 = require("./FilterBuilderContext");
31
35
  const FilterBuilderRuleOperator_1 = require("./FilterBuilderRuleOperator");
32
36
  const FilterBuilderRuleProperty_1 = require("./FilterBuilderRuleProperty");
33
37
  const FilterBuilderRuleValue_1 = require("./FilterBuilderRuleValue");
34
38
  const Operators_1 = require("./Operators");
35
- require("./FilterBuilderRule.scss");
36
- /** @alpha */
39
+ /**
40
+ * Component that renders single rule in [[PropertyFilterBuilder]] component.
41
+ * @internal
42
+ */
37
43
  function PropertyFilterBuilderRuleRenderer(props) {
38
44
  const { path, rule } = props;
39
- const { properties, actions, onRulePropertySelected } = React.useContext(FilterBuilder_1.PropertyFilterBuilderContext);
40
- const { ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, disablePropertySelection } = React.useContext(FilterBuilder_1.PropertyFilterBuilderRuleRenderingContext);
45
+ const { properties, actions, onRulePropertySelected } = React.useContext(FilterBuilderContext_1.PropertyFilterBuilderContext);
46
+ const { ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, isDisabled } = React.useContext(FilterBuilderContext_1.PropertyFilterBuilderRuleRenderingContext);
41
47
  const { property, operator, value } = rule;
42
48
  const onSelectedPropertyChanged = React.useCallback((newProperty) => {
43
49
  actions.setRuleProperty(path, newProperty);
@@ -68,9 +74,13 @@ function PropertyFilterBuilderRuleRenderer(props) {
68
74
  React.createElement(itwinui_react_1.IconButton, { onClick: removeRule, styleType: "borderless", size: "small" },
69
75
  React.createElement(itwinui_icons_react_1.SvgDelete, null))),
70
76
  React.createElement("div", { className: "rule-condition" },
71
- React.createElement(FilterBuilderRuleProperty_1.PropertyFilterBuilderRuleProperty, { properties: properties, selectedProperty: rule.property, onSelectedPropertyChanged: onSelectedPropertyChanged, propertyRenderer: propertyRenderer, isDisabled: disablePropertySelection }),
72
- property && operatorRenderer(property),
73
- property && operator && !(0, Operators_1.isUnaryPropertyFilterOperator)(operator) && valueRenderer(property)));
77
+ React.createElement(FilterBuilderRuleProperty_1.PropertyFilterBuilderRuleProperty, { properties: properties, selectedProperty: rule.property, onSelectedPropertyChanged: onSelectedPropertyChanged, propertyRenderer: propertyRenderer, isDisabled: isDisabled }),
78
+ property !== undefined
79
+ ? operatorRenderer(property)
80
+ : null,
81
+ property !== undefined && operator !== undefined && !(0, Operators_1.isUnaryPropertyFilterOperator)(operator)
82
+ ? valueRenderer(property)
83
+ : null));
74
84
  }
75
85
  exports.PropertyFilterBuilderRuleRenderer = PropertyFilterBuilderRuleRenderer;
76
86
  //# sourceMappingURL=FilterBuilderRule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRule.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRule.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport * as React from \"react\";\r\nimport { PropertyDescription, PropertyValue } from \"@itwin/appui-abstract\";\r\nimport { SvgDelete } from \"@itwin/itwinui-icons-react\";\r\nimport { IconButton } from \"@itwin/itwinui-react\";\r\nimport { PropertyFilterBuilderContext, PropertyFilterBuilderRuleRenderingContext } from \"./FilterBuilder\";\r\nimport { PropertyFilterBuilderRuleOperator } from \"./FilterBuilderRuleOperator\";\r\nimport { PropertyFilterBuilderRuleProperty } from \"./FilterBuilderRuleProperty\";\r\nimport { PropertyFilterBuilderRuleValue } from \"./FilterBuilderRuleValue\";\r\nimport { PropertyFilterBuilderRule } from \"./FilterBuilderState\";\r\nimport { isUnaryPropertyFilterOperator, PropertyFilterRuleOperator } from \"./Operators\";\r\nimport \"./FilterBuilderRule.scss\";\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRuleRendererProps {\r\n path: string[];\r\n rule: PropertyFilterBuilderRule;\r\n}\r\n\r\n/** @alpha */\r\nexport function PropertyFilterBuilderRuleRenderer(props: PropertyFilterBuilderRuleRendererProps) {\r\n const { path, rule } = props;\r\n const { properties, actions, onRulePropertySelected } = React.useContext(PropertyFilterBuilderContext);\r\n const { ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, disablePropertySelection } = React.useContext(PropertyFilterBuilderRuleRenderingContext);\r\n const { property, operator, value } = rule;\r\n\r\n const onSelectedPropertyChanged = React.useCallback((newProperty?: PropertyDescription) => {\r\n actions.setRuleProperty(path, newProperty);\r\n // invoke 'onRulePropertySelected' when new property is selected. There is no way to deselect property\r\n // so 'newProperty' will be 'undefined' only if selected property is no longer in 'properties' list.\r\n if (onRulePropertySelected && newProperty)\r\n onRulePropertySelected(newProperty);\r\n }, [path, onRulePropertySelected, actions]);\r\n\r\n const onRuleOperatorChange = React.useCallback((newOperator: PropertyFilterRuleOperator) => {\r\n actions.setRuleOperator(path, newOperator);\r\n }, [path, actions]);\r\n\r\n const onRuleValueChange = React.useCallback((newValue: PropertyValue) => {\r\n actions.setRuleValue(path, newValue);\r\n }, [path, actions]);\r\n\r\n const removeRule = () => actions.removeItem(path);\r\n\r\n const operatorRenderer = React.useCallback((prop: PropertyDescription) => {\r\n if (ruleOperatorRenderer)\r\n return ruleOperatorRenderer({ property: prop, operator, onChange: onRuleOperatorChange });\r\n return <PropertyFilterBuilderRuleOperator property={prop} onChange={onRuleOperatorChange} operator={operator} />;\r\n }, [operator, ruleOperatorRenderer, onRuleOperatorChange]);\r\n\r\n const valueRenderer = React.useCallback((prop: PropertyDescription) => {\r\n if (ruleValueRenderer)\r\n return ruleValueRenderer({ property: prop, value, onChange: onRuleValueChange });\r\n return <PropertyFilterBuilderRuleValue property={prop} onChange={onRuleValueChange} value={value} />;\r\n }, [value, ruleValueRenderer, onRuleValueChange]);\r\n\r\n return <div className=\"rule\">\r\n <div className=\"rule-remove-action\">\r\n <IconButton onClick={removeRule} styleType=\"borderless\" size=\"small\">\r\n <SvgDelete />\r\n </IconButton>\r\n </div>\r\n <div className=\"rule-condition\">\r\n <PropertyFilterBuilderRuleProperty\r\n properties={properties}\r\n selectedProperty={rule.property}\r\n onSelectedPropertyChanged={onSelectedPropertyChanged}\r\n propertyRenderer={propertyRenderer}\r\n isDisabled={disablePropertySelection}\r\n />\r\n {property && operatorRenderer(property)}\r\n {property && operator && !isUnaryPropertyFilterOperator(operator) && valueRenderer(property)}\r\n </div>\r\n </div>;\r\n}\r\n"]}
1
+ {"version":3,"file":"FilterBuilderRule.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRule.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module PropertyFilterBuilder\r\n */\r\n\r\nimport \"./FilterBuilderRule.scss\";\r\nimport * as React from \"react\";\r\nimport { PropertyDescription, PropertyValue } from \"@itwin/appui-abstract\";\r\nimport { SvgDelete } from \"@itwin/itwinui-icons-react\";\r\nimport { IconButton } from \"@itwin/itwinui-react\";\r\nimport { PropertyFilterBuilderContext, PropertyFilterBuilderRuleRenderingContext } from \"./FilterBuilderContext\";\r\nimport { PropertyFilterBuilderRuleOperator } from \"./FilterBuilderRuleOperator\";\r\nimport { PropertyFilterBuilderRuleProperty } from \"./FilterBuilderRuleProperty\";\r\nimport { PropertyFilterBuilderRuleValue } from \"./FilterBuilderRuleValue\";\r\nimport { PropertyFilterBuilderRule } from \"./FilterBuilderState\";\r\nimport { isUnaryPropertyFilterOperator, PropertyFilterRuleOperator } from \"./Operators\";\r\n\r\n/**\r\n * Props for [[PropertyFilterBuilderRuleRenderer]] component.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderRuleRendererProps {\r\n /** Path from [[PropertyFilterBuilder]] root to this rule. */\r\n path: string[];\r\n /** Rule to render. */\r\n rule: PropertyFilterBuilderRule;\r\n}\r\n\r\n/**\r\n * Component that renders single rule in [[PropertyFilterBuilder]] component.\r\n * @internal\r\n */\r\nexport function PropertyFilterBuilderRuleRenderer(props: PropertyFilterBuilderRuleRendererProps) {\r\n const { path, rule } = props;\r\n const { properties, actions, onRulePropertySelected } = React.useContext(PropertyFilterBuilderContext);\r\n const { ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, isDisabled } = React.useContext(PropertyFilterBuilderRuleRenderingContext);\r\n const { property, operator, value } = rule;\r\n\r\n const onSelectedPropertyChanged = React.useCallback((newProperty?: PropertyDescription) => {\r\n actions.setRuleProperty(path, newProperty);\r\n // invoke 'onRulePropertySelected' when new property is selected. There is no way to deselect property\r\n // so 'newProperty' will be 'undefined' only if selected property is no longer in 'properties' list.\r\n if (onRulePropertySelected && newProperty)\r\n onRulePropertySelected(newProperty);\r\n }, [path, onRulePropertySelected, actions]);\r\n\r\n const onRuleOperatorChange = React.useCallback((newOperator: PropertyFilterRuleOperator) => {\r\n actions.setRuleOperator(path, newOperator);\r\n }, [path, actions]);\r\n\r\n const onRuleValueChange = React.useCallback((newValue: PropertyValue) => {\r\n actions.setRuleValue(path, newValue);\r\n }, [path, actions]);\r\n\r\n const removeRule = () => actions.removeItem(path);\r\n\r\n const operatorRenderer = React.useCallback((prop: PropertyDescription) => {\r\n if (ruleOperatorRenderer)\r\n return ruleOperatorRenderer({ property: prop, operator, onChange: onRuleOperatorChange });\r\n return <PropertyFilterBuilderRuleOperator property={prop} onChange={onRuleOperatorChange} operator={operator} />;\r\n }, [operator, ruleOperatorRenderer, onRuleOperatorChange]);\r\n\r\n const valueRenderer = React.useCallback((prop: PropertyDescription) => {\r\n if (ruleValueRenderer)\r\n return ruleValueRenderer({ property: prop, value, onChange: onRuleValueChange });\r\n return <PropertyFilterBuilderRuleValue property={prop} onChange={onRuleValueChange} value={value} />;\r\n }, [value, ruleValueRenderer, onRuleValueChange]);\r\n\r\n return <div className=\"rule\">\r\n <div className=\"rule-remove-action\">\r\n <IconButton onClick={removeRule} styleType=\"borderless\" size=\"small\">\r\n <SvgDelete />\r\n </IconButton>\r\n </div>\r\n <div className=\"rule-condition\">\r\n <PropertyFilterBuilderRuleProperty\r\n properties={properties}\r\n selectedProperty={rule.property}\r\n onSelectedPropertyChanged={onSelectedPropertyChanged}\r\n propertyRenderer={propertyRenderer}\r\n isDisabled={isDisabled}\r\n />\r\n {\r\n property !== undefined\r\n ? operatorRenderer(property)\r\n : null\r\n }\r\n {\r\n property !== undefined && operator !== undefined && !isUnaryPropertyFilterOperator(operator)\r\n ? valueRenderer(property)\r\n : null\r\n }\r\n </div>\r\n </div>;\r\n}\r\n"]}
@@ -38,4 +38,8 @@
38
38
  &:first-child {
39
39
  padding-top: 14px;
40
40
  }
41
+
42
+ &:only-child {
43
+ padding-top: 3px;
44
+ }
41
45
  }
@@ -1,29 +1,38 @@
1
- import * as React from "react";
1
+ /** @packageDocumentation
2
+ * @module PropertyFilterBuilder
3
+ */
4
+ /// <reference types="react" />
5
+ import "./FilterBuilderRuleGroup.scss";
2
6
  import { PropertyFilterBuilderRuleGroup } from "./FilterBuilderState";
3
7
  import { PropertyFilterRuleGroupOperator } from "./Operators";
4
- import "./FilterBuilderRuleGroup.scss";
5
- /** @alpha */
6
- export interface ActiveRuleGroupContextProps {
7
- activeElement: HTMLElement | undefined;
8
- onFocus: React.FocusEventHandler<HTMLElement>;
9
- onBlur: React.FocusEventHandler<HTMLElement>;
10
- onMouseOver: React.MouseEventHandler<HTMLElement>;
11
- onMouseOut: React.MouseEventHandler<HTMLElement>;
12
- }
13
- /** @alpha */
14
- export declare const ActiveRuleGroupContext: React.Context<ActiveRuleGroupContextProps>;
15
- /** @alpha */
8
+ /**
9
+ * Props for [[PropertyFilterBuilderRuleGroupRenderer]] component.
10
+ * @internal
11
+ */
16
12
  export interface PropertyFilterBuilderRuleGroupRendererProps {
13
+ /** Path from [[PropertyFilterBuilder]] root to this rule group. */
17
14
  path: string[];
15
+ /** Rule group to render. */
18
16
  group: PropertyFilterBuilderRuleGroup;
19
17
  }
20
- /** @alpha */
18
+ /**
19
+ * Component that renders group of rules in [[PropertyFilterBuilder]] component.
20
+ * @internal
21
+ */
21
22
  export declare function PropertyFilterBuilderRuleGroupRenderer(props: PropertyFilterBuilderRuleGroupRendererProps): JSX.Element;
22
- /** @alpha */
23
+ /**
24
+ * Props for [[PropertyFilterBuilderRuleGroupOperator]] component.
25
+ * @internal
26
+ */
23
27
  export interface PropertyFilterBuilderRuleGroupOperatorProps {
28
+ /** Currently selected operator. */
24
29
  operator: PropertyFilterRuleGroupOperator;
30
+ /** Callback that is invoked when selected operator changes. */
25
31
  onChange: (operator: PropertyFilterRuleGroupOperator) => void;
26
32
  }
27
- /** @alpha */
33
+ /**
34
+ * Component that renders [[PropertyFilterBuilderRuleGroup]] operator selector.
35
+ * @internal
36
+ */
28
37
  export declare function PropertyFilterBuilderRuleGroupOperator(props: PropertyFilterBuilderRuleGroupOperatorProps): JSX.Element;
29
38
  //# sourceMappingURL=FilterBuilderRuleGroup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleGroup.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleGroup.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAoC,8BAA8B,EAAsC,MAAM,sBAAsB,CAAC;AAC5I,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,+BAA+B,CAAC;AAEvC,aAAa;AACb,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7C,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAClD,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;CAClD;AAED,aAAa;AACb,eAAO,MAAM,sBAAsB,4CAA0D,CAAC;AAE9F,aAAa;AACb,MAAM,WAAW,2CAA2C;IAC1D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,8BAA8B,CAAC;CACvC;AAED,aAAa;AACb,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,2CAA2C,eAwCxG;AAED,aAAa;AACb,MAAM,WAAW,2CAA2C;IAC1D,QAAQ,EAAE,+BAA+B,CAAC;IAC1C,QAAQ,EAAE,CAAC,QAAQ,EAAE,+BAA+B,KAAK,IAAI,CAAC;CAC/D;AAED,aAAa;AACb,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,2CAA2C,eAWxG"}
1
+ {"version":3,"file":"FilterBuilderRuleGroup.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleGroup.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,+BAA+B,CAAC;AAOvC,OAAO,EAAoC,8BAA8B,EAAsC,MAAM,sBAAsB,CAAC;AAC5I,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,2CAA2C;IAC1D,mEAAmE;IACnE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,4BAA4B;IAC5B,KAAK,EAAE,8BAA8B,CAAC;CACvC;AAED;;;GAGG;AACH,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,2CAA2C,eA0CxG;AAED;;;GAGG;AACH,MAAM,WAAW,2CAA2C;IAC1D,mCAAmC;IACnC,QAAQ,EAAE,+BAA+B,CAAC;IAC1C,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,QAAQ,EAAE,+BAA+B,KAAK,IAAI,CAAC;CAC/D;AAED;;;GAGG;AACH,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,2CAA2C,eAWxG"}