@itwin/components-react 3.6.0-dev.55 → 3.6.0-dev.60

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 (235) hide show
  1. package/lib/cjs/components-react/breadcrumb/Breadcrumb.d.ts +5 -5
  2. package/lib/cjs/components-react/breadcrumb/Breadcrumb.js +3 -3
  3. package/lib/cjs/components-react/breadcrumb/Breadcrumb.js.map +1 -1
  4. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.d.ts +2 -2
  5. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.js +1 -1
  6. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
  7. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.d.ts +3 -3
  8. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.js +2 -2
  9. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
  10. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.d.ts +1 -1
  11. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.js +1 -1
  12. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
  13. package/lib/cjs/components-react/common/showhide/ShowHideDialog.d.ts +2 -2
  14. package/lib/cjs/components-react/common/showhide/ShowHideDialog.js +1 -1
  15. package/lib/cjs/components-react/common/showhide/ShowHideDialog.js.map +1 -1
  16. package/lib/cjs/components-react/common/showhide/ShowHideItem.d.ts +2 -2
  17. package/lib/cjs/components-react/common/showhide/ShowHideItem.js.map +1 -1
  18. package/lib/cjs/components-react/common/showhide/ShowHideMenu.d.ts +2 -2
  19. package/lib/cjs/components-react/common/showhide/ShowHideMenu.js +1 -1
  20. package/lib/cjs/components-react/common/showhide/ShowHideMenu.js.map +1 -1
  21. package/lib/cjs/components-react/editors/ThemedEnumEditor.d.ts +3 -3
  22. package/lib/cjs/components-react/editors/ThemedEnumEditor.js +2 -2
  23. package/lib/cjs/components-react/editors/ThemedEnumEditor.js.map +1 -1
  24. package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts +22 -25
  25. package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
  26. package/lib/cjs/components-react/filter-builder/FilterBuilder.js +19 -81
  27. package/lib/cjs/components-react/filter-builder/FilterBuilder.js.map +1 -1
  28. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts +80 -0
  29. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -0
  30. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js +83 -0
  31. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js.map +1 -0
  32. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts +14 -3
  33. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
  34. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js +16 -10
  35. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  36. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.scss +4 -0
  37. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +25 -16
  38. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
  39. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js +22 -14
  40. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  41. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +14 -2
  42. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
  43. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js +11 -5
  44. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  45. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +16 -2
  46. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
  47. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js +11 -5
  48. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  49. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts +14 -2
  50. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
  51. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js +11 -5
  52. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  53. package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts +50 -7
  54. package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
  55. package/lib/cjs/components-react/filter-builder/FilterBuilderState.js +60 -8
  56. package/lib/cjs/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  57. package/lib/cjs/components-react/filter-builder/Operators.d.ts +23 -5
  58. package/lib/cjs/components-react/filter-builder/Operators.d.ts.map +1 -1
  59. package/lib/cjs/components-react/filter-builder/Operators.js +25 -7
  60. package/lib/cjs/components-react/filter-builder/Operators.js.map +1 -1
  61. package/lib/cjs/components-react/filter-builder/Types.d.ts +24 -4
  62. package/lib/cjs/components-react/filter-builder/Types.d.ts.map +1 -1
  63. package/lib/cjs/components-react/filter-builder/Types.js +11 -1
  64. package/lib/cjs/components-react/filter-builder/Types.js.map +1 -1
  65. package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts +2 -2
  66. package/lib/cjs/components-react/iconpicker/IconPickerButton.js +2 -2
  67. package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
  68. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.d.ts +1 -1
  69. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
  70. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts +2 -2
  71. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts.map +1 -1
  72. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  73. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts +2 -2
  74. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  75. package/lib/cjs/components-react/table/SimpleTableDataProvider.d.ts +1 -1
  76. package/lib/cjs/components-react/table/SimpleTableDataProvider.js +1 -1
  77. package/lib/cjs/components-react/table/SimpleTableDataProvider.js.map +1 -1
  78. package/lib/cjs/components-react/table/TableDataProvider.d.ts +8 -8
  79. package/lib/cjs/components-react/table/TableDataProvider.js +2 -2
  80. package/lib/cjs/components-react/table/TableDataProvider.js.map +1 -1
  81. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.d.ts +16 -16
  82. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js +6 -6
  83. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
  84. package/lib/cjs/components-react/table/component/ColumnDragLayer.d.ts +1 -1
  85. package/lib/cjs/components-react/table/component/ColumnDragLayer.js +1 -1
  86. package/lib/cjs/components-react/table/component/ColumnDragLayer.js.map +1 -1
  87. package/lib/cjs/components-react/table/component/Table.d.ts +9 -9
  88. package/lib/cjs/components-react/table/component/Table.d.ts.map +1 -1
  89. package/lib/cjs/components-react/table/component/Table.js +2 -2
  90. package/lib/cjs/components-react/table/component/Table.js.map +1 -1
  91. package/lib/cjs/components-react/table/component/TableCell.d.ts +6 -6
  92. package/lib/cjs/components-react/table/component/TableCell.js +3 -3
  93. package/lib/cjs/components-react/table/component/TableCell.js.map +1 -1
  94. package/lib/cjs/components-react/table/component/TableColumn.d.ts +1 -1
  95. package/lib/cjs/components-react/table/component/TableColumn.js.map +1 -1
  96. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.d.ts +1 -1
  97. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.js +1 -1
  98. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
  99. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.d.ts +8 -8
  100. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.js +2 -2
  101. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
  102. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.d.ts +2 -2
  103. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.js +1 -1
  104. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
  105. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.d.ts +2 -2
  106. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.js +1 -1
  107. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
  108. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
  109. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  110. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  111. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts +2 -2
  112. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  113. package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
  114. package/lib/cjs/components-react.d.ts +4 -6
  115. package/lib/cjs/components-react.d.ts.map +1 -1
  116. package/lib/cjs/components-react.js +4 -6
  117. package/lib/cjs/components-react.js.map +1 -1
  118. package/lib/esm/components-react/breadcrumb/Breadcrumb.d.ts +5 -5
  119. package/lib/esm/components-react/breadcrumb/Breadcrumb.js +3 -3
  120. package/lib/esm/components-react/breadcrumb/Breadcrumb.js.map +1 -1
  121. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.d.ts +2 -2
  122. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.js +1 -1
  123. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
  124. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.d.ts +3 -3
  125. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.js +2 -2
  126. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
  127. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.d.ts +1 -1
  128. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.js +1 -1
  129. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
  130. package/lib/esm/components-react/common/showhide/ShowHideDialog.d.ts +2 -2
  131. package/lib/esm/components-react/common/showhide/ShowHideDialog.js +1 -1
  132. package/lib/esm/components-react/common/showhide/ShowHideDialog.js.map +1 -1
  133. package/lib/esm/components-react/common/showhide/ShowHideItem.d.ts +2 -2
  134. package/lib/esm/components-react/common/showhide/ShowHideItem.js.map +1 -1
  135. package/lib/esm/components-react/common/showhide/ShowHideMenu.d.ts +2 -2
  136. package/lib/esm/components-react/common/showhide/ShowHideMenu.js +1 -1
  137. package/lib/esm/components-react/common/showhide/ShowHideMenu.js.map +1 -1
  138. package/lib/esm/components-react/editors/ThemedEnumEditor.d.ts +3 -3
  139. package/lib/esm/components-react/editors/ThemedEnumEditor.js +2 -2
  140. package/lib/esm/components-react/editors/ThemedEnumEditor.js.map +1 -1
  141. package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts +22 -25
  142. package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
  143. package/lib/esm/components-react/filter-builder/FilterBuilder.js +12 -73
  144. package/lib/esm/components-react/filter-builder/FilterBuilder.js.map +1 -1
  145. package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts +80 -0
  146. package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -0
  147. package/lib/esm/components-react/filter-builder/FilterBuilderContext.js +60 -0
  148. package/lib/esm/components-react/filter-builder/FilterBuilderContext.js.map +1 -0
  149. package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts +14 -3
  150. package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
  151. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js +11 -5
  152. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  153. package/lib/esm/components-react/filter-builder/FilterBuilderRule.scss +4 -0
  154. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +25 -16
  155. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
  156. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js +15 -7
  157. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  158. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +14 -2
  159. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
  160. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js +7 -1
  161. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  162. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +16 -2
  163. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
  164. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js +7 -1
  165. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  166. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts +14 -2
  167. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
  168. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js +7 -1
  169. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  170. package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts +50 -7
  171. package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
  172. package/lib/esm/components-react/filter-builder/FilterBuilderState.js +54 -3
  173. package/lib/esm/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  174. package/lib/esm/components-react/filter-builder/Operators.d.ts +23 -5
  175. package/lib/esm/components-react/filter-builder/Operators.d.ts.map +1 -1
  176. package/lib/esm/components-react/filter-builder/Operators.js +23 -5
  177. package/lib/esm/components-react/filter-builder/Operators.js.map +1 -1
  178. package/lib/esm/components-react/filter-builder/Types.d.ts +24 -4
  179. package/lib/esm/components-react/filter-builder/Types.d.ts.map +1 -1
  180. package/lib/esm/components-react/filter-builder/Types.js +11 -1
  181. package/lib/esm/components-react/filter-builder/Types.js.map +1 -1
  182. package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts +2 -2
  183. package/lib/esm/components-react/iconpicker/IconPickerButton.js +2 -2
  184. package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
  185. package/lib/esm/components-react/propertygrid/component/PropertyGrid.d.ts +1 -1
  186. package/lib/esm/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
  187. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts +2 -2
  188. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts.map +1 -1
  189. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  190. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts +2 -2
  191. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  192. package/lib/esm/components-react/table/SimpleTableDataProvider.d.ts +1 -1
  193. package/lib/esm/components-react/table/SimpleTableDataProvider.js +1 -1
  194. package/lib/esm/components-react/table/SimpleTableDataProvider.js.map +1 -1
  195. package/lib/esm/components-react/table/TableDataProvider.d.ts +8 -8
  196. package/lib/esm/components-react/table/TableDataProvider.js +2 -2
  197. package/lib/esm/components-react/table/TableDataProvider.js.map +1 -1
  198. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.d.ts +16 -16
  199. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js +6 -6
  200. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
  201. package/lib/esm/components-react/table/component/ColumnDragLayer.d.ts +1 -1
  202. package/lib/esm/components-react/table/component/ColumnDragLayer.js +1 -1
  203. package/lib/esm/components-react/table/component/ColumnDragLayer.js.map +1 -1
  204. package/lib/esm/components-react/table/component/Table.d.ts +9 -9
  205. package/lib/esm/components-react/table/component/Table.d.ts.map +1 -1
  206. package/lib/esm/components-react/table/component/Table.js +2 -2
  207. package/lib/esm/components-react/table/component/Table.js.map +1 -1
  208. package/lib/esm/components-react/table/component/TableCell.d.ts +6 -6
  209. package/lib/esm/components-react/table/component/TableCell.js +3 -3
  210. package/lib/esm/components-react/table/component/TableCell.js.map +1 -1
  211. package/lib/esm/components-react/table/component/TableColumn.d.ts +1 -1
  212. package/lib/esm/components-react/table/component/TableColumn.js.map +1 -1
  213. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.d.ts +1 -1
  214. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.js +1 -1
  215. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
  216. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.d.ts +8 -8
  217. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.js +2 -2
  218. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
  219. package/lib/esm/components-react/table/component/dragdrop/withDragSource.d.ts +2 -2
  220. package/lib/esm/components-react/table/component/dragdrop/withDragSource.js +1 -1
  221. package/lib/esm/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
  222. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.d.ts +2 -2
  223. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.js +1 -1
  224. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
  225. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
  226. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  227. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  228. package/lib/esm/components-react/tree/TreeDataProvider.d.ts +2 -2
  229. package/lib/esm/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  230. package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
  231. package/lib/esm/components-react.d.ts +4 -6
  232. package/lib/esm/components-react.d.ts.map +1 -1
  233. package/lib/esm/components-react.js +4 -6
  234. package/lib/esm/components-react.js.map +1 -1
  235. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleProperty.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleProperty.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,aAAa;AACb,MAAM,WAAW,sCAAsC;IACrD,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpE,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,aAAa;AACb,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,sCAAsC,eAsC9F"}
