@itwin/components-react 3.6.0-dev.54 → 3.6.0-dev.59
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.
- package/lib/cjs/components-react/breadcrumb/Breadcrumb.d.ts +5 -5
- package/lib/cjs/components-react/breadcrumb/Breadcrumb.js +3 -3
- package/lib/cjs/components-react/breadcrumb/Breadcrumb.js.map +1 -1
- package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.d.ts +2 -2
- package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.js +1 -1
- package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
- package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.d.ts +3 -3
- package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.js +2 -2
- package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
- package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.d.ts +1 -1
- package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.js +1 -1
- package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
- package/lib/cjs/components-react/common/showhide/ShowHideDialog.d.ts +2 -2
- package/lib/cjs/components-react/common/showhide/ShowHideDialog.js +1 -1
- package/lib/cjs/components-react/common/showhide/ShowHideDialog.js.map +1 -1
- package/lib/cjs/components-react/common/showhide/ShowHideItem.d.ts +2 -2
- package/lib/cjs/components-react/common/showhide/ShowHideItem.js.map +1 -1
- package/lib/cjs/components-react/common/showhide/ShowHideMenu.d.ts +2 -2
- package/lib/cjs/components-react/common/showhide/ShowHideMenu.js +1 -1
- package/lib/cjs/components-react/common/showhide/ShowHideMenu.js.map +1 -1
- package/lib/cjs/components-react/editors/ThemedEnumEditor.d.ts +3 -3
- package/lib/cjs/components-react/editors/ThemedEnumEditor.js +2 -2
- package/lib/cjs/components-react/editors/ThemedEnumEditor.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts +22 -25
- package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilder.js +19 -81
- package/lib/cjs/components-react/filter-builder/FilterBuilder.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts +80 -0
- package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -0
- package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js +83 -0
- package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js.map +1 -0
- package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts +14 -3
- package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js +16 -10
- package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRule.scss +4 -0
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +25 -16
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js +22 -14
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +14 -2
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js +11 -5
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +16 -2
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js +11 -5
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts +14 -2
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js +11 -5
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts +50 -7
- package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderState.js +60 -8
- package/lib/cjs/components-react/filter-builder/FilterBuilderState.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/Operators.d.ts +23 -5
- package/lib/cjs/components-react/filter-builder/Operators.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/Operators.js +25 -7
- package/lib/cjs/components-react/filter-builder/Operators.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/Types.d.ts +24 -4
- package/lib/cjs/components-react/filter-builder/Types.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/Types.js +11 -1
- package/lib/cjs/components-react/filter-builder/Types.js.map +1 -1
- package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts +2 -2
- package/lib/cjs/components-react/iconpicker/IconPickerButton.js +2 -2
- package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGrid.d.ts +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts +2 -2
- package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts +2 -2
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
- package/lib/cjs/components-react/table/SimpleTableDataProvider.d.ts +1 -1
- package/lib/cjs/components-react/table/SimpleTableDataProvider.js +1 -1
- package/lib/cjs/components-react/table/SimpleTableDataProvider.js.map +1 -1
- package/lib/cjs/components-react/table/TableDataProvider.d.ts +8 -8
- package/lib/cjs/components-react/table/TableDataProvider.js +2 -2
- package/lib/cjs/components-react/table/TableDataProvider.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.d.ts +16 -16
- package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js +6 -6
- package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
- package/lib/cjs/components-react/table/component/ColumnDragLayer.d.ts +1 -1
- package/lib/cjs/components-react/table/component/ColumnDragLayer.js +1 -1
- package/lib/cjs/components-react/table/component/ColumnDragLayer.js.map +1 -1
- package/lib/cjs/components-react/table/component/Table.d.ts +9 -9
- package/lib/cjs/components-react/table/component/Table.d.ts.map +1 -1
- package/lib/cjs/components-react/table/component/Table.js +2 -2
- package/lib/cjs/components-react/table/component/Table.js.map +1 -1
- package/lib/cjs/components-react/table/component/TableCell.d.ts +6 -6
- package/lib/cjs/components-react/table/component/TableCell.js +3 -3
- package/lib/cjs/components-react/table/component/TableCell.js.map +1 -1
- package/lib/cjs/components-react/table/component/TableColumn.d.ts +1 -1
- package/lib/cjs/components-react/table/component/TableColumn.js.map +1 -1
- package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.d.ts +1 -1
- package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.js +1 -1
- package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
- package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.d.ts +8 -8
- package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.js +2 -2
- package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
- package/lib/cjs/components-react/table/component/dragdrop/withDragSource.d.ts +2 -2
- package/lib/cjs/components-react/table/component/dragdrop/withDragSource.js +1 -1
- package/lib/cjs/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
- package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.d.ts +2 -2
- package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.js +1 -1
- package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
- package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
- package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/cjs/components-react/tree/TreeDataProvider.d.ts +2 -2
- package/lib/cjs/components-react/tree/TreeDataProvider.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
- package/lib/cjs/components-react.d.ts +4 -6
- package/lib/cjs/components-react.d.ts.map +1 -1
- package/lib/cjs/components-react.js +4 -6
- package/lib/cjs/components-react.js.map +1 -1
- package/lib/esm/components-react/breadcrumb/Breadcrumb.d.ts +5 -5
- package/lib/esm/components-react/breadcrumb/Breadcrumb.js +3 -3
- package/lib/esm/components-react/breadcrumb/Breadcrumb.js.map +1 -1
- package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.d.ts +2 -2
- package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.js +1 -1
- package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
- package/lib/esm/components-react/breadcrumb/BreadcrumbPath.d.ts +3 -3
- package/lib/esm/components-react/breadcrumb/BreadcrumbPath.js +2 -2
- package/lib/esm/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
- package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.d.ts +1 -1
- package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.js +1 -1
- package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
- package/lib/esm/components-react/common/showhide/ShowHideDialog.d.ts +2 -2
- package/lib/esm/components-react/common/showhide/ShowHideDialog.js +1 -1
- package/lib/esm/components-react/common/showhide/ShowHideDialog.js.map +1 -1
- package/lib/esm/components-react/common/showhide/ShowHideItem.d.ts +2 -2
- package/lib/esm/components-react/common/showhide/ShowHideItem.js.map +1 -1
- package/lib/esm/components-react/common/showhide/ShowHideMenu.d.ts +2 -2
- package/lib/esm/components-react/common/showhide/ShowHideMenu.js +1 -1
- package/lib/esm/components-react/common/showhide/ShowHideMenu.js.map +1 -1
- package/lib/esm/components-react/editors/ThemedEnumEditor.d.ts +3 -3
- package/lib/esm/components-react/editors/ThemedEnumEditor.js +2 -2
- package/lib/esm/components-react/editors/ThemedEnumEditor.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts +22 -25
- package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilder.js +12 -73
- package/lib/esm/components-react/filter-builder/FilterBuilder.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts +80 -0
- package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -0
- package/lib/esm/components-react/filter-builder/FilterBuilderContext.js +60 -0
- package/lib/esm/components-react/filter-builder/FilterBuilderContext.js.map +1 -0
- package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts +14 -3
- package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRule.js +11 -5
- package/lib/esm/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRule.scss +4 -0
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +25 -16
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js +15 -7
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +14 -2
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js +7 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +16 -2
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js +7 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts +14 -2
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js +7 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts +50 -7
- package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderState.js +54 -3
- package/lib/esm/components-react/filter-builder/FilterBuilderState.js.map +1 -1
- package/lib/esm/components-react/filter-builder/Operators.d.ts +23 -5
- package/lib/esm/components-react/filter-builder/Operators.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/Operators.js +23 -5
- package/lib/esm/components-react/filter-builder/Operators.js.map +1 -1
- package/lib/esm/components-react/filter-builder/Types.d.ts +24 -4
- package/lib/esm/components-react/filter-builder/Types.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/Types.js +11 -1
- package/lib/esm/components-react/filter-builder/Types.js.map +1 -1
- package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts +2 -2
- package/lib/esm/components-react/iconpicker/IconPickerButton.js +2 -2
- package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGrid.d.ts +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts +2 -2
- package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts +2 -2
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
- package/lib/esm/components-react/table/SimpleTableDataProvider.d.ts +1 -1
- package/lib/esm/components-react/table/SimpleTableDataProvider.js +1 -1
- package/lib/esm/components-react/table/SimpleTableDataProvider.js.map +1 -1
- package/lib/esm/components-react/table/TableDataProvider.d.ts +8 -8
- package/lib/esm/components-react/table/TableDataProvider.js +2 -2
- package/lib/esm/components-react/table/TableDataProvider.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.d.ts +16 -16
- package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js +6 -6
- package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
- package/lib/esm/components-react/table/component/ColumnDragLayer.d.ts +1 -1
- package/lib/esm/components-react/table/component/ColumnDragLayer.js +1 -1
- package/lib/esm/components-react/table/component/ColumnDragLayer.js.map +1 -1
- package/lib/esm/components-react/table/component/Table.d.ts +9 -9
- package/lib/esm/components-react/table/component/Table.d.ts.map +1 -1
- package/lib/esm/components-react/table/component/Table.js +2 -2
- package/lib/esm/components-react/table/component/Table.js.map +1 -1
- package/lib/esm/components-react/table/component/TableCell.d.ts +6 -6
- package/lib/esm/components-react/table/component/TableCell.js +3 -3
- package/lib/esm/components-react/table/component/TableCell.js.map +1 -1
- package/lib/esm/components-react/table/component/TableColumn.d.ts +1 -1
- package/lib/esm/components-react/table/component/TableColumn.js.map +1 -1
- package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.d.ts +1 -1
- package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.js +1 -1
- package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
- package/lib/esm/components-react/table/component/dragdrop/DragDropDef.d.ts +8 -8
- package/lib/esm/components-react/table/component/dragdrop/DragDropDef.js +2 -2
- package/lib/esm/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
- package/lib/esm/components-react/table/component/dragdrop/withDragSource.d.ts +2 -2
- package/lib/esm/components-react/table/component/dragdrop/withDragSource.js +1 -1
- package/lib/esm/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
- package/lib/esm/components-react/table/component/dragdrop/withDropTarget.d.ts +2 -2
- package/lib/esm/components-react/table/component/dragdrop/withDropTarget.js +1 -1
- package/lib/esm/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
- package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts +1 -1
- package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/esm/components-react/tree/TreeDataProvider.d.ts +2 -2
- package/lib/esm/components-react/tree/TreeDataProvider.d.ts.map +1 -1
- package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
- package/lib/esm/components-react.d.ts +4 -6
- package/lib/esm/components-react.d.ts.map +1 -1
- package/lib/esm/components-react.js +4 -6
- package/lib/esm/components-react.js.map +1 -1
- package/package.json +11 -11
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module PropertyFilterBuilder
|
|
3
|
+
*/
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { PropertyDescription } from "@itwin/appui-abstract";
|
|
6
|
+
import { PropertyFilterBuilderActions } from "./FilterBuilderState";
|
|
7
|
+
import { PropertyFilterBuilderRuleOperatorProps } from "./FilterBuilderRuleOperator";
|
|
8
|
+
import { PropertyFilterBuilderRuleValueProps } from "./FilterBuilderRuleValue";
|
|
9
|
+
/**
|
|
10
|
+
* Data structure that describes [[PropertyFilterBuilderContext]] value.
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export interface PropertyFilterBuilderContextProps {
|
|
14
|
+
/** Actions for modifying [[PropertyFilterBuilder]] state. */
|
|
15
|
+
actions: PropertyFilterBuilderActions;
|
|
16
|
+
/** List of available properties. */
|
|
17
|
+
properties: PropertyDescription[];
|
|
18
|
+
/** Callback to invoke when property is selected in any rule. */
|
|
19
|
+
onRulePropertySelected?: (property: PropertyDescription) => void;
|
|
20
|
+
/** Specifies how deep rule groups can be nested. */
|
|
21
|
+
ruleGroupDepthLimit?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Context used to store data for rules and rule groups rendered inside [[PropertyFilterBuilder]] component.
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
export declare const PropertyFilterBuilderContext: React.Context<PropertyFilterBuilderContextProps>;
|
|
28
|
+
/**
|
|
29
|
+
* Data structure that describes [[PropertyFilterBuilderRuleRenderingContext]] value.
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
export interface PropertyFilterBuilderRuleRenderingContextProps {
|
|
33
|
+
/** Custom renderer for operator selector in rule. */
|
|
34
|
+
ruleOperatorRenderer?: (props: PropertyFilterBuilderRuleOperatorProps) => React.ReactNode;
|
|
35
|
+
/** Custom renderer for value input in rule. */
|
|
36
|
+
ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueProps) => React.ReactNode;
|
|
37
|
+
/** Custom renderer for property selector in rule. */
|
|
38
|
+
propertyRenderer?: (name: string) => React.ReactNode;
|
|
39
|
+
/** Specifies that properties selection is disabled. */
|
|
40
|
+
isDisabled?: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Context for rendering rules and rule groups inside [[PropertyFilterBuilder]] component.
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
export declare const PropertyFilterBuilderRuleRenderingContext: React.Context<PropertyFilterBuilderRuleRenderingContextProps>;
|
|
47
|
+
/**
|
|
48
|
+
* Data structure that describes value of [[ActiveRuleGroupContext]].
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
51
|
+
export interface ActiveRuleGroupContextProps {
|
|
52
|
+
/** Element of currently active rule group. */
|
|
53
|
+
activeElement: HTMLElement | undefined;
|
|
54
|
+
/** Even handler for rule group element 'onFocus' event */
|
|
55
|
+
onFocus: React.FocusEventHandler<HTMLElement>;
|
|
56
|
+
/** Even handler for rule group element 'onBlur' event */
|
|
57
|
+
onBlur: React.FocusEventHandler<HTMLElement>;
|
|
58
|
+
/** Even handler for rule group element 'onMouseOver' event */
|
|
59
|
+
onMouseOver: React.MouseEventHandler<HTMLElement>;
|
|
60
|
+
/** Even handler for rule group element 'onMouseOut' event */
|
|
61
|
+
onMouseOut: React.MouseEventHandler<HTMLElement>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Context for tracking and storing active rule group in [[PropertyFilterBuilder]].
|
|
65
|
+
* Group is considered active if it is focused or hovered.
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
68
|
+
export declare const ActiveRuleGroupContext: React.Context<ActiveRuleGroupContextProps>;
|
|
69
|
+
/**
|
|
70
|
+
* Custom hook that created value for [[ActiveRuleGroupContext]].
|
|
71
|
+
* @internal
|
|
72
|
+
*/
|
|
73
|
+
export declare function useActiveRuleGroupContextProps(rootElementRef: React.RefObject<HTMLElement>): {
|
|
74
|
+
activeElement: HTMLElement | undefined;
|
|
75
|
+
onFocus: React.FocusEventHandler<HTMLElement>;
|
|
76
|
+
onBlur: React.FocusEventHandler<HTMLElement>;
|
|
77
|
+
onMouseOver: React.MouseEventHandler<HTMLElement>;
|
|
78
|
+
onMouseOut: React.MouseEventHandler<HTMLElement>;
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=FilterBuilderContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterBuilderContext.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderContext.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,sCAAsC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAC;AAE/E;;;GAGG;AACH,MAAM,WAAW,iCAAiC;IAChD,6DAA6D;IAC7D,OAAO,EAAE,4BAA4B,CAAC;IACtC,oCAAoC;IACpC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,gEAAgE;IAChE,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjE,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kDAAgE,CAAC;AAE1G;;;GAGG;AACH,MAAM,WAAW,8CAA8C;IAC7D,qDAAqD;IACrD,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,sCAAsC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1F,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,mCAAmC,KAAK,KAAK,CAAC,SAAS,CAAC;IACpF,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,yCAAyC,+DAA0E,CAAC;AAEjI;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,8CAA8C;IAC9C,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC;IACvC,0DAA0D;IAC1D,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9C,yDAAyD;IACzD,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7C,8DAA8D;IAC9D,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAClD,6DAA6D;IAC7D,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;CAClD;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,4CAA0D,CAAC;AAE9F;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC;;;;;;EAqC1F"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module PropertyFilterBuilder
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.useActiveRuleGroupContextProps = exports.ActiveRuleGroupContext = exports.PropertyFilterBuilderRuleRenderingContext = exports.PropertyFilterBuilderContext = void 0;
|
|
30
|
+
const React = __importStar(require("react"));
|
|
31
|
+
/**
|
|
32
|
+
* Context used to store data for rules and rule groups rendered inside [[PropertyFilterBuilder]] component.
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
exports.PropertyFilterBuilderContext = React.createContext(null);
|
|
36
|
+
/**
|
|
37
|
+
* Context for rendering rules and rule groups inside [[PropertyFilterBuilder]] component.
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
40
|
+
exports.PropertyFilterBuilderRuleRenderingContext = React.createContext({});
|
|
41
|
+
/**
|
|
42
|
+
* Context for tracking and storing active rule group in [[PropertyFilterBuilder]].
|
|
43
|
+
* Group is considered active if it is focused or hovered.
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
exports.ActiveRuleGroupContext = React.createContext(null);
|
|
47
|
+
/**
|
|
48
|
+
* Custom hook that created value for [[ActiveRuleGroupContext]].
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
51
|
+
function useActiveRuleGroupContextProps(rootElementRef) {
|
|
52
|
+
const [activeElement, setActiveElement] = React.useState();
|
|
53
|
+
const onFocus = React.useCallback((e) => {
|
|
54
|
+
e.stopPropagation();
|
|
55
|
+
setActiveElement(e.currentTarget);
|
|
56
|
+
}, []);
|
|
57
|
+
const onBlur = React.useCallback((e) => {
|
|
58
|
+
e.stopPropagation();
|
|
59
|
+
if (activeElement !== e.currentTarget || (rootElementRef.current && rootElementRef.current.contains(e.relatedTarget)))
|
|
60
|
+
return;
|
|
61
|
+
setActiveElement(undefined);
|
|
62
|
+
}, [activeElement, rootElementRef]);
|
|
63
|
+
const onMouseOver = React.useCallback((e) => {
|
|
64
|
+
e.stopPropagation();
|
|
65
|
+
setActiveElement(e.currentTarget);
|
|
66
|
+
}, []);
|
|
67
|
+
const onMouseOut = React.useCallback((e) => {
|
|
68
|
+
e.stopPropagation();
|
|
69
|
+
// istanbul ignore if
|
|
70
|
+
if (activeElement !== e.currentTarget)
|
|
71
|
+
return;
|
|
72
|
+
setActiveElement(undefined);
|
|
73
|
+
}, [activeElement]);
|
|
74
|
+
return React.useMemo(() => ({
|
|
75
|
+
activeElement,
|
|
76
|
+
onFocus,
|
|
77
|
+
onBlur,
|
|
78
|
+
onMouseOver,
|
|
79
|
+
onMouseOut,
|
|
80
|
+
}), [activeElement, onFocus, onBlur, onMouseOver, onMouseOut]);
|
|
81
|
+
}
|
|
82
|
+
exports.useActiveRuleGroupContextProps = useActiveRuleGroupContextProps;
|
|
83
|
+
//# sourceMappingURL=FilterBuilderContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterBuilderContext.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderContext.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AAqB/B;;;GAGG;AACU,QAAA,4BAA4B,GAAG,KAAK,CAAC,aAAa,CAAoC,IAAK,CAAC,CAAC;AAiB1G;;;GAGG;AACU,QAAA,yCAAyC,GAAG,KAAK,CAAC,aAAa,CAAiD,EAAE,CAAC,CAAC;AAmBjI;;;;GAIG;AACU,QAAA,sBAAsB,GAAG,KAAK,CAAC,aAAa,CAA8B,IAAK,CAAC,CAAC;AAE9F;;;GAGG;AACH,SAAgB,8BAA8B,CAAC,cAA4C;IACzF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAA2B,CAAC;IAEpF,MAAM,OAAO,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5E,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3E,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,aAAa,KAAK,CAAC,CAAC,aAAa,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YACnH,OAAO;QAET,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;IAEpC,MAAM,WAAW,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAChF,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/E,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,qBAAqB;QACrB,IAAI,aAAa,KAAK,CAAC,CAAC,aAAa;YACnC,OAAO;QAET,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,aAAa;QACb,OAAO;QACP,MAAM;QACN,WAAW;QACX,UAAU;KACX,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AACjE,CAAC;AArCD,wEAqCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module PropertyFilterBuilder\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { PropertyDescription } from \"@itwin/appui-abstract\";\r\nimport { PropertyFilterBuilderActions } from \"./FilterBuilderState\";\r\nimport { PropertyFilterBuilderRuleOperatorProps } from \"./FilterBuilderRuleOperator\";\r\nimport { PropertyFilterBuilderRuleValueProps } from \"./FilterBuilderRuleValue\";\r\n\r\n/**\r\n * Data structure that describes [[PropertyFilterBuilderContext]] value.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderContextProps {\r\n /** Actions for modifying [[PropertyFilterBuilder]] state. */\r\n actions: PropertyFilterBuilderActions;\r\n /** List of available properties. */\r\n properties: PropertyDescription[];\r\n /** Callback to invoke when property is selected in any rule. */\r\n onRulePropertySelected?: (property: PropertyDescription) => void;\r\n /** Specifies how deep rule groups can be nested. */\r\n ruleGroupDepthLimit?: number;\r\n}\r\n\r\n/**\r\n * Context used to store data for rules and rule groups rendered inside [[PropertyFilterBuilder]] component.\r\n * @internal\r\n */\r\nexport const PropertyFilterBuilderContext = React.createContext<PropertyFilterBuilderContextProps>(null!);\r\n\r\n/**\r\n * Data structure that describes [[PropertyFilterBuilderRuleRenderingContext]] value.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderRuleRenderingContextProps {\r\n /** Custom renderer for operator selector in rule. */\r\n ruleOperatorRenderer?: (props: PropertyFilterBuilderRuleOperatorProps) => React.ReactNode;\r\n /** Custom renderer for value input in rule. */\r\n ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueProps) => React.ReactNode;\r\n /** Custom renderer for property selector in rule. */\r\n propertyRenderer?: (name: string) => React.ReactNode;\r\n /** Specifies that properties selection is disabled. */\r\n isDisabled?: boolean;\r\n}\r\n\r\n/**\r\n * Context for rendering rules and rule groups inside [[PropertyFilterBuilder]] component.\r\n * @internal\r\n */\r\nexport const PropertyFilterBuilderRuleRenderingContext = React.createContext<PropertyFilterBuilderRuleRenderingContextProps>({});\r\n\r\n/**\r\n * Data structure that describes value of [[ActiveRuleGroupContext]].\r\n * @internal\r\n */\r\nexport interface ActiveRuleGroupContextProps {\r\n /** Element of currently active rule group. */\r\n activeElement: HTMLElement | undefined;\r\n /** Even handler for rule group element 'onFocus' event */\r\n onFocus: React.FocusEventHandler<HTMLElement>;\r\n /** Even handler for rule group element 'onBlur' event */\r\n onBlur: React.FocusEventHandler<HTMLElement>;\r\n /** Even handler for rule group element 'onMouseOver' event */\r\n onMouseOver: React.MouseEventHandler<HTMLElement>;\r\n /** Even handler for rule group element 'onMouseOut' event */\r\n onMouseOut: React.MouseEventHandler<HTMLElement>;\r\n}\r\n\r\n/**\r\n * Context for tracking and storing active rule group in [[PropertyFilterBuilder]].\r\n * Group is considered active if it is focused or hovered.\r\n * @internal\r\n */\r\nexport const ActiveRuleGroupContext = React.createContext<ActiveRuleGroupContextProps>(null!);\r\n\r\n/**\r\n * Custom hook that created value for [[ActiveRuleGroupContext]].\r\n * @internal\r\n */\r\nexport function useActiveRuleGroupContextProps(rootElementRef: React.RefObject<HTMLElement>) {\r\n const [activeElement, setActiveElement] = React.useState<HTMLElement | undefined>();\r\n\r\n const onFocus: React.FocusEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n setActiveElement(e.currentTarget);\r\n }, []);\r\n\r\n const onBlur: React.FocusEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n if (activeElement !== e.currentTarget || (rootElementRef.current && rootElementRef.current.contains(e.relatedTarget)))\r\n return;\r\n\r\n setActiveElement(undefined);\r\n }, [activeElement, rootElementRef]);\r\n\r\n const onMouseOver: React.MouseEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n setActiveElement(e.currentTarget);\r\n }, []);\r\n\r\n const onMouseOut: React.MouseEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n // istanbul ignore if\r\n if (activeElement !== e.currentTarget)\r\n return;\r\n\r\n setActiveElement(undefined);\r\n }, [activeElement]);\r\n\r\n return React.useMemo(() => ({\r\n activeElement,\r\n onFocus,\r\n onBlur,\r\n onMouseOver,\r\n onMouseOut,\r\n }), [activeElement, onFocus, onBlur, onMouseOver, onMouseOut]);\r\n}\r\n"]}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module PropertyFilterBuilder
|
|
3
|
+
*/
|
|
1
4
|
/// <reference types="react" />
|
|
2
|
-
import { PropertyFilterBuilderRule } from "./FilterBuilderState";
|
|
3
5
|
import "./FilterBuilderRule.scss";
|
|
4
|
-
|
|
6
|
+
import { PropertyFilterBuilderRule } from "./FilterBuilderState";
|
|
7
|
+
/**
|
|
8
|
+
* Props for [[PropertyFilterBuilderRuleRenderer]] component.
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
5
11
|
export interface PropertyFilterBuilderRuleRendererProps {
|
|
12
|
+
/** Path from [[PropertyFilterBuilder]] root to this rule. */
|
|
6
13
|
path: string[];
|
|
14
|
+
/** Rule to render. */
|
|
7
15
|
rule: PropertyFilterBuilderRule;
|
|
8
16
|
}
|
|
9
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Component that renders single rule in [[PropertyFilterBuilder]] component.
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
10
21
|
export declare function PropertyFilterBuilderRuleRenderer(props: PropertyFilterBuilderRuleRendererProps): JSX.Element;
|
|
11
22
|
//# sourceMappingURL=FilterBuilderRule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterBuilderRule.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRule.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"FilterBuilderRule.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRule.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,0BAA0B,CAAC;AASlC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAGjE;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,6DAA6D;IAC7D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,sBAAsB;IACtB,IAAI,EAAE,yBAAyB,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,sCAAsC,eAsD9F"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module PropertyFilterBuilder
|
|
8
|
+
*/
|
|
2
9
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
10
|
if (k2 === undefined) k2 = k;
|
|
4
11
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
@@ -20,24 +27,23 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
20
27
|
};
|
|
21
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
29
|
exports.PropertyFilterBuilderRuleRenderer = void 0;
|
|
23
|
-
|
|
24
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
25
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
26
|
-
*--------------------------------------------------------------------------------------------*/
|
|
30
|
+
require("./FilterBuilderRule.scss");
|
|
27
31
|
const React = __importStar(require("react"));
|
|
28
32
|
const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
|
|
29
33
|
const itwinui_react_1 = require("@itwin/itwinui-react");
|
|
30
|
-
const
|
|
34
|
+
const FilterBuilderContext_1 = require("./FilterBuilderContext");
|
|
31
35
|
const FilterBuilderRuleOperator_1 = require("./FilterBuilderRuleOperator");
|
|
32
36
|
const FilterBuilderRuleProperty_1 = require("./FilterBuilderRuleProperty");
|
|
33
37
|
const FilterBuilderRuleValue_1 = require("./FilterBuilderRuleValue");
|
|
34
38
|
const Operators_1 = require("./Operators");
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Component that renders single rule in [[PropertyFilterBuilder]] component.
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
37
43
|
function PropertyFilterBuilderRuleRenderer(props) {
|
|
38
44
|
const { path, rule } = props;
|
|
39
|
-
const { properties, actions, onRulePropertySelected } = React.useContext(
|
|
40
|
-
const { ruleOperatorRenderer, ruleValueRenderer, propertyRenderer,
|
|
45
|
+
const { properties, actions, onRulePropertySelected } = React.useContext(FilterBuilderContext_1.PropertyFilterBuilderContext);
|
|
46
|
+
const { ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, isDisabled } = React.useContext(FilterBuilderContext_1.PropertyFilterBuilderRuleRenderingContext);
|
|
41
47
|
const { property, operator, value } = rule;
|
|
42
48
|
const onSelectedPropertyChanged = React.useCallback((newProperty) => {
|
|
43
49
|
actions.setRuleProperty(path, newProperty);
|
|
@@ -68,7 +74,7 @@ function PropertyFilterBuilderRuleRenderer(props) {
|
|
|
68
74
|
React.createElement(itwinui_react_1.IconButton, { onClick: removeRule, styleType: "borderless", size: "small" },
|
|
69
75
|
React.createElement(itwinui_icons_react_1.SvgDelete, null))),
|
|
70
76
|
React.createElement("div", { className: "rule-condition" },
|
|
71
|
-
React.createElement(FilterBuilderRuleProperty_1.PropertyFilterBuilderRuleProperty, { properties: properties, selectedProperty: rule.property, onSelectedPropertyChanged: onSelectedPropertyChanged, propertyRenderer: propertyRenderer, isDisabled:
|
|
77
|
+
React.createElement(FilterBuilderRuleProperty_1.PropertyFilterBuilderRuleProperty, { properties: properties, selectedProperty: rule.property, onSelectedPropertyChanged: onSelectedPropertyChanged, propertyRenderer: propertyRenderer, isDisabled: isDisabled }),
|
|
72
78
|
property && operatorRenderer(property),
|
|
73
79
|
property && operator && !(0, Operators_1.isUnaryPropertyFilterOperator)(operator) && valueRenderer(property)));
|
|
74
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterBuilderRule.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRule.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FilterBuilderRule.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRule.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module PropertyFilterBuilder\r\n */\r\n\r\nimport \"./FilterBuilderRule.scss\";\r\nimport * as React from \"react\";\r\nimport { PropertyDescription, PropertyValue } from \"@itwin/appui-abstract\";\r\nimport { SvgDelete } from \"@itwin/itwinui-icons-react\";\r\nimport { IconButton } from \"@itwin/itwinui-react\";\r\nimport { PropertyFilterBuilderContext, PropertyFilterBuilderRuleRenderingContext } from \"./FilterBuilderContext\";\r\nimport { PropertyFilterBuilderRuleOperator } from \"./FilterBuilderRuleOperator\";\r\nimport { PropertyFilterBuilderRuleProperty } from \"./FilterBuilderRuleProperty\";\r\nimport { PropertyFilterBuilderRuleValue } from \"./FilterBuilderRuleValue\";\r\nimport { PropertyFilterBuilderRule } from \"./FilterBuilderState\";\r\nimport { isUnaryPropertyFilterOperator, PropertyFilterRuleOperator } from \"./Operators\";\r\n\r\n/**\r\n * Props for [[PropertyFilterBuilderRuleRenderer]] component.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderRuleRendererProps {\r\n /** Path from [[PropertyFilterBuilder]] root to this rule. */\r\n path: string[];\r\n /** Rule to render. */\r\n rule: PropertyFilterBuilderRule;\r\n}\r\n\r\n/**\r\n * Component that renders single rule in [[PropertyFilterBuilder]] component.\r\n * @internal\r\n */\r\nexport function PropertyFilterBuilderRuleRenderer(props: PropertyFilterBuilderRuleRendererProps) {\r\n const { path, rule } = props;\r\n const { properties, actions, onRulePropertySelected } = React.useContext(PropertyFilterBuilderContext);\r\n const { ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, isDisabled } = React.useContext(PropertyFilterBuilderRuleRenderingContext);\r\n const { property, operator, value } = rule;\r\n\r\n const onSelectedPropertyChanged = React.useCallback((newProperty?: PropertyDescription) => {\r\n actions.setRuleProperty(path, newProperty);\r\n // invoke 'onRulePropertySelected' when new property is selected. There is no way to deselect property\r\n // so 'newProperty' will be 'undefined' only if selected property is no longer in 'properties' list.\r\n if (onRulePropertySelected && newProperty)\r\n onRulePropertySelected(newProperty);\r\n }, [path, onRulePropertySelected, actions]);\r\n\r\n const onRuleOperatorChange = React.useCallback((newOperator: PropertyFilterRuleOperator) => {\r\n actions.setRuleOperator(path, newOperator);\r\n }, [path, actions]);\r\n\r\n const onRuleValueChange = React.useCallback((newValue: PropertyValue) => {\r\n actions.setRuleValue(path, newValue);\r\n }, [path, actions]);\r\n\r\n const removeRule = () => actions.removeItem(path);\r\n\r\n const operatorRenderer = React.useCallback((prop: PropertyDescription) => {\r\n if (ruleOperatorRenderer)\r\n return ruleOperatorRenderer({ property: prop, operator, onChange: onRuleOperatorChange });\r\n return <PropertyFilterBuilderRuleOperator property={prop} onChange={onRuleOperatorChange} operator={operator} />;\r\n }, [operator, ruleOperatorRenderer, onRuleOperatorChange]);\r\n\r\n const valueRenderer = React.useCallback((prop: PropertyDescription) => {\r\n if (ruleValueRenderer)\r\n return ruleValueRenderer({ property: prop, value, onChange: onRuleValueChange });\r\n return <PropertyFilterBuilderRuleValue property={prop} onChange={onRuleValueChange} value={value} />;\r\n }, [value, ruleValueRenderer, onRuleValueChange]);\r\n\r\n return <div className=\"rule\">\r\n <div className=\"rule-remove-action\">\r\n <IconButton onClick={removeRule} styleType=\"borderless\" size=\"small\">\r\n <SvgDelete />\r\n </IconButton>\r\n </div>\r\n <div className=\"rule-condition\">\r\n <PropertyFilterBuilderRuleProperty\r\n properties={properties}\r\n selectedProperty={rule.property}\r\n onSelectedPropertyChanged={onSelectedPropertyChanged}\r\n propertyRenderer={propertyRenderer}\r\n isDisabled={isDisabled}\r\n />\r\n {property && operatorRenderer(property)}\r\n {property && operator && !isUnaryPropertyFilterOperator(operator) && valueRenderer(property)}\r\n </div>\r\n </div>;\r\n}\r\n"]}
|
|
@@ -1,29 +1,38 @@
|
|
|
1
|
-
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module PropertyFilterBuilder
|
|
3
|
+
*/
|
|
4
|
+
/// <reference types="react" />
|
|
5
|
+
import "./FilterBuilderRuleGroup.scss";
|
|
2
6
|
import { PropertyFilterBuilderRuleGroup } from "./FilterBuilderState";
|
|
3
7
|
import { PropertyFilterRuleGroupOperator } from "./Operators";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
onFocus: React.FocusEventHandler<HTMLElement>;
|
|
9
|
-
onBlur: React.FocusEventHandler<HTMLElement>;
|
|
10
|
-
onMouseOver: React.MouseEventHandler<HTMLElement>;
|
|
11
|
-
onMouseOut: React.MouseEventHandler<HTMLElement>;
|
|
12
|
-
}
|
|
13
|
-
/** @alpha */
|
|
14
|
-
export declare const ActiveRuleGroupContext: React.Context<ActiveRuleGroupContextProps>;
|
|
15
|
-
/** @alpha */
|
|
8
|
+
/**
|
|
9
|
+
* Props for [[PropertyFilterBuilderRuleGroupRenderer]] component.
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
16
12
|
export interface PropertyFilterBuilderRuleGroupRendererProps {
|
|
13
|
+
/** Path from [[PropertyFilterBuilder]] root to this rule group. */
|
|
17
14
|
path: string[];
|
|
15
|
+
/** Rule group to render. */
|
|
18
16
|
group: PropertyFilterBuilderRuleGroup;
|
|
19
17
|
}
|
|
20
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* Component that renders group of rules in [[PropertyFilterBuilder]] component.
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
21
22
|
export declare function PropertyFilterBuilderRuleGroupRenderer(props: PropertyFilterBuilderRuleGroupRendererProps): JSX.Element;
|
|
22
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Props for [[PropertyFilterBuilderRuleGroupOperator]] component.
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
23
27
|
export interface PropertyFilterBuilderRuleGroupOperatorProps {
|
|
28
|
+
/** Currently selected operator. */
|
|
24
29
|
operator: PropertyFilterRuleGroupOperator;
|
|
30
|
+
/** Callback that is invoked when selected operator changes. */
|
|
25
31
|
onChange: (operator: PropertyFilterRuleGroupOperator) => void;
|
|
26
32
|
}
|
|
27
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Component that renders [[PropertyFilterBuilderRuleGroup]] operator selector.
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
28
37
|
export declare function PropertyFilterBuilderRuleGroupOperator(props: PropertyFilterBuilderRuleGroupOperatorProps): JSX.Element;
|
|
29
38
|
//# sourceMappingURL=FilterBuilderRuleGroup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterBuilderRuleGroup.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleGroup.tsx"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"FilterBuilderRuleGroup.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleGroup.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,+BAA+B,CAAC;AAOvC,OAAO,EAAoC,8BAA8B,EAAsC,MAAM,sBAAsB,CAAC;AAC5I,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,2CAA2C;IAC1D,mEAAmE;IACnE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,4BAA4B;IAC5B,KAAK,EAAE,8BAA8B,CAAC;CACvC;AAED;;;GAGG;AACH,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,2CAA2C,eA0CxG;AAED;;;GAGG;AACH,MAAM,WAAW,2CAA2C;IAC1D,mCAAmC;IACnC,QAAQ,EAAE,+BAA+B,CAAC;IAC1C,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,QAAQ,EAAE,+BAA+B,KAAK,IAAI,CAAC;CAC/D;AAED;;;GAGG;AACH,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,2CAA2C,eAWxG"}
|
|
@@ -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,26 +26,23 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
19
26
|
return result;
|
|
20
27
|
};
|
|
21
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.PropertyFilterBuilderRuleGroupOperator = exports.PropertyFilterBuilderRuleGroupRenderer =
|
|
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.PropertyFilterBuilderRuleGroupOperator = exports.PropertyFilterBuilderRuleGroupRenderer = void 0;
|
|
30
|
+
require("./FilterBuilderRuleGroup.scss");
|
|
27
31
|
const React = __importStar(require("react"));
|
|
28
32
|
const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
|
|
29
33
|
const itwinui_react_1 = require("@itwin/itwinui-react");
|
|
30
34
|
const UiComponents_1 = require("../UiComponents");
|
|
31
|
-
const
|
|
35
|
+
const FilterBuilderContext_1 = require("./FilterBuilderContext");
|
|
32
36
|
const FilterBuilderRule_1 = require("./FilterBuilderRule");
|
|
33
37
|
const FilterBuilderState_1 = require("./FilterBuilderState");
|
|
34
38
|
const Operators_1 = require("./Operators");
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Component that renders group of rules in [[PropertyFilterBuilder]] component.
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
39
43
|
function PropertyFilterBuilderRuleGroupRenderer(props) {
|
|
40
44
|
const { path, group } = props;
|
|
41
|
-
const { actions, ruleGroupDepthLimit } = React.useContext(
|
|
45
|
+
const { actions, ruleGroupDepthLimit } = React.useContext(FilterBuilderContext_1.PropertyFilterBuilderContext);
|
|
42
46
|
const groupRef = React.useRef(null);
|
|
43
47
|
const addRule = () => actions.addItem(path, "RULE");
|
|
44
48
|
const addRuleGroup = () => actions.addItem(path, "RULE_GROUP");
|
|
@@ -47,19 +51,23 @@ function PropertyFilterBuilderRuleGroupRenderer(props) {
|
|
|
47
51
|
actions.setRuleGroupOperator(path, operator);
|
|
48
52
|
}, [path, actions]);
|
|
49
53
|
const allowToAddGroup = ruleGroupDepthLimit === undefined || path.length < ruleGroupDepthLimit;
|
|
50
|
-
const { activeElement, ...eventHandlers } = React.useContext(
|
|
54
|
+
const { activeElement, ...eventHandlers } = React.useContext(FilterBuilderContext_1.ActiveRuleGroupContext);
|
|
55
|
+
const showOperator = group.items.length > 1;
|
|
51
56
|
return React.createElement("div", { ref: groupRef, className: "rule-group", "data-isactive": groupRef.current === activeElement, ...eventHandlers },
|
|
52
57
|
React.createElement("div", { className: "rule-group-remove-action" }, group.groupId !== undefined && React.createElement(itwinui_react_1.IconButton, { "data-testid": "rule-group-remove", onClick: removeGroup, styleType: "borderless", size: "small" },
|
|
53
58
|
React.createElement(itwinui_icons_react_1.SvgDelete, null))),
|
|
54
59
|
React.createElement("div", { className: "rule-group-content" },
|
|
55
|
-
React.createElement(PropertyFilterBuilderRuleGroupOperator, { operator: group.operator, onChange: onOperatorChange }),
|
|
60
|
+
showOperator ? React.createElement(PropertyFilterBuilderRuleGroupOperator, { operator: group.operator, onChange: onOperatorChange }) : null,
|
|
56
61
|
React.createElement("div", { className: "rule-group-items" }, group.items.map((item) => React.createElement(PropertyFilterBuilderGroupOrRule, { key: item.id, path: path, item: item }))),
|
|
57
62
|
React.createElement("div", { className: "rule-group-actions" },
|
|
58
63
|
React.createElement(itwinui_react_1.Button, { key: "add-rule-button", "data-testid": "rule-group-add-rule", onClick: addRule, styleType: "borderless", size: "small", startIcon: React.createElement(itwinui_icons_react_1.SvgAdd, null) }, UiComponents_1.UiComponents.translate("filterBuilder.rule")),
|
|
59
64
|
allowToAddGroup && React.createElement(itwinui_react_1.Button, { key: "add-rule-group-button", "data-testid": "rule-group-add-rule-group", onClick: addRuleGroup, styleType: "borderless", size: "small", startIcon: React.createElement(itwinui_icons_react_1.SvgAdd, null) }, UiComponents_1.UiComponents.translate("filterBuilder.ruleGroup")))));
|
|
60
65
|
}
|
|
61
66
|
exports.PropertyFilterBuilderRuleGroupRenderer = PropertyFilterBuilderRuleGroupRenderer;
|
|
62
|
-
/**
|
|
67
|
+
/**
|
|
68
|
+
* Component that renders [[PropertyFilterBuilderRuleGroup]] operator selector.
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
63
71
|
function PropertyFilterBuilderRuleGroupOperator(props) {
|
|
64
72
|
const { operator, onChange } = props;
|
|
65
73
|
const options = React.useMemo(() => ([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterBuilderRuleGroup.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleGroup.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FilterBuilderRuleGroup.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleGroup.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module PropertyFilterBuilder\r\n */\r\n\r\nimport \"./FilterBuilderRuleGroup.scss\";\r\nimport * as React from \"react\";\r\nimport { SvgAdd, SvgDelete } from \"@itwin/itwinui-icons-react\";\r\nimport { Button, IconButton, Select, SelectOption } from \"@itwin/itwinui-react\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport { ActiveRuleGroupContext, PropertyFilterBuilderContext } from \"./FilterBuilderContext\";\r\nimport { PropertyFilterBuilderRuleRenderer } from \"./FilterBuilderRule\";\r\nimport { isPropertyFilterBuilderRuleGroup, PropertyFilterBuilderRuleGroup, PropertyFilterBuilderRuleGroupItem } from \"./FilterBuilderState\";\r\nimport { PropertyFilterRuleGroupOperator } from \"./Operators\";\r\n\r\n/**\r\n * Props for [[PropertyFilterBuilderRuleGroupRenderer]] component.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderRuleGroupRendererProps {\r\n /** Path from [[PropertyFilterBuilder]] root to this rule group. */\r\n path: string[];\r\n /** Rule group to render. */\r\n group: PropertyFilterBuilderRuleGroup;\r\n}\r\n\r\n/**\r\n * Component that renders group of rules in [[PropertyFilterBuilder]] component.\r\n * @internal\r\n */\r\nexport function PropertyFilterBuilderRuleGroupRenderer(props: PropertyFilterBuilderRuleGroupRendererProps) {\r\n const { path, group } = props;\r\n const { actions, ruleGroupDepthLimit } = React.useContext(PropertyFilterBuilderContext);\r\n const groupRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const addRule = () => actions.addItem(path, \"RULE\");\r\n const addRuleGroup = () => actions.addItem(path, \"RULE_GROUP\");\r\n const removeGroup = () => actions.removeItem(path);\r\n\r\n const onOperatorChange = React.useCallback((operator) => {\r\n actions.setRuleGroupOperator(path, operator);\r\n }, [path, actions]);\r\n\r\n const allowToAddGroup = ruleGroupDepthLimit === undefined || path.length < ruleGroupDepthLimit;\r\n const { activeElement, ...eventHandlers } = React.useContext(ActiveRuleGroupContext);\r\n\r\n const showOperator = group.items.length > 1;\r\n\r\n return <div\r\n ref={groupRef}\r\n className=\"rule-group\"\r\n data-isactive={groupRef.current === activeElement}\r\n {...eventHandlers}\r\n >\r\n <div className=\"rule-group-remove-action\">\r\n {group.groupId !== undefined && <IconButton data-testid=\"rule-group-remove\" onClick={removeGroup} styleType=\"borderless\" size=\"small\"><SvgDelete /></IconButton>}\r\n </div>\r\n <div className=\"rule-group-content\">\r\n {showOperator ? <PropertyFilterBuilderRuleGroupOperator operator={group.operator} onChange={onOperatorChange} /> : null}\r\n <div className=\"rule-group-items\">\r\n {group.items.map((item) => <PropertyFilterBuilderGroupOrRule key={item.id} path={path} item={item} />)}\r\n </div>\r\n <div className=\"rule-group-actions\">\r\n <Button key=\"add-rule-button\" data-testid=\"rule-group-add-rule\" onClick={addRule} styleType=\"borderless\" size=\"small\" startIcon={<SvgAdd />}>\r\n {UiComponents.translate(\"filterBuilder.rule\")}\r\n </Button>\r\n {allowToAddGroup && <Button key=\"add-rule-group-button\" data-testid=\"rule-group-add-rule-group\" onClick={addRuleGroup} styleType=\"borderless\" size=\"small\" startIcon={<SvgAdd />}>\r\n {UiComponents.translate(\"filterBuilder.ruleGroup\")}\r\n </Button>}\r\n </div>\r\n </div>\r\n </div>;\r\n}\r\n\r\n/**\r\n * Props for [[PropertyFilterBuilderRuleGroupOperator]] component.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderRuleGroupOperatorProps {\r\n /** Currently selected operator. */\r\n operator: PropertyFilterRuleGroupOperator;\r\n /** Callback that is invoked when selected operator changes. */\r\n onChange: (operator: PropertyFilterRuleGroupOperator) => void;\r\n}\r\n\r\n/**\r\n * Component that renders [[PropertyFilterBuilderRuleGroup]] operator selector.\r\n * @internal\r\n */\r\nexport function PropertyFilterBuilderRuleGroupOperator(props: PropertyFilterBuilderRuleGroupOperatorProps) {\r\n const { operator, onChange } = props;\r\n\r\n const options = React.useMemo<Array<SelectOption<PropertyFilterRuleGroupOperator>>>(() => ([\r\n { value: PropertyFilterRuleGroupOperator.And, label: UiComponents.translate(\"filterBuilder.operators.and\") },\r\n { value: PropertyFilterRuleGroupOperator.Or, label: UiComponents.translate(\"filterBuilder.operators.or\") },\r\n ]), []);\r\n\r\n return <div className=\"rule-group-operator\">\r\n <Select options={options} value={operator} onChange={onChange} size=\"small\" />\r\n </div>;\r\n}\r\ninterface PropertyFilterBuilderGroupOrRuleProps {\r\n path: string[];\r\n item: PropertyFilterBuilderRuleGroupItem;\r\n}\r\n\r\nconst PropertyFilterBuilderGroupOrRule = React.memo(\r\n function PropertyFilterBuilderGroupOrRule({ path, item }: PropertyFilterBuilderGroupOrRuleProps) {\r\n const itemPath = [...path, item.id];\r\n\r\n if (isPropertyFilterBuilderRuleGroup(item))\r\n return <PropertyFilterBuilderRuleGroupRenderer path={itemPath} group={item} />;\r\n return <PropertyFilterBuilderRuleRenderer path={itemPath} rule={item} />;\r\n }\r\n);\r\n"]}
|
|
@@ -1,12 +1,24 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module PropertyFilterBuilder
|
|
3
|
+
*/
|
|
1
4
|
/// <reference types="react" />
|
|
2
5
|
import { PropertyDescription } from "@itwin/appui-abstract";
|
|
3
6
|
import { PropertyFilterRuleOperator } from "./Operators";
|
|
4
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Props for [[PropertyFilterBuilderRuleOperator]] component.
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
5
11
|
export interface PropertyFilterBuilderRuleOperatorProps {
|
|
12
|
+
/** Currently selected operator. */
|
|
6
13
|
operator?: PropertyFilterRuleOperator;
|
|
14
|
+
/** Property used in rule for which this operator will be used. */
|
|
7
15
|
property: PropertyDescription;
|
|
16
|
+
/** Callback that is invoked when selected operator changes. */
|
|
8
17
|
onChange: (operator: PropertyFilterRuleOperator) => void;
|
|
9
18
|
}
|
|
10
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Component that renders [[PropertyFilterBuilderRuleRenderer]] operator selector.
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
11
23
|
export declare function PropertyFilterBuilderRuleOperator(props: PropertyFilterBuilderRuleOperatorProps): JSX.Element;
|
|
12
24
|
//# sourceMappingURL=FilterBuilderRuleOperator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterBuilderRuleOperator.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleOperator.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FilterBuilderRuleOperator.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleOperator.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAA8D,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAErH;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,mCAAmC;IACnC,QAAQ,CAAC,EAAE,0BAA0B,CAAC;IACtC,kEAAkE;IAClE,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,CAAC;CAC1D;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,sCAAsC,eAkB9F"}
|
|
@@ -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.PropertyFilterBuilderRuleOperator = 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 Operators_1 = require("./Operators");
|
|
30
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Component that renders [[PropertyFilterBuilderRuleRenderer]] operator selector.
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
31
37
|
function PropertyFilterBuilderRuleOperator(props) {
|
|
32
38
|
var _a;
|
|
33
39
|
const { operator, property, onChange } = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterBuilderRuleOperator.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleOperator.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FilterBuilderRuleOperator.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleOperator.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AAE/B,wDAA8C;AAC9C,2CAAqH;AAerH;;;GAGG;AACH,SAAgB,iCAAiC,CAAC,KAA6C;;IAC7F,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE/C,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAA,sCAA0B,EAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjG,MAAM,gBAAgB,GAAG,MAAA,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,mCAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAEnG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEjC,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3E,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,IAAA,0CAA8B,EAAC,EAAE,CAAC;KAC1C,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE3B,OAAO,6BAAK,SAAS,EAAC,eAAe;QACnC,oBAAC,sBAAM,IAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAC,OAAO,GAAG,CAC3F,CAAC;AACT,CAAC;AAlBD,8EAkBC","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 { Select } from \"@itwin/itwinui-react\";\r\nimport { getPropertyFilterOperatorLabel, getPropertyFilterOperators, PropertyFilterRuleOperator } from \"./Operators\";\r\n\r\n/**\r\n * Props for [[PropertyFilterBuilderRuleOperator]] component.\r\n * @internal\r\n */\r\nexport interface PropertyFilterBuilderRuleOperatorProps {\r\n /** Currently selected operator. */\r\n operator?: PropertyFilterRuleOperator;\r\n /** Property used in rule for which this operator will be used. */\r\n property: PropertyDescription;\r\n /** Callback that is invoked when selected operator changes. */\r\n onChange: (operator: PropertyFilterRuleOperator) => void;\r\n}\r\n\r\n/**\r\n * Component that renders [[PropertyFilterBuilderRuleRenderer]] operator selector.\r\n * @internal\r\n */\r\nexport function PropertyFilterBuilderRuleOperator(props: PropertyFilterBuilderRuleOperatorProps) {\r\n const { operator, property, onChange } = props;\r\n\r\n const availableOperators = React.useMemo(() => getPropertyFilterOperators(property), [property]);\r\n const selectedOperator = availableOperators.find((op) => op === operator) ?? availableOperators[0];\r\n\r\n React.useEffect(() => {\r\n onChange(selectedOperator);\r\n }, [onChange, selectedOperator]);\r\n\r\n const availableOptions = React.useMemo(() => availableOperators.map((op) => ({\r\n value: op,\r\n label: getPropertyFilterOperatorLabel(op),\r\n })), [availableOperators]);\r\n\r\n return <div className=\"rule-operator\">\r\n <Select options={availableOptions} value={selectedOperator} onChange={onChange} size=\"small\" />\r\n </div>;\r\n}\r\n"]}
|
|
@@ -1,13 +1,27 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module PropertyFilterBuilder
|
|
3
|
+
*/
|
|
1
4
|
import * as React from "react";
|
|
2
5
|
import { PropertyDescription } from "@itwin/appui-abstract";
|
|
3
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Props for [[PropertyFilterBuilderRuleProperty]] component.
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
4
10
|
export interface PropertyFilterBuilderRulePropertyProps {
|
|
11
|
+
/** List of available properties. */
|
|
5
12
|
properties: PropertyDescription[];
|
|
13
|
+
/** Currently selected property. */
|
|
6
14
|
selectedProperty?: PropertyDescription;
|
|
15
|
+
/** Callback that is invoked when selected property changes. */
|
|
7
16
|
onSelectedPropertyChanged: (property?: PropertyDescription) => void;
|
|
17
|
+
/** Custom renderer for property item inside selector. */
|
|
8
18
|
propertyRenderer?: (name: string) => React.ReactNode;
|
|
19
|
+
/** Specifies whether selector should be disabled or not. */
|
|
9
20
|
isDisabled?: boolean;
|
|
10
21
|
}
|
|
11
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* Component that renders [[PropertyFilterBuilderRuleRenderer]] property selector.
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
12
26
|
export declare function PropertyFilterBuilderRuleProperty(props: PropertyFilterBuilderRulePropertyProps): JSX.Element;
|
|
13
27
|
//# sourceMappingURL=FilterBuilderRuleProperty.d.ts.map
|