@itwin/components-react 3.0.0-dev.82 → 3.0.0-dev.86
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/CHANGELOG.md +1362 -1362
- package/README.md +11 -11
- package/lib/cjs/components-react/UiComponents.js.map +1 -1
- package/lib/cjs/components-react/_target.scss +9 -9
- package/lib/cjs/components-react/breadcrumb/BeInspireTree.js.map +1 -1
- package/lib/cjs/components-react/breadcrumb/Breadcrumb.js.map +1 -1
- package/lib/cjs/components-react/breadcrumb/Breadcrumb.scss +196 -196
- package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
- package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
- package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
- package/lib/cjs/components-react/common/DateUtils.js.map +1 -1
- package/lib/cjs/components-react/common/DelayedSpinner.js.map +1 -1
- package/lib/cjs/components-react/common/HighlightedText.js.map +1 -1
- package/lib/cjs/components-react/common/HighlightingComponentProps.js.map +1 -1
- package/lib/cjs/components-react/common/IImageLoader.js.map +1 -1
- package/lib/cjs/components-react/common/ImageRenderer.js.map +1 -1
- package/lib/cjs/components-react/common/Links.js.map +1 -1
- package/lib/cjs/components-react/common/PageOptions.js.map +1 -1
- package/lib/cjs/components-react/common/SubscriptionScheduler.js.map +1 -1
- package/lib/cjs/components-react/common/UseAsyncValue.js.map +1 -1
- package/lib/cjs/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
- package/lib/cjs/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
- package/lib/cjs/components-react/common/UseRerender.js.map +1 -1
- package/lib/cjs/components-react/common/countMatchesInString.js.map +1 -1
- package/lib/cjs/components-react/common/selection/SelectionHandler.js.map +1 -1
- package/lib/cjs/components-react/common/selection/SelectionModes.js.map +1 -1
- package/lib/cjs/components-react/common/showhide/ShowHideDialog.js.map +1 -1
- package/lib/cjs/components-react/common/showhide/ShowHideItem.js.map +1 -1
- package/lib/cjs/components-react/common/showhide/ShowHideMenu.js.map +1 -1
- package/lib/cjs/components-react/converters/BooleanTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/CompositeTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/DateTimeTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/EnumTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/NumericTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/PointTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/StringTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/TypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/TypeConverterManager.js.map +1 -1
- package/lib/cjs/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DateField.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DateField.scss +22 -22
- package/lib/cjs/components-react/datepicker/DatePicker.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DatePicker.scss +170 -170
- package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DatePickerPopupButton.scss +57 -57
- package/lib/cjs/components-react/datepicker/IntlFormatter.js.map +1 -1
- package/lib/cjs/components-react/datepicker/TimeField.js.map +1 -1
- package/lib/cjs/components-react/datepicker/TimeField.scss +73 -73
- package/lib/cjs/components-react/editors/BooleanEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/BooleanEditor.scss +24 -24
- package/lib/cjs/components-react/editors/CustomNumberEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/CustomNumberEditor.scss +21 -21
- package/lib/cjs/components-react/editors/DateTimeEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/DateTimeEditor.scss +9 -9
- package/lib/cjs/components-react/editors/EditorContainer.js.map +1 -1
- package/lib/cjs/components-react/editors/EditorContainer.scss +6 -6
- package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/EnumButtonGroupEditor.scss +182 -182
- package/lib/cjs/components-react/editors/EnumEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/EnumEditor.scss +22 -22
- package/lib/cjs/components-react/editors/IconEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/IconEditor.scss +16 -16
- package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/ImageCheckBoxEditor.scss +23 -23
- package/lib/cjs/components-react/editors/NumericInputEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/NumericInputEditor.scss +17 -17
- package/lib/cjs/components-react/editors/PopupButton.js.map +1 -1
- package/lib/cjs/components-react/editors/PopupButton.scss +119 -119
- package/lib/cjs/components-react/editors/PropertyEditorManager.js.map +1 -1
- package/lib/cjs/components-react/editors/SliderEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/SliderEditor.scss +13 -13
- package/lib/cjs/components-react/editors/TextEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/TextEditor.scss +21 -21
- package/lib/cjs/components-react/editors/TextareaEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/TextareaEditor.scss +14 -14
- package/lib/cjs/components-react/editors/ThemedEnumEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/ThemedEnumEditor.scss +82 -82
- package/lib/cjs/components-react/editors/ToggleEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/ToggleEditor.scss +25 -25
- package/lib/cjs/components-react/editors/variables.scss +6 -6
- package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
- package/lib/cjs/components-react/favorite/FavoritePropertyList.js.map +1 -1
- package/lib/cjs/components-react/filtering/FilteringInput.js.map +1 -1
- package/lib/cjs/components-react/filtering/FilteringInput.scss +68 -68
- package/lib/cjs/components-react/filtering/ResultSelector.js.map +1 -1
- package/lib/cjs/components-react/filtering/ResultSelector.scss +72 -72
- package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
- package/lib/cjs/components-react/iconpicker/IconPickerButton.scss +74 -74
- package/lib/cjs/components-react/inputs/ParsedInput.js.map +1 -1
- package/lib/cjs/components-react/inputs/ParsedInput.scss +23 -23
- package/lib/cjs/components-react/properties/ItemStyle.js.map +1 -1
- package/lib/cjs/components-react/properties/LinkHandler.js.map +1 -1
- package/lib/cjs/components-react/properties/ValueRendererManager.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/ActionButtonList.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/ActionButtonList.scss +25 -25
- package/lib/cjs/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +16 -16
- package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyView.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyView.scss +106 -106
- package/lib/cjs/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.scss +87 -87
- package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.scss +10 -10
- package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGrid.scss +75 -75
- package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyList.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +94 -94
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.js.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/MutableCategorizedArrayProperty.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/selectable-content/SelectableContent.js.map +1 -1
- package/lib/cjs/components-react/selectable-content/SelectableContent.scss +19 -19
- package/lib/cjs/components-react/table/SimpleTableDataProvider.js.map +1 -1
- package/lib/cjs/components-react/table/TableDataProvider.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.scss +78 -78
- package/lib/cjs/components-react/table/columnfiltering/ColumnFilteringUtilities.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/DataGridFilterParser.d.ts.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/DataGridFilterParser.js +1 -0
- package/lib/cjs/components-react/table/columnfiltering/DataGridFilterParser.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/FilterableColumnBase.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/TableColumnFilterDescriptor.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptor.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptorCollection.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/NumericFilter.d.ts.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js +1 -0
- package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.d.ts.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js +1 -0
- package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js.map +1 -1
- package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.scss +35 -35
- package/lib/cjs/components-react/table/component/ColumnDragLayer.js.map +1 -1
- package/lib/cjs/components-react/table/component/DragDropHeaderCell.js.map +1 -1
- package/lib/cjs/components-react/table/component/Table.d.ts +8 -8
- package/lib/cjs/components-react/table/component/Table.d.ts.map +1 -1
- package/lib/cjs/components-react/table/component/Table.js +3 -2
- package/lib/cjs/components-react/table/component/Table.js.map +1 -1
- package/lib/cjs/components-react/table/component/Table.scss +200 -200
- package/lib/cjs/components-react/table/component/TableCell.d.ts +5 -5
- package/lib/cjs/components-react/table/component/TableCell.d.ts.map +1 -1
- package/lib/cjs/components-react/table/component/TableCell.js +3 -2
- package/lib/cjs/components-react/table/component/TableCell.js.map +1 -1
- package/lib/cjs/components-react/table/component/TableCell.scss +48 -48
- package/lib/cjs/components-react/table/component/TableColumn.d.ts +1 -1
- package/lib/cjs/components-react/table/component/TableColumn.d.ts.map +1 -1
- package/lib/cjs/components-react/table/component/TableColumn.js +1 -0
- package/lib/cjs/components-react/table/component/TableColumn.js.map +1 -1
- package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
- package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
- package/lib/cjs/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
- package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Item.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Item.scss +122 -122
- package/lib/cjs/components-react/toolbar/ItemWrapper.js.map +1 -1
- package/lib/cjs/components-react/toolbar/ItemWrapper.scss +10 -10
- package/lib/cjs/components-react/toolbar/Items.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Items.scss +94 -94
- package/lib/cjs/components-react/toolbar/Overflow.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Overflow.scss +48 -48
- package/lib/cjs/components-react/toolbar/OverflowPanel.js.map +1 -1
- package/lib/cjs/components-react/toolbar/OverflowPanel.scss +37 -37
- package/lib/cjs/components-react/toolbar/PopupItem.js.map +1 -1
- package/lib/cjs/components-react/toolbar/PopupItem.scss +75 -75
- package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
- package/lib/cjs/components-react/toolbar/PopupItemsPanel.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Toolbar.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Toolbar.scss +18 -18
- package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/cjs/components-react/toolbar/_variables.scss +34 -34
- package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
- package/lib/cjs/components-react/toolbar/groupPanel/Column.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Column.scss +9 -9
- package/lib/cjs/components-react/toolbar/groupPanel/Columns.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Columns.scss +10 -10
- package/lib/cjs/components-react/toolbar/groupPanel/Panel.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Panel.scss +17 -17
- package/lib/cjs/components-react/toolbar/groupPanel/Title.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Title.scss +34 -34
- package/lib/cjs/components-react/toolbar/groupPanel/_variables.scss +16 -16
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.scss +146 -146
- package/lib/cjs/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
- package/lib/cjs/components-react/toolbar/useDragInteraction.js.map +1 -1
- package/lib/cjs/components-react/toolbar/utilities/Direction.js.map +1 -1
- package/lib/cjs/components-react/tree/HighlightingEngine.js.map +1 -1
- package/lib/cjs/components-react/tree/HighlightingEngine.scss +7 -7
- package/lib/cjs/components-react/tree/ImageLoader.js.map +1 -1
- package/lib/cjs/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
- package/lib/cjs/components-react/tree/TreeComponentTestId.js.map +1 -1
- package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/Observable.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeActions.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEvents.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeHooks.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeModelSource.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/ControlledTree.scss +102 -102
- package/lib/cjs/components-react/tree/controlled/component/NodeContent.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/NodeContent.scss +28 -28
- package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
- package/lib/cjs/components-react.js.map +1 -1
- package/lib/esm/components-react/UiComponents.js.map +1 -1
- package/lib/esm/components-react/_target.scss +9 -9
- package/lib/esm/components-react/breadcrumb/BeInspireTree.js.map +1 -1
- package/lib/esm/components-react/breadcrumb/Breadcrumb.js.map +1 -1
- package/lib/esm/components-react/breadcrumb/Breadcrumb.scss +196 -196
- package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
- package/lib/esm/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
- package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
- package/lib/esm/components-react/common/DateUtils.js.map +1 -1
- package/lib/esm/components-react/common/DelayedSpinner.js.map +1 -1
- package/lib/esm/components-react/common/HighlightedText.js.map +1 -1
- package/lib/esm/components-react/common/HighlightingComponentProps.js.map +1 -1
- package/lib/esm/components-react/common/IImageLoader.js.map +1 -1
- package/lib/esm/components-react/common/ImageRenderer.js.map +1 -1
- package/lib/esm/components-react/common/Links.js.map +1 -1
- package/lib/esm/components-react/common/PageOptions.js.map +1 -1
- package/lib/esm/components-react/common/SubscriptionScheduler.js.map +1 -1
- package/lib/esm/components-react/common/UseAsyncValue.js.map +1 -1
- package/lib/esm/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
- package/lib/esm/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
- package/lib/esm/components-react/common/UseRerender.js.map +1 -1
- package/lib/esm/components-react/common/countMatchesInString.js.map +1 -1
- package/lib/esm/components-react/common/selection/SelectionHandler.js.map +1 -1
- package/lib/esm/components-react/common/selection/SelectionModes.js.map +1 -1
- package/lib/esm/components-react/common/showhide/ShowHideDialog.js.map +1 -1
- package/lib/esm/components-react/common/showhide/ShowHideItem.js.map +1 -1
- package/lib/esm/components-react/common/showhide/ShowHideMenu.js.map +1 -1
- package/lib/esm/components-react/converters/BooleanTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/CompositeTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/DateTimeTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/EnumTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/NumericTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/PointTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/StringTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/TypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/TypeConverterManager.js.map +1 -1
- package/lib/esm/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
- package/lib/esm/components-react/datepicker/DateField.js.map +1 -1
- package/lib/esm/components-react/datepicker/DateField.scss +22 -22
- package/lib/esm/components-react/datepicker/DatePicker.js.map +1 -1
- package/lib/esm/components-react/datepicker/DatePicker.scss +170 -170
- package/lib/esm/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
- package/lib/esm/components-react/datepicker/DatePickerPopupButton.scss +57 -57
- package/lib/esm/components-react/datepicker/IntlFormatter.js.map +1 -1
- package/lib/esm/components-react/datepicker/TimeField.js.map +1 -1
- package/lib/esm/components-react/datepicker/TimeField.scss +73 -73
- package/lib/esm/components-react/editors/BooleanEditor.js.map +1 -1
- package/lib/esm/components-react/editors/BooleanEditor.scss +24 -24
- package/lib/esm/components-react/editors/CustomNumberEditor.js.map +1 -1
- package/lib/esm/components-react/editors/CustomNumberEditor.scss +21 -21
- package/lib/esm/components-react/editors/DateTimeEditor.js.map +1 -1
- package/lib/esm/components-react/editors/DateTimeEditor.scss +9 -9
- package/lib/esm/components-react/editors/EditorContainer.js.map +1 -1
- package/lib/esm/components-react/editors/EditorContainer.scss +6 -6
- package/lib/esm/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
- package/lib/esm/components-react/editors/EnumButtonGroupEditor.scss +182 -182
- package/lib/esm/components-react/editors/EnumEditor.js.map +1 -1
- package/lib/esm/components-react/editors/EnumEditor.scss +22 -22
- package/lib/esm/components-react/editors/IconEditor.js.map +1 -1
- package/lib/esm/components-react/editors/IconEditor.scss +16 -16
- package/lib/esm/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
- package/lib/esm/components-react/editors/ImageCheckBoxEditor.scss +23 -23
- package/lib/esm/components-react/editors/NumericInputEditor.js.map +1 -1
- package/lib/esm/components-react/editors/NumericInputEditor.scss +17 -17
- package/lib/esm/components-react/editors/PopupButton.js.map +1 -1
- package/lib/esm/components-react/editors/PopupButton.scss +119 -119
- package/lib/esm/components-react/editors/PropertyEditorManager.js.map +1 -1
- package/lib/esm/components-react/editors/SliderEditor.js.map +1 -1
- package/lib/esm/components-react/editors/SliderEditor.scss +13 -13
- package/lib/esm/components-react/editors/TextEditor.js.map +1 -1
- package/lib/esm/components-react/editors/TextEditor.scss +21 -21
- package/lib/esm/components-react/editors/TextareaEditor.js.map +1 -1
- package/lib/esm/components-react/editors/TextareaEditor.scss +14 -14
- package/lib/esm/components-react/editors/ThemedEnumEditor.js.map +1 -1
- package/lib/esm/components-react/editors/ThemedEnumEditor.scss +82 -82
- package/lib/esm/components-react/editors/ToggleEditor.js.map +1 -1
- package/lib/esm/components-react/editors/ToggleEditor.scss +25 -25
- package/lib/esm/components-react/editors/variables.scss +6 -6
- package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
- package/lib/esm/components-react/favorite/FavoritePropertyList.js.map +1 -1
- package/lib/esm/components-react/filtering/FilteringInput.js.map +1 -1
- package/lib/esm/components-react/filtering/FilteringInput.scss +68 -68
- package/lib/esm/components-react/filtering/ResultSelector.js.map +1 -1
- package/lib/esm/components-react/filtering/ResultSelector.scss +72 -72
- package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
- package/lib/esm/components-react/iconpicker/IconPickerButton.scss +74 -74
- package/lib/esm/components-react/inputs/ParsedInput.js.map +1 -1
- package/lib/esm/components-react/inputs/ParsedInput.scss +23 -23
- package/lib/esm/components-react/properties/ItemStyle.js.map +1 -1
- package/lib/esm/components-react/properties/LinkHandler.js.map +1 -1
- package/lib/esm/components-react/properties/ValueRendererManager.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/ActionButtonList.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/ActionButtonList.scss +25 -25
- package/lib/esm/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +16 -16
- package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyView.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyView.scss +106 -106
- package/lib/esm/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.scss +87 -87
- package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.scss +10 -10
- package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
- package/lib/esm/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGrid.scss +75 -75
- package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyList.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +94 -94
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.js.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/MutableCategorizedArrayProperty.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/selectable-content/SelectableContent.js.map +1 -1
- package/lib/esm/components-react/selectable-content/SelectableContent.scss +19 -19
- package/lib/esm/components-react/table/SimpleTableDataProvider.js.map +1 -1
- package/lib/esm/components-react/table/TableDataProvider.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.scss +78 -78
- package/lib/esm/components-react/table/columnfiltering/ColumnFilteringUtilities.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/DataGridFilterParser.d.ts.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/DataGridFilterParser.js +1 -0
- package/lib/esm/components-react/table/columnfiltering/DataGridFilterParser.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/FilterableColumnBase.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/TableColumnFilterDescriptor.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptor.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptorCollection.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/data-grid-addons/NumericFilter.d.ts.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js +1 -0
- package/lib/esm/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.d.ts.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js +1 -0
- package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js.map +1 -1
- package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.scss +35 -35
- package/lib/esm/components-react/table/component/ColumnDragLayer.js.map +1 -1
- package/lib/esm/components-react/table/component/DragDropHeaderCell.js.map +1 -1
- package/lib/esm/components-react/table/component/Table.d.ts +8 -8
- package/lib/esm/components-react/table/component/Table.d.ts.map +1 -1
- package/lib/esm/components-react/table/component/Table.js +3 -2
- package/lib/esm/components-react/table/component/Table.js.map +1 -1
- package/lib/esm/components-react/table/component/Table.scss +200 -200
- package/lib/esm/components-react/table/component/TableCell.d.ts +5 -5
- package/lib/esm/components-react/table/component/TableCell.d.ts.map +1 -1
- package/lib/esm/components-react/table/component/TableCell.js +3 -2
- package/lib/esm/components-react/table/component/TableCell.js.map +1 -1
- package/lib/esm/components-react/table/component/TableCell.scss +48 -48
- package/lib/esm/components-react/table/component/TableColumn.d.ts +1 -1
- package/lib/esm/components-react/table/component/TableColumn.d.ts.map +1 -1
- package/lib/esm/components-react/table/component/TableColumn.js +1 -0
- package/lib/esm/components-react/table/component/TableColumn.js.map +1 -1
- package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
- package/lib/esm/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
- package/lib/esm/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
- package/lib/esm/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
- package/lib/esm/components-react/toolbar/Item.js.map +1 -1
- package/lib/esm/components-react/toolbar/Item.scss +122 -122
- package/lib/esm/components-react/toolbar/ItemWrapper.js.map +1 -1
- package/lib/esm/components-react/toolbar/ItemWrapper.scss +10 -10
- package/lib/esm/components-react/toolbar/Items.js.map +1 -1
- package/lib/esm/components-react/toolbar/Items.scss +94 -94
- package/lib/esm/components-react/toolbar/Overflow.js.map +1 -1
- package/lib/esm/components-react/toolbar/Overflow.scss +48 -48
- package/lib/esm/components-react/toolbar/OverflowPanel.js.map +1 -1
- package/lib/esm/components-react/toolbar/OverflowPanel.scss +37 -37
- package/lib/esm/components-react/toolbar/PopupItem.js.map +1 -1
- package/lib/esm/components-react/toolbar/PopupItem.scss +75 -75
- package/lib/esm/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
- package/lib/esm/components-react/toolbar/PopupItemsPanel.js.map +1 -1
- package/lib/esm/components-react/toolbar/Toolbar.js.map +1 -1
- package/lib/esm/components-react/toolbar/Toolbar.scss +18 -18
- package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/esm/components-react/toolbar/_variables.scss +34 -34
- package/lib/esm/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
- package/lib/esm/components-react/toolbar/groupPanel/Column.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Column.scss +9 -9
- package/lib/esm/components-react/toolbar/groupPanel/Columns.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Columns.scss +10 -10
- package/lib/esm/components-react/toolbar/groupPanel/Panel.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Panel.scss +17 -17
- package/lib/esm/components-react/toolbar/groupPanel/Title.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Title.scss +34 -34
- package/lib/esm/components-react/toolbar/groupPanel/_variables.scss +16 -16
- package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
- package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.scss +146 -146
- package/lib/esm/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
- package/lib/esm/components-react/toolbar/useDragInteraction.js.map +1 -1
- package/lib/esm/components-react/toolbar/utilities/Direction.js.map +1 -1
- package/lib/esm/components-react/tree/HighlightingEngine.js.map +1 -1
- package/lib/esm/components-react/tree/HighlightingEngine.scss +7 -7
- package/lib/esm/components-react/tree/ImageLoader.js.map +1 -1
- package/lib/esm/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
- package/lib/esm/components-react/tree/TreeComponentTestId.js.map +1 -1
- package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/Observable.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeActions.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEvents.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeHooks.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeModelSource.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/ControlledTree.scss +102 -102
- package/lib/esm/components-react/tree/controlled/component/NodeContent.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/NodeContent.scss +28 -28
- package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
- package/lib/esm/components-react.js.map +1 -1
- package/lib/public/locales/en/UiComponents.json +123 -123
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleTableDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/table/SimpleTableDataProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Table\n */\n\nimport { Primitives, PropertyRecord, PropertyValueFormat, UiError } from \"@itwin/appui-abstract\";\nimport { SortDirection } from \"@itwin/core-react\";\nimport { TypeConverterManager } from \"../converters/TypeConverterManager\";\nimport { UiComponents } from \"../UiComponents\";\nimport { CompositeFilterDescriptorCollection, DistinctValueCollection, TableDistinctValue } from \"./columnfiltering/ColumnFiltering\";\nimport { ColumnDescription, MutableTableDataProvider, RowItem, TableDataChangeEvent } from \"./TableDataProvider\";\n\n// cSpell:ignore columnfiltering\n\n/**\n * A Table Data Provider using an array of items.\n * @public\n */\nexport class SimpleTableDataProvider implements MutableTableDataProvider {\n private _items: RowItem[];\n private _rowItemIndices: number[]; // Used for both filtering and sorting\n private _columns: ColumnDescription[];\n private _secondarySortColumnStack?: number[];\n private _sortDirection: SortDirection = SortDirection.NoSort;\n private _sortColumnIndex: number = -1;\n private _filterDescriptors?: CompositeFilterDescriptorCollection;\n\n /** Event emitted by the data provider when column data changes */\n public onColumnsChanged = new TableDataChangeEvent();\n /** Event emitted by the data provider when row data changes */\n public onRowsChanged = new TableDataChangeEvent();\n\n constructor(columns: ColumnDescription[]) {\n this._columns = columns;\n this._items = [];\n this._rowItemIndices = [];\n this._secondarySortColumnStack = [];\n }\n\n /** Sets the row items based on an array */\n public setItems(items: RowItem[]): void {\n this._items = items;\n this._rowItemIndices = [];\n this.resetRowIndices();\n this.onRowsChanged.raiseEvent();\n }\n\n private resetRowIndices(): void {\n this._rowItemIndices.splice(0);\n\n for (let rowIndex = 0; rowIndex < this._items.length; rowIndex++) {\n this._rowItemIndices.push(rowIndex);\n }\n }\n\n /** Retrieves the column descriptions */\n public async getColumns(): Promise<ColumnDescription[]> {\n return this._columns;\n }\n\n /** Retrieves the row count */\n public async getRowsCount(): Promise<number> {\n return this._rowItemIndices.length;\n }\n\n /** Retrieves a specific row by index */\n public async getRow(rowIndex: number, unfiltered?: boolean): Promise<RowItem> {\n let realRowIndex: number = -1;\n\n if (unfiltered) {\n // istanbul ignore else\n if (0 <= rowIndex && rowIndex < this._items.length)\n realRowIndex = rowIndex;\n } else {\n if (0 <= rowIndex && rowIndex < this._rowItemIndices.length)\n realRowIndex = this.getRowIndexFromFilteredRowIndex(rowIndex);\n }\n\n if (0 <= realRowIndex && realRowIndex < this._items.length)\n return this._items[realRowIndex];\n\n throw new UiError(UiComponents.loggerCategory(this), `getRow: Invalid row index - ${rowIndex}`);\n }\n\n private getRowIndexFromFilteredRowIndex(filteredRowIndex: number): number {\n // istanbul ignore next\n if (filteredRowIndex === undefined)\n return filteredRowIndex;\n\n // istanbul ignore next\n if (filteredRowIndex < 0 || filteredRowIndex >= this._rowItemIndices.length)\n return -1;\n\n return this._rowItemIndices[filteredRowIndex];\n }\n\n /** Sorts the rows based on the value in a specific column */\n public async sort(columnIndex: number, sortDirection: SortDirection): Promise<void> {\n // istanbul ignore next\n if (columnIndex < 0 || columnIndex >= this._columns.length)\n return;\n\n this._sortColumnIndex = columnIndex;\n this._sortDirection = sortDirection;\n\n if (sortDirection === SortDirection.NoSort) {\n if (this._filterDescriptors)\n await this.applyFilterDescriptors(this._filterDescriptors);\n else\n this.resetRowIndices();\n return;\n }\n\n this._secondarySortColumnStack = [];\n this._secondarySortColumnStack.push(columnIndex);\n\n // Sort by the column\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const dataProvider = this;\n this._rowItemIndices.sort((a: number, b: number) => {\n return dataProvider.sortDispatcher(dataProvider._items[a], dataProvider._items[b], columnIndex, sortDirection);\n });\n\n delete this._secondarySortColumnStack;\n\n return;\n }\n\n private sortDispatcher(a: RowItem, b: RowItem, columnIndex: number, sortDirection: SortDirection): number {\n let result = this.sortRows(a, b, columnIndex, sortDirection);\n\n if (result !== 0)\n return result;\n\n // Secondary sort column support\n // istanbul ignore else\n const column = this._columns[columnIndex];\n if (this._secondarySortColumnStack !== undefined &&\n column.secondarySortColumn !== undefined &&\n column.secondarySortColumn !== columnIndex &&\n this._secondarySortColumnStack.indexOf(column.secondarySortColumn) < 0) {\n\n this._secondarySortColumnStack.push(column.secondarySortColumn);\n result = this.sortDispatcher(a, b, column.secondarySortColumn, sortDirection);\n this._secondarySortColumnStack.pop();\n }\n\n return result;\n }\n\n private getPrimitiveValue(record: PropertyRecord) {\n let primitiveValue: Primitives.Value | undefined;\n const recordValue = record.value;\n // istanbul ignore else\n if (recordValue.valueFormat === PropertyValueFormat.Primitive)\n primitiveValue = recordValue.value;\n return primitiveValue;\n }\n\n private sortRows(a: RowItem, b: RowItem, columnIndex: number, sortDirection: SortDirection): number {\n const aCell = a.cells[columnIndex];\n const bCell = b.cells[columnIndex];\n\n let result: number = 0;\n const column = this._columns[columnIndex];\n\n const propertyDescription = column.propertyDescription;\n const valueA = this.getPrimitiveValue(aCell.record as PropertyRecord);\n const valueB = this.getPrimitiveValue(bCell.record as PropertyRecord);\n // istanbul ignore else\n if (valueA !== undefined && valueB !== undefined && propertyDescription)\n result = TypeConverterManager.getConverter(propertyDescription.typename, propertyDescription.converter?.name).sortCompare(valueA, valueB, column.sortIgnoreCase);\n\n if (sortDirection === SortDirection.Descending)\n result *= -1;\n\n return result;\n }\n\n /** Gets distinct values in a column\n * @public\n */\n public async getDistinctValues(columnKey: string, maximumValueCount?: number): Promise<DistinctValueCollection> {\n const distinctValues = new DistinctValueCollection();\n const columnIndex = this._columns.findIndex((description: ColumnDescription) => description.key === columnKey);\n if (columnIndex < 0 || columnIndex >= this._columns.length)\n return distinctValues;\n\n const columnDescription = this._columns[columnIndex];\n const propertyDescription = columnDescription.propertyDescription;\n const uniqueKeysMap: { [key: string]: TableDistinctValue } = {};\n const uniqueValues: any[] = [];\n\n // istanbul ignore next\n if (!propertyDescription)\n return distinctValues;\n\n for (const row of this._items) {\n const cell = row.cells[columnIndex];\n const record = cell.record;\n\n // istanbul ignore next\n if (record === undefined)\n continue;\n\n const value = this.getPrimitiveValue(record);\n const displayValue = await TypeConverterManager\n .getConverter(propertyDescription.typename, propertyDescription.converter?.name)\n .convertPropertyToString(propertyDescription, value);\n\n // istanbul ignore next\n if (value === undefined || typeof displayValue !== \"string\")\n continue;\n\n const valueKey = value.toString();\n if (!uniqueKeysMap.hasOwnProperty(valueKey)) {\n const propertyValue: TableDistinctValue = { value, label: displayValue };\n\n uniqueKeysMap[valueKey] = propertyValue;\n uniqueValues.push(propertyValue);\n }\n }\n\n distinctValues.values = uniqueValues;\n\n distinctValues.values.sort((a: TableDistinctValue, b: TableDistinctValue) => {\n if (a.value && b.value)\n return TypeConverterManager.getConverter(propertyDescription.typename, propertyDescription.converter?.name).sortCompare(a.value, b.value);\n return 0;\n });\n\n if (maximumValueCount !== undefined && distinctValues.values.length > maximumValueCount)\n distinctValues.values.splice(maximumValueCount);\n\n return distinctValues;\n }\n\n /** Apply a filter descriptor collection\n * @public\n */\n public async applyFilterDescriptors(filterDescriptors: CompositeFilterDescriptorCollection): Promise<void> {\n this._filterDescriptors = filterDescriptors;\n\n this._rowItemIndices.splice(0);\n\n this._items.forEach((row: RowItem, i: number) => {\n if (filterDescriptors.evaluateRow(row))\n this._rowItemIndices.push(i);\n });\n\n if (this._sortDirection !== SortDirection.NoSort) {\n await this.sort(this._sortColumnIndex, this._sortDirection);\n }\n }\n\n /** Adds a row to the end */\n public addRow(rowItem: RowItem): number {\n return this.insertRow(rowItem, -1);\n }\n\n /** Inserts a row at a given row index */\n public insertRow(rowItem: RowItem, index: number): number {\n let newIdx = index;\n\n if (index < 0 || index >= this._items.length)\n newIdx = this._items.push(rowItem) - 1;\n else\n this._items.splice(newIdx, 0, rowItem);\n\n this.resetRowIndices();\n this.onRowsChanged.raiseEvent();\n\n return newIdx;\n }\n\n /** Deletes a row */\n public deleteRow(rowItem: RowItem, raiseRowsChangedEvent: boolean = true): void {\n const rowIndex = this.findRowIndex(rowItem);\n if (rowIndex >= 0) {\n this._items.splice(rowIndex, 1);\n\n this.resetRowIndices();\n\n if (raiseRowsChangedEvent)\n this.onRowsChanged.raiseEvent();\n }\n }\n\n /** Moves a row to a new row index */\n public moveRow(rowItem: RowItem, newIndex: number): number {\n const oldIndex = this.findRowIndex(rowItem);\n if (oldIndex >= 0) {\n this.deleteRow(rowItem, false);\n\n if (newIndex > oldIndex)\n newIndex--; // removing the row will shrink the count by 1\n\n return this.insertRow(rowItem, newIndex);\n }\n\n return -1;\n }\n\n private findRowIndex(item: RowItem): number {\n for (let i = 0; i < this._items.length; i++) {\n if (item === this._items[i])\n return i;\n }\n return -1;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SimpleTableDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/table/SimpleTableDataProvider.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 Table\r\n */\r\n\r\nimport { Primitives, PropertyRecord, PropertyValueFormat, UiError } from \"@itwin/appui-abstract\";\r\nimport { SortDirection } from \"@itwin/core-react\";\r\nimport { TypeConverterManager } from \"../converters/TypeConverterManager\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport { CompositeFilterDescriptorCollection, DistinctValueCollection, TableDistinctValue } from \"./columnfiltering/ColumnFiltering\";\r\nimport { ColumnDescription, MutableTableDataProvider, RowItem, TableDataChangeEvent } from \"./TableDataProvider\";\r\n\r\n// cSpell:ignore columnfiltering\r\n\r\n/**\r\n * A Table Data Provider using an array of items.\r\n * @public\r\n */\r\nexport class SimpleTableDataProvider implements MutableTableDataProvider {\r\n private _items: RowItem[];\r\n private _rowItemIndices: number[]; // Used for both filtering and sorting\r\n private _columns: ColumnDescription[];\r\n private _secondarySortColumnStack?: number[];\r\n private _sortDirection: SortDirection = SortDirection.NoSort;\r\n private _sortColumnIndex: number = -1;\r\n private _filterDescriptors?: CompositeFilterDescriptorCollection;\r\n\r\n /** Event emitted by the data provider when column data changes */\r\n public onColumnsChanged = new TableDataChangeEvent();\r\n /** Event emitted by the data provider when row data changes */\r\n public onRowsChanged = new TableDataChangeEvent();\r\n\r\n constructor(columns: ColumnDescription[]) {\r\n this._columns = columns;\r\n this._items = [];\r\n this._rowItemIndices = [];\r\n this._secondarySortColumnStack = [];\r\n }\r\n\r\n /** Sets the row items based on an array */\r\n public setItems(items: RowItem[]): void {\r\n this._items = items;\r\n this._rowItemIndices = [];\r\n this.resetRowIndices();\r\n this.onRowsChanged.raiseEvent();\r\n }\r\n\r\n private resetRowIndices(): void {\r\n this._rowItemIndices.splice(0);\r\n\r\n for (let rowIndex = 0; rowIndex < this._items.length; rowIndex++) {\r\n this._rowItemIndices.push(rowIndex);\r\n }\r\n }\r\n\r\n /** Retrieves the column descriptions */\r\n public async getColumns(): Promise<ColumnDescription[]> {\r\n return this._columns;\r\n }\r\n\r\n /** Retrieves the row count */\r\n public async getRowsCount(): Promise<number> {\r\n return this._rowItemIndices.length;\r\n }\r\n\r\n /** Retrieves a specific row by index */\r\n public async getRow(rowIndex: number, unfiltered?: boolean): Promise<RowItem> {\r\n let realRowIndex: number = -1;\r\n\r\n if (unfiltered) {\r\n // istanbul ignore else\r\n if (0 <= rowIndex && rowIndex < this._items.length)\r\n realRowIndex = rowIndex;\r\n } else {\r\n if (0 <= rowIndex && rowIndex < this._rowItemIndices.length)\r\n realRowIndex = this.getRowIndexFromFilteredRowIndex(rowIndex);\r\n }\r\n\r\n if (0 <= realRowIndex && realRowIndex < this._items.length)\r\n return this._items[realRowIndex];\r\n\r\n throw new UiError(UiComponents.loggerCategory(this), `getRow: Invalid row index - ${rowIndex}`);\r\n }\r\n\r\n private getRowIndexFromFilteredRowIndex(filteredRowIndex: number): number {\r\n // istanbul ignore next\r\n if (filteredRowIndex === undefined)\r\n return filteredRowIndex;\r\n\r\n // istanbul ignore next\r\n if (filteredRowIndex < 0 || filteredRowIndex >= this._rowItemIndices.length)\r\n return -1;\r\n\r\n return this._rowItemIndices[filteredRowIndex];\r\n }\r\n\r\n /** Sorts the rows based on the value in a specific column */\r\n public async sort(columnIndex: number, sortDirection: SortDirection): Promise<void> {\r\n // istanbul ignore next\r\n if (columnIndex < 0 || columnIndex >= this._columns.length)\r\n return;\r\n\r\n this._sortColumnIndex = columnIndex;\r\n this._sortDirection = sortDirection;\r\n\r\n if (sortDirection === SortDirection.NoSort) {\r\n if (this._filterDescriptors)\r\n await this.applyFilterDescriptors(this._filterDescriptors);\r\n else\r\n this.resetRowIndices();\r\n return;\r\n }\r\n\r\n this._secondarySortColumnStack = [];\r\n this._secondarySortColumnStack.push(columnIndex);\r\n\r\n // Sort by the column\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const dataProvider = this;\r\n this._rowItemIndices.sort((a: number, b: number) => {\r\n return dataProvider.sortDispatcher(dataProvider._items[a], dataProvider._items[b], columnIndex, sortDirection);\r\n });\r\n\r\n delete this._secondarySortColumnStack;\r\n\r\n return;\r\n }\r\n\r\n private sortDispatcher(a: RowItem, b: RowItem, columnIndex: number, sortDirection: SortDirection): number {\r\n let result = this.sortRows(a, b, columnIndex, sortDirection);\r\n\r\n if (result !== 0)\r\n return result;\r\n\r\n // Secondary sort column support\r\n // istanbul ignore else\r\n const column = this._columns[columnIndex];\r\n if (this._secondarySortColumnStack !== undefined &&\r\n column.secondarySortColumn !== undefined &&\r\n column.secondarySortColumn !== columnIndex &&\r\n this._secondarySortColumnStack.indexOf(column.secondarySortColumn) < 0) {\r\n\r\n this._secondarySortColumnStack.push(column.secondarySortColumn);\r\n result = this.sortDispatcher(a, b, column.secondarySortColumn, sortDirection);\r\n this._secondarySortColumnStack.pop();\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private getPrimitiveValue(record: PropertyRecord) {\r\n let primitiveValue: Primitives.Value | undefined;\r\n const recordValue = record.value;\r\n // istanbul ignore else\r\n if (recordValue.valueFormat === PropertyValueFormat.Primitive)\r\n primitiveValue = recordValue.value;\r\n return primitiveValue;\r\n }\r\n\r\n private sortRows(a: RowItem, b: RowItem, columnIndex: number, sortDirection: SortDirection): number {\r\n const aCell = a.cells[columnIndex];\r\n const bCell = b.cells[columnIndex];\r\n\r\n let result: number = 0;\r\n const column = this._columns[columnIndex];\r\n\r\n const propertyDescription = column.propertyDescription;\r\n const valueA = this.getPrimitiveValue(aCell.record as PropertyRecord);\r\n const valueB = this.getPrimitiveValue(bCell.record as PropertyRecord);\r\n // istanbul ignore else\r\n if (valueA !== undefined && valueB !== undefined && propertyDescription)\r\n result = TypeConverterManager.getConverter(propertyDescription.typename, propertyDescription.converter?.name).sortCompare(valueA, valueB, column.sortIgnoreCase);\r\n\r\n if (sortDirection === SortDirection.Descending)\r\n result *= -1;\r\n\r\n return result;\r\n }\r\n\r\n /** Gets distinct values in a column\r\n * @public\r\n */\r\n public async getDistinctValues(columnKey: string, maximumValueCount?: number): Promise<DistinctValueCollection> {\r\n const distinctValues = new DistinctValueCollection();\r\n const columnIndex = this._columns.findIndex((description: ColumnDescription) => description.key === columnKey);\r\n if (columnIndex < 0 || columnIndex >= this._columns.length)\r\n return distinctValues;\r\n\r\n const columnDescription = this._columns[columnIndex];\r\n const propertyDescription = columnDescription.propertyDescription;\r\n const uniqueKeysMap: { [key: string]: TableDistinctValue } = {};\r\n const uniqueValues: any[] = [];\r\n\r\n // istanbul ignore next\r\n if (!propertyDescription)\r\n return distinctValues;\r\n\r\n for (const row of this._items) {\r\n const cell = row.cells[columnIndex];\r\n const record = cell.record;\r\n\r\n // istanbul ignore next\r\n if (record === undefined)\r\n continue;\r\n\r\n const value = this.getPrimitiveValue(record);\r\n const displayValue = await TypeConverterManager\r\n .getConverter(propertyDescription.typename, propertyDescription.converter?.name)\r\n .convertPropertyToString(propertyDescription, value);\r\n\r\n // istanbul ignore next\r\n if (value === undefined || typeof displayValue !== \"string\")\r\n continue;\r\n\r\n const valueKey = value.toString();\r\n if (!uniqueKeysMap.hasOwnProperty(valueKey)) {\r\n const propertyValue: TableDistinctValue = { value, label: displayValue };\r\n\r\n uniqueKeysMap[valueKey] = propertyValue;\r\n uniqueValues.push(propertyValue);\r\n }\r\n }\r\n\r\n distinctValues.values = uniqueValues;\r\n\r\n distinctValues.values.sort((a: TableDistinctValue, b: TableDistinctValue) => {\r\n if (a.value && b.value)\r\n return TypeConverterManager.getConverter(propertyDescription.typename, propertyDescription.converter?.name).sortCompare(a.value, b.value);\r\n return 0;\r\n });\r\n\r\n if (maximumValueCount !== undefined && distinctValues.values.length > maximumValueCount)\r\n distinctValues.values.splice(maximumValueCount);\r\n\r\n return distinctValues;\r\n }\r\n\r\n /** Apply a filter descriptor collection\r\n * @public\r\n */\r\n public async applyFilterDescriptors(filterDescriptors: CompositeFilterDescriptorCollection): Promise<void> {\r\n this._filterDescriptors = filterDescriptors;\r\n\r\n this._rowItemIndices.splice(0);\r\n\r\n this._items.forEach((row: RowItem, i: number) => {\r\n if (filterDescriptors.evaluateRow(row))\r\n this._rowItemIndices.push(i);\r\n });\r\n\r\n if (this._sortDirection !== SortDirection.NoSort) {\r\n await this.sort(this._sortColumnIndex, this._sortDirection);\r\n }\r\n }\r\n\r\n /** Adds a row to the end */\r\n public addRow(rowItem: RowItem): number {\r\n return this.insertRow(rowItem, -1);\r\n }\r\n\r\n /** Inserts a row at a given row index */\r\n public insertRow(rowItem: RowItem, index: number): number {\r\n let newIdx = index;\r\n\r\n if (index < 0 || index >= this._items.length)\r\n newIdx = this._items.push(rowItem) - 1;\r\n else\r\n this._items.splice(newIdx, 0, rowItem);\r\n\r\n this.resetRowIndices();\r\n this.onRowsChanged.raiseEvent();\r\n\r\n return newIdx;\r\n }\r\n\r\n /** Deletes a row */\r\n public deleteRow(rowItem: RowItem, raiseRowsChangedEvent: boolean = true): void {\r\n const rowIndex = this.findRowIndex(rowItem);\r\n if (rowIndex >= 0) {\r\n this._items.splice(rowIndex, 1);\r\n\r\n this.resetRowIndices();\r\n\r\n if (raiseRowsChangedEvent)\r\n this.onRowsChanged.raiseEvent();\r\n }\r\n }\r\n\r\n /** Moves a row to a new row index */\r\n public moveRow(rowItem: RowItem, newIndex: number): number {\r\n const oldIndex = this.findRowIndex(rowItem);\r\n if (oldIndex >= 0) {\r\n this.deleteRow(rowItem, false);\r\n\r\n if (newIndex > oldIndex)\r\n newIndex--; // removing the row will shrink the count by 1\r\n\r\n return this.insertRow(rowItem, newIndex);\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n private findRowIndex(item: RowItem): number {\r\n for (let i = 0; i < this._items.length; i++) {\r\n if (item === this._items[i])\r\n return i;\r\n }\r\n return -1;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/table/TableDataProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA8C;AAM9C,gCAAgC;AAEhC;;GAEG;AACH,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,yDAAW,CAAA;IACX,iEAAW,CAAA;IACX,mEAAY,CAAA;IACZ,mDAAI,CAAA;IACJ,+DAAU,CAAA;AACZ,CAAC,EANW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAMzB;AA0GD;;GAEG;AACH,MAAa,oBAAqB,SAAQ,sBAAiC;CAAI;AAA/E,oDAA+E","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Table\n */\n\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport { PropertyDescription, PropertyRecord } from \"@itwin/appui-abstract\";\nimport { HorizontalAlignment, SortDirection } from \"@itwin/core-react\";\nimport { ItemColorOverrides, ItemStyle } from \"../properties/ItemStyle\";\nimport { CompositeFilterDescriptorCollection, DistinctValueCollection } from \"./columnfiltering/ColumnFiltering\";\n\n// cSpell:ignore columnfiltering\n\n/** Filter Renderer for a Table column\n * @public\n */\nexport enum FilterRenderer {\n Numeric = 1,\n MultiSelect,\n SingleSelect,\n Text,\n MultiValue,\n}\n\n/**\n * Column definition provided to Table.\n * @public\n */\nexport interface ColumnDescription {\n /** A unique key for this column. */\n key: string;\n\n /** Column header label */\n label: string;\n /** Property description for all cells in the column */\n propertyDescription?: PropertyDescription;\n\n /** Preferred initial width of the column */\n width?: number;\n\n /** Indicates whether the cells in the column are editable. Defaults to false. */\n editable?: boolean;\n /** Indicates whether the column is resizable. Defaults to false. */\n resizable?: boolean;\n /** Indicates whether the display value for the cell is treated as an icon spec. Defaults to false. */\n icon?: boolean;\n\n /** Indicates whether the column is sortable. Defaults to false. */\n sortable?: boolean;\n /** Specifies a secondary sort column to use when cell values are the same. */\n secondarySortColumn?: number;\n /** Indicates whether the column sorting ignores case. Defaults to false. */\n sortIgnoreCase?: boolean;\n\n /** Indicates whether the column is filterable. Defaults to false. */\n filterable?: boolean;\n /** Specifies the filter renderer for the column. */\n filterRenderer?: FilterRenderer;\n\n /** Show field filters in Multi-Value column filtering popup. Defaults to true. */\n showFieldFilters?: boolean;\n /** Show distinct value checkboxes in Multi-Value column filtering popup. Defaults to true. */\n showDistinctValueFilters?: boolean;\n /** Filtering is case-sensitive in Multi-Value column filtering popup. Defaults to false. */\n filterCaseSensitive?: boolean;\n\n /** Sort type for react-table */\n sortType?: string;\n}\n\n/**\n * Cell definition provided to Table.\n * @public\n */\nexport interface CellItem {\n /** Key for the column containing the cell */\n key: string;\n /** Property record for the cell */\n record?: PropertyRecord;\n\n /** Indicates whether the cell is disabled */\n isDisabled?: boolean;\n /** Specifies the horizontal alignment of the contents of the cell */\n alignment?: HorizontalAlignment;\n\n /** Style properties for the contents of the cell */\n style?: ItemStyle;\n\n /**\n * Property to specify how many cells were merged to create this cell.\n * Default value is 1.\n * @alpha\n */\n mergedCellsCount?: number;\n}\n\n/**\n * Row definition provided to Table.\n * @public\n */\nexport interface RowItem {\n /** A unique key for this row */\n key: string;\n /** Array of cells in the row */\n cells: CellItem[];\n /** Indicates whether the row is disabled */\n isDisabled?: boolean;\n /** Color overrides for all cells in the row */\n colorOverrides?: ItemColorOverrides;\n\n /**\n * A key-value pairs data structure that can be used by data provider\n * to store some custom data for this node item.\n */\n extendedData?: { [key: string]: any };\n\n /**\n * Get the value from the cell for filtering purposes.\n * If not specified and the value is a primitive, the recordValue.value is returned.\n */\n getValueFromCell?: (columnKey: string) => any;\n}\n\n/** An interface table data change listeners\n * @public\n */\nexport declare type TableDataChangesListener = () => void;\n\n/** An event broadcasted on table data changes\n * @public\n */\nexport class TableDataChangeEvent extends BeEvent<TableDataChangesListener> { }\n\n/**\n * TableDataProvider provides data to the Table.\n * It also provides support for data Sorting & Filtering.\n * @public\n */\nexport interface TableDataProvider {\n /** Event emitted by the data provider when column data changes */\n onColumnsChanged: TableDataChangeEvent;\n /** Event emitted by the data provider when row data changes */\n onRowsChanged: TableDataChangeEvent;\n\n /** Retrieves the column descriptions */\n getColumns(): Promise<ColumnDescription[]>;\n /** Retrieves the row count */\n getRowsCount(): Promise<number>;\n /** Retrieves a specific row by index */\n getRow(rowIndex: number, unfiltered?: boolean): Promise<RowItem>;\n\n /** Sorts the rows based on the value in a specific column */\n sort(columnIndex: number, sortDirection: SortDirection): Promise<void>;\n\n // Column Filtering methods\n\n /** Apply a filter descriptor collection\n */\n applyFilterDescriptors?: (filterDescriptors: CompositeFilterDescriptorCollection) => Promise<void>;\n\n /** Gets distinct values in a column\n */\n getDistinctValues?: (columnKey: string, maximumValueCount?: number) => Promise<DistinctValueCollection>;\n\n /** Gets property display value expression\n * @alpha\n */\n getPropertyDisplayValueExpression?: (property: string) => string;\n}\n\n/**\n * MutableTableDataProvider provides mutation methods for data in the Table.\n * Useful for Drag & Drop processing.\n * @public\n */\nexport interface MutableTableDataProvider extends TableDataProvider {\n /** Adds a row to the end */\n addRow(rowItem: RowItem): number;\n /** Inserts a row at a given row index */\n insertRow(rowItem: RowItem, index: number): number;\n /** Deletes a row */\n deleteRow(rowItem: RowItem): void;\n /** Moves a row to a new row index */\n moveRow(rowItem: RowItem, newIndex: number): number;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TableDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/table/TableDataProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA8C;AAM9C,gCAAgC;AAEhC;;GAEG;AACH,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,yDAAW,CAAA;IACX,iEAAW,CAAA;IACX,mEAAY,CAAA;IACZ,mDAAI,CAAA;IACJ,+DAAU,CAAA;AACZ,CAAC,EANW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAMzB;AA0GD;;GAEG;AACH,MAAa,oBAAqB,SAAQ,sBAAiC;CAAI;AAA/E,oDAA+E","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 Table\r\n */\r\n\r\nimport { BeEvent } from \"@itwin/core-bentley\";\r\nimport { PropertyDescription, PropertyRecord } from \"@itwin/appui-abstract\";\r\nimport { HorizontalAlignment, SortDirection } from \"@itwin/core-react\";\r\nimport { ItemColorOverrides, ItemStyle } from \"../properties/ItemStyle\";\r\nimport { CompositeFilterDescriptorCollection, DistinctValueCollection } from \"./columnfiltering/ColumnFiltering\";\r\n\r\n// cSpell:ignore columnfiltering\r\n\r\n/** Filter Renderer for a Table column\r\n * @public\r\n */\r\nexport enum FilterRenderer {\r\n Numeric = 1,\r\n MultiSelect,\r\n SingleSelect,\r\n Text,\r\n MultiValue,\r\n}\r\n\r\n/**\r\n * Column definition provided to Table.\r\n * @public\r\n */\r\nexport interface ColumnDescription {\r\n /** A unique key for this column. */\r\n key: string;\r\n\r\n /** Column header label */\r\n label: string;\r\n /** Property description for all cells in the column */\r\n propertyDescription?: PropertyDescription;\r\n\r\n /** Preferred initial width of the column */\r\n width?: number;\r\n\r\n /** Indicates whether the cells in the column are editable. Defaults to false. */\r\n editable?: boolean;\r\n /** Indicates whether the column is resizable. Defaults to false. */\r\n resizable?: boolean;\r\n /** Indicates whether the display value for the cell is treated as an icon spec. Defaults to false. */\r\n icon?: boolean;\r\n\r\n /** Indicates whether the column is sortable. Defaults to false. */\r\n sortable?: boolean;\r\n /** Specifies a secondary sort column to use when cell values are the same. */\r\n secondarySortColumn?: number;\r\n /** Indicates whether the column sorting ignores case. Defaults to false. */\r\n sortIgnoreCase?: boolean;\r\n\r\n /** Indicates whether the column is filterable. Defaults to false. */\r\n filterable?: boolean;\r\n /** Specifies the filter renderer for the column. */\r\n filterRenderer?: FilterRenderer;\r\n\r\n /** Show field filters in Multi-Value column filtering popup. Defaults to true. */\r\n showFieldFilters?: boolean;\r\n /** Show distinct value checkboxes in Multi-Value column filtering popup. Defaults to true. */\r\n showDistinctValueFilters?: boolean;\r\n /** Filtering is case-sensitive in Multi-Value column filtering popup. Defaults to false. */\r\n filterCaseSensitive?: boolean;\r\n\r\n /** Sort type for react-table */\r\n sortType?: string;\r\n}\r\n\r\n/**\r\n * Cell definition provided to Table.\r\n * @public\r\n */\r\nexport interface CellItem {\r\n /** Key for the column containing the cell */\r\n key: string;\r\n /** Property record for the cell */\r\n record?: PropertyRecord;\r\n\r\n /** Indicates whether the cell is disabled */\r\n isDisabled?: boolean;\r\n /** Specifies the horizontal alignment of the contents of the cell */\r\n alignment?: HorizontalAlignment;\r\n\r\n /** Style properties for the contents of the cell */\r\n style?: ItemStyle;\r\n\r\n /**\r\n * Property to specify how many cells were merged to create this cell.\r\n * Default value is 1.\r\n * @alpha\r\n */\r\n mergedCellsCount?: number;\r\n}\r\n\r\n/**\r\n * Row definition provided to Table.\r\n * @public\r\n */\r\nexport interface RowItem {\r\n /** A unique key for this row */\r\n key: string;\r\n /** Array of cells in the row */\r\n cells: CellItem[];\r\n /** Indicates whether the row is disabled */\r\n isDisabled?: boolean;\r\n /** Color overrides for all cells in the row */\r\n colorOverrides?: ItemColorOverrides;\r\n\r\n /**\r\n * A key-value pairs data structure that can be used by data provider\r\n * to store some custom data for this node item.\r\n */\r\n extendedData?: { [key: string]: any };\r\n\r\n /**\r\n * Get the value from the cell for filtering purposes.\r\n * If not specified and the value is a primitive, the recordValue.value is returned.\r\n */\r\n getValueFromCell?: (columnKey: string) => any;\r\n}\r\n\r\n/** An interface table data change listeners\r\n * @public\r\n */\r\nexport declare type TableDataChangesListener = () => void;\r\n\r\n/** An event broadcasted on table data changes\r\n * @public\r\n */\r\nexport class TableDataChangeEvent extends BeEvent<TableDataChangesListener> { }\r\n\r\n/**\r\n * TableDataProvider provides data to the Table.\r\n * It also provides support for data Sorting & Filtering.\r\n * @public\r\n */\r\nexport interface TableDataProvider {\r\n /** Event emitted by the data provider when column data changes */\r\n onColumnsChanged: TableDataChangeEvent;\r\n /** Event emitted by the data provider when row data changes */\r\n onRowsChanged: TableDataChangeEvent;\r\n\r\n /** Retrieves the column descriptions */\r\n getColumns(): Promise<ColumnDescription[]>;\r\n /** Retrieves the row count */\r\n getRowsCount(): Promise<number>;\r\n /** Retrieves a specific row by index */\r\n getRow(rowIndex: number, unfiltered?: boolean): Promise<RowItem>;\r\n\r\n /** Sorts the rows based on the value in a specific column */\r\n sort(columnIndex: number, sortDirection: SortDirection): Promise<void>;\r\n\r\n // Column Filtering methods\r\n\r\n /** Apply a filter descriptor collection\r\n */\r\n applyFilterDescriptors?: (filterDescriptors: CompositeFilterDescriptorCollection) => Promise<void>;\r\n\r\n /** Gets distinct values in a column\r\n */\r\n getDistinctValues?: (columnKey: string, maximumValueCount?: number) => Promise<DistinctValueCollection>;\r\n\r\n /** Gets property display value expression\r\n * @alpha\r\n */\r\n getPropertyDisplayValueExpression?: (property: string) => string;\r\n}\r\n\r\n/**\r\n * MutableTableDataProvider provides mutation methods for data in the Table.\r\n * Useful for Drag & Drop processing.\r\n * @public\r\n */\r\nexport interface MutableTableDataProvider extends TableDataProvider {\r\n /** Adds a row to the end */\r\n addRow(rowItem: RowItem): number;\r\n /** Inserts a row at a given row index */\r\n insertRow(rowItem: RowItem, index: number): number;\r\n /** Deletes a row */\r\n deleteRow(rowItem: RowItem): void;\r\n /** Moves a row to a new row index */\r\n moveRow(rowItem: RowItem, newIndex: number): number;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnFiltering.js","sourceRoot":"","sources":["../../../../../src/components-react/table/columnfiltering/ColumnFiltering.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAS/F;;GAEG;AACH,IAAY,cAyBX;AAzBD,WAAY,cAAc;IACxB,uBAAuB;IACvB,6DAAS,CAAA;IACT,mEAAY,CAAA;IAEZ,8DAA8D;IAC9D,+DAAU,CAAA;IACV,iFAAmB,CAAA;IACnB,qEAAa,CAAA;IACb,uFAAsB,CAAA;IACtB,qDAAK,CAAA;IAEL,UAAU;IACV,+DAAU,CAAA;IACV,2DAAQ,CAAA;IACR,2DAAQ,CAAA;IACR,wEAAc,CAAA;IACd,sEAAa,CAAA;IACb,4EAAgB,CAAA;IAChB,0DAAO,CAAA;IACP,gEAAU,CAAA;IAEV,iCAAiC;IACjC,wDAAM,CAAA;IACN,8DAAS,CAAA;AACX,CAAC,EAzBW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAyBzB;AAED;;GAEG;AACH,IAAY,gCAGX;AAHD,WAAY,gCAAgC;IAC1C,qFAAG,CAAA;IACH,mFAAE,CAAA;AACJ,CAAC,EAHW,gCAAgC,GAAhC,wCAAgC,KAAhC,wCAAgC,QAG3C;AA0JD;;GAEG;AACH,MAAa,uBAAuB;IAGlC;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,EAAsB,CAAC;IACjD,CAAC;IAED,IAAW,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,IAAW,MAAM,CAAC,MAA4B,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;CAC3E;AATD,0DASC;AA4CD;;GAEG;AACH,MAAsB,8BAA8B;IAGlD;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,EAAe,CAAC;IAC/C,CAAC;IAED,IAAW,WAAW,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEtD;;OAEG;IACI,GAAG,CAAC,IAAiB;QAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,IAAiB;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;OACG;IACI,KAAK;QACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;OACG;IACH,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAe,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED;OACG;IACH,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IACjC,CAAC;CACF;AA7CD,wEA6CC;AAED;;GAEG;AACH,MAAa,0BAA2B,SAAQ,8BAAgD;CAC/F;AADD,gEACC;AAED;;GAEG;AACH,MAAa,uCAAwC,SAAQ,8BAA6D;CACzH;AADD,0FACC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Table\n */\n\nimport { Primitives } from \"@itwin/appui-abstract\";\nimport { RowItem } from \"../TableDataProvider\";\n\n/** Operator used in FilterDescriptor\n * @public\n */\nexport enum FilterOperator {\n // All filterable types\n IsEqualTo,\n IsNotEqualTo,\n\n // Numeric types, Date, all types that implement these methods\n IsLessThan,\n IsLessThanOrEqualTo,\n IsGreaterThan,\n IsGreaterThanOrEqualTo,\n Range,\n\n // Strings\n StartsWith,\n EndsWith,\n Contains,\n DoesNotContain,\n IsContainedIn,\n IsNotContainedIn,\n IsEmpty,\n IsNotEmpty,\n\n // All filterable null-able types\n IsNull,\n IsNotNull,\n}\n\n/** Logical operator used for filter descriptor composition\n * @public\n */\nexport enum FilterCompositionLogicalOperator {\n And,\n Or,\n}\n\n/** FilterableTable contains the properties and methods provided by a filterable Table.\n * @public\n */\nexport interface FilterableTable {\n /** Gets the filter descriptors for the table. */\n filterDescriptors: CompositeFilterDescriptorCollection;\n\n /** Gets ECExpression to get property display value. */\n getPropertyDisplayValueExpression(property: string): string;\n}\n\n/** Represents a column that is filterable.\n * @public\n */\nexport interface FilterableColumn {\n /** Gets the owning Table for this column. */\n filterableTable: FilterableTable;\n\n /** Gets the filter descriptor. */\n columnFilterDescriptor: ColumnFilterDescriptor;\n\n /** Gets the member (key). */\n filterMemberKey: string;\n\n /** Gets the member type. */\n filterMemberType: string;\n\n /** Determines if the filter for this column is active. */\n isFilterActive: boolean;\n\n /** Determines if the filter should show distinct values as a filter option */\n showDistinctValueFilters: boolean;\n\n /** Determines if the filter should show field filter options */\n showFieldFilters: boolean;\n\n /** Determines if the filter is case-sensitive */\n filterCaseSensitive: boolean;\n\n /** Allows the column to create a filter descriptor for use in the filter descriptor collection. */\n createSimpleFilterDescriptor(value: any, filterOperator: FilterOperator): OperatorValueFilterDescriptor;\n\n /** Gets the distinct values within the columns in the table. */\n getDistinctValues(maximumValueCount?: number): Promise<DistinctValueCollection>;\n}\n\n/** A filtering abstraction that knows how to create predicate filtering expression.\n * @public\n */\nexport interface FilterDescriptor {\n /** Gets a value indicating whether this filter is active. */\n isActive: boolean;\n\n /** Clears the filter descriptor and sets it to inactive. */\n clear(): void;\n\n /** Evaluates a row for filtering. */\n evaluateRow(row: RowItem): boolean;\n\n /** Determines if this filter is for a particular column. */\n isFilterForColumn(columnKey: string): boolean;\n\n /** Returns filter as ECExpression.\n * @alpha */\n getFilterExpression(): string;\n}\n\n/** An abstraction for all filter descriptors that have an operator and a value\n * @public\n */\nexport interface OperatorValueFilterDescriptor extends FilterDescriptor {\n /** Gets the operator for the filter. */\n operator: FilterOperator;\n\n /** Gets the value for the filter. */\n value: any;\n\n /** Gets the member (key). */\n memberKey: string;\n\n /** Gets the member type. */\n memberType: string;\n\n /** Determines if the filtering is case sensitive. */\n isCaseSensitive: boolean;\n}\n\n/** Represents the distinct filter descriptor of a column filter descriptor.\n * @public\n */\nexport interface DistinctValuesFilterDescriptor extends FilterDescriptor {\n /** Gets the distinct values. */\n distinctValues: DistinctValueCollection;\n\n /** Gets the filter descriptors. */\n filterDescriptorCollection: OperatorValueFilterDescriptorCollection;\n\n /** Tries to find descriptor. */\n tryFindDescriptor(distinctValue: any): FilterDescriptor | undefined;\n\n /** Adds the distinct value. */\n addDistinctValue(distinctValue: any): void;\n\n /** Removes the distinct value. */\n removeDistinctValue(distinctValue: any): boolean;\n\n /** Gets or sets the FilterOperator used for comparing actual data values with checked distinct values.\n * The default is FilterOperator.IsEqualTo.\n */\n distinctValuesComparisonOperator: FilterOperator;\n}\n\n/** Represents the field filter descriptor of a column filter descriptor.\n * @public\n */\nexport interface FieldFilterDescriptor extends FilterDescriptor {\n\n /** Gets the filter descriptors. */\n filterDescriptorCollection: OperatorValueFilterDescriptorCollection;\n\n /** Tries to find descriptor. */\n tryFindDescriptor(fieldValue: any, operator: FilterOperator): FilterDescriptor | undefined;\n\n /** Adds the field value. */\n addFieldValue(fieldValue: any, operator: FilterOperator, isCaseSensitive?: boolean): void;\n\n /** Removes the field value. */\n removeFieldValue(fieldValue: any, operator: FilterOperator): boolean;\n\n /** Gets or sets the logical operator. */\n logicalOperator: FilterCompositionLogicalOperator;\n}\n\n/** Represents a column filter descriptor associated with a specific column.\n * @public\n */\nexport interface ColumnFilterDescriptor extends FilterDescriptor {\n /** Gets the Distinct Values filter descriptor. */\n distinctFilter: DistinctValuesFilterDescriptor;\n\n /** Gets the Field filter descriptor. */\n fieldFilter: FieldFilterDescriptor;\n}\n\n/** Distinct Value for Table filtering purposes\n * @public\n */\nexport interface TableDistinctValue {\n value: Primitives.Value;\n label: string;\n}\n\n/** A set of distinct values for a column.\n * @public\n */\nexport class DistinctValueCollection {\n private _values: TableDistinctValue[];\n\n constructor() {\n this._values = new Array<TableDistinctValue>();\n }\n\n public get values() { return this._values; }\n public set values(values: TableDistinctValue[]) { this._values = values; }\n}\n\n/** Represents a composite filtering abstraction which has a collection of\n * filter descriptors combined together by a logical operator.\n * @public\n */\nexport interface CompositeFilterDescriptor extends FilterDescriptor {\n /** Gets or sets the logical operator. */\n logicalOperator: FilterCompositionLogicalOperator;\n\n /** Gets filter descriptors that will be used for composition. */\n filterDescriptorCollection: FilterDescriptorCollection;\n}\n\n/** Collection of FilterDescriptor objects composed together by a logical operator.\n * @public\n */\nexport interface CompositeFilterDescriptorCollection {\n /** Gets the number of filter descriptors in the collection */\n count: number;\n\n /** Gets and sets the logical operator. */\n logicalOperator: FilterCompositionLogicalOperator;\n\n /** Evaluates a row for filtering */\n evaluateRow(row: RowItem): boolean;\n\n /** Determines if a filter is active for a particular column */\n isColumnFilterActive(columnKey: string): boolean;\n\n /** Gets the filter for a particular column */\n getColumnFilterDescriptor(columnKey: string): ColumnFilterDescriptor | undefined;\n\n /** Adds a filter descriptor to the collection */\n add(item: FilterDescriptor): void;\n\n /** Clears the filter descriptor. */\n clear(): void;\n\n /** Returns filter as ECExpression.\n * @alpha */\n getFilterExpression(): string;\n}\n\n/** Collection of filter descriptors.\n * @public\n */\nexport abstract class FilterDescriptorCollectionBase<TDescriptor extends FilterDescriptor> {\n private _descriptors: TDescriptor[];\n\n constructor() {\n this._descriptors = new Array<TDescriptor>();\n }\n\n public get descriptors() { return this._descriptors; }\n\n /** Adds an FilterDescriptor to the collection.\n * @param item The FilterDescriptor to add.\n */\n public add(item: TDescriptor): void {\n this.descriptors.push(item);\n }\n\n /** Removes a particular FilterDescriptor from the collection.\n * @param item The FilterDescriptor to remove.\n */\n public remove(item: TDescriptor): boolean {\n const index = this.descriptors.indexOf(item);\n if (index >= 0) {\n this.descriptors.splice(index, 1);\n return true;\n }\n return false;\n }\n\n /** Clears the collection.\n */\n public clear(): void {\n this.descriptors.splice(0);\n }\n\n /** Determines if the collection is active.\n */\n public get isActive(): boolean {\n return this.descriptors.some((fd: TDescriptor) => fd.isActive);\n }\n\n /** Gets the count of items in the collection.\n */\n public get count(): number {\n return this.descriptors.length;\n }\n}\n\n/** Collection of filter descriptors.\n * @public\n */\nexport class FilterDescriptorCollection extends FilterDescriptorCollectionBase<FilterDescriptor> {\n}\n\n/** Collection of OperatorValue filter descriptors.\n * @public\n */\nexport class OperatorValueFilterDescriptorCollection extends FilterDescriptorCollectionBase<OperatorValueFilterDescriptor> {\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ColumnFiltering.js","sourceRoot":"","sources":["../../../../../src/components-react/table/columnfiltering/ColumnFiltering.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAS/F;;GAEG;AACH,IAAY,cAyBX;AAzBD,WAAY,cAAc;IACxB,uBAAuB;IACvB,6DAAS,CAAA;IACT,mEAAY,CAAA;IAEZ,8DAA8D;IAC9D,+DAAU,CAAA;IACV,iFAAmB,CAAA;IACnB,qEAAa,CAAA;IACb,uFAAsB,CAAA;IACtB,qDAAK,CAAA;IAEL,UAAU;IACV,+DAAU,CAAA;IACV,2DAAQ,CAAA;IACR,2DAAQ,CAAA;IACR,wEAAc,CAAA;IACd,sEAAa,CAAA;IACb,4EAAgB,CAAA;IAChB,0DAAO,CAAA;IACP,gEAAU,CAAA;IAEV,iCAAiC;IACjC,wDAAM,CAAA;IACN,8DAAS,CAAA;AACX,CAAC,EAzBW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAyBzB;AAED;;GAEG;AACH,IAAY,gCAGX;AAHD,WAAY,gCAAgC;IAC1C,qFAAG,CAAA;IACH,mFAAE,CAAA;AACJ,CAAC,EAHW,gCAAgC,GAAhC,wCAAgC,KAAhC,wCAAgC,QAG3C;AA0JD;;GAEG;AACH,MAAa,uBAAuB;IAGlC;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,EAAsB,CAAC;IACjD,CAAC;IAED,IAAW,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,IAAW,MAAM,CAAC,MAA4B,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;CAC3E;AATD,0DASC;AA4CD;;GAEG;AACH,MAAsB,8BAA8B;IAGlD;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,EAAe,CAAC;IAC/C,CAAC;IAED,IAAW,WAAW,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEtD;;OAEG;IACI,GAAG,CAAC,IAAiB;QAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,IAAiB;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;OACG;IACI,KAAK;QACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;OACG;IACH,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAe,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED;OACG;IACH,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IACjC,CAAC;CACF;AA7CD,wEA6CC;AAED;;GAEG;AACH,MAAa,0BAA2B,SAAQ,8BAAgD;CAC/F;AADD,gEACC;AAED;;GAEG;AACH,MAAa,uCAAwC,SAAQ,8BAA6D;CACzH;AADD,0FACC","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\r\n/** @packageDocumentation\r\n * @module Table\r\n */\r\n\r\nimport { Primitives } from \"@itwin/appui-abstract\";\r\nimport { RowItem } from \"../TableDataProvider\";\r\n\r\n/** Operator used in FilterDescriptor\r\n * @public\r\n */\r\nexport enum FilterOperator {\r\n // All filterable types\r\n IsEqualTo,\r\n IsNotEqualTo,\r\n\r\n // Numeric types, Date, all types that implement these methods\r\n IsLessThan,\r\n IsLessThanOrEqualTo,\r\n IsGreaterThan,\r\n IsGreaterThanOrEqualTo,\r\n Range,\r\n\r\n // Strings\r\n StartsWith,\r\n EndsWith,\r\n Contains,\r\n DoesNotContain,\r\n IsContainedIn,\r\n IsNotContainedIn,\r\n IsEmpty,\r\n IsNotEmpty,\r\n\r\n // All filterable null-able types\r\n IsNull,\r\n IsNotNull,\r\n}\r\n\r\n/** Logical operator used for filter descriptor composition\r\n * @public\r\n */\r\nexport enum FilterCompositionLogicalOperator {\r\n And,\r\n Or,\r\n}\r\n\r\n/** FilterableTable contains the properties and methods provided by a filterable Table.\r\n * @public\r\n */\r\nexport interface FilterableTable {\r\n /** Gets the filter descriptors for the table. */\r\n filterDescriptors: CompositeFilterDescriptorCollection;\r\n\r\n /** Gets ECExpression to get property display value. */\r\n getPropertyDisplayValueExpression(property: string): string;\r\n}\r\n\r\n/** Represents a column that is filterable.\r\n * @public\r\n */\r\nexport interface FilterableColumn {\r\n /** Gets the owning Table for this column. */\r\n filterableTable: FilterableTable;\r\n\r\n /** Gets the filter descriptor. */\r\n columnFilterDescriptor: ColumnFilterDescriptor;\r\n\r\n /** Gets the member (key). */\r\n filterMemberKey: string;\r\n\r\n /** Gets the member type. */\r\n filterMemberType: string;\r\n\r\n /** Determines if the filter for this column is active. */\r\n isFilterActive: boolean;\r\n\r\n /** Determines if the filter should show distinct values as a filter option */\r\n showDistinctValueFilters: boolean;\r\n\r\n /** Determines if the filter should show field filter options */\r\n showFieldFilters: boolean;\r\n\r\n /** Determines if the filter is case-sensitive */\r\n filterCaseSensitive: boolean;\r\n\r\n /** Allows the column to create a filter descriptor for use in the filter descriptor collection. */\r\n createSimpleFilterDescriptor(value: any, filterOperator: FilterOperator): OperatorValueFilterDescriptor;\r\n\r\n /** Gets the distinct values within the columns in the table. */\r\n getDistinctValues(maximumValueCount?: number): Promise<DistinctValueCollection>;\r\n}\r\n\r\n/** A filtering abstraction that knows how to create predicate filtering expression.\r\n * @public\r\n */\r\nexport interface FilterDescriptor {\r\n /** Gets a value indicating whether this filter is active. */\r\n isActive: boolean;\r\n\r\n /** Clears the filter descriptor and sets it to inactive. */\r\n clear(): void;\r\n\r\n /** Evaluates a row for filtering. */\r\n evaluateRow(row: RowItem): boolean;\r\n\r\n /** Determines if this filter is for a particular column. */\r\n isFilterForColumn(columnKey: string): boolean;\r\n\r\n /** Returns filter as ECExpression.\r\n * @alpha */\r\n getFilterExpression(): string;\r\n}\r\n\r\n/** An abstraction for all filter descriptors that have an operator and a value\r\n * @public\r\n */\r\nexport interface OperatorValueFilterDescriptor extends FilterDescriptor {\r\n /** Gets the operator for the filter. */\r\n operator: FilterOperator;\r\n\r\n /** Gets the value for the filter. */\r\n value: any;\r\n\r\n /** Gets the member (key). */\r\n memberKey: string;\r\n\r\n /** Gets the member type. */\r\n memberType: string;\r\n\r\n /** Determines if the filtering is case sensitive. */\r\n isCaseSensitive: boolean;\r\n}\r\n\r\n/** Represents the distinct filter descriptor of a column filter descriptor.\r\n * @public\r\n */\r\nexport interface DistinctValuesFilterDescriptor extends FilterDescriptor {\r\n /** Gets the distinct values. */\r\n distinctValues: DistinctValueCollection;\r\n\r\n /** Gets the filter descriptors. */\r\n filterDescriptorCollection: OperatorValueFilterDescriptorCollection;\r\n\r\n /** Tries to find descriptor. */\r\n tryFindDescriptor(distinctValue: any): FilterDescriptor | undefined;\r\n\r\n /** Adds the distinct value. */\r\n addDistinctValue(distinctValue: any): void;\r\n\r\n /** Removes the distinct value. */\r\n removeDistinctValue(distinctValue: any): boolean;\r\n\r\n /** Gets or sets the FilterOperator used for comparing actual data values with checked distinct values.\r\n * The default is FilterOperator.IsEqualTo.\r\n */\r\n distinctValuesComparisonOperator: FilterOperator;\r\n}\r\n\r\n/** Represents the field filter descriptor of a column filter descriptor.\r\n * @public\r\n */\r\nexport interface FieldFilterDescriptor extends FilterDescriptor {\r\n\r\n /** Gets the filter descriptors. */\r\n filterDescriptorCollection: OperatorValueFilterDescriptorCollection;\r\n\r\n /** Tries to find descriptor. */\r\n tryFindDescriptor(fieldValue: any, operator: FilterOperator): FilterDescriptor | undefined;\r\n\r\n /** Adds the field value. */\r\n addFieldValue(fieldValue: any, operator: FilterOperator, isCaseSensitive?: boolean): void;\r\n\r\n /** Removes the field value. */\r\n removeFieldValue(fieldValue: any, operator: FilterOperator): boolean;\r\n\r\n /** Gets or sets the logical operator. */\r\n logicalOperator: FilterCompositionLogicalOperator;\r\n}\r\n\r\n/** Represents a column filter descriptor associated with a specific column.\r\n * @public\r\n */\r\nexport interface ColumnFilterDescriptor extends FilterDescriptor {\r\n /** Gets the Distinct Values filter descriptor. */\r\n distinctFilter: DistinctValuesFilterDescriptor;\r\n\r\n /** Gets the Field filter descriptor. */\r\n fieldFilter: FieldFilterDescriptor;\r\n}\r\n\r\n/** Distinct Value for Table filtering purposes\r\n * @public\r\n */\r\nexport interface TableDistinctValue {\r\n value: Primitives.Value;\r\n label: string;\r\n}\r\n\r\n/** A set of distinct values for a column.\r\n * @public\r\n */\r\nexport class DistinctValueCollection {\r\n private _values: TableDistinctValue[];\r\n\r\n constructor() {\r\n this._values = new Array<TableDistinctValue>();\r\n }\r\n\r\n public get values() { return this._values; }\r\n public set values(values: TableDistinctValue[]) { this._values = values; }\r\n}\r\n\r\n/** Represents a composite filtering abstraction which has a collection of\r\n * filter descriptors combined together by a logical operator.\r\n * @public\r\n */\r\nexport interface CompositeFilterDescriptor extends FilterDescriptor {\r\n /** Gets or sets the logical operator. */\r\n logicalOperator: FilterCompositionLogicalOperator;\r\n\r\n /** Gets filter descriptors that will be used for composition. */\r\n filterDescriptorCollection: FilterDescriptorCollection;\r\n}\r\n\r\n/** Collection of FilterDescriptor objects composed together by a logical operator.\r\n * @public\r\n */\r\nexport interface CompositeFilterDescriptorCollection {\r\n /** Gets the number of filter descriptors in the collection */\r\n count: number;\r\n\r\n /** Gets and sets the logical operator. */\r\n logicalOperator: FilterCompositionLogicalOperator;\r\n\r\n /** Evaluates a row for filtering */\r\n evaluateRow(row: RowItem): boolean;\r\n\r\n /** Determines if a filter is active for a particular column */\r\n isColumnFilterActive(columnKey: string): boolean;\r\n\r\n /** Gets the filter for a particular column */\r\n getColumnFilterDescriptor(columnKey: string): ColumnFilterDescriptor | undefined;\r\n\r\n /** Adds a filter descriptor to the collection */\r\n add(item: FilterDescriptor): void;\r\n\r\n /** Clears the filter descriptor. */\r\n clear(): void;\r\n\r\n /** Returns filter as ECExpression.\r\n * @alpha */\r\n getFilterExpression(): string;\r\n}\r\n\r\n/** Collection of filter descriptors.\r\n * @public\r\n */\r\nexport abstract class FilterDescriptorCollectionBase<TDescriptor extends FilterDescriptor> {\r\n private _descriptors: TDescriptor[];\r\n\r\n constructor() {\r\n this._descriptors = new Array<TDescriptor>();\r\n }\r\n\r\n public get descriptors() { return this._descriptors; }\r\n\r\n /** Adds an FilterDescriptor to the collection.\r\n * @param item The FilterDescriptor to add.\r\n */\r\n public add(item: TDescriptor): void {\r\n this.descriptors.push(item);\r\n }\r\n\r\n /** Removes a particular FilterDescriptor from the collection.\r\n * @param item The FilterDescriptor to remove.\r\n */\r\n public remove(item: TDescriptor): boolean {\r\n const index = this.descriptors.indexOf(item);\r\n if (index >= 0) {\r\n this.descriptors.splice(index, 1);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /** Clears the collection.\r\n */\r\n public clear(): void {\r\n this.descriptors.splice(0);\r\n }\r\n\r\n /** Determines if the collection is active.\r\n */\r\n public get isActive(): boolean {\r\n return this.descriptors.some((fd: TDescriptor) => fd.isActive);\r\n }\r\n\r\n /** Gets the count of items in the collection.\r\n */\r\n public get count(): number {\r\n return this.descriptors.length;\r\n }\r\n}\r\n\r\n/** Collection of filter descriptors.\r\n * @public\r\n */\r\nexport class FilterDescriptorCollection extends FilterDescriptorCollectionBase<FilterDescriptor> {\r\n}\r\n\r\n/** Collection of OperatorValue filter descriptors.\r\n * @public\r\n */\r\nexport class OperatorValueFilterDescriptorCollection extends FilterDescriptorCollectionBase<OperatorValueFilterDescriptor> {\r\n}\r\n"]}
|
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/core-react/lib/cjs/core-react/scrollbar";
|
|
6
|
-
@import "~@itwin/core-react/lib/cjs/core-react/inputs/variables";
|
|
7
|
-
@import "~@itwin/core-react/lib/cjs/core-react/style/variables";
|
|
8
|
-
@import "~@itwin/itwinui-css/scss/inputs/input";
|
|
9
|
-
|
|
10
|
-
.components-table {
|
|
11
|
-
|
|
12
|
-
.react-grid-HeaderCell {
|
|
13
|
-
|
|
14
|
-
/* NumericFilter rendering */
|
|
15
|
-
>div>div {
|
|
16
|
-
margin-right: unset !important;
|
|
17
|
-
max-width: unset !important;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.input-sm {
|
|
21
|
-
display: none;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
$filter-height: $uicore-component-height-small;
|
|
25
|
-
|
|
26
|
-
.form-control.input-sm {
|
|
27
|
-
@include iui-input;
|
|
28
|
-
display: inline;
|
|
29
|
-
padding: $uicore-iui-input-padding;
|
|
30
|
-
margin: 0;
|
|
31
|
-
max-width: calc(100% - 10px);
|
|
32
|
-
min-height: $filter-height;
|
|
33
|
-
height: $filter-height;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.uicore-reactSelectTop {
|
|
37
|
-
min-height: $filter-height;
|
|
38
|
-
max-height: $filter-height;
|
|
39
|
-
max-width: calc(100% - 10px);
|
|
40
|
-
|
|
41
|
-
.react-select__control {
|
|
42
|
-
min-height: $filter-height;
|
|
43
|
-
max-height: $filter-height;
|
|
44
|
-
|
|
45
|
-
.react-select__placeholder {
|
|
46
|
-
padding: 2px;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.react-select__value-container {
|
|
50
|
-
padding: 0 2px;
|
|
51
|
-
max-height: $filter-height;
|
|
52
|
-
|
|
53
|
-
.react-select__multi-value {
|
|
54
|
-
margin: 0;
|
|
55
|
-
|
|
56
|
-
.react-select__multi-value__label {
|
|
57
|
-
padding-left: 4px;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.react-select__single-value {
|
|
64
|
-
margin: 0;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.react-select__indicator {
|
|
68
|
-
padding: 0 2px;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.components-popup-button {
|
|
73
|
-
min-height: $filter-height;
|
|
74
|
-
max-height: $filter-height;
|
|
75
|
-
min-width: calc(100% - 10px);
|
|
76
|
-
max-width: calc(100% - 10px);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
@import "~@itwin/core-react/lib/cjs/core-react/scrollbar";
|
|
6
|
+
@import "~@itwin/core-react/lib/cjs/core-react/inputs/variables";
|
|
7
|
+
@import "~@itwin/core-react/lib/cjs/core-react/style/variables";
|
|
8
|
+
@import "~@itwin/itwinui-css/scss/inputs/input";
|
|
9
|
+
|
|
10
|
+
.components-table {
|
|
11
|
+
|
|
12
|
+
.react-grid-HeaderCell {
|
|
13
|
+
|
|
14
|
+
/* NumericFilter rendering */
|
|
15
|
+
>div>div {
|
|
16
|
+
margin-right: unset !important;
|
|
17
|
+
max-width: unset !important;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.input-sm {
|
|
21
|
+
display: none;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
$filter-height: $uicore-component-height-small;
|
|
25
|
+
|
|
26
|
+
.form-control.input-sm {
|
|
27
|
+
@include iui-input;
|
|
28
|
+
display: inline;
|
|
29
|
+
padding: $uicore-iui-input-padding;
|
|
30
|
+
margin: 0;
|
|
31
|
+
max-width: calc(100% - 10px);
|
|
32
|
+
min-height: $filter-height;
|
|
33
|
+
height: $filter-height;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.uicore-reactSelectTop {
|
|
37
|
+
min-height: $filter-height;
|
|
38
|
+
max-height: $filter-height;
|
|
39
|
+
max-width: calc(100% - 10px);
|
|
40
|
+
|
|
41
|
+
.react-select__control {
|
|
42
|
+
min-height: $filter-height;
|
|
43
|
+
max-height: $filter-height;
|
|
44
|
+
|
|
45
|
+
.react-select__placeholder {
|
|
46
|
+
padding: 2px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.react-select__value-container {
|
|
50
|
+
padding: 0 2px;
|
|
51
|
+
max-height: $filter-height;
|
|
52
|
+
|
|
53
|
+
.react-select__multi-value {
|
|
54
|
+
margin: 0;
|
|
55
|
+
|
|
56
|
+
.react-select__multi-value__label {
|
|
57
|
+
padding-left: 4px;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.react-select__single-value {
|
|
64
|
+
margin: 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.react-select__indicator {
|
|
68
|
+
padding: 0 2px;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.components-popup-button {
|
|
73
|
+
min-height: $filter-height;
|
|
74
|
+
max-height: $filter-height;
|
|
75
|
+
min-width: calc(100% - 10px);
|
|
76
|
+
max-width: calc(100% - 10px);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnFilteringUtilities.js","sourceRoot":"","sources":["../../../../../src/components-react/table/columnfiltering/ColumnFilteringUtilities.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,0DAAwF;AAGxF;;GAEG;AACH,MAAa,wBAAwB;IAE5B,MAAM,CAAC,OAAO,CAAC,OAAgB,EAAE,SAAiB;QACvD,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAChF,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,OAAgB,EAAE,SAAiB;QAChE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEtE,uBAAuB;QACvB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YACzD,OAAO,SAAS,CAAC;QAEnB,OAAO,wBAAwB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,MAAsB;QACpD,IAAI,cAA4C,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;QAEjC,uBAAuB;QACvB,IAAI,WAAW,CAAC,WAAW,KAAK,oCAAmB,CAAC,SAAS;YAC3D,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC;QAErC,OAAO,cAAc,CAAC;IACxB,CAAC;CAEF;AA3BD,4DA2BC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Table\n */\n\nimport { Primitives, PropertyRecord, PropertyValueFormat } from \"@itwin/appui-abstract\";\nimport { CellItem, RowItem } from \"../TableDataProvider\";\n\n/** Column Filtering utility methods\n * @internal\n */\nexport class ColumnFilteringUtilities {\n\n public static getCell(rowItem: RowItem, columnKey: string): CellItem | undefined {\n return rowItem.cells.find((cellItem: CellItem) => cellItem.key === columnKey);\n }\n\n public static getValueFromCell(rowItem: RowItem, columnKey: string): any {\n const cellItem = ColumnFilteringUtilities.getCell(rowItem, columnKey);\n\n // istanbul ignore next\n if (cellItem === undefined || cellItem.record === undefined)\n return undefined;\n\n return ColumnFilteringUtilities.getPrimitiveValue(cellItem.record);\n }\n\n public static getPrimitiveValue(record: PropertyRecord): Primitives.Value | undefined {\n let primitiveValue: Primitives.Value | undefined;\n const recordValue = record.value;\n\n // istanbul ignore else\n if (recordValue.valueFormat === PropertyValueFormat.Primitive)\n primitiveValue = recordValue.value;\n\n return primitiveValue;\n }\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ColumnFilteringUtilities.js","sourceRoot":"","sources":["../../../../../src/components-react/table/columnfiltering/ColumnFilteringUtilities.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,0DAAwF;AAGxF;;GAEG;AACH,MAAa,wBAAwB;IAE5B,MAAM,CAAC,OAAO,CAAC,OAAgB,EAAE,SAAiB;QACvD,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAChF,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,OAAgB,EAAE,SAAiB;QAChE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEtE,uBAAuB;QACvB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YACzD,OAAO,SAAS,CAAC;QAEnB,OAAO,wBAAwB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,MAAsB;QACpD,IAAI,cAA4C,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;QAEjC,uBAAuB;QACvB,IAAI,WAAW,CAAC,WAAW,KAAK,oCAAmB,CAAC,SAAS;YAC3D,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC;QAErC,OAAO,cAAc,CAAC;IACxB,CAAC;CAEF;AA3BD,4DA2BC","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 Table\r\n */\r\n\r\nimport { Primitives, PropertyRecord, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { CellItem, RowItem } from \"../TableDataProvider\";\r\n\r\n/** Column Filtering utility methods\r\n * @internal\r\n */\r\nexport class ColumnFilteringUtilities {\r\n\r\n public static getCell(rowItem: RowItem, columnKey: string): CellItem | undefined {\r\n return rowItem.cells.find((cellItem: CellItem) => cellItem.key === columnKey);\r\n }\r\n\r\n public static getValueFromCell(rowItem: RowItem, columnKey: string): any {\r\n const cellItem = ColumnFilteringUtilities.getCell(rowItem, columnKey);\r\n\r\n // istanbul ignore next\r\n if (cellItem === undefined || cellItem.record === undefined)\r\n return undefined;\r\n\r\n return ColumnFilteringUtilities.getPrimitiveValue(cellItem.record);\r\n }\r\n\r\n public static getPrimitiveValue(record: PropertyRecord): Primitives.Value | undefined {\r\n let primitiveValue: Primitives.Value | undefined;\r\n const recordValue = record.value;\r\n\r\n // istanbul ignore else\r\n if (recordValue.valueFormat === PropertyValueFormat.Primitive)\r\n primitiveValue = recordValue.value;\r\n\r\n return primitiveValue;\r\n }\r\n\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridFilterParser.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/table/columnfiltering/DataGridFilterParser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DataGridFilterParser.d.ts","sourceRoot":"","sources":["../../../../../src/components-react/table/columnfiltering/DataGridFilterParser.ts"],"names":[],"mappings":"AAKA;;GAEG;AAIH,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAkB,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,gCAAgC,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEjI,gBAAgB;AAChB,MAAM,WAAW,mBAAoB,SAAQ,aAAa,CAAC,MAAM;IAC/D,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,UAAU,IAAI;IACd,KAAK,IAAI;IACT,WAAW,IAAI;IACf,QAAQ,IAAI;CACb;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,iBAAiB,CAAC,WAAW,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,gBAAgB;AAChB,oBAAY,iBAAiB,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;AAExH,gBAAgB;AAChB,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,GAAG,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,gBAAgB;AAChB,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,oBAAoB,EAAE,gCAAgC,CAAC;CACxD;AAED,gBAAgB;AAChB,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,aAAa,CAA+B;IAC3D,OAAO,CAAC,MAAM,CAAC,UAAU,CAAwD;IACjF,OAAO,CAAC,MAAM,CAAC,aAAa,CAAwD;IAEpF,WAAkB,YAAY,IAAI,MAAM,CAA+C;IACvF,WAAkB,YAAY,CAAC,CAAC,EAAE,MAAM,EAA6C;WAEjE,kBAAkB,CACpC,MAAM,EAAE,mBAAmB,EAC3B,gBAAgB,EAAE,sBAAsB,EACxC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC;mBA2BK,gBAAgB;mBAoBhB,eAAe;mBA+Bf,iBAAiB;mBAajB,YAAY;mBAkDZ,SAAS;CAoB/B"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/* eslint-disable deprecation/deprecation */
|
|
6
7
|
/** @packageDocumentation
|
|
7
8
|
* @module Table
|
|
8
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridFilterParser.js","sourceRoot":"","sources":["../../../../../src/components-react/table/columnfiltering/DataGridFilterParser.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Table\n */\n\nimport { Logger } from \"@itwin/core-bentley\";\nimport { Timer } from \"@itwin/core-react\";\nimport ReactDataGrid from \"react-data-grid\";\nimport { UiComponents } from \"../../UiComponents\";\nimport { TableColumn } from \"../component/TableColumn\";\nimport { ColumnDescription, FilterRenderer } from \"../TableDataProvider\";\nimport { ColumnFilterDescriptor, FilterCompositionLogicalOperator, FilterOperator, TableDistinctValue } from \"./ColumnFiltering\";\n\n/** @internal */\nexport interface ReactDataGridFilter extends ReactDataGrid.Filter {\n column: TableColumn;\n}\n\n/** ReactDataGrid NumericFilter type\n * @internal\n */\nexport enum NumericFilterType {\n ExactMatch = 1,\n Range = 2,\n GreaterThan = 3,\n LessThan = 4,\n}\n\n/** NumericFilter data\n * @internal\n */\nexport interface NumericFilterData {\n type: number;\n}\n\n/** Numeric Exact Match data\n * @internal\n */\nexport interface NumericExactMatchData {\n type: NumericFilterType.ExactMatch;\n value: number;\n}\n\n/** Numeric Range data\n * @internal\n */\nexport interface NumericRangeData {\n type: NumericFilterType.Range;\n begin: number;\n end: number;\n}\n\n/** Numeric Greater Than data\n * @internal\n */\nexport interface NumericGreaterThanData {\n type: NumericFilterType.GreaterThan;\n value: number;\n}\n\n/** Numeric Less Than data\n * @internal\n */\nexport interface NumericLessThanData {\n type: NumericFilterType.LessThan;\n value: number;\n}\n\n/** @internal */\nexport type NumericFilterRule = NumericExactMatchData | NumericRangeData | NumericGreaterThanData | NumericLessThanData;\n\n/** @internal */\nexport interface FieldFilterData {\n fieldValue: any;\n operator: FilterOperator;\n isCaseSensitive?: boolean;\n}\n\n/** @internal */\nexport interface MultiValueFilterData {\n distinctValues: TableDistinctValue[];\n fieldValues: FieldFilterData[];\n fieldLogicalOperator: FilterCompositionLogicalOperator;\n}\n\n/** @internal */\nexport const FILTER_PARSER_TIMER_TIMEOUT = 250;\n\n/** ReactDataGrid Filter Parser\n * @internal\n */\nexport class DataGridFilterParser {\n private static _timerTimeout = FILTER_PARSER_TIMER_TIMEOUT;\n private static _textTimer: Timer = new Timer(DataGridFilterParser._timerTimeout);\n private static _numericTimer: Timer = new Timer(DataGridFilterParser._timerTimeout);\n\n public static get timerTimeout(): number { return DataGridFilterParser._timerTimeout; }\n public static set timerTimeout(v: number) { DataGridFilterParser._timerTimeout = v; }\n\n public static async handleFilterChange(\n filter: ReactDataGridFilter,\n filterDescriptor: ColumnFilterDescriptor,\n columnDescription: ColumnDescription,\n onApplyFilter: () => Promise<void>,\n ): Promise<void> {\n\n filterDescriptor.clear();\n\n if (columnDescription.filterRenderer !== undefined) {\n switch (columnDescription.filterRenderer) {\n case FilterRenderer.MultiSelect:\n await DataGridFilterParser.parseMultiSelect(filter, filterDescriptor, onApplyFilter);\n break;\n case FilterRenderer.MultiValue:\n await DataGridFilterParser.parseMultiValue(filter, filterDescriptor, onApplyFilter);\n break;\n case FilterRenderer.SingleSelect:\n await DataGridFilterParser.parseSingleSelect(filter, filterDescriptor, onApplyFilter);\n break;\n case FilterRenderer.Numeric:\n await DataGridFilterParser.parseNumeric(filter, filterDescriptor, onApplyFilter);\n break;\n case FilterRenderer.Text:\n await DataGridFilterParser.parseText(filter, filterDescriptor, onApplyFilter);\n break;\n }\n } else {\n await DataGridFilterParser.parseText(filter, filterDescriptor, onApplyFilter);\n }\n }\n\n private static async parseMultiSelect(filter: ReactDataGridFilter, filterDescriptor: ColumnFilterDescriptor, onApplyFilter: () => Promise<void>): Promise<void> {\n /*\n MultiSelect filters\n 0: {value: \"Title 1\", label: \"Title 1\"}\n 1: {value: \"Title 100\", label: \"Title 100\"}\n 2: {value: \"Title 10000\", label: \"Title 10000\"}\n length: 3\n */\n // istanbul ignore else\n if (filter.filterTerm) {\n const filterData = filter.filterTerm as unknown as TableDistinctValue[];\n if (filterData.length) {\n filterData.forEach((distinctValue: TableDistinctValue) => {\n filterDescriptor.distinctFilter.addDistinctValue(distinctValue.value);\n });\n }\n }\n await onApplyFilter();\n }\n\n private static async parseMultiValue(filter: ReactDataGridFilter, filterDescriptor: ColumnFilterDescriptor, onApplyFilter: () => Promise<void>): Promise<void> {\n /*\n MultiValue filters\n distinctValues\n length: 3\n 0: {value: \"Title 1\", label: \"Title 1\"}\n 1: {value: \"Title 100\", label: \"Title 100\"}\n 2: {value: \"Title 10000\", label: \"Title 10000\"}\n fieldValues\n length: 1\n 0: {value: any, operator: FilterOperator, isCaseSensitive?: boolean}\n logicalOperator: FilterCompositionLogicalOperator\n */\n // istanbul ignore else\n if (filter.filterTerm) {\n const filterData = filter.filterTerm as unknown as MultiValueFilterData;\n if (filterData.distinctValues.length) {\n filterData.distinctValues.forEach((distinctValue: TableDistinctValue) => {\n filterDescriptor.distinctFilter.addDistinctValue(distinctValue.value);\n });\n }\n if (filterData.fieldValues.length) {\n filterData.fieldValues.forEach((fieldData: FieldFilterData) => {\n filterDescriptor.fieldFilter.addFieldValue(fieldData.fieldValue, fieldData.operator, fieldData.isCaseSensitive);\n });\n filterDescriptor.fieldFilter.logicalOperator = filterData.fieldLogicalOperator;\n }\n }\n await onApplyFilter();\n }\n\n private static async parseSingleSelect(filter: ReactDataGridFilter, filterDescriptor: ColumnFilterDescriptor, onApplyFilter: () => Promise<void>): Promise<void> {\n /*\n SingleSelect filters\n filter.filterTerm: {value: 1, label: \"Red\"}\n */\n // istanbul ignore else\n if (filter.filterTerm) {\n const filterData = filter.filterTerm as unknown as TableDistinctValue;\n filterDescriptor.distinctFilter.addDistinctValue(filterData.value);\n }\n await onApplyFilter();\n }\n\n private static async parseNumeric(filter: ReactDataGridFilter, filterDescriptor: ColumnFilterDescriptor, onApplyFilter: () => Promise<void>): Promise<void> {\n /*\n NumericFilter\n 0: {type: 2, begin: 1, end: 10} // range\n 1: {type: 1, value: 15} // Exact match\n 2: {type: 3, value: 30} // > 30\n 3: {type: 4, value: 5} // < 5\n length: 4\n */\n if (filter.filterTerm) {\n this._numericTimer.setOnExecute(async () => {\n const filterData = filter.filterTerm as unknown as NumericFilterData[];\n if (filterData.length) {\n filterDescriptor.fieldFilter.logicalOperator = FilterCompositionLogicalOperator.Or;\n\n filterData.forEach((numericFilterData: NumericFilterData) => {\n switch (numericFilterData.type) {\n case NumericFilterType.ExactMatch:\n const exactMatchData = numericFilterData as unknown as NumericExactMatchData;\n filterDescriptor.fieldFilter.addFieldValue(exactMatchData.value, FilterOperator.IsEqualTo);\n break;\n case NumericFilterType.GreaterThan:\n const greaterThanData = numericFilterData as unknown as NumericGreaterThanData;\n filterDescriptor.fieldFilter.addFieldValue(greaterThanData.value, FilterOperator.IsGreaterThan);\n break;\n case NumericFilterType.LessThan:\n const lessThanData = numericFilterData as unknown as NumericLessThanData;\n filterDescriptor.fieldFilter.addFieldValue(lessThanData.value, FilterOperator.IsLessThan);\n break;\n case NumericFilterType.Range:\n const rangeData = numericFilterData as unknown as NumericRangeData;\n filterDescriptor.fieldFilter.addFieldValue(rangeData, FilterOperator.Range);\n break;\n default:\n Logger.logError(UiComponents.loggerCategory(this), `parseNumeric: Unknown numeric filter data type - ${numericFilterData.type}`);\n break;\n }\n });\n await onApplyFilter();\n }\n });\n\n this._numericTimer.delay = DataGridFilterParser._timerTimeout;\n this._numericTimer.start();\n } else {\n this._numericTimer.stop();\n await onApplyFilter();\n }\n }\n\n private static async parseText(filter: ReactDataGridFilter, filterDescriptor: ColumnFilterDescriptor, onApplyFilter: () => Promise<void>): Promise<void> {\n /*\n Input filter\n filter.filterTerm: 1000\n */\n if (filter.filterTerm) {\n this._textTimer.setOnExecute(async () => {\n const filterData = filter.filterTerm as unknown as string;\n filterDescriptor.fieldFilter.addFieldValue(filterData, FilterOperator.Contains, false);\n await onApplyFilter();\n });\n\n this._textTimer.delay = DataGridFilterParser._timerTimeout;\n this._textTimer.start();\n } else {\n this._textTimer.stop();\n await onApplyFilter();\n }\n }\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DataGridFilterParser.js","sourceRoot":"","sources":["../../../../../src/components-react/table/columnfiltering/DataGridFilterParser.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/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Table\r\n */\r\n\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { Timer } from \"@itwin/core-react\";\r\nimport ReactDataGrid from \"react-data-grid\";\r\nimport { UiComponents } from \"../../UiComponents\";\r\nimport { TableColumn } from \"../component/TableColumn\";\r\nimport { ColumnDescription, FilterRenderer } from \"../TableDataProvider\";\r\nimport { ColumnFilterDescriptor, FilterCompositionLogicalOperator, FilterOperator, TableDistinctValue } from \"./ColumnFiltering\";\r\n\r\n/** @internal */\r\nexport interface ReactDataGridFilter extends ReactDataGrid.Filter {\r\n column: TableColumn;\r\n}\r\n\r\n/** ReactDataGrid NumericFilter type\r\n * @internal\r\n */\r\nexport enum NumericFilterType {\r\n ExactMatch = 1,\r\n Range = 2,\r\n GreaterThan = 3,\r\n LessThan = 4,\r\n}\r\n\r\n/** NumericFilter data\r\n * @internal\r\n */\r\nexport interface NumericFilterData {\r\n type: number;\r\n}\r\n\r\n/** Numeric Exact Match data\r\n * @internal\r\n */\r\nexport interface NumericExactMatchData {\r\n type: NumericFilterType.ExactMatch;\r\n value: number;\r\n}\r\n\r\n/** Numeric Range data\r\n * @internal\r\n */\r\nexport interface NumericRangeData {\r\n type: NumericFilterType.Range;\r\n begin: number;\r\n end: number;\r\n}\r\n\r\n/** Numeric Greater Than data\r\n * @internal\r\n */\r\nexport interface NumericGreaterThanData {\r\n type: NumericFilterType.GreaterThan;\r\n value: number;\r\n}\r\n\r\n/** Numeric Less Than data\r\n * @internal\r\n */\r\nexport interface NumericLessThanData {\r\n type: NumericFilterType.LessThan;\r\n value: number;\r\n}\r\n\r\n/** @internal */\r\nexport type NumericFilterRule = NumericExactMatchData | NumericRangeData | NumericGreaterThanData | NumericLessThanData;\r\n\r\n/** @internal */\r\nexport interface FieldFilterData {\r\n fieldValue: any;\r\n operator: FilterOperator;\r\n isCaseSensitive?: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport interface MultiValueFilterData {\r\n distinctValues: TableDistinctValue[];\r\n fieldValues: FieldFilterData[];\r\n fieldLogicalOperator: FilterCompositionLogicalOperator;\r\n}\r\n\r\n/** @internal */\r\nexport const FILTER_PARSER_TIMER_TIMEOUT = 250;\r\n\r\n/** ReactDataGrid Filter Parser\r\n * @internal\r\n */\r\nexport class DataGridFilterParser {\r\n private static _timerTimeout = FILTER_PARSER_TIMER_TIMEOUT;\r\n private static _textTimer: Timer = new Timer(DataGridFilterParser._timerTimeout);\r\n private static _numericTimer: Timer = new Timer(DataGridFilterParser._timerTimeout);\r\n\r\n public static get timerTimeout(): number { return DataGridFilterParser._timerTimeout; }\r\n public static set timerTimeout(v: number) { DataGridFilterParser._timerTimeout = v; }\r\n\r\n public static async handleFilterChange(\r\n filter: ReactDataGridFilter,\r\n filterDescriptor: ColumnFilterDescriptor,\r\n columnDescription: ColumnDescription,\r\n onApplyFilter: () => Promise<void>,\r\n ): Promise<void> {\r\n\r\n filterDescriptor.clear();\r\n\r\n if (columnDescription.filterRenderer !== undefined) {\r\n switch (columnDescription.filterRenderer) {\r\n case FilterRenderer.MultiSelect:\r\n await DataGridFilterParser.parseMultiSelect(filter, filterDescriptor, onApplyFilter);\r\n break;\r\n case FilterRenderer.MultiValue:\r\n await DataGridFilterParser.parseMultiValue(filter, filterDescriptor, onApplyFilter);\r\n break;\r\n case FilterRenderer.SingleSelect:\r\n await DataGridFilterParser.parseSingleSelect(filter, filterDescriptor, onApplyFilter);\r\n break;\r\n case FilterRenderer.Numeric:\r\n await DataGridFilterParser.parseNumeric(filter, filterDescriptor, onApplyFilter);\r\n break;\r\n case FilterRenderer.Text:\r\n await DataGridFilterParser.parseText(filter, filterDescriptor, onApplyFilter);\r\n break;\r\n }\r\n } else {\r\n await DataGridFilterParser.parseText(filter, filterDescriptor, onApplyFilter);\r\n }\r\n }\r\n\r\n private static async parseMultiSelect(filter: ReactDataGridFilter, filterDescriptor: ColumnFilterDescriptor, onApplyFilter: () => Promise<void>): Promise<void> {\r\n /*\r\n MultiSelect filters\r\n 0: {value: \"Title 1\", label: \"Title 1\"}\r\n 1: {value: \"Title 100\", label: \"Title 100\"}\r\n 2: {value: \"Title 10000\", label: \"Title 10000\"}\r\n length: 3\r\n */\r\n // istanbul ignore else\r\n if (filter.filterTerm) {\r\n const filterData = filter.filterTerm as unknown as TableDistinctValue[];\r\n if (filterData.length) {\r\n filterData.forEach((distinctValue: TableDistinctValue) => {\r\n filterDescriptor.distinctFilter.addDistinctValue(distinctValue.value);\r\n });\r\n }\r\n }\r\n await onApplyFilter();\r\n }\r\n\r\n private static async parseMultiValue(filter: ReactDataGridFilter, filterDescriptor: ColumnFilterDescriptor, onApplyFilter: () => Promise<void>): Promise<void> {\r\n /*\r\n MultiValue filters\r\n distinctValues\r\n length: 3\r\n 0: {value: \"Title 1\", label: \"Title 1\"}\r\n 1: {value: \"Title 100\", label: \"Title 100\"}\r\n 2: {value: \"Title 10000\", label: \"Title 10000\"}\r\n fieldValues\r\n length: 1\r\n 0: {value: any, operator: FilterOperator, isCaseSensitive?: boolean}\r\n logicalOperator: FilterCompositionLogicalOperator\r\n */\r\n // istanbul ignore else\r\n if (filter.filterTerm) {\r\n const filterData = filter.filterTerm as unknown as MultiValueFilterData;\r\n if (filterData.distinctValues.length) {\r\n filterData.distinctValues.forEach((distinctValue: TableDistinctValue) => {\r\n filterDescriptor.distinctFilter.addDistinctValue(distinctValue.value);\r\n });\r\n }\r\n if (filterData.fieldValues.length) {\r\n filterData.fieldValues.forEach((fieldData: FieldFilterData) => {\r\n filterDescriptor.fieldFilter.addFieldValue(fieldData.fieldValue, fieldData.operator, fieldData.isCaseSensitive);\r\n });\r\n filterDescriptor.fieldFilter.logicalOperator = filterData.fieldLogicalOperator;\r\n }\r\n }\r\n await onApplyFilter();\r\n }\r\n\r\n private static async parseSingleSelect(filter: ReactDataGridFilter, filterDescriptor: ColumnFilterDescriptor, onApplyFilter: () => Promise<void>): Promise<void> {\r\n /*\r\n SingleSelect filters\r\n filter.filterTerm: {value: 1, label: \"Red\"}\r\n */\r\n // istanbul ignore else\r\n if (filter.filterTerm) {\r\n const filterData = filter.filterTerm as unknown as TableDistinctValue;\r\n filterDescriptor.distinctFilter.addDistinctValue(filterData.value);\r\n }\r\n await onApplyFilter();\r\n }\r\n\r\n private static async parseNumeric(filter: ReactDataGridFilter, filterDescriptor: ColumnFilterDescriptor, onApplyFilter: () => Promise<void>): Promise<void> {\r\n /*\r\n NumericFilter\r\n 0: {type: 2, begin: 1, end: 10} // range\r\n 1: {type: 1, value: 15} // Exact match\r\n 2: {type: 3, value: 30} // > 30\r\n 3: {type: 4, value: 5} // < 5\r\n length: 4\r\n */\r\n if (filter.filterTerm) {\r\n this._numericTimer.setOnExecute(async () => {\r\n const filterData = filter.filterTerm as unknown as NumericFilterData[];\r\n if (filterData.length) {\r\n filterDescriptor.fieldFilter.logicalOperator = FilterCompositionLogicalOperator.Or;\r\n\r\n filterData.forEach((numericFilterData: NumericFilterData) => {\r\n switch (numericFilterData.type) {\r\n case NumericFilterType.ExactMatch:\r\n const exactMatchData = numericFilterData as unknown as NumericExactMatchData;\r\n filterDescriptor.fieldFilter.addFieldValue(exactMatchData.value, FilterOperator.IsEqualTo);\r\n break;\r\n case NumericFilterType.GreaterThan:\r\n const greaterThanData = numericFilterData as unknown as NumericGreaterThanData;\r\n filterDescriptor.fieldFilter.addFieldValue(greaterThanData.value, FilterOperator.IsGreaterThan);\r\n break;\r\n case NumericFilterType.LessThan:\r\n const lessThanData = numericFilterData as unknown as NumericLessThanData;\r\n filterDescriptor.fieldFilter.addFieldValue(lessThanData.value, FilterOperator.IsLessThan);\r\n break;\r\n case NumericFilterType.Range:\r\n const rangeData = numericFilterData as unknown as NumericRangeData;\r\n filterDescriptor.fieldFilter.addFieldValue(rangeData, FilterOperator.Range);\r\n break;\r\n default:\r\n Logger.logError(UiComponents.loggerCategory(this), `parseNumeric: Unknown numeric filter data type - ${numericFilterData.type}`);\r\n break;\r\n }\r\n });\r\n await onApplyFilter();\r\n }\r\n });\r\n\r\n this._numericTimer.delay = DataGridFilterParser._timerTimeout;\r\n this._numericTimer.start();\r\n } else {\r\n this._numericTimer.stop();\r\n await onApplyFilter();\r\n }\r\n }\r\n\r\n private static async parseText(filter: ReactDataGridFilter, filterDescriptor: ColumnFilterDescriptor, onApplyFilter: () => Promise<void>): Promise<void> {\r\n /*\r\n Input filter\r\n filter.filterTerm: 1000\r\n */\r\n if (filter.filterTerm) {\r\n this._textTimer.setOnExecute(async () => {\r\n const filterData = filter.filterTerm as unknown as string;\r\n filterDescriptor.fieldFilter.addFieldValue(filterData, FilterOperator.Contains, false);\r\n await onApplyFilter();\r\n });\r\n\r\n this._textTimer.delay = DataGridFilterParser._timerTimeout;\r\n this._textTimer.start();\r\n } else {\r\n this._textTimer.stop();\r\n await onApplyFilter();\r\n }\r\n }\r\n\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterableColumnBase.js","sourceRoot":"","sources":["../../../../../src/components-react/table/columnfiltering/FilterableColumnBase.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Table\n */\n\nimport { ColumnDescription } from \"../TableDataProvider\";\nimport { ColumnFilterDescriptor, DistinctValueCollection, FilterableColumn, FilterableTable, FilterOperator } from \"./ColumnFiltering\";\nimport { TableColumnFilterDescriptor } from \"./TableColumnFilterDescriptor\";\nimport { TableFilterDescriptor } from \"./TableFilterDescriptor\";\n\n/** Filterable Column base class.\n * @internal\n */\nexport abstract class FilterableColumnBase implements FilterableColumn {\n private _columnDescription: ColumnDescription;\n\n private _filterable: boolean = false;\n private _showFieldFilters: boolean;\n private _showDistinctValueFilters: boolean;\n private _filterCaseSensitive: boolean;\n\n private _filterableTable: FilterableTable;\n\n constructor(filterableTable: FilterableTable, description: ColumnDescription) {\n this._filterableTable = filterableTable;\n this._columnDescription = description;\n\n this._filterable = (description.filterable === undefined) ? false : description.filterable;\n this._showFieldFilters = (description.showFieldFilters === undefined) ? true : description.showFieldFilters;\n this._showDistinctValueFilters = (description.showDistinctValueFilters === undefined) ? true : description.showDistinctValueFilters;\n this._filterCaseSensitive = (description.filterCaseSensitive === undefined) ? false : description.filterCaseSensitive;\n\n if (!this._columnDescription.propertyDescription) {\n this._columnDescription.propertyDescription = {\n name: \"\",\n displayLabel: \"\",\n typename: \"\",\n };\n }\n }\n\n /** Indicates whether column is filterable.\n */\n public get filterable(): boolean {\n return this._filterable;\n }\n\n /** Gets the owning filterable Table.\n */\n public get filterableTable(): FilterableTable {\n return this._filterableTable;\n }\n\n /** Gets the Column Description.\n */\n public get columnDescription(): ColumnDescription {\n return this._columnDescription;\n }\n\n /** Gets the column filter descriptor.\n * @return A class implementing IColumnFilterDescriptor.\n */\n public get columnFilterDescriptor(): ColumnFilterDescriptor {\n let columnFilterDescriptor = this._filterableTable.filterDescriptors.getColumnFilterDescriptor(this.filterMemberKey);\n\n if (undefined === columnFilterDescriptor) {\n columnFilterDescriptor = this.createColumnFilterDescriptor();\n this._filterableTable.filterDescriptors.add(columnFilterDescriptor);\n }\n\n return columnFilterDescriptor;\n }\n\n /** Creates the column filter descriptor.\n * @return A new class implementing ColumnFilterDescriptor.\n */\n protected createColumnFilterDescriptor(): ColumnFilterDescriptor {\n return new TableColumnFilterDescriptor(this, this.filterMemberKey, this.filterMemberType);\n }\n\n /** Creates a basic filter descriptor for use .\n * @return A new FilterDescriptor.\n */\n public createSimpleFilterDescriptor(value: any, filterOperator: FilterOperator): TableFilterDescriptor {\n return new TableFilterDescriptor(this._filterableTable, this.filterMemberKey, this.filterMemberType, filterOperator, value, this._filterCaseSensitive);\n }\n\n /** Gets the filter member key.\n */\n public get filterMemberKey(): string {\n return this._columnDescription.key;\n }\n\n /** Gets the filter member type.\n */\n public get filterMemberType(): string {\n let memberType = \"\";\n // istanbul ignore else\n if (this._columnDescription.propertyDescription)\n memberType = this._columnDescription.propertyDescription.typename;\n return memberType;\n }\n\n /** Determines if a filter is active. */\n public get isFilterActive(): boolean {\n return this._filterableTable.filterDescriptors.isColumnFilterActive(this.filterMemberKey);\n }\n\n /** Determines if the filter should show distinct values as a filter option */\n public get showDistinctValueFilters(): boolean {\n return this._showDistinctValueFilters;\n }\n\n /** Determines if the filter should show field filter options */\n public get showFieldFilters(): boolean {\n return this._showFieldFilters;\n }\n\n /** Determines if the filter is case-sensitive */\n public get filterCaseSensitive(): boolean {\n return this._filterCaseSensitive;\n }\n\n /** Gets the distinct values for a column.\n * @return The distinct values.\n */\n public abstract getDistinctValues(maximumValueCount: number): Promise<DistinctValueCollection>;\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"FilterableColumnBase.js","sourceRoot":"","sources":["../../../../../src/components-react/table/columnfiltering/FilterableColumnBase.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 Table\r\n */\r\n\r\nimport { ColumnDescription } from \"../TableDataProvider\";\r\nimport { ColumnFilterDescriptor, DistinctValueCollection, FilterableColumn, FilterableTable, FilterOperator } from \"./ColumnFiltering\";\r\nimport { TableColumnFilterDescriptor } from \"./TableColumnFilterDescriptor\";\r\nimport { TableFilterDescriptor } from \"./TableFilterDescriptor\";\r\n\r\n/** Filterable Column base class.\r\n * @internal\r\n */\r\nexport abstract class FilterableColumnBase implements FilterableColumn {\r\n private _columnDescription: ColumnDescription;\r\n\r\n private _filterable: boolean = false;\r\n private _showFieldFilters: boolean;\r\n private _showDistinctValueFilters: boolean;\r\n private _filterCaseSensitive: boolean;\r\n\r\n private _filterableTable: FilterableTable;\r\n\r\n constructor(filterableTable: FilterableTable, description: ColumnDescription) {\r\n this._filterableTable = filterableTable;\r\n this._columnDescription = description;\r\n\r\n this._filterable = (description.filterable === undefined) ? false : description.filterable;\r\n this._showFieldFilters = (description.showFieldFilters === undefined) ? true : description.showFieldFilters;\r\n this._showDistinctValueFilters = (description.showDistinctValueFilters === undefined) ? true : description.showDistinctValueFilters;\r\n this._filterCaseSensitive = (description.filterCaseSensitive === undefined) ? false : description.filterCaseSensitive;\r\n\r\n if (!this._columnDescription.propertyDescription) {\r\n this._columnDescription.propertyDescription = {\r\n name: \"\",\r\n displayLabel: \"\",\r\n typename: \"\",\r\n };\r\n }\r\n }\r\n\r\n /** Indicates whether column is filterable.\r\n */\r\n public get filterable(): boolean {\r\n return this._filterable;\r\n }\r\n\r\n /** Gets the owning filterable Table.\r\n */\r\n public get filterableTable(): FilterableTable {\r\n return this._filterableTable;\r\n }\r\n\r\n /** Gets the Column Description.\r\n */\r\n public get columnDescription(): ColumnDescription {\r\n return this._columnDescription;\r\n }\r\n\r\n /** Gets the column filter descriptor.\r\n * @return A class implementing IColumnFilterDescriptor.\r\n */\r\n public get columnFilterDescriptor(): ColumnFilterDescriptor {\r\n let columnFilterDescriptor = this._filterableTable.filterDescriptors.getColumnFilterDescriptor(this.filterMemberKey);\r\n\r\n if (undefined === columnFilterDescriptor) {\r\n columnFilterDescriptor = this.createColumnFilterDescriptor();\r\n this._filterableTable.filterDescriptors.add(columnFilterDescriptor);\r\n }\r\n\r\n return columnFilterDescriptor;\r\n }\r\n\r\n /** Creates the column filter descriptor.\r\n * @return A new class implementing ColumnFilterDescriptor.\r\n */\r\n protected createColumnFilterDescriptor(): ColumnFilterDescriptor {\r\n return new TableColumnFilterDescriptor(this, this.filterMemberKey, this.filterMemberType);\r\n }\r\n\r\n /** Creates a basic filter descriptor for use .\r\n * @return A new FilterDescriptor.\r\n */\r\n public createSimpleFilterDescriptor(value: any, filterOperator: FilterOperator): TableFilterDescriptor {\r\n return new TableFilterDescriptor(this._filterableTable, this.filterMemberKey, this.filterMemberType, filterOperator, value, this._filterCaseSensitive);\r\n }\r\n\r\n /** Gets the filter member key.\r\n */\r\n public get filterMemberKey(): string {\r\n return this._columnDescription.key;\r\n }\r\n\r\n /** Gets the filter member type.\r\n */\r\n public get filterMemberType(): string {\r\n let memberType = \"\";\r\n // istanbul ignore else\r\n if (this._columnDescription.propertyDescription)\r\n memberType = this._columnDescription.propertyDescription.typename;\r\n return memberType;\r\n }\r\n\r\n /** Determines if a filter is active. */\r\n public get isFilterActive(): boolean {\r\n return this._filterableTable.filterDescriptors.isColumnFilterActive(this.filterMemberKey);\r\n }\r\n\r\n /** Determines if the filter should show distinct values as a filter option */\r\n public get showDistinctValueFilters(): boolean {\r\n return this._showDistinctValueFilters;\r\n }\r\n\r\n /** Determines if the filter should show field filter options */\r\n public get showFieldFilters(): boolean {\r\n return this._showFieldFilters;\r\n }\r\n\r\n /** Determines if the filter is case-sensitive */\r\n public get filterCaseSensitive(): boolean {\r\n return this._filterCaseSensitive;\r\n }\r\n\r\n /** Gets the distinct values for a column.\r\n * @return The distinct values.\r\n */\r\n public abstract getDistinctValues(maximumValueCount: number): Promise<DistinctValueCollection>;\r\n\r\n}\r\n"]}
|