1
+ {"version":3,"file":"FilterBuilderRuleProperty.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleProperty.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,oCAAoC;IACpC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,+DAA+D;IAC/D,yBAAyB,EAAE,CAAC,QAAQ,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpE,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,sCAAsC,eAsC9F"}
@@ -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,14 +27,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
27
  };
21
28
  Object.defineProperty(exports, "__esModule", { value: true });
22
29
  exports.PropertyFilterBuilderRuleProperty = 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
- *--------------------------------------------------------------------------------------------*/
27
30
  const React = __importStar(require("react"));
28
31
  const itwinui_react_1 = require("@itwin/itwinui-react");
29
32
  const UiComponents_1 = require("../UiComponents");
30
- /** @alpha */
33
+ /**
34
+ * Component that renders [[PropertyFilterBuilderRuleRenderer]] property selector.
35
+ * @internal
36
+ */
31
37
  function PropertyFilterBuilderRuleProperty(props) {
32
38
  const { selectedProperty, properties, onSelectedPropertyChanged, propertyRenderer, isDisabled } = props;
33
39
  const selectOptions = React.useMemo(() => properties.map((property) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleProperty.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleProperty.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,6CAA+B;AAE/B,wDAAwE;AACxE,kDAA+C;AAW/C,aAAa;AACb,SAAgB,iCAAiC,CAAC,KAA6C;IAC7F,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAExG,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAyB,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9F,EAAE,EAAE,QAAQ,CAAC,IAAI;QACjB,KAAK,EAAE,QAAQ,CAAC,YAAY;QAC5B,KAAK,EAAE,QAAQ,CAAC,IAAI;KACrB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEnB,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QAC3D,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IACnF,CAAC,EAAE,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAE5C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,uBAAuB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,MAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAA,CAAC,CAAC;QACxG,IAAI,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,IAAI,OAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAA;YAC1D,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;IACvD,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,YAAkC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE;QAChG,OAAO,oBAAC,wBAAQ,IAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,IACrD,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CACpE,CAAC;IACd,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO,6BAAK,SAAS,EAAC,eAAe;QACnC,oBAAC,wBAAQ,IACP,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,EAC7B,UAAU,EAAE;gBACV,WAAW,EAAE,2BAAY,CAAC,SAAS,CAAC,8BAA8B,CAAC;gBACnE,QAAQ,EAAE,UAAU;aACrB,EACD,YAAY,EAAE,YAAY,EAC1B,oBAAoB,EAAE,IAAI,GAC1B,CACE,CAAC;AACT,CAAC;AAtCD,8EAsCC","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 } from \"@itwin/appui-abstract\";\r\nimport { ComboBox, MenuItem, SelectOption } from \"@itwin/itwinui-react\";\r\nimport { UiComponents } from \"../UiComponents\";\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRulePropertyProps {\r\n properties: PropertyDescription[];\r\n selectedProperty?: PropertyDescription;\r\n onSelectedPropertyChanged: (property?: PropertyDescription) => void;\r\n propertyRenderer?: (name: string) => React.ReactNode;\r\n isDisabled?: boolean;\r\n}\r\n\r\n/** @alpha */\r\nexport function PropertyFilterBuilderRuleProperty(props: PropertyFilterBuilderRulePropertyProps) {\r\n const { selectedProperty, properties, onSelectedPropertyChanged, propertyRenderer, isDisabled } = props;\r\n\r\n const selectOptions = React.useMemo<SelectOption<string>[]>(() => properties.map((property) => ({\r\n id: property.name,\r\n label: property.displayLabel,\r\n value: property.name,\r\n })), [properties]);\r\n\r\n const onPropertyChanged = React.useCallback((name: string) => {\r\n onSelectedPropertyChanged(properties.find((property) => property.name === name));\r\n }, [properties, onSelectedPropertyChanged]);\r\n\r\n React.useEffect(() => {\r\n const currentSelectedProperty = properties.find((property) => property.name === selectedProperty?.name);\r\n if (currentSelectedProperty?.name !== selectedProperty?.name)\r\n onSelectedPropertyChanged(currentSelectedProperty);\r\n }, [properties, selectedProperty, onSelectedPropertyChanged]);\r\n\r\n const itemRenderer = React.useCallback((selectOption: SelectOption<string>, { isSelected, id }) => {\r\n return <MenuItem key={id} id={id} isSelected={isSelected}>\r\n {propertyRenderer ? propertyRenderer(selectOption.value) : selectOption.label}\r\n </MenuItem>;\r\n }, [propertyRenderer]);\r\n\r\n return <div className=\"rule-property\">\r\n <ComboBox\r\n options={selectOptions}\r\n onChange={onPropertyChanged}\r\n value={selectedProperty?.name}\r\n inputProps={{\r\n placeholder: UiComponents.translate(\"filterBuilder.chooseProperty\"),\r\n disabled: isDisabled,\r\n }}\r\n itemRenderer={itemRenderer}\r\n enableVirtualization={true}\r\n />\r\n </div>;\r\n}\r\n"]}
1
+ {"version":3,"file":"FilterBuilderRuleProperty.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleProperty.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AAE/B,wDAAwE;AACxE,kDAA+C;AAmB/C;;;GAGG;AACH,SAAgB,iCAAiC,CAAC,KAA6C;IAC7F,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAExG,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAyB,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9F,EAAE,EAAE,QAAQ,CAAC,IAAI;QACjB,KAAK,EAAE,QAAQ,CAAC,YAAY;QAC5B,KAAK,EAAE,QAAQ,CAAC,IAAI;KACrB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEnB,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QAC3D,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IACnF,CAAC,EAAE,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAE5C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,uBAAuB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,MAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAA,CAAC,CAAC;QACxG,IAAI,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,IAAI,OAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAA;YAC1D,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;IACvD,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,YAAkC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE;QAChG,OAAO,oBAAC,wBAAQ,IAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,IACrD,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CACpE,CAAC;IACd,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO,6BAAK,SAAS,EAAC,eAAe;QACnC,oBAAC,wBAAQ,IACP,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,EAC7B,UAAU,EAAE;gBACV,WAAW,EAAE,2BAAY,CAAC,SAAS,CAAC,8BAA8B,CAAC;gBACnE,QAAQ,EAAE,UAAU;aACrB,EACD,YAAY,EAAE,YAAY,EAC1B,oBAAoB,EAAE,IAAI,GAC1B,CACE,CAAC;AACT,CAAC;AAtCD,8EAsCC","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 { ComboBox, MenuItem, SelectOption } from \"@itwin/itwinui-react\";\r\nimport { UiComponents } from \"../UiComponents\";\r\n\r\n/**\r\n * Props for [[PropertyFilterBuilderRuleProperty]] component.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderRulePropertyProps {\r\n /** List of available properties. */\r\n properties: PropertyDescription[];\r\n /** Currently selected property. */\r\n selectedProperty?: PropertyDescription;\r\n /** Callback that is invoked when selected property changes. */\r\n onSelectedPropertyChanged: (property?: PropertyDescription) => void;\r\n /** Custom renderer for property item inside selector. */\r\n propertyRenderer?: (name: string) => React.ReactNode;\r\n /** Specifies whether selector should be disabled or not. */\r\n isDisabled?: boolean;\r\n}\r\n\r\n/**\r\n * Component that renders [[PropertyFilterBuilderRuleRenderer]] property selector.\r\n * @internal\r\n */\r\nexport function PropertyFilterBuilderRuleProperty(props: PropertyFilterBuilderRulePropertyProps) {\r\n const { selectedProperty, properties, onSelectedPropertyChanged, propertyRenderer, isDisabled } = props;\r\n\r\n const selectOptions = React.useMemo<SelectOption<string>[]>(() => properties.map((property) => ({\r\n id: property.name,\r\n label: property.displayLabel,\r\n value: property.name,\r\n })), [properties]);\r\n\r\n const onPropertyChanged = React.useCallback((name: string) => {\r\n onSelectedPropertyChanged(properties.find((property) => property.name === name));\r\n }, [properties, onSelectedPropertyChanged]);\r\n\r\n React.useEffect(() => {\r\n const currentSelectedProperty = properties.find((property) => property.name === selectedProperty?.name);\r\n if (currentSelectedProperty?.name !== selectedProperty?.name)\r\n onSelectedPropertyChanged(currentSelectedProperty);\r\n }, [properties, selectedProperty, onSelectedPropertyChanged]);\r\n\r\n const itemRenderer = React.useCallback((selectOption: SelectOption<string>, { isSelected, id }) => {\r\n return <MenuItem key={id} id={id} isSelected={isSelected}>\r\n {propertyRenderer ? propertyRenderer(selectOption.value) : selectOption.label}\r\n </MenuItem>;\r\n }, [propertyRenderer]);\r\n\r\n return <div className=\"rule-property\">\r\n <ComboBox\r\n options={selectOptions}\r\n onChange={onPropertyChanged}\r\n value={selectedProperty?.name}\r\n inputProps={{\r\n placeholder: UiComponents.translate(\"filterBuilder.chooseProperty\"),\r\n disabled: isDisabled,\r\n }}\r\n itemRenderer={itemRenderer}\r\n enableVirtualization={true}\r\n />\r\n </div>;\r\n}\r\n"]}
@@ -1,11 +1,23 @@
1
+ /** @packageDocumentation
2
+ * @module PropertyFilterBuilder
3
+ */
1
4
  /// <reference types="react" />
2
5
  import { PropertyDescription, PropertyValue } from "@itwin/appui-abstract";
3
- /** @alpha */
6
+ /**
7
+ * Props for [[PropertyFilterBuilderRuleValue]] component.
8
+ * @internal
9
+ */
4
10
  export interface PropertyFilterBuilderRuleValueProps {
11
+ /** Currently entered value. */
5
12
  value?: PropertyValue;
13
+ /** Property used in rule to which this value will be compared to. */
6
14
  property: PropertyDescription;
15
+ /** Callback that is invoked when value changes. */
7
16
  onChange: (value: PropertyValue) => void;
8
17
  }
9
- /** @alpha */
18
+ /**
19
+ * Component that renders [[PropertyFilterBuilderRuleRenderer]] value input.
20
+ * @internal
21
+ */
10
22
  export declare function PropertyFilterBuilderRuleValue(props: PropertyFilterBuilderRuleValueProps): JSX.Element;
11
23
  //# sourceMappingURL=FilterBuilderRuleValue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleValue.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleValue.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,mBAAmB,EAAkB,aAAa,EAAuB,MAAM,uBAAuB,CAAC;AAGhH,aAAa;AACb,MAAM,WAAW,mCAAmC;IAClD,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC1C;AAED,aAAa;AACb,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,mCAAmC,eAmBxF"}
1
+ {"version":3,"file":"FilterBuilderRuleValue.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleValue.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAGH,OAAO,EAAE,mBAAmB,EAAkB,aAAa,EAAuB,MAAM,uBAAuB,CAAC;AAGhH;;;GAGG;AACH,MAAM,WAAW,mCAAmC;IAClD,+BAA+B;IAC/B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,qEAAqE;IACrE,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,mCAAmC,eAmBxF"}
@@ -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,14 +27,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
27
  };
21
28
  Object.defineProperty(exports, "__esModule", { value: true });
22
29
  exports.PropertyFilterBuilderRuleValue = 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
- *--------------------------------------------------------------------------------------------*/
27
30
  const React = __importStar(require("react"));
28
31
  const appui_abstract_1 = require("@itwin/appui-abstract");
29
32
  const EditorContainer_1 = require("../editors/EditorContainer");
30
- /** @alpha */
33
+ /**
34
+ * Component that renders [[PropertyFilterBuilderRuleRenderer]] value input.
35
+ * @internal
36
+ */
31
37
  function PropertyFilterBuilderRuleValue(props) {
32
38
  const { value, property, onChange } = props;
33
39
  const propertyRecord = React.useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleValue.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleValue.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,6CAA+B;AAC/B,0DAAgH;AAChH,gEAAkF;AASlF,aAAa;AACb,SAAgB,8BAA8B,CAAC,KAA0C;IACvF,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE5C,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxC,OAAO,IAAI,+BAAc,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,WAAW,EAAE,oCAAmB,CAAC,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC/F,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtB,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAuB,EAAE,EAAE;QAC5E,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,6BAAK,SAAS,EAAC,YAAY;QAChC,oBAAC,iCAAe,IACd,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC,EAC9C,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,KAAK,GACf,CACE,CAAC;AACT,CAAC;AAnBD,wEAmBC","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, PropertyRecord, PropertyValue, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { EditorContainer, PropertyUpdatedArgs } from \"../editors/EditorContainer\";\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRuleValueProps {\r\n value?: PropertyValue;\r\n property: PropertyDescription;\r\n onChange: (value: PropertyValue) => void;\r\n}\r\n\r\n/** @alpha */\r\nexport function PropertyFilterBuilderRuleValue(props: PropertyFilterBuilderRuleValueProps) {\r\n const { value, property, onChange } = props;\r\n\r\n const propertyRecord = React.useMemo(() => {\r\n return new PropertyRecord(value ?? { valueFormat: PropertyValueFormat.Primitive }, property);\r\n }, [value, property]);\r\n\r\n const onValueChange = React.useCallback(({ newValue }: PropertyUpdatedArgs) => {\r\n onChange(newValue);\r\n }, [onChange]);\r\n\r\n return <div className=\"rule-value\">\r\n <EditorContainer\r\n propertyRecord={propertyRecord}\r\n onCancel={/* istanbul ignore next */ () => { }}\r\n onCommit={onValueChange}\r\n setFocus={false}\r\n />\r\n </div>;\r\n}\r\n"]}
1
+ {"version":3,"file":"FilterBuilderRuleValue.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleValue.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AAC/B,0DAAgH;AAChH,gEAAkF;AAelF;;;GAGG;AACH,SAAgB,8BAA8B,CAAC,KAA0C;IACvF,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE5C,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxC,OAAO,IAAI,+BAAc,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,WAAW,EAAE,oCAAmB,CAAC,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC/F,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtB,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAuB,EAAE,EAAE;QAC5E,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,6BAAK,SAAS,EAAC,YAAY;QAChC,oBAAC,iCAAe,IACd,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC,EAC9C,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,KAAK,GACf,CACE,CAAC;AACT,CAAC;AAnBD,wEAmBC","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, PropertyRecord, PropertyValue, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { EditorContainer, PropertyUpdatedArgs } from \"../editors/EditorContainer\";\r\n\r\n/**\r\n * Props for [[PropertyFilterBuilderRuleValue]] component.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderRuleValueProps {\r\n /** Currently entered value. */\r\n value?: PropertyValue;\r\n /** Property used in rule to which this value will be compared to. */\r\n property: PropertyDescription;\r\n /** Callback that is invoked when value changes. */\r\n onChange: (value: PropertyValue) => void;\r\n}\r\n\r\n/**\r\n * Component that renders [[PropertyFilterBuilderRuleRenderer]] value input.\r\n * @internal\r\n */\r\nexport function PropertyFilterBuilderRuleValue(props: PropertyFilterBuilderRuleValueProps) {\r\n const { value, property, onChange } = props;\r\n\r\n const propertyRecord = React.useMemo(() => {\r\n return new PropertyRecord(value ?? { valueFormat: PropertyValueFormat.Primitive }, property);\r\n }, [value, property]);\r\n\r\n const onValueChange = React.useCallback(({ newValue }: PropertyUpdatedArgs) => {\r\n onChange(newValue);\r\n }, [onChange]);\r\n\r\n return <div className=\"rule-value\">\r\n <EditorContainer\r\n propertyRecord={propertyRecord}\r\n onCancel={/* istanbul ignore next */ () => { }}\r\n onCommit={onValueChange}\r\n setFocus={false}\r\n />\r\n </div>;\r\n}\r\n"]}
@@ -1,44 +1,87 @@
1
+ /** @packageDocumentation
2
+ * @module PropertyFilterBuilder
3
+ */
1
4
  import { PropertyDescription, PropertyValue } from "@itwin/appui-abstract";
2
5
  import { PropertyFilterRuleGroupOperator, PropertyFilterRuleOperator } from "./Operators";
3
6
  import { PropertyFilter } from "./Types";
4
- /** @alpha */
7
+ /**
8
+ * Data structure that describes [[PropertyFilterBuilder]] component state.
9
+ * @internal
10
+ */
5
11
  export interface PropertyFilterBuilderState {
12
+ /** Root group of rules in [[PropertyFilterBuilder]] component. */
6
13
  rootGroup: PropertyFilterBuilderRuleGroup;
7
14
  }
8
- /** @alpha */
15
+ /**
16
+ * Type that describes [[PropertyFilterBuilder]] component group item.
17
+ * @internal
18
+ */
9
19
  export declare type PropertyFilterBuilderRuleGroupItem = PropertyFilterBuilderRuleGroup | PropertyFilterBuilderRule;
10
- /** @alpha */
20
+ /**
21
+ * Data structure that describes [[PropertyFilterBuilder]] component rule group.
22
+ * @internal
23
+ */
11
24
  export interface PropertyFilterBuilderRuleGroup {
25
+ /** Id of this rule group. */
12
26
  id: string;
27
+ /** Id of rule group that this group is nested in. */
13
28
  groupId?: string;
29
+ /** Operator that should join items in this group. */
14
30
  operator: PropertyFilterRuleGroupOperator;
31
+ /** Items in this group. */
15
32
  items: PropertyFilterBuilderRuleGroupItem[];
16
33
  }
17
- /** @alpha */
34
+ /**
35
+ * Data structure that describes [[PropertyFilterBuilder]] component single rule.
36
+ * @internal
37
+ */
18
38
  export interface PropertyFilterBuilderRule {
39
+ /** Id of this rule. */
19
40
  id: string;
41
+ /** Id of rule group that this rule is nested in. */
20
42
  groupId: string;
43
+ /** Property used in this rule. */
21
44
  property?: PropertyDescription;
45
+ /** Operator that should be used to compare property value. */
22
46
  operator?: PropertyFilterRuleOperator;
47
+ /** Value that property should be compared to. */
23
48
  value?: PropertyValue;
24
49
  }
25
- /** @alpha */
50
+ /**
51
+ * Actions for controlling [[PropertyFilterBuilder]] component state.
52
+ * @internal
53
+ */
26
54
  export declare class PropertyFilterBuilderActions {
27
55
  private setState;
28
56
  constructor(setState: (setter: (prevState: PropertyFilterBuilderState) => PropertyFilterBuilderState) => void);
29
57
  private updateState;
58
+ /** Adds new rule or group of rules to the group specified by path. */
30
59
  addItem(path: string[], itemType: "RULE_GROUP" | "RULE"): void;
60
+ /** Removes item specified by path. */
31
61
  removeItem(path: string[]): void;
62
+ /** Sets operator of rule group specified by the path. */
32
63
  setRuleGroupOperator(path: string[], operator: PropertyFilterRuleGroupOperator): void;
64
+ /** Sets property of rule specified by the path. */
33
65
  setRuleProperty(path: string[], property?: PropertyDescription): void;
66
+ /** Sets operator of rule specified by the path. */
34
67
  setRuleOperator(path: string[], operator: PropertyFilterRuleOperator): void;
68
+ /** Sets value of rule specified by the path. */
35
69
  setRuleValue(path: string[], value: PropertyValue): void;
36
70
  }
37
- /** @alpha */
71
+ /**
72
+ * Function to check if supplied [[PropertyFilterBuilderRuleGroupItem]] is [[PropertyFilterBuilderRuleGroup]].
73
+ * @internal
74
+ */
38
75
  export declare function isPropertyFilterBuilderRuleGroup(item: PropertyFilterBuilderRuleGroupItem): item is PropertyFilterBuilderRuleGroup;
39
- /** @alpha */
76
+ /**
77
+ * Custom hook that creates state for [[PropertyFilterBuilder]] component. It creates empty state or initializes
78
+ * state from supplied initial filter.
79
+ * @internal
80
+ */
40
81
  export declare function usePropertyFilterBuilderState(initialFilter?: PropertyFilter): {
41
82
  state: PropertyFilterBuilderState;
42
83
  actions: PropertyFilterBuilderActions;
43
84
  };
85
+ /** @internal */
86
+ export declare function buildPropertyFilter(groupItem: PropertyFilterBuilderRuleGroupItem): PropertyFilter | undefined;
44
87
  //# sourceMappingURL=FilterBuilderState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderState.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderState.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAiC,+BAA+B,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzH,OAAO,EAA6B,cAAc,EAAsB,MAAM,SAAS,CAAC;AAExF,aAAa;AACb,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,8BAA8B,CAAC;CAC3C;AAED,aAAa;AACb,oBAAY,kCAAkC,GAAG,8BAA8B,GAAG,yBAAyB,CAAC;AAE5G,aAAa;AACb,MAAM,WAAW,8BAA8B;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,+BAA+B,CAAC;IAC1C,KAAK,EAAE,kCAAkC,EAAE,CAAC;CAC7C;AAED,aAAa;AACb,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,QAAQ,CAAC,EAAE,0BAA0B,CAAC;IACtC,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,aAAa;AACb,qBAAa,4BAA4B;IAC3B,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,0BAA0B,KAAK,0BAA0B,KAAK,IAAI;IAErH,OAAO,CAAC,WAAW;IAIZ,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM;IAUvD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE;IAoBzB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,+BAA+B;IAS9E,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,mBAAmB;IAU9D,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,0BAA0B;IAWpE,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa;CAQzD;AAED,aAAa;AACb,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,kCAAkC,GAAG,IAAI,IAAI,8BAA8B,CAEjI;AAED,aAAa;AACb,wBAAgB,6BAA6B,CAAC,aAAa,CAAC,EAAE,cAAc;;;EAO3E"}
1
+ {"version":3,"file":"FilterBuilderState.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderState.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAuB,MAAM,uBAAuB,CAAC;AAEhG,OAAO,EAAiC,+BAA+B,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzH,OAAO,EAA6B,cAAc,EAAsB,MAAM,SAAS,CAAC;AAExF;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,kEAAkE;IAClE,SAAS,EAAE,8BAA8B,CAAC;CAC3C;AAED;;;GAGG;AACH,oBAAY,kCAAkC,GAAG,8BAA8B,GAAG,yBAAyB,CAAC;AAE5G;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC7C,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,QAAQ,EAAE,+BAA+B,CAAC;IAC1C,2BAA2B;IAC3B,KAAK,EAAE,kCAAkC,EAAE,CAAC;CAC7C;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,0BAA0B,CAAC;IACtC,iDAAiD;IACjD,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,4BAA4B;IAC3B,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,0BAA0B,KAAK,0BAA0B,KAAK,IAAI;IAErH,OAAO,CAAC,WAAW;IAInB,sEAAsE;IAC/D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM;IAU9D,sCAAsC;IAC/B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE;IAoBhC,yDAAyD;IAClD,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,+BAA+B;IASrF,mDAAmD;IAC5C,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,mBAAmB;IAUrE,mDAAmD;IAC5C,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,0BAA0B;IAW3E,gDAAgD;IACzC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa;CAQzD;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,kCAAkC,GAAG,IAAI,IAAI,8BAA8B,CAEjI;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,aAAa,CAAC,EAAE,cAAc;;;EAO3E;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,kCAAkC,GAAG,cAAc,GAAG,SAAS,CAI7G"}
@@ -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,17 +26,17 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
26
  return result;
20
27
  };
21
28
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.usePropertyFilterBuilderState = exports.isPropertyFilterBuilderRuleGroup = exports.PropertyFilterBuilderActions = 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.buildPropertyFilter = exports.usePropertyFilterBuilderState = exports.isPropertyFilterBuilderRuleGroup = exports.PropertyFilterBuilderActions = void 0;
27
30
  const immer_1 = require("immer");
28
31
  const React = __importStar(require("react"));
32
+ const appui_abstract_1 = require("@itwin/appui-abstract");
29
33
  const core_bentley_1 = require("@itwin/core-bentley");
30
34
  const Operators_1 = require("./Operators");
31
35
  const Types_1 = require("./Types");
32
- /** @alpha */
36
+ /**
37
+ * Actions for controlling [[PropertyFilterBuilder]] component state.
38
+ * @internal
39
+ */
33
40
  class PropertyFilterBuilderActions {
34
41
  constructor(setState) {
35
42
  this.setState = setState;
@@ -37,6 +44,7 @@ class PropertyFilterBuilderActions {
37
44
  updateState(updater) {
38
45
  this.setState((0, immer_1.produce)(updater));
39
46
  }
47
+ /** Adds new rule or group of rules to the group specified by path. */
40
48
  addItem(path, itemType) {
41
49
  this.updateState((state) => {
42
50
  const parentGroup = findRuleGroup(state.rootGroup, path);
@@ -46,6 +54,7 @@ class PropertyFilterBuilderActions {
46
54
  parentGroup.items.push(item);
47
55
  });
48
56
  }
57
+ /** Removes item specified by path. */
49
58
  removeItem(path) {
50
59
  function removeItemFromGroup(state, pathToItem) {
51
60
  const pathToParent = pathToItem.slice(0, -1);
@@ -64,6 +73,7 @@ class PropertyFilterBuilderActions {
64
73
  removeItemFromGroup(state, path);
65
74
  });
66
75
  }
76
+ /** Sets operator of rule group specified by the path. */
67
77
  setRuleGroupOperator(path, operator) {
68
78
  this.updateState((state) => {
69
79
  const group = findRuleGroup(state.rootGroup, path);
@@ -72,6 +82,7 @@ class PropertyFilterBuilderActions {
72
82
  group.operator = operator;
73
83
  });
74
84
  }
85
+ /** Sets property of rule specified by the path. */
75
86
  setRuleProperty(path, property) {
76
87
  this.updateState((state) => {
77
88
  const rule = findRule(state.rootGroup, path);
@@ -81,6 +92,7 @@ class PropertyFilterBuilderActions {
81
92
  rule.value = undefined;
82
93
  });
83
94
  }
95
+ /** Sets operator of rule specified by the path. */
84
96
  setRuleOperator(path, operator) {
85
97
  this.updateState((state) => {
86
98
  const rule = findRule(state.rootGroup, path);
@@ -91,6 +103,7 @@ class PropertyFilterBuilderActions {
91
103
  rule.operator = operator;
92
104
  });
93
105
  }
106
+ /** Sets value of rule specified by the path. */
94
107
  setRuleValue(path, value) {
95
108
  this.updateState((state) => {
96
109
  const rule = findRule(state.rootGroup, path);
@@ -101,18 +114,57 @@ class PropertyFilterBuilderActions {
101
114
  }
102
115
  }
103
116
  exports.PropertyFilterBuilderActions = PropertyFilterBuilderActions;
104
- /** @alpha */
117
+ /**
118
+ * Function to check if supplied [[PropertyFilterBuilderRuleGroupItem]] is [[PropertyFilterBuilderRuleGroup]].
119
+ * @internal
120
+ */
105
121
  function isPropertyFilterBuilderRuleGroup(item) {
106
122
  return item.items !== undefined;
107
123
  }
108
124
  exports.isPropertyFilterBuilderRuleGroup = isPropertyFilterBuilderRuleGroup;
109
- /** @alpha */
125
+ /**
126
+ * Custom hook that creates state for [[PropertyFilterBuilder]] component. It creates empty state or initializes
127
+ * state from supplied initial filter.
128
+ * @internal
129
+ */
110
130
  function usePropertyFilterBuilderState(initialFilter) {
111
131
  const [state, setState] = React.useState(() => initialFilter ? convertFilterToState(initialFilter) : { rootGroup: createEmptyRuleGroup() });
112
132
  const [actions] = React.useState(() => new PropertyFilterBuilderActions(setState));
113
133
  return { state, actions };
114
134
  }
115
135
  exports.usePropertyFilterBuilderState = usePropertyFilterBuilderState;
136
+ /** @internal */
137
+ function buildPropertyFilter(groupItem) {
138
+ if (isPropertyFilterBuilderRuleGroup(groupItem))
139
+ return buildPropertyFilterFromRuleGroup(groupItem);
140
+ return buildPropertyFilterFromRule(groupItem);
141
+ }
142
+ exports.buildPropertyFilter = buildPropertyFilter;
143
+ function buildPropertyFilterFromRuleGroup(rootGroup) {
144
+ if (rootGroup.items.length === 0)
145
+ return undefined;
146
+ const rules = new Array();
147
+ for (const item of rootGroup.items) {
148
+ const rule = buildPropertyFilter(item);
149
+ if (!rule)
150
+ return undefined;
151
+ rules.push(rule);
152
+ }
153
+ if (rules.length === 1)
154
+ return rules[0];
155
+ return {
156
+ operator: rootGroup.operator,
157
+ rules,
158
+ };
159
+ }
160
+ function buildPropertyFilterFromRule(rule) {
161
+ const { property, operator, value } = rule;
162
+ if (!property || operator === undefined)
163
+ return undefined;
164
+ if (!(0, Operators_1.isUnaryPropertyFilterOperator)(operator) && (value === undefined || value.valueFormat !== appui_abstract_1.PropertyValueFormat.Primitive || value.value === undefined))
165
+ return undefined;
166
+ return { property, operator, value };
167
+ }
116
168
  function createEmptyRule(groupId) {
117
169
  return {
118
170
  id: core_bentley_1.Guid.createValue(),
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderState.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderState.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,iCAAuC;AACvC,6CAA+B;AAE/B,sDAA2C;AAC3C,2CAAyH;AACzH,mCAAwF;AA2BxF,aAAa;AACb,MAAa,4BAA4B;IACvC,YAAoB,QAAiG;QAAjG,aAAQ,GAAR,QAAQ,CAAyF;IAAI,CAAC;IAElH,WAAW,CAAC,OAA2D;QAC7E,IAAI,CAAC,QAAQ,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,CAAC,CAAC;IAClC,CAAC;IAEM,OAAO,CAAC,IAAc,EAAE,QAA+B;QAC5D,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;YACzB,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,WAAW;gBACd,OAAO;YACT,MAAM,IAAI,GAAG,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAChH,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,UAAU,CAAC,IAAc;QAC9B,SAAS,mBAAmB,CAAC,KAAwC,EAAE,UAAoB;YACzF,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW;gBACd,OAAO;YACT,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;YAC5E,IAAI,SAAS,KAAK,CAAC,CAAC;gBAClB,OAAO;YACT,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACvC,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAChC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;YACzB,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,oBAAoB,CAAC,IAAc,EAAE,QAAyC;QACnF,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK;gBACR,OAAO;YACT,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,eAAe,CAAC,IAAc,EAAE,QAA8B;QACnE,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI;gBACP,OAAO;YACT,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,eAAe,CAAC,IAAc,EAAE,QAAoC;QACzE,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI;gBACP,OAAO;YACT,IAAI,IAAA,yCAA6B,EAAC,QAAQ,CAAC;gBACzC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,YAAY,CAAC,IAAc,EAAE,KAAoB;QACtD,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI;gBACP,OAAO;YACT,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA3ED,oEA2EC;AAED,aAAa;AACb,SAAgB,gCAAgC,CAAC,IAAwC;IACvF,OAAQ,IAAY,CAAC,KAAK,KAAK,SAAS,CAAC;AAC3C,CAAC;AAFD,4EAEC;AAED,aAAa;AACb,SAAgB,6BAA6B,CAAC,aAA8B;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CACtC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,CAClG,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,4BAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEnF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAPD,sEAOC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,OAAO;QACL,EAAE,EAAE,mBAAI,CAAC,WAAW,EAAE;QACtB,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgB;IAC5C,MAAM,EAAE,GAAG,mBAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,OAAO;QACL,EAAE;QACF,OAAO;QACP,QAAQ,EAAE,2CAA+B,CAAC,GAAG;QAC7C,KAAK,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,SAAyC,EAAE,IAAc;IAC9E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QACnB,OAAO,SAAS,CAAC;IAEnB,MAAM,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC;IAC9E,IAAI,CAAC,WAAW,IAAI,CAAC,gCAAgC,CAAC,WAAW,CAAC;QAChE,OAAO,SAAS,CAAC;IAEnB,OAAO,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,QAAQ,CAAC,SAAyC,EAAE,IAAc;IACzE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QACnB,OAAO,SAAS,CAAC;IAEnB,MAAM,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC;IAC9E,IAAI,CAAC,WAAW;QACd,OAAO,SAAS,CAAC;IAEnB,IAAI,gCAAgC,CAAC,WAAW,CAAC;QAC/C,OAAO,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAErC,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAsB,EAAE,QAAgB;IAChE,MAAM,EAAE,GAAG,mBAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,IAAI,IAAA,iCAAyB,EAAC,MAAM,CAAC;QACnC,OAAO;YACL,EAAE;YACF,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SAC9D,CAAC;IACJ,OAAO,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,MAA0B,EAAE,QAAgB;IAC/D,OAAO;QACL,EAAE,EAAE,mBAAI,CAAC,WAAW,EAAE;QACtB,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAsB;IAClD,MAAM,EAAE,GAAG,mBAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,IAAI,IAAA,iCAAyB,EAAC,MAAM,CAAC,EAAE;QACrC,OAAO;YACL,SAAS,EAAE;gBACT,EAAE;gBACF,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;aAC9D;SACF,CAAC;KACH;IACD,OAAO;QACL,SAAS,EAAE;YACT,EAAE;YACF,QAAQ,EAAE,2CAA+B,CAAC,GAAG;YAC7C,KAAK,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SACjC;KACF,CAAC;AACJ,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 { Draft, produce } from \"immer\";\r\nimport * as React from \"react\";\r\nimport { PropertyDescription, PropertyValue } from \"@itwin/appui-abstract\";\r\nimport { Guid } from \"@itwin/core-bentley\";\r\nimport { isUnaryPropertyFilterOperator, PropertyFilterRuleGroupOperator, PropertyFilterRuleOperator } from \"./Operators\";\r\nimport { isPropertyFilterRuleGroup, PropertyFilter, PropertyFilterRule } from \"./Types\";\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderState {\r\n rootGroup: PropertyFilterBuilderRuleGroup;\r\n}\r\n\r\n/** @alpha */\r\nexport type PropertyFilterBuilderRuleGroupItem = PropertyFilterBuilderRuleGroup | PropertyFilterBuilderRule;\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRuleGroup {\r\n id: string;\r\n groupId?: string;\r\n operator: PropertyFilterRuleGroupOperator;\r\n items: PropertyFilterBuilderRuleGroupItem[];\r\n}\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRule {\r\n id: string;\r\n groupId: string;\r\n property?: PropertyDescription;\r\n operator?: PropertyFilterRuleOperator;\r\n value?: PropertyValue;\r\n}\r\n\r\n/** @alpha */\r\nexport class PropertyFilterBuilderActions {\r\n constructor(private setState: (setter: (prevState: PropertyFilterBuilderState) => PropertyFilterBuilderState) => void) { }\r\n\r\n private updateState(updater: (state: Draft<PropertyFilterBuilderState>) => void) {\r\n this.setState(produce(updater));\r\n }\r\n\r\n public addItem(path: string[], itemType: \"RULE_GROUP\" | \"RULE\") {\r\n this.updateState((state) => {\r\n const parentGroup = findRuleGroup(state.rootGroup, path);\r\n if (!parentGroup)\r\n return;\r\n const item = itemType === \"RULE_GROUP\" ? createEmptyRuleGroup(parentGroup.id) : createEmptyRule(parentGroup.id);\r\n parentGroup.items.push(item);\r\n });\r\n }\r\n\r\n public removeItem(path: string[]) {\r\n function removeItemFromGroup(state: Draft<PropertyFilterBuilderState>, pathToItem: string[]) {\r\n const pathToParent = pathToItem.slice(0, -1);\r\n const parentGroup = findRuleGroup(state.rootGroup, pathToParent);\r\n if (!parentGroup)\r\n return;\r\n const itemId = pathToItem[pathToItem.length - 1];\r\n const itemIndex = parentGroup.items.findIndex((item) => item.id === itemId);\r\n if (itemIndex === -1)\r\n return;\r\n parentGroup.items.splice(itemIndex, 1);\r\n if (parentGroup.items.length === 0)\r\n removeItemFromGroup(state, pathToParent);\r\n }\r\n\r\n this.updateState((state) => {\r\n removeItemFromGroup(state, path);\r\n });\r\n }\r\n\r\n public setRuleGroupOperator(path: string[], operator: PropertyFilterRuleGroupOperator) {\r\n this.updateState((state) => {\r\n const group = findRuleGroup(state.rootGroup, path);\r\n if (!group)\r\n return;\r\n group.operator = operator;\r\n });\r\n }\r\n\r\n public setRuleProperty(path: string[], property?: PropertyDescription) {\r\n this.updateState((state) => {\r\n const rule = findRule(state.rootGroup, path);\r\n if (!rule)\r\n return;\r\n rule.property = property;\r\n rule.value = undefined;\r\n });\r\n }\r\n\r\n public setRuleOperator(path: string[], operator: PropertyFilterRuleOperator) {\r\n this.updateState((state) => {\r\n const rule = findRule(state.rootGroup, path);\r\n if (!rule)\r\n return;\r\n if (isUnaryPropertyFilterOperator(operator))\r\n rule.value = undefined;\r\n rule.operator = operator;\r\n });\r\n }\r\n\r\n public setRuleValue(path: string[], value: PropertyValue) {\r\n this.updateState((state) => {\r\n const rule = findRule(state.rootGroup, path);\r\n if (!rule)\r\n return;\r\n rule.value = value;\r\n });\r\n }\r\n}\r\n\r\n/** @alpha */\r\nexport function isPropertyFilterBuilderRuleGroup(item: PropertyFilterBuilderRuleGroupItem): item is PropertyFilterBuilderRuleGroup {\r\n return (item as any).items !== undefined;\r\n}\r\n\r\n/** @alpha */\r\nexport function usePropertyFilterBuilderState(initialFilter?: PropertyFilter) {\r\n const [state, setState] = React.useState<PropertyFilterBuilderState>(\r\n () => initialFilter ? convertFilterToState(initialFilter) : { rootGroup: createEmptyRuleGroup() }\r\n );\r\n const [actions] = React.useState(() => new PropertyFilterBuilderActions(setState));\r\n\r\n return { state, actions };\r\n}\r\n\r\nfunction createEmptyRule(groupId: string): PropertyFilterBuilderRule {\r\n return {\r\n id: Guid.createValue(),\r\n groupId,\r\n };\r\n}\r\n\r\nfunction createEmptyRuleGroup(groupId?: string): PropertyFilterBuilderRuleGroup {\r\n const id = Guid.createValue();\r\n return {\r\n id,\r\n groupId,\r\n operator: PropertyFilterRuleGroupOperator.And,\r\n items: [createEmptyRule(id)],\r\n };\r\n}\r\n\r\nfunction findRuleGroup(rootGroup: PropertyFilterBuilderRuleGroup, path: string[]): PropertyFilterBuilderRuleGroup | undefined {\r\n if (path.length === 0)\r\n return rootGroup;\r\n\r\n const [currentItemId, ...rest] = path;\r\n const currentItem = rootGroup.items.find((item) => item.id === currentItemId);\r\n if (!currentItem || !isPropertyFilterBuilderRuleGroup(currentItem))\r\n return undefined;\r\n\r\n return findRuleGroup(currentItem, rest);\r\n}\r\n\r\nfunction findRule(rootGroup: PropertyFilterBuilderRuleGroup, path: string[]): PropertyFilterBuilderRule | undefined {\r\n if (path.length === 0)\r\n return undefined;\r\n\r\n const [currentItemId, ...rest] = path;\r\n const currentItem = rootGroup.items.find((item) => item.id === currentItemId);\r\n if (!currentItem)\r\n return undefined;\r\n\r\n if (isPropertyFilterBuilderRuleGroup(currentItem))\r\n return findRule(currentItem, rest);\r\n\r\n return currentItem;\r\n}\r\n\r\nfunction getRuleGroupItem(filter: PropertyFilter, parentId: string): PropertyFilterBuilderRuleGroupItem {\r\n const id = Guid.createValue();\r\n if (isPropertyFilterRuleGroup(filter))\r\n return {\r\n id,\r\n groupId: parentId,\r\n operator: filter.operator,\r\n items: filter.rules.map((rule) => getRuleGroupItem(rule, id)),\r\n };\r\n return getRuleItem(filter, id);\r\n}\r\n\r\nfunction getRuleItem(filter: PropertyFilterRule, parentId: string) {\r\n return {\r\n id: Guid.createValue(),\r\n groupId: parentId,\r\n property: filter.property,\r\n operator: filter.operator,\r\n value: filter.value,\r\n };\r\n}\r\n\r\nfunction convertFilterToState(filter: PropertyFilter): PropertyFilterBuilderState {\r\n const id = Guid.createValue();\r\n if (isPropertyFilterRuleGroup(filter)) {\r\n return {\r\n rootGroup: {\r\n id,\r\n operator: filter.operator,\r\n items: filter.rules.map((rule) => getRuleGroupItem(rule, id)),\r\n },\r\n };\r\n }\r\n return {\r\n rootGroup: {\r\n id,\r\n operator: PropertyFilterRuleGroupOperator.And,\r\n items: [getRuleItem(filter, id)],\r\n },\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"FilterBuilderState.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderState.ts"],"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 { Draft, produce } from \"immer\";\r\nimport * as React from \"react\";\r\nimport { PropertyDescription, PropertyValue, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { Guid } from \"@itwin/core-bentley\";\r\nimport { isUnaryPropertyFilterOperator, PropertyFilterRuleGroupOperator, PropertyFilterRuleOperator } from \"./Operators\";\r\nimport { isPropertyFilterRuleGroup, PropertyFilter, PropertyFilterRule } from \"./Types\";\r\n\r\n/**\r\n * Data structure that describes [[PropertyFilterBuilder]] component state.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderState {\r\n /** Root group of rules in [[PropertyFilterBuilder]] component. */\r\n rootGroup: PropertyFilterBuilderRuleGroup;\r\n}\r\n\r\n/**\r\n * Type that describes [[PropertyFilterBuilder]] component group item.\r\n * @internal\r\n */\r\nexport type PropertyFilterBuilderRuleGroupItem = PropertyFilterBuilderRuleGroup | PropertyFilterBuilderRule;\r\n\r\n/**\r\n * Data structure that describes [[PropertyFilterBuilder]] component rule group.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderRuleGroup {\r\n /** Id of this rule group. */\r\n id: string;\r\n /** Id of rule group that this group is nested in. */\r\n groupId?: string;\r\n /** Operator that should join items in this group. */\r\n operator: PropertyFilterRuleGroupOperator;\r\n /** Items in this group. */\r\n items: PropertyFilterBuilderRuleGroupItem[];\r\n}\r\n\r\n/**\r\n * Data structure that describes [[PropertyFilterBuilder]] component single rule.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderRule {\r\n /** Id of this rule. */\r\n id: string;\r\n /** Id of rule group that this rule is nested in. */\r\n groupId: string;\r\n /** Property used in this rule. */\r\n property?: PropertyDescription;\r\n /** Operator that should be used to compare property value. */\r\n operator?: PropertyFilterRuleOperator;\r\n /** Value that property should be compared to. */\r\n value?: PropertyValue;\r\n}\r\n\r\n/**\r\n * Actions for controlling [[PropertyFilterBuilder]] component state.\r\n * @internal\r\n */\r\nexport class PropertyFilterBuilderActions {\r\n constructor(private setState: (setter: (prevState: PropertyFilterBuilderState) => PropertyFilterBuilderState) => void) { }\r\n\r\n private updateState(updater: (state: Draft<PropertyFilterBuilderState>) => void) {\r\n this.setState(produce(updater));\r\n }\r\n\r\n /** Adds new rule or group of rules to the group specified by path. */\r\n public addItem(path: string[], itemType: \"RULE_GROUP\" | \"RULE\") {\r\n this.updateState((state) => {\r\n const parentGroup = findRuleGroup(state.rootGroup, path);\r\n if (!parentGroup)\r\n return;\r\n const item = itemType === \"RULE_GROUP\" ? createEmptyRuleGroup(parentGroup.id) : createEmptyRule(parentGroup.id);\r\n parentGroup.items.push(item);\r\n });\r\n }\r\n\r\n /** Removes item specified by path. */\r\n public removeItem(path: string[]) {\r\n function removeItemFromGroup(state: Draft<PropertyFilterBuilderState>, pathToItem: string[]) {\r\n const pathToParent = pathToItem.slice(0, -1);\r\n const parentGroup = findRuleGroup(state.rootGroup, pathToParent);\r\n if (!parentGroup)\r\n return;\r\n const itemId = pathToItem[pathToItem.length - 1];\r\n const itemIndex = parentGroup.items.findIndex((item) => item.id === itemId);\r\n if (itemIndex === -1)\r\n return;\r\n parentGroup.items.splice(itemIndex, 1);\r\n if (parentGroup.items.length === 0)\r\n removeItemFromGroup(state, pathToParent);\r\n }\r\n\r\n this.updateState((state) => {\r\n removeItemFromGroup(state, path);\r\n });\r\n }\r\n\r\n /** Sets operator of rule group specified by the path. */\r\n public setRuleGroupOperator(path: string[], operator: PropertyFilterRuleGroupOperator) {\r\n this.updateState((state) => {\r\n const group = findRuleGroup(state.rootGroup, path);\r\n if (!group)\r\n return;\r\n group.operator = operator;\r\n });\r\n }\r\n\r\n /** Sets property of rule specified by the path. */\r\n public setRuleProperty(path: string[], property?: PropertyDescription) {\r\n this.updateState((state) => {\r\n const rule = findRule(state.rootGroup, path);\r\n if (!rule)\r\n return;\r\n rule.property = property;\r\n rule.value = undefined;\r\n });\r\n }\r\n\r\n /** Sets operator of rule specified by the path. */\r\n public setRuleOperator(path: string[], operator: PropertyFilterRuleOperator) {\r\n this.updateState((state) => {\r\n const rule = findRule(state.rootGroup, path);\r\n if (!rule)\r\n return;\r\n if (isUnaryPropertyFilterOperator(operator))\r\n rule.value = undefined;\r\n rule.operator = operator;\r\n });\r\n }\r\n\r\n /** Sets value of rule specified by the path. */\r\n public setRuleValue(path: string[], value: PropertyValue) {\r\n this.updateState((state) => {\r\n const rule = findRule(state.rootGroup, path);\r\n if (!rule)\r\n return;\r\n rule.value = value;\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Function to check if supplied [[PropertyFilterBuilderRuleGroupItem]] is [[PropertyFilterBuilderRuleGroup]].\r\n * @internal\r\n */\r\nexport function isPropertyFilterBuilderRuleGroup(item: PropertyFilterBuilderRuleGroupItem): item is PropertyFilterBuilderRuleGroup {\r\n return (item as any).items !== undefined;\r\n}\r\n\r\n/**\r\n * Custom hook that creates state for [[PropertyFilterBuilder]] component. It creates empty state or initializes\r\n * state from supplied initial filter.\r\n * @internal\r\n */\r\nexport function usePropertyFilterBuilderState(initialFilter?: PropertyFilter) {\r\n const [state, setState] = React.useState<PropertyFilterBuilderState>(\r\n () => initialFilter ? convertFilterToState(initialFilter) : { rootGroup: createEmptyRuleGroup() }\r\n );\r\n const [actions] = React.useState(() => new PropertyFilterBuilderActions(setState));\r\n\r\n return { state, actions };\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 createEmptyRule(groupId: string): PropertyFilterBuilderRule {\r\n return {\r\n id: Guid.createValue(),\r\n groupId,\r\n };\r\n}\r\n\r\nfunction createEmptyRuleGroup(groupId?: string): PropertyFilterBuilderRuleGroup {\r\n const id = Guid.createValue();\r\n return {\r\n id,\r\n groupId,\r\n operator: PropertyFilterRuleGroupOperator.And,\r\n items: [createEmptyRule(id)],\r\n };\r\n}\r\n\r\nfunction findRuleGroup(rootGroup: PropertyFilterBuilderRuleGroup, path: string[]): PropertyFilterBuilderRuleGroup | undefined {\r\n if (path.length === 0)\r\n return rootGroup;\r\n\r\n const [currentItemId, ...rest] = path;\r\n const currentItem = rootGroup.items.find((item) => item.id === currentItemId);\r\n if (!currentItem || !isPropertyFilterBuilderRuleGroup(currentItem))\r\n return undefined;\r\n\r\n return findRuleGroup(currentItem, rest);\r\n}\r\n\r\nfunction findRule(rootGroup: PropertyFilterBuilderRuleGroup, path: string[]): PropertyFilterBuilderRule | undefined {\r\n if (path.length === 0)\r\n return undefined;\r\n\r\n const [currentItemId, ...rest] = path;\r\n const currentItem = rootGroup.items.find((item) => item.id === currentItemId);\r\n if (!currentItem)\r\n return undefined;\r\n\r\n if (isPropertyFilterBuilderRuleGroup(currentItem))\r\n return findRule(currentItem, rest);\r\n\r\n return currentItem;\r\n}\r\n\r\nfunction getRuleGroupItem(filter: PropertyFilter, parentId: string): PropertyFilterBuilderRuleGroupItem {\r\n const id = Guid.createValue();\r\n if (isPropertyFilterRuleGroup(filter))\r\n return {\r\n id,\r\n groupId: parentId,\r\n operator: filter.operator,\r\n items: filter.rules.map((rule) => getRuleGroupItem(rule, id)),\r\n };\r\n return getRuleItem(filter, id);\r\n}\r\n\r\nfunction getRuleItem(filter: PropertyFilterRule, parentId: string) {\r\n return {\r\n id: Guid.createValue(),\r\n groupId: parentId,\r\n property: filter.property,\r\n operator: filter.operator,\r\n value: filter.value,\r\n };\r\n}\r\n\r\nfunction convertFilterToState(filter: PropertyFilter): PropertyFilterBuilderState {\r\n const id = Guid.createValue();\r\n if (isPropertyFilterRuleGroup(filter)) {\r\n return {\r\n rootGroup: {\r\n id,\r\n operator: filter.operator,\r\n items: filter.rules.map((rule) => getRuleGroupItem(rule, id)),\r\n },\r\n };\r\n }\r\n return {\r\n rootGroup: {\r\n id,\r\n operator: PropertyFilterRuleGroupOperator.And,\r\n items: [getRuleItem(filter, id)],\r\n },\r\n };\r\n}\r\n"]}
@@ -1,10 +1,19 @@
1
+ /** @packageDocumentation
2
+ * @module PropertyFilterBuilder
3
+ */
1
4
  import { PropertyDescription } from "@itwin/appui-abstract";
2
- /** @alpha */
5
+ /**
6
+ * Logical operator for joining rules.
7
+ * @beta
8
+ */
3
9
  export declare enum PropertyFilterRuleGroupOperator {
4
10
  And = 0,
5
11
  Or = 1
6
12
  }
7
- /** @alpha */
13
+ /**
14
+ * Operators for comparing property value in rule.
15
+ * @beta
16
+ */
8
17
  export declare enum PropertyFilterRuleOperator {
9
18
  IsTrue = 0,
10
19
  IsFalse = 1,
@@ -18,10 +27,19 @@ export declare enum PropertyFilterRuleOperator {
18
27
  IsNull = 9,
19
28
  IsNotNull = 10
20
29
  }
21
- /** @alpha */
30
+ /**
31
+ * Function that returns set of available operator based on property type.
32
+ * @beta
33
+ */
22
34
  export declare function getPropertyFilterOperators(property: PropertyDescription): PropertyFilterRuleOperator[];
23
- /** @alpha */
35
+ /**
36
+ * Function that returns display label for rule operator.
37
+ * @beta
38
+ */
24
39
  export declare function getPropertyFilterOperatorLabel(operator: PropertyFilterRuleOperator): string;
25
- /** @alpha */
40
+ /**
41
+ * Function that checks if supplied operator is unary.
42
+ * @beta
43
+ */
26
44
  export declare function isUnaryPropertyFilterOperator(operator: PropertyFilterRuleOperator): boolean;
27
45
  //# sourceMappingURL=Operators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Operators.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/Operators.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAqB,MAAM,uBAAuB,CAAC;AAG/E,aAAa;AACb,oBAAY,+BAA+B;IACzC,GAAG,IAAA;IACH,EAAE,IAAA;CACH;AAED,aAAa;AACb,oBAAY,0BAA0B;IACpC,MAAM,IAAA;IACN,OAAO,IAAA;IAEP,OAAO,IAAA;IACP,UAAU,IAAA;IAEV,OAAO,IAAA;IACP,cAAc,IAAA;IACd,IAAI,IAAA;IACJ,WAAW,IAAA;IAEX,IAAI,IAAA;IAEJ,MAAM,IAAA;IACN,SAAS,KAAA;CACV;AAED,aAAa;AACb,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,mBAAmB,gCA2CvE;AAGD,aAAa;AACb,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,0BAA0B,UAyBlF;AAED,aAAa;AACb,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,0BAA0B,WASjF"}
1
+ {"version":3,"file":"Operators.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/Operators.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAqB,MAAM,uBAAuB,CAAC;AAG/E;;;GAGG;AACH,oBAAY,+BAA+B;IACzC,GAAG,IAAA;IACH,EAAE,IAAA;CACH;AAED;;;GAGG;AACH,oBAAY,0BAA0B;IACpC,MAAM,IAAA;IACN,OAAO,IAAA;IAEP,OAAO,IAAA;IACP,UAAU,IAAA;IAEV,OAAO,IAAA;IACP,cAAc,IAAA;IACd,IAAI,IAAA;IACJ,WAAW,IAAA;IAEX,IAAI,IAAA;IAEJ,MAAM,IAAA;IACN,SAAS,KAAA;CACV;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,mBAAmB,gCA2CvE;AAGD;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,0BAA0B,UAyBlF;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,0BAA0B,WASjF"}
@@ -1,19 +1,28 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isUnaryPropertyFilterOperator = exports.getPropertyFilterOperatorLabel = exports.getPropertyFilterOperators = exports.PropertyFilterRuleOperator = exports.PropertyFilterRuleGroupOperator = void 0;
4
2
  /*---------------------------------------------------------------------------------------------
5
3
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
6
4
  * See LICENSE.md in the project root for license terms and full copyright notice.
7
5
  *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module PropertyFilterBuilder
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.isUnaryPropertyFilterOperator = exports.getPropertyFilterOperatorLabel = exports.getPropertyFilterOperators = exports.PropertyFilterRuleOperator = exports.PropertyFilterRuleGroupOperator = void 0;
8
11
  const appui_abstract_1 = require("@itwin/appui-abstract");
9
12
  const UiComponents_1 = require("../UiComponents");
10
- /** @alpha */
13
+ /**
14
+ * Logical operator for joining rules.
15
+ * @beta
16
+ */
11
17
  var PropertyFilterRuleGroupOperator;
12
18
  (function (PropertyFilterRuleGroupOperator) {
13
19
  PropertyFilterRuleGroupOperator[PropertyFilterRuleGroupOperator["And"] = 0] = "And";
14
20
  PropertyFilterRuleGroupOperator[PropertyFilterRuleGroupOperator["Or"] = 1] = "Or";
15
21
  })(PropertyFilterRuleGroupOperator = exports.PropertyFilterRuleGroupOperator || (exports.PropertyFilterRuleGroupOperator = {}));
16
- /** @alpha */
22
+ /**
23
+ * Operators for comparing property value in rule.
24
+ * @beta
25
+ */
17
26
  var PropertyFilterRuleOperator;
18
27
  (function (PropertyFilterRuleOperator) {
19
28
  PropertyFilterRuleOperator[PropertyFilterRuleOperator["IsTrue"] = 0] = "IsTrue";
@@ -28,7 +37,10 @@ var PropertyFilterRuleOperator;
28
37
  PropertyFilterRuleOperator[PropertyFilterRuleOperator["IsNull"] = 9] = "IsNull";
29
38
  PropertyFilterRuleOperator[PropertyFilterRuleOperator["IsNotNull"] = 10] = "IsNotNull";
30
39
  })(PropertyFilterRuleOperator = exports.PropertyFilterRuleOperator || (exports.PropertyFilterRuleOperator = {}));
31
- /** @alpha */
40
+ /**
41
+ * Function that returns set of available operator based on property type.
42
+ * @beta
43
+ */
32
44
  function getPropertyFilterOperators(property) {
33
45
  const typename = property.typename;
34
46
  if (typename === appui_abstract_1.StandardTypeNames.Bool || typename === appui_abstract_1.StandardTypeNames.Boolean) {
@@ -70,7 +82,10 @@ function getPropertyFilterOperators(property) {
70
82
  }
71
83
  exports.getPropertyFilterOperators = getPropertyFilterOperators;
72
84
  /* istanbul ignore next */
73
- /** @alpha */
85
+ /**
86
+ * Function that returns display label for rule operator.
87
+ * @beta
88
+ */
74
89
  function getPropertyFilterOperatorLabel(operator) {
75
90
  switch (operator) {
76
91
  case PropertyFilterRuleOperator.IsTrue:
@@ -98,7 +113,10 @@ function getPropertyFilterOperatorLabel(operator) {
98
113
  }
99
114
  }
100
115
  exports.getPropertyFilterOperatorLabel = getPropertyFilterOperatorLabel;
101
- /** @alpha */
116
+ /**
117
+ * Function that checks if supplied operator is unary.
118
+ * @beta
119
+ */
102
120
  function isUnaryPropertyFilterOperator(operator) {
103
121
  switch (operator) {
104
122
  case PropertyFilterRuleOperator.IsTrue:
@@ -1 +1 @@
1
- {"version":3,"file":"Operators.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/Operators.ts"],"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 { PropertyDescription, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { UiComponents } from \"../UiComponents\";\r\n\r\n/** @alpha */\r\nexport enum PropertyFilterRuleGroupOperator {\r\n And,\r\n Or,\r\n}\r\n\r\n/** @alpha */\r\nexport enum PropertyFilterRuleOperator {\r\n IsTrue,\r\n IsFalse,\r\n\r\n IsEqual,\r\n IsNotEqual,\r\n\r\n Greater,\r\n GreaterOrEqual,\r\n Less,\r\n LessOrEqual,\r\n\r\n Like,\r\n\r\n IsNull,\r\n IsNotNull,\r\n}\r\n\r\n/** @alpha */\r\nexport function getPropertyFilterOperators(property: PropertyDescription) {\r\n const typename = property.typename;\r\n\r\n if (typename === StandardTypeNames.Bool || typename === StandardTypeNames.Boolean) {\r\n return [\r\n PropertyFilterRuleOperator.IsTrue,\r\n PropertyFilterRuleOperator.IsFalse,\r\n ];\r\n }\r\n\r\n const operators = [\r\n PropertyFilterRuleOperator.IsEqual,\r\n PropertyFilterRuleOperator.IsNotEqual,\r\n PropertyFilterRuleOperator.IsNull,\r\n PropertyFilterRuleOperator.IsNotNull,\r\n ];\r\n\r\n if (typename === StandardTypeNames.Number\r\n || typename === StandardTypeNames.Int\r\n || typename === StandardTypeNames.Integer\r\n || typename === StandardTypeNames.Double\r\n || typename === StandardTypeNames.Float\r\n || typename === StandardTypeNames.Hex\r\n || typename === StandardTypeNames.Hexadecimal\r\n || typename === StandardTypeNames.ShortDate\r\n || typename === StandardTypeNames.DateTime) {\r\n return [\r\n ...operators,\r\n PropertyFilterRuleOperator.Greater,\r\n PropertyFilterRuleOperator.GreaterOrEqual,\r\n PropertyFilterRuleOperator.Less,\r\n PropertyFilterRuleOperator.LessOrEqual,\r\n ];\r\n }\r\n\r\n if (typename === StandardTypeNames.String || typename === StandardTypeNames.Text) {\r\n return [\r\n ...operators,\r\n PropertyFilterRuleOperator.Like,\r\n ];\r\n }\r\n\r\n return operators;\r\n}\r\n\r\n/* istanbul ignore next */\r\n/** @alpha */\r\nexport function getPropertyFilterOperatorLabel(operator: PropertyFilterRuleOperator) {\r\n switch(operator) {\r\n case PropertyFilterRuleOperator.IsTrue:\r\n return UiComponents.translate(\"filterBuilder.operators.isTrue\");\r\n case PropertyFilterRuleOperator.IsFalse:\r\n return UiComponents.translate(\"filterBuilder.operators.isFalse\");\r\n case PropertyFilterRuleOperator.IsEqual:\r\n return UiComponents.translate(\"filterBuilder.operators.equal\");\r\n case PropertyFilterRuleOperator.IsNotEqual:\r\n return UiComponents.translate(\"filterBuilder.operators.notEqual\");\r\n case PropertyFilterRuleOperator.Greater:\r\n return \">\";\r\n case PropertyFilterRuleOperator.GreaterOrEqual:\r\n return \">=\";\r\n case PropertyFilterRuleOperator.Less:\r\n return \"<\";\r\n case PropertyFilterRuleOperator.LessOrEqual:\r\n return \"<=\";\r\n case PropertyFilterRuleOperator.Like:\r\n return UiComponents.translate(\"filterBuilder.operators.contains\");\r\n case PropertyFilterRuleOperator.IsNull:\r\n return UiComponents.translate(\"filterBuilder.operators.isNull\");\r\n case PropertyFilterRuleOperator.IsNotNull:\r\n return UiComponents.translate(\"filterBuilder.operators.isNotNull\");\r\n }\r\n}\r\n\r\n/** @alpha */\r\nexport function isUnaryPropertyFilterOperator(operator: PropertyFilterRuleOperator) {\r\n switch (operator) {\r\n case PropertyFilterRuleOperator.IsTrue:\r\n case PropertyFilterRuleOperator.IsFalse:\r\n case PropertyFilterRuleOperator.IsNull:\r\n case PropertyFilterRuleOperator.IsNotNull:\r\n return true;\r\n }\r\n return false;\r\n}\r\n"]}
1
+ {"version":3,"file":"Operators.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/Operators.ts"],"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 { PropertyDescription, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { UiComponents } from \"../UiComponents\";\r\n\r\n/**\r\n * Logical operator for joining rules.\r\n * @beta\r\n */\r\nexport enum PropertyFilterRuleGroupOperator {\r\n And,\r\n Or,\r\n}\r\n\r\n/**\r\n * Operators for comparing property value in rule.\r\n * @beta\r\n */\r\nexport enum PropertyFilterRuleOperator {\r\n IsTrue,\r\n IsFalse,\r\n\r\n IsEqual,\r\n IsNotEqual,\r\n\r\n Greater,\r\n GreaterOrEqual,\r\n Less,\r\n LessOrEqual,\r\n\r\n Like,\r\n\r\n IsNull,\r\n IsNotNull,\r\n}\r\n\r\n/**\r\n * Function that returns set of available operator based on property type.\r\n * @beta\r\n */\r\nexport function getPropertyFilterOperators(property: PropertyDescription) {\r\n const typename = property.typename;\r\n\r\n if (typename === StandardTypeNames.Bool || typename === StandardTypeNames.Boolean) {\r\n return [\r\n PropertyFilterRuleOperator.IsTrue,\r\n PropertyFilterRuleOperator.IsFalse,\r\n ];\r\n }\r\n\r\n const operators = [\r\n PropertyFilterRuleOperator.IsEqual,\r\n PropertyFilterRuleOperator.IsNotEqual,\r\n PropertyFilterRuleOperator.IsNull,\r\n PropertyFilterRuleOperator.IsNotNull,\r\n ];\r\n\r\n if (typename === StandardTypeNames.Number\r\n || typename === StandardTypeNames.Int\r\n || typename === StandardTypeNames.Integer\r\n || typename === StandardTypeNames.Double\r\n || typename === StandardTypeNames.Float\r\n || typename === StandardTypeNames.Hex\r\n || typename === StandardTypeNames.Hexadecimal\r\n || typename === StandardTypeNames.ShortDate\r\n || typename === StandardTypeNames.DateTime) {\r\n return [\r\n ...operators,\r\n PropertyFilterRuleOperator.Greater,\r\n PropertyFilterRuleOperator.GreaterOrEqual,\r\n PropertyFilterRuleOperator.Less,\r\n PropertyFilterRuleOperator.LessOrEqual,\r\n ];\r\n }\r\n\r\n if (typename === StandardTypeNames.String || typename === StandardTypeNames.Text) {\r\n return [\r\n ...operators,\r\n PropertyFilterRuleOperator.Like,\r\n ];\r\n }\r\n\r\n return operators;\r\n}\r\n\r\n/* istanbul ignore next */\r\n/**\r\n * Function that returns display label for rule operator.\r\n * @beta\r\n */\r\nexport function getPropertyFilterOperatorLabel(operator: PropertyFilterRuleOperator) {\r\n switch (operator) {\r\n case PropertyFilterRuleOperator.IsTrue:\r\n return UiComponents.translate(\"filterBuilder.operators.isTrue\");\r\n case PropertyFilterRuleOperator.IsFalse:\r\n return UiComponents.translate(\"filterBuilder.operators.isFalse\");\r\n case PropertyFilterRuleOperator.IsEqual:\r\n return UiComponents.translate(\"filterBuilder.operators.equal\");\r\n case PropertyFilterRuleOperator.IsNotEqual:\r\n return UiComponents.translate(\"filterBuilder.operators.notEqual\");\r\n case PropertyFilterRuleOperator.Greater:\r\n return \">\";\r\n case PropertyFilterRuleOperator.GreaterOrEqual:\r\n return \">=\";\r\n case PropertyFilterRuleOperator.Less:\r\n return \"<\";\r\n case PropertyFilterRuleOperator.LessOrEqual:\r\n return \"<=\";\r\n case PropertyFilterRuleOperator.Like:\r\n return UiComponents.translate(\"filterBuilder.operators.contains\");\r\n case PropertyFilterRuleOperator.IsNull:\r\n return UiComponents.translate(\"filterBuilder.operators.isNull\");\r\n case PropertyFilterRuleOperator.IsNotNull:\r\n return UiComponents.translate(\"filterBuilder.operators.isNotNull\");\r\n }\r\n}\r\n\r\n/**\r\n * Function that checks if supplied operator is unary.\r\n * @beta\r\n */\r\nexport function isUnaryPropertyFilterOperator(operator: PropertyFilterRuleOperator) {\r\n switch (operator) {\r\n case PropertyFilterRuleOperator.IsTrue:\r\n case PropertyFilterRuleOperator.IsFalse:\r\n case PropertyFilterRuleOperator.IsNull:\r\n case PropertyFilterRuleOperator.IsNotNull:\r\n return true;\r\n }\r\n return false;\r\n}\r\n"]}