@itwin/components-react 3.0.0-dev.83 → 3.0.0-dev.87
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":"useDragInteraction.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/useDragInteraction.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport { Point, Timer } from \"@itwin/core-react\";\n\n/** @internal */\nconst getDragDistance = (from: Point, to: Point) => {\n return from.getDistanceTo(to);\n};\n\ninterface UseDragArgs {\n readonly initialPosition: React.MutableRefObject<Point | undefined>;\n readonly onDrag: () => void;\n}\n\nfunction useDrag(args: UseDragArgs) {\n const { initialPosition, onDrag } = args;\n const handlePointerMove = React.useCallback((e: PointerEvent) => {\n // istanbul ignore if\n if (!initialPosition.current)\n return;\n const newPosition = new Point(e.clientX, e.clientY);\n const dragDistance = getDragDistance(initialPosition.current, newPosition);\n if (dragDistance < 20)\n return;\n onDrag();\n }, [initialPosition, onDrag]);\n return { handlePointerMove };\n}\n\ninterface UseLongPressArgs {\n readonly initialPosition: React.RefObject<Point | undefined>;\n readonly onLongPress: () => void;\n}\n\nfunction useLongPress(args: UseLongPressArgs) {\n const longPressTimer = React.useRef(new Timer(500));\n const handlePointerDown = React.useCallback(() => {\n longPressTimer.current.start();\n }, []);\n const handlePointerUp = React.useCallback(() => {\n longPressTimer.current.stop();\n }, []);\n\n const handlePointerMove = React.useCallback((e: PointerEvent) => {\n if (!args.initialPosition.current)\n return;\n const newPosition = new Point(e.clientX, e.clientY);\n const distance = args.initialPosition.current.getDistanceTo(newPosition);\n distance >= 10 && longPressTimer.current.stop();\n }, [args.initialPosition]);\n React.useEffect(() => {\n longPressTimer.current.setOnExecute(args.onLongPress);\n return () => {\n longPressTimer.current.setOnExecute(undefined); // eslint-disable-line react-hooks/exhaustive-deps\n };\n }, [args.onLongPress]);\n return { handlePointerDown, handlePointerMove, handlePointerUp };\n}\n\n/**\n * Hook used on expandable item that require drag or long press to open\n * @param onClick Function called when item is clicked.\n * @param onOpenPanel Function called when item is dragged or long pressed to open panel.\n * @public\n */\nexport function useDragInteraction(onClick?: () => void, onOpenPanel?: () => void) {\n const initialPosition = React.useRef<Point | undefined>(undefined);\n const skipClick = React.useRef<boolean>(false);\n const handleOpenPanel = React.useCallback(() => {\n initialPosition.current = undefined;\n skipClick.current = true;\n onOpenPanel && onOpenPanel();\n }, [onOpenPanel]);\n const {\n handlePointerMove: dragPointerMove,\n } = useDrag({\n initialPosition,\n onDrag: handleOpenPanel,\n });\n const {\n handlePointerDown: longPressPointerDown,\n handlePointerMove: longPressPointerMove,\n handlePointerUp: longPressPointerUp,\n } = useLongPress({\n initialPosition,\n onLongPress: handleOpenPanel,\n });\n const handleButtonClick = React.useCallback(() => {\n // istanbul ignore if\n if (skipClick.current)\n return;\n onClick && onClick();\n }, [onClick]);\n const handlePointerDown = React.useCallback((e: React.PointerEvent) => {\n (e.target instanceof Element) && e.target.releasePointerCapture(e.pointerId);\n initialPosition.current = new Point(e.clientX, e.clientY);\n skipClick.current = false;\n longPressPointerDown();\n }, [longPressPointerDown]);\n const handlePointerMove = React.useCallback((e: PointerEvent) => {\n dragPointerMove(e);\n longPressPointerMove(e);\n }, [dragPointerMove, longPressPointerMove]);\n const handlePointerUp = React.useCallback(() => {\n initialPosition.current = undefined;\n longPressPointerUp();\n }, [longPressPointerUp]);\n React.useEffect(() => {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp);\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp);\n };\n }, [handlePointerMove, handlePointerUp]);\n return { handlePointerDown, handleButtonClick };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"useDragInteraction.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/useDragInteraction.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Toolbar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Point, Timer } from \"@itwin/core-react\";\r\n\r\n/** @internal */\r\nconst getDragDistance = (from: Point, to: Point) => {\r\n return from.getDistanceTo(to);\r\n};\r\n\r\ninterface UseDragArgs {\r\n readonly initialPosition: React.MutableRefObject<Point | undefined>;\r\n readonly onDrag: () => void;\r\n}\r\n\r\nfunction useDrag(args: UseDragArgs) {\r\n const { initialPosition, onDrag } = args;\r\n const handlePointerMove = React.useCallback((e: PointerEvent) => {\r\n // istanbul ignore if\r\n if (!initialPosition.current)\r\n return;\r\n const newPosition = new Point(e.clientX, e.clientY);\r\n const dragDistance = getDragDistance(initialPosition.current, newPosition);\r\n if (dragDistance < 20)\r\n return;\r\n onDrag();\r\n }, [initialPosition, onDrag]);\r\n return { handlePointerMove };\r\n}\r\n\r\ninterface UseLongPressArgs {\r\n readonly initialPosition: React.RefObject<Point | undefined>;\r\n readonly onLongPress: () => void;\r\n}\r\n\r\nfunction useLongPress(args: UseLongPressArgs) {\r\n const longPressTimer = React.useRef(new Timer(500));\r\n const handlePointerDown = React.useCallback(() => {\r\n longPressTimer.current.start();\r\n }, []);\r\n const handlePointerUp = React.useCallback(() => {\r\n longPressTimer.current.stop();\r\n }, []);\r\n\r\n const handlePointerMove = React.useCallback((e: PointerEvent) => {\r\n if (!args.initialPosition.current)\r\n return;\r\n const newPosition = new Point(e.clientX, e.clientY);\r\n const distance = args.initialPosition.current.getDistanceTo(newPosition);\r\n distance >= 10 && longPressTimer.current.stop();\r\n }, [args.initialPosition]);\r\n React.useEffect(() => {\r\n longPressTimer.current.setOnExecute(args.onLongPress);\r\n return () => {\r\n longPressTimer.current.setOnExecute(undefined); // eslint-disable-line react-hooks/exhaustive-deps\r\n };\r\n }, [args.onLongPress]);\r\n return { handlePointerDown, handlePointerMove, handlePointerUp };\r\n}\r\n\r\n/**\r\n * Hook used on expandable item that require drag or long press to open\r\n * @param onClick Function called when item is clicked.\r\n * @param onOpenPanel Function called when item is dragged or long pressed to open panel.\r\n * @public\r\n */\r\nexport function useDragInteraction(onClick?: () => void, onOpenPanel?: () => void) {\r\n const initialPosition = React.useRef<Point | undefined>(undefined);\r\n const skipClick = React.useRef<boolean>(false);\r\n const handleOpenPanel = React.useCallback(() => {\r\n initialPosition.current = undefined;\r\n skipClick.current = true;\r\n onOpenPanel && onOpenPanel();\r\n }, [onOpenPanel]);\r\n const {\r\n handlePointerMove: dragPointerMove,\r\n } = useDrag({\r\n initialPosition,\r\n onDrag: handleOpenPanel,\r\n });\r\n const {\r\n handlePointerDown: longPressPointerDown,\r\n handlePointerMove: longPressPointerMove,\r\n handlePointerUp: longPressPointerUp,\r\n } = useLongPress({\r\n initialPosition,\r\n onLongPress: handleOpenPanel,\r\n });\r\n const handleButtonClick = React.useCallback(() => {\r\n // istanbul ignore if\r\n if (skipClick.current)\r\n return;\r\n onClick && onClick();\r\n }, [onClick]);\r\n const handlePointerDown = React.useCallback((e: React.PointerEvent) => {\r\n (e.target instanceof Element) && e.target.releasePointerCapture(e.pointerId);\r\n initialPosition.current = new Point(e.clientX, e.clientY);\r\n skipClick.current = false;\r\n longPressPointerDown();\r\n }, [longPressPointerDown]);\r\n const handlePointerMove = React.useCallback((e: PointerEvent) => {\r\n dragPointerMove(e);\r\n longPressPointerMove(e);\r\n }, [dragPointerMove, longPressPointerMove]);\r\n const handlePointerUp = React.useCallback(() => {\r\n initialPosition.current = undefined;\r\n longPressPointerUp();\r\n }, [longPressPointerUp]);\r\n React.useEffect(() => {\r\n document.addEventListener(\"pointermove\", handlePointerMove);\r\n document.addEventListener(\"pointerup\", handlePointerUp);\r\n return () => {\r\n document.removeEventListener(\"pointermove\", handlePointerMove);\r\n document.removeEventListener(\"pointerup\", handlePointerUp);\r\n };\r\n }, [handlePointerMove, handlePointerUp]);\r\n return { handlePointerDown, handleButtonClick };\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Direction.js","sourceRoot":"","sources":["../../../../../src/components-react/toolbar/utilities/Direction.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;GAEG;AACH,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,yCAAQ,CAAA;IACR,uCAAG,CAAA;IACH,2CAAK,CAAA;IACL,6CAAM,CAAA;AACR,CAAC,EALW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAKpB;AAED;;GAEG;AACH,MAAa,gBAAgB;IAU3B,qDAAqD;IAC9C,MAAM,CAAC,eAAe,CAAC,SAAoB;QAChD,QAAQ,SAAS,EAAE;YACjB,KAAK,SAAS,CAAC,IAAI;gBACjB,OAAO,gBAAgB,CAAC,eAAe,CAAC;YAC1C,KAAK,SAAS,CAAC,GAAG;gBAChB,OAAO,gBAAgB,CAAC,cAAc,CAAC;YACzC,KAAK,SAAS,CAAC,KAAK;gBAClB,OAAO,gBAAgB,CAAC,gBAAgB,CAAC;YAC3C,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,gBAAgB,CAAC,iBAAiB,CAAC;SAC7C;IACH,CAAC;IAED,+DAA+D;IACxD,MAAM,CAAC,sBAAsB,CAAC,SAAoB;QACvD,QAAQ,SAAS,EAAE;YACjB,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,KAAK;gBAClB,OAAO,mBAAmB,CAAC,UAAU,CAAC;YACxC,KAAK,SAAS,CAAC,GAAG,CAAC;YACnB,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,mBAAmB,CAAC,QAAQ,CAAC;SACvC;IACH,CAAC;;AAlCH,4CAmCC;AAlCC,uCAAuC;AAChB,gCAAe,GAAG,2BAA2B,CAAC;AACrE,sCAAsC;AACf,+BAAc,GAAG,0BAA0B,CAAC;AACnE,wCAAwC;AACjB,iCAAgB,GAAG,4BAA4B,CAAC;AACvE,yCAAyC;AAClB,kCAAiB,GAAG,6BAA6B,CAAC;AA6B3E;;GAEG;AACH,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,qEAAQ,CAAA;IACR,yEAAU,CAAA;AACZ,CAAC,EAHW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAG9B;AAED;;GAEG;AACH,MAAa,0BAA0B;IAMrC,+DAA+D;IACxD,MAAM,CAAC,eAAe,CAAC,SAA8B;QAC1D,QAAQ,SAAS,EAAE;YACjB,KAAK,mBAAmB,CAAC,QAAQ;gBAC/B,OAAO,0BAA0B,CAAC,mBAAmB,CAAC;YACxD,KAAK,mBAAmB,CAAC,UAAU;gBACjC,OAAO,0BAA0B,CAAC,qBAAqB,CAAC;SAC3D;IACH,CAAC;IAED,6DAA6D;IACtD,MAAM,CAAC,OAAO,CAAC,SAA8B;QAClD,QAAQ,SAAS,EAAE;YACjB,KAAK,mBAAmB,CAAC,QAAQ;gBAC/B,OAAO,mBAAmB,CAAC,UAAU,CAAC;YACxC,KAAK,mBAAmB,CAAC,UAAU;gBACjC,OAAO,mBAAmB,CAAC,QAAQ,CAAC;SACvC;IACH,CAAC;;AAxBH,gEAyBC;AAxBC,qDAAqD;AAC9B,8CAAmB,GAAG,qBAAqB,CAAC;AACnE,uDAAuD;AAChC,gDAAqB,GAAG,uBAAuB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\n/** Available directions.\n * @public\n */\nexport enum Direction {\n Left = 1,\n Top,\n Right,\n Bottom,\n}\n\n/** Helpers for [[Direction]].\n * @internal\n */\nexport class DirectionHelpers {\n /** Class name of [[Direction.Left]] */\n public static readonly LEFT_CLASS_NAME = \"components-direction-left\";\n /** Class name of [[Direction.Top]] */\n public static readonly TOP_CLASS_NAME = \"components-direction-top\";\n /** Class name of [[Direction.Right]] */\n public static readonly RIGHT_CLASS_NAME = \"components-direction-right\";\n /** Class name of [[Direction.Bottom]] */\n public static readonly BOTTOM_CLASS_NAME = \"components-direction-bottom\";\n\n /** @returns Class name of specified [[Direction]] */\n public static getCssClassName(direction: Direction): string {\n switch (direction) {\n case Direction.Left:\n return DirectionHelpers.LEFT_CLASS_NAME;\n case Direction.Top:\n return DirectionHelpers.TOP_CLASS_NAME;\n case Direction.Right:\n return DirectionHelpers.RIGHT_CLASS_NAME;\n case Direction.Bottom:\n return DirectionHelpers.BOTTOM_CLASS_NAME;\n }\n }\n\n /** @returns Orthogonal direction of specified [[Direction]] */\n public static getOrthogonalDirection(direction: Direction): OrthogonalDirection {\n switch (direction) {\n case Direction.Left:\n case Direction.Right:\n return OrthogonalDirection.Horizontal;\n case Direction.Top:\n case Direction.Bottom:\n return OrthogonalDirection.Vertical;\n }\n }\n}\n\n/** Available orthogonal directions.\n * @alpha\n */\nexport enum OrthogonalDirection {\n Vertical,\n Horizontal,\n}\n\n/** Helpers for [[OrthogonalDirection]].\n * @internal\n */\nexport class OrthogonalDirectionHelpers {\n /** Class name of [[OrthogonalDirection.Vertical]] */\n public static readonly VERTICAL_CLASS_NAME = \"components-vertical\";\n /** Class name of [[OrthogonalDirection.Horizontal]] */\n public static readonly HORIZONTAL_CLASS_NAME = \"components-horizontal\";\n\n /** @returns Class name of specified [[OrthogonalDirection]] */\n public static getCssClassName(direction: OrthogonalDirection): string {\n switch (direction) {\n case OrthogonalDirection.Vertical:\n return OrthogonalDirectionHelpers.VERTICAL_CLASS_NAME;\n case OrthogonalDirection.Horizontal:\n return OrthogonalDirectionHelpers.HORIZONTAL_CLASS_NAME;\n }\n }\n\n /** @returns Opposite of specified [[OrthogonalDirection]] */\n public static inverse(direction: OrthogonalDirection): OrthogonalDirection {\n switch (direction) {\n case OrthogonalDirection.Vertical:\n return OrthogonalDirection.Horizontal;\n case OrthogonalDirection.Horizontal:\n return OrthogonalDirection.Vertical;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Direction.js","sourceRoot":"","sources":["../../../../../src/components-react/toolbar/utilities/Direction.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;GAEG;AACH,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,yCAAQ,CAAA;IACR,uCAAG,CAAA;IACH,2CAAK,CAAA;IACL,6CAAM,CAAA;AACR,CAAC,EALW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAKpB;AAED;;GAEG;AACH,MAAa,gBAAgB;IAU3B,qDAAqD;IAC9C,MAAM,CAAC,eAAe,CAAC,SAAoB;QAChD,QAAQ,SAAS,EAAE;YACjB,KAAK,SAAS,CAAC,IAAI;gBACjB,OAAO,gBAAgB,CAAC,eAAe,CAAC;YAC1C,KAAK,SAAS,CAAC,GAAG;gBAChB,OAAO,gBAAgB,CAAC,cAAc,CAAC;YACzC,KAAK,SAAS,CAAC,KAAK;gBAClB,OAAO,gBAAgB,CAAC,gBAAgB,CAAC;YAC3C,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,gBAAgB,CAAC,iBAAiB,CAAC;SAC7C;IACH,CAAC;IAED,+DAA+D;IACxD,MAAM,CAAC,sBAAsB,CAAC,SAAoB;QACvD,QAAQ,SAAS,EAAE;YACjB,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,KAAK;gBAClB,OAAO,mBAAmB,CAAC,UAAU,CAAC;YACxC,KAAK,SAAS,CAAC,GAAG,CAAC;YACnB,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,mBAAmB,CAAC,QAAQ,CAAC;SACvC;IACH,CAAC;;AAlCH,4CAmCC;AAlCC,uCAAuC;AAChB,gCAAe,GAAG,2BAA2B,CAAC;AACrE,sCAAsC;AACf,+BAAc,GAAG,0BAA0B,CAAC;AACnE,wCAAwC;AACjB,iCAAgB,GAAG,4BAA4B,CAAC;AACvE,yCAAyC;AAClB,kCAAiB,GAAG,6BAA6B,CAAC;AA6B3E;;GAEG;AACH,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,qEAAQ,CAAA;IACR,yEAAU,CAAA;AACZ,CAAC,EAHW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAG9B;AAED;;GAEG;AACH,MAAa,0BAA0B;IAMrC,+DAA+D;IACxD,MAAM,CAAC,eAAe,CAAC,SAA8B;QAC1D,QAAQ,SAAS,EAAE;YACjB,KAAK,mBAAmB,CAAC,QAAQ;gBAC/B,OAAO,0BAA0B,CAAC,mBAAmB,CAAC;YACxD,KAAK,mBAAmB,CAAC,UAAU;gBACjC,OAAO,0BAA0B,CAAC,qBAAqB,CAAC;SAC3D;IACH,CAAC;IAED,6DAA6D;IACtD,MAAM,CAAC,OAAO,CAAC,SAA8B;QAClD,QAAQ,SAAS,EAAE;YACjB,KAAK,mBAAmB,CAAC,QAAQ;gBAC/B,OAAO,mBAAmB,CAAC,UAAU,CAAC;YACxC,KAAK,mBAAmB,CAAC,UAAU;gBACjC,OAAO,mBAAmB,CAAC,QAAQ,CAAC;SACvC;IACH,CAAC;;AAxBH,gEAyBC;AAxBC,qDAAqD;AAC9B,8CAAmB,GAAG,qBAAqB,CAAC;AACnE,uDAAuD;AAChC,gDAAqB,GAAG,uBAAuB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Toolbar\r\n */\r\n\r\n/** Available directions.\r\n * @public\r\n */\r\nexport enum Direction {\r\n Left = 1,\r\n Top,\r\n Right,\r\n Bottom,\r\n}\r\n\r\n/** Helpers for [[Direction]].\r\n * @internal\r\n */\r\nexport class DirectionHelpers {\r\n /** Class name of [[Direction.Left]] */\r\n public static readonly LEFT_CLASS_NAME = \"components-direction-left\";\r\n /** Class name of [[Direction.Top]] */\r\n public static readonly TOP_CLASS_NAME = \"components-direction-top\";\r\n /** Class name of [[Direction.Right]] */\r\n public static readonly RIGHT_CLASS_NAME = \"components-direction-right\";\r\n /** Class name of [[Direction.Bottom]] */\r\n public static readonly BOTTOM_CLASS_NAME = \"components-direction-bottom\";\r\n\r\n /** @returns Class name of specified [[Direction]] */\r\n public static getCssClassName(direction: Direction): string {\r\n switch (direction) {\r\n case Direction.Left:\r\n return DirectionHelpers.LEFT_CLASS_NAME;\r\n case Direction.Top:\r\n return DirectionHelpers.TOP_CLASS_NAME;\r\n case Direction.Right:\r\n return DirectionHelpers.RIGHT_CLASS_NAME;\r\n case Direction.Bottom:\r\n return DirectionHelpers.BOTTOM_CLASS_NAME;\r\n }\r\n }\r\n\r\n /** @returns Orthogonal direction of specified [[Direction]] */\r\n public static getOrthogonalDirection(direction: Direction): OrthogonalDirection {\r\n switch (direction) {\r\n case Direction.Left:\r\n case Direction.Right:\r\n return OrthogonalDirection.Horizontal;\r\n case Direction.Top:\r\n case Direction.Bottom:\r\n return OrthogonalDirection.Vertical;\r\n }\r\n }\r\n}\r\n\r\n/** Available orthogonal directions.\r\n * @alpha\r\n */\r\nexport enum OrthogonalDirection {\r\n Vertical,\r\n Horizontal,\r\n}\r\n\r\n/** Helpers for [[OrthogonalDirection]].\r\n * @internal\r\n */\r\nexport class OrthogonalDirectionHelpers {\r\n /** Class name of [[OrthogonalDirection.Vertical]] */\r\n public static readonly VERTICAL_CLASS_NAME = \"components-vertical\";\r\n /** Class name of [[OrthogonalDirection.Horizontal]] */\r\n public static readonly HORIZONTAL_CLASS_NAME = \"components-horizontal\";\r\n\r\n /** @returns Class name of specified [[OrthogonalDirection]] */\r\n public static getCssClassName(direction: OrthogonalDirection): string {\r\n switch (direction) {\r\n case OrthogonalDirection.Vertical:\r\n return OrthogonalDirectionHelpers.VERTICAL_CLASS_NAME;\r\n case OrthogonalDirection.Horizontal:\r\n return OrthogonalDirectionHelpers.HORIZONTAL_CLASS_NAME;\r\n }\r\n }\r\n\r\n /** @returns Opposite of specified [[OrthogonalDirection]] */\r\n public static inverse(direction: OrthogonalDirection): OrthogonalDirection {\r\n switch (direction) {\r\n case OrthogonalDirection.Vertical:\r\n return OrthogonalDirection.Horizontal;\r\n case OrthogonalDirection.Horizontal:\r\n return OrthogonalDirection.Vertical;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HighlightingEngine.js","sourceRoot":"","sources":["../../../../src/components-react/tree/HighlightingEngine.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;AAEH,qCAAmC;AACnC,6CAA+B;AAC/B,+DAA4D;AA+B5D;;;GAGG;AACH,MAAa,kBAAkB;IAK7B,YAAY,KAA6B;QACvC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;IACxC,CAAC;IAEM,YAAY,CAAC,IAAqB;QACvC,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IACnE,CAAC;IAEM,mBAAmB,CAAC,IAAqB;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAa,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC;IAEM,iBAAiB,CAAC,IAAqB;QAC5C,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;SACjD,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAY,EAAE,KAAiC;QAC3E,IAAI,KAAK,CAAC,UAAU;YAClB,OAAO,CAAC,oBAAC,iCAAe,IAAC,IAAI,EAAE,IAAI,KAAM,KAAK,GAAI,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;;AA7BH,gDA8BC;AA3BwB,oCAAiB,GAAG,4BAA4B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport \"./HighlightingEngine.scss\";\nimport * as React from \"react\";\nimport { HighlightedText } from \"../common/HighlightedText\";\n\n/**\n * Properties for identifying an active highlight on a node in a tree.\n * @see [[HighlightableTreeProps.activeMatch]]\n * @public\n */\nexport interface ActiveMatchInfo {\n nodeId: string;\n matchIndex: number;\n}\n\n/**\n * Properties for highlighting nodes in a tree.\n * @see [[ControlledTreeProps.nodeHighlightingProps]]\n * @public\n */\nexport interface HighlightableTreeProps {\n searchText: string;\n activeMatch?: ActiveMatchInfo;\n}\n\n/**\n * Properties for a highlightable [[TreeNode]]\n * @public\n */\nexport interface HighlightableTreeNodeProps {\n searchText: string;\n activeMatchIndex?: number;\n}\n\n/**\n * Tree highlighting engine\n * @public\n */\nexport class HighlightingEngine {\n private _searchText: string;\n private _activeMatch?: ActiveMatchInfo;\n public static readonly ACTIVE_CLASS_NAME = \"components-activehighlight\";\n\n constructor(props: HighlightableTreeProps) {\n this._searchText = props.searchText;\n this._activeMatch = props.activeMatch;\n }\n\n public isNodeActive(node: { id?: string }) {\n return this._activeMatch && node.id === this._activeMatch.nodeId;\n }\n\n public getActiveMatchIndex(node: { id?: string }) {\n return this.isNodeActive(node) ? this._activeMatch!.matchIndex : undefined;\n }\n\n public createRenderProps(node: { id?: string }): HighlightableTreeNodeProps {\n return {\n searchText: this._searchText,\n activeMatchIndex: this.getActiveMatchIndex(node),\n };\n }\n\n public static renderNodeLabel(text: string, props: HighlightableTreeNodeProps): React.ReactNode {\n if (props.searchText)\n return (<HighlightedText text={text} {...props} />);\n return text;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HighlightingEngine.js","sourceRoot":"","sources":["../../../../src/components-react/tree/HighlightingEngine.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;AAEH,qCAAmC;AACnC,6CAA+B;AAC/B,+DAA4D;AA+B5D;;;GAGG;AACH,MAAa,kBAAkB;IAK7B,YAAY,KAA6B;QACvC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;IACxC,CAAC;IAEM,YAAY,CAAC,IAAqB;QACvC,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IACnE,CAAC;IAEM,mBAAmB,CAAC,IAAqB;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAa,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC;IAEM,iBAAiB,CAAC,IAAqB;QAC5C,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;SACjD,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAY,EAAE,KAAiC;QAC3E,IAAI,KAAK,CAAC,UAAU;YAClB,OAAO,CAAC,oBAAC,iCAAe,IAAC,IAAI,EAAE,IAAI,KAAM,KAAK,GAAI,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;;AA7BH,gDA8BC;AA3BwB,oCAAiB,GAAG,4BAA4B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tree\r\n */\r\n\r\nimport \"./HighlightingEngine.scss\";\r\nimport * as React from \"react\";\r\nimport { HighlightedText } from \"../common/HighlightedText\";\r\n\r\n/**\r\n * Properties for identifying an active highlight on a node in a tree.\r\n * @see [[HighlightableTreeProps.activeMatch]]\r\n * @public\r\n */\r\nexport interface ActiveMatchInfo {\r\n nodeId: string;\r\n matchIndex: number;\r\n}\r\n\r\n/**\r\n * Properties for highlighting nodes in a tree.\r\n * @see [[ControlledTreeProps.nodeHighlightingProps]]\r\n * @public\r\n */\r\nexport interface HighlightableTreeProps {\r\n searchText: string;\r\n activeMatch?: ActiveMatchInfo;\r\n}\r\n\r\n/**\r\n * Properties for a highlightable [[TreeNode]]\r\n * @public\r\n */\r\nexport interface HighlightableTreeNodeProps {\r\n searchText: string;\r\n activeMatchIndex?: number;\r\n}\r\n\r\n/**\r\n * Tree highlighting engine\r\n * @public\r\n */\r\nexport class HighlightingEngine {\r\n private _searchText: string;\r\n private _activeMatch?: ActiveMatchInfo;\r\n public static readonly ACTIVE_CLASS_NAME = \"components-activehighlight\";\r\n\r\n constructor(props: HighlightableTreeProps) {\r\n this._searchText = props.searchText;\r\n this._activeMatch = props.activeMatch;\r\n }\r\n\r\n public isNodeActive(node: { id?: string }) {\r\n return this._activeMatch && node.id === this._activeMatch.nodeId;\r\n }\r\n\r\n public getActiveMatchIndex(node: { id?: string }) {\r\n return this.isNodeActive(node) ? this._activeMatch!.matchIndex : undefined;\r\n }\r\n\r\n public createRenderProps(node: { id?: string }): HighlightableTreeNodeProps {\r\n return {\r\n searchText: this._searchText,\r\n activeMatchIndex: this.getActiveMatchIndex(node),\r\n };\r\n }\r\n\r\n public static renderNodeLabel(text: string, props: HighlightableTreeNodeProps): React.ReactNode {\r\n if (props.searchText)\r\n return (<HighlightedText text={text} {...props} />);\r\n return text;\r\n }\r\n}\r\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
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
|
-
|
|
6
|
-
.components-activehighlight {
|
|
7
|
-
background-color: orange;
|
|
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
|
+
|
|
6
|
+
.components-activehighlight {
|
|
7
|
+
background-color: orange;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageLoader.js","sourceRoot":"","sources":["../../../../src/components-react/tree/ImageLoader.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAYH;;GAEG;AACH,MAAa,eAAe;IAC1B,kFAAkF;IAC3E,IAAI,CAAC,IAAkB;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI;YACZ,OAAO,SAAS,CAAC;QAEnB,OAAO;YACL,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,IAAI,CAAC,IAAI;SACjB,CAAC;IACJ,CAAC;CACF;AAXD,0CAWC","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 Tree\n */\n\nimport { IImageLoader, LoadedImage } from \"../common/IImageLoader\";\nimport { TreeNodeItem } from \"./TreeDataProvider\";\n\n/** Interface for a tree image loader\n * @public\n */\nexport interface ITreeImageLoader extends IImageLoader {\n load: (item: TreeNodeItem) => LoadedImage | undefined;\n}\n\n/** Default image loader for the tree\n * @public\n */\nexport class TreeImageLoader implements ITreeImageLoader {\n /** Loads image data from either [[TreeNodeItem]] or [[BeInspireTreeNodeITree]] */\n public load(item: TreeNodeItem): LoadedImage | undefined {\n if (!item.icon)\n return undefined;\n\n return {\n sourceType: \"webfont-icon\",\n value: item.icon,\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ImageLoader.js","sourceRoot":"","sources":["../../../../src/components-react/tree/ImageLoader.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAYH;;GAEG;AACH,MAAa,eAAe;IAC1B,kFAAkF;IAC3E,IAAI,CAAC,IAAkB;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI;YACZ,OAAO,SAAS,CAAC;QAEnB,OAAO;YACL,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,IAAI,CAAC,IAAI;SACjB,CAAC;IACJ,CAAC;CACF;AAXD,0CAWC","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 Tree\r\n */\r\n\r\nimport { IImageLoader, LoadedImage } from \"../common/IImageLoader\";\r\nimport { TreeNodeItem } from \"./TreeDataProvider\";\r\n\r\n/** Interface for a tree image loader\r\n * @public\r\n */\r\nexport interface ITreeImageLoader extends IImageLoader {\r\n load: (item: TreeNodeItem) => LoadedImage | undefined;\r\n}\r\n\r\n/** Default image loader for the tree\r\n * @public\r\n */\r\nexport class TreeImageLoader implements ITreeImageLoader {\r\n /** Loads image data from either [[TreeNodeItem]] or [[BeInspireTreeNodeITree]] */\r\n public load(item: TreeNodeItem): LoadedImage | undefined {\r\n if (!item.icon)\r\n return undefined;\r\n\r\n return {\r\n sourceType: \"webfont-icon\",\r\n value: item.icon,\r\n };\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleTreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/SimpleTreeDataProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA8C;AAY9C;;;GAGG;AACH,MAAa,sBAAsB;IAGjC,YAAmB,SAA0C;QAItD,sBAAiB,GAAG,IAAI,sBAAO,EAA2B,CAAC;QAHhE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAIO,kBAAkB,CAAC,QAAiB,EAAE,WAAyB;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC,KAAK;YACR,OAAO,EAAE,CAAC;QAEZ,IAAI,CAAC,WAAW;YACd,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QAEpB,IAAI,YAAgC,CAAC;QACrC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5D,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;YAChC,YAAY,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3D;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,MAAqB,EAAE,WAAyB;QACpE,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,MAAqB;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IACxE,CAAC;CACF;AAjCD,wDAiCC","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 Tree\n */\n\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport { PageOptions } from \"../common/PageOptions\";\nimport { ITreeDataProvider, TreeDataChangesListener, TreeNodeItem } from \"./TreeDataProvider\";\n\n/**\n * Used by [[SimpleTreeDataProvider]].\n * key - Parent id.\n * value - Child tree node items.\n * @public\n */\nexport type SimpleTreeDataProviderHierarchy = Map<string | undefined, TreeNodeItem[]>;\n\n/**\n * A tree data provider using [[SimpleTreeDataProviderHierarchy]].\n * @public\n */\nexport class SimpleTreeDataProvider implements ITreeDataProvider {\n private _hierarchy: SimpleTreeDataProviderHierarchy;\n\n public constructor(hierarchy: SimpleTreeDataProviderHierarchy) {\n this._hierarchy = hierarchy;\n }\n\n public onTreeNodeChanged = new BeEvent<TreeDataChangesListener>();\n\n private getNodesByParentId(parentId?: string, pageOptions?: PageOptions): TreeNodeItem[] {\n const nodes = this._hierarchy.get(parentId);\n\n if (!nodes)\n return [];\n\n if (!pageOptions)\n return [...nodes];\n\n let pageEndIndex: number | undefined;\n if (pageOptions.size !== undefined && pageOptions.size !== 0) {\n pageEndIndex = pageOptions.size;\n pageEndIndex += pageOptions.start ? pageOptions.start : 0;\n }\n return nodes.slice(pageOptions.start, pageEndIndex);\n }\n\n public async getNodes(parent?: TreeNodeItem, pageOptions?: PageOptions): Promise<TreeNodeItem[]> {\n return this.getNodesByParentId(parent ? parent.id : undefined, pageOptions);\n }\n\n public async getNodesCount(parent?: TreeNodeItem): Promise<number> {\n return this.getNodesByParentId(parent ? parent.id : undefined).length;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SimpleTreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/SimpleTreeDataProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA8C;AAY9C;;;GAGG;AACH,MAAa,sBAAsB;IAGjC,YAAmB,SAA0C;QAItD,sBAAiB,GAAG,IAAI,sBAAO,EAA2B,CAAC;QAHhE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAIO,kBAAkB,CAAC,QAAiB,EAAE,WAAyB;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC,KAAK;YACR,OAAO,EAAE,CAAC;QAEZ,IAAI,CAAC,WAAW;YACd,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QAEpB,IAAI,YAAgC,CAAC;QACrC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5D,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;YAChC,YAAY,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3D;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,MAAqB,EAAE,WAAyB;QACpE,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,MAAqB;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IACxE,CAAC;CACF;AAjCD,wDAiCC","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 Tree\r\n */\r\n\r\nimport { BeEvent } from \"@itwin/core-bentley\";\r\nimport { PageOptions } from \"../common/PageOptions\";\r\nimport { ITreeDataProvider, TreeDataChangesListener, TreeNodeItem } from \"./TreeDataProvider\";\r\n\r\n/**\r\n * Used by [[SimpleTreeDataProvider]].\r\n * key - Parent id.\r\n * value - Child tree node items.\r\n * @public\r\n */\r\nexport type SimpleTreeDataProviderHierarchy = Map<string | undefined, TreeNodeItem[]>;\r\n\r\n/**\r\n * A tree data provider using [[SimpleTreeDataProviderHierarchy]].\r\n * @public\r\n */\r\nexport class SimpleTreeDataProvider implements ITreeDataProvider {\r\n private _hierarchy: SimpleTreeDataProviderHierarchy;\r\n\r\n public constructor(hierarchy: SimpleTreeDataProviderHierarchy) {\r\n this._hierarchy = hierarchy;\r\n }\r\n\r\n public onTreeNodeChanged = new BeEvent<TreeDataChangesListener>();\r\n\r\n private getNodesByParentId(parentId?: string, pageOptions?: PageOptions): TreeNodeItem[] {\r\n const nodes = this._hierarchy.get(parentId);\r\n\r\n if (!nodes)\r\n return [];\r\n\r\n if (!pageOptions)\r\n return [...nodes];\r\n\r\n let pageEndIndex: number | undefined;\r\n if (pageOptions.size !== undefined && pageOptions.size !== 0) {\r\n pageEndIndex = pageOptions.size;\r\n pageEndIndex += pageOptions.start ? pageOptions.start : 0;\r\n }\r\n return nodes.slice(pageOptions.start, pageEndIndex);\r\n }\r\n\r\n public async getNodes(parent?: TreeNodeItem, pageOptions?: PageOptions): Promise<TreeNodeItem[]> {\r\n return this.getNodesByParentId(parent ? parent.id : undefined, pageOptions);\r\n }\r\n\r\n public async getNodesCount(parent?: TreeNodeItem): Promise<number> {\r\n return this.getNodesByParentId(parent ? parent.id : undefined).length;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeComponentTestId.js","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeComponentTestId.ts"],"names":[],"mappings":";AACA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;;;;GAKG;AACH,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,yCAAkB,CAAA;IAClB,0DAAmC,CAAA;IACnC,yEAAkD,CAAA;IAClD,0DAAmC,CAAA;AACrC,CAAC,EALW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAK9B","sourcesContent":["\n/*---------------------------------------------------------------------------------------------\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 Tree\n */\n\n/**\n * Different tree component IDs that are assigned to those components as `data-testid` attribute\n * to help locate them in tests.\n *\n * @internal\n */\nexport enum TreeComponentTestId {\n Node = \"tree-node\",\n NodeContents = \"tree-node-contents\",\n NodeExpansionToggle = \"tree-node-expansion-toggle\",\n NodeCheckbox = \"tree-node-checkbox\",\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TreeComponentTestId.js","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeComponentTestId.ts"],"names":[],"mappings":";AACA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;;;;GAKG;AACH,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,yCAAkB,CAAA;IAClB,0DAAmC,CAAA;IACnC,yEAAkD,CAAA;IAClD,0DAAmC,CAAA;AACrC,CAAC,EALW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAK9B","sourcesContent":["\r\n/*---------------------------------------------------------------------------------------------\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 Tree\r\n */\r\n\r\n/**\r\n * Different tree component IDs that are assigned to those components as `data-testid` attribute\r\n * to help locate them in tests.\r\n *\r\n * @internal\r\n */\r\nexport enum TreeComponentTestId {\r\n Node = \"tree-node\",\r\n NodeContents = \"tree-node-contents\",\r\n NodeExpansionToggle = \"tree-node-expansion-toggle\",\r\n NodeCheckbox = \"tree-node-checkbox\",\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AA2EH;;GAEG;AACI,MAAM,qBAAqB,GAAG,CAAC,QAA0B,EAAmC,EAAE;IACnG,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AACF;;GAEG;AACI,MAAM,yBAAyB,GAAG,CAAC,QAA0B,EAAuC,EAAE;IAC3G,OAAO,CAAC,SAAS,KAAM,QAAoC,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC,CAAC;AAFW,QAAA,yBAAyB,6BAEpC;AACF;;GAEG;AACI,MAAM,wBAAwB,GAAG,CAAC,QAA0B,EAAsC,EAAE;IACzG,OAAO,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;AAC1C,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC;AACF;;GAEG;AACI,MAAM,2BAA2B,GAAG,CAAC,QAA0B,EAAiC,EAAE;IACvG,MAAM,SAAS,GAAG,QAA6B,CAAC;IAChD,OAAO,SAAS,KAAK,SAAS,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS,CAAC,aAAa,CAAC;AACnF,CAAC,CAAC;AAHW,QAAA,2BAA2B,+BAGtC;AACF;;;;;GAKG;AACI,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAE,EAAE;IAChD,MAAM,eAAe,GAAG,IAAqC,CAAC;IAC9D,IAAI,UAAU,IAAI,eAAe,IAAI,eAAe,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAClG,OAAO,IAAI,CAAC;IACd,MAAM,aAAa,GAAG,IAA+B,CAAC;IACtD,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW;QAC7D,OAAO,IAAI,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB","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 Tree\n */\n\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\nimport { CheckBoxState } from \"@itwin/core-react\";\nimport { PageOptions } from \"../common/PageOptions\";\nimport { ItemStyle } from \"../properties/ItemStyle\";\n\n/**\n * A node item which can be displayed in a tree.\n * @public\n */\nexport interface TreeNodeItem {\n id: string;\n parentId?: string;\n label: PropertyRecord;\n description?: string;\n autoExpand?: boolean;\n icon?: string;\n isCheckboxVisible?: boolean;\n isCheckboxDisabled?: boolean;\n checkBoxState?: CheckBoxState;\n isEditable?: boolean;\n style?: ItemStyle;\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/** A [[TreeNodeItem]] for immediately loaded trees\n * @public\n */\nexport interface ImmediatelyLoadedTreeNodeItem extends TreeNodeItem {\n children?: TreeNodeItem[];\n}\n\n/** A [[TreeNodeItem]] for delay-loaded trees\n * @public\n */\nexport interface DelayLoadedTreeNodeItem extends TreeNodeItem {\n hasChildren?: boolean;\n}\n\n/** Array of tree node data elements\n * @public\n */\nexport type TreeDataProviderRaw = ImmediatelyLoadedTreeNodeItem[];\n\n/** A Promise for TreeDataProviderRaw\n * @public\n */\nexport type TreeDataProviderPromise = Promise<TreeDataProviderRaw>;\n\n/** Signature for a method that returns TreeDataProviderPromise for supplied parent node\n * @public\n */\nexport type TreeDataProviderMethod = (node?: TreeNodeItem) => Promise<DelayLoadedTreeNodeItem[]>;\n\n/** Interface for a tree data provider class\n * @public\n */\nexport interface ITreeDataProvider {\n /** @deprecated */\n onTreeNodeChanged?: BeEvent<TreeDataChangesListener>;\n getNodesCount(parent?: TreeNodeItem): Promise<number>;\n getNodes(parent?: TreeNodeItem, page?: PageOptions): Promise<DelayLoadedTreeNodeItem[]>;\n}\n\n/** Type definition for all BeInspireTree data providers\n * @public\n */\nexport type TreeDataProvider = TreeDataProviderRaw | TreeDataProviderPromise | TreeDataProviderMethod | ITreeDataProvider;\n\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderRaw]]\n * @public\n */\nexport const isTreeDataProviderRaw = (provider: TreeDataProvider): provider is TreeDataProviderRaw => {\n return Array.isArray(provider);\n};\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderPromise]]\n * @public\n */\nexport const isTreeDataProviderPromise = (provider: TreeDataProvider): provider is TreeDataProviderPromise => {\n return (undefined !== (provider as TreeDataProviderPromise).then);\n};\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderMethod]]\n * @public\n */\nexport const isTreeDataProviderMethod = (provider: TreeDataProvider): provider is TreeDataProviderMethod => {\n return (typeof provider === \"function\");\n};\n/** Checks if [[TreeDataProvider]] is an [[ITreeDataProvider]]\n * @public\n */\nexport const isTreeDataProviderInterface = (provider: TreeDataProvider): provider is ITreeDataProvider => {\n const candidate = provider as ITreeDataProvider;\n return undefined !== candidate.getNodes && undefined !== candidate.getNodesCount;\n};\n/**\n * Determines whether node has children\n * @param node node to check\n * @returns whether node has children\n * @public\n */\nexport const hasChildren = (node: TreeNodeItem) => {\n const nodeAsImmediate = node as ImmediatelyLoadedTreeNodeItem;\n if (\"children\" in nodeAsImmediate && nodeAsImmediate.children && nodeAsImmediate.children.length > 0)\n return true;\n const nodeAsDelayed = node as DelayLoadedTreeNodeItem;\n if (\"hasChildren\" in nodeAsDelayed && nodeAsDelayed.hasChildren)\n return true;\n return false;\n};\n\n/**\n * An interface tree data change listeners.\n * Contains a list of nodes that changed or undefined if root level changed.\n * @public\n */\nexport type TreeDataChangesListener = (nodes: Array<TreeNodeItem | undefined>) => void;\n\n/**\n * EditableTreeDataProvider provides cell editing processing for the Tree.\n * @public\n */\nexport interface EditableTreeDataProvider extends ITreeDataProvider {\n updateLabel(nodeItem: TreeNodeItem, newLabel: string): void;\n}\n\n/**\n * MutableTreeDataProvider provides manipulation processing for the Tree.\n * Useful for Drag & Drop processing.\n * @beta @deprecated\n */\nexport interface MutableTreeDataProvider extends ITreeDataProvider {\n insertNode(parent: TreeNodeItem | undefined, child: TreeNodeItem, index?: number): void;\n removeNode(parent: TreeNodeItem | undefined, child: TreeNodeItem): void;\n moveNode(parent: TreeNodeItem | undefined, newParent: TreeNodeItem | undefined, child: TreeNodeItem, index?: number): void;\n\n isDescendent(parent: TreeNodeItem | undefined, nodeItem: TreeNodeItem): boolean;\n getNodeIndex(parent: TreeNodeItem | undefined, child: TreeNodeItem): number;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AA2EH;;GAEG;AACI,MAAM,qBAAqB,GAAG,CAAC,QAA0B,EAAmC,EAAE;IACnG,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AACF;;GAEG;AACI,MAAM,yBAAyB,GAAG,CAAC,QAA0B,EAAuC,EAAE;IAC3G,OAAO,CAAC,SAAS,KAAM,QAAoC,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC,CAAC;AAFW,QAAA,yBAAyB,6BAEpC;AACF;;GAEG;AACI,MAAM,wBAAwB,GAAG,CAAC,QAA0B,EAAsC,EAAE;IACzG,OAAO,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;AAC1C,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC;AACF;;GAEG;AACI,MAAM,2BAA2B,GAAG,CAAC,QAA0B,EAAiC,EAAE;IACvG,MAAM,SAAS,GAAG,QAA6B,CAAC;IAChD,OAAO,SAAS,KAAK,SAAS,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS,CAAC,aAAa,CAAC;AACnF,CAAC,CAAC;AAHW,QAAA,2BAA2B,+BAGtC;AACF;;;;;GAKG;AACI,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAE,EAAE;IAChD,MAAM,eAAe,GAAG,IAAqC,CAAC;IAC9D,IAAI,UAAU,IAAI,eAAe,IAAI,eAAe,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAClG,OAAO,IAAI,CAAC;IACd,MAAM,aAAa,GAAG,IAA+B,CAAC;IACtD,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW;QAC7D,OAAO,IAAI,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB","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 Tree\r\n */\r\n\r\nimport { BeEvent } from \"@itwin/core-bentley\";\r\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\r\nimport { CheckBoxState } from \"@itwin/core-react\";\r\nimport { PageOptions } from \"../common/PageOptions\";\r\nimport { ItemStyle } from \"../properties/ItemStyle\";\r\n\r\n/**\r\n * A node item which can be displayed in a tree.\r\n * @public\r\n */\r\nexport interface TreeNodeItem {\r\n id: string;\r\n parentId?: string;\r\n label: PropertyRecord;\r\n description?: string;\r\n autoExpand?: boolean;\r\n icon?: string;\r\n isCheckboxVisible?: boolean;\r\n isCheckboxDisabled?: boolean;\r\n checkBoxState?: CheckBoxState;\r\n isEditable?: boolean;\r\n style?: ItemStyle;\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/** A [[TreeNodeItem]] for immediately loaded trees\r\n * @public\r\n */\r\nexport interface ImmediatelyLoadedTreeNodeItem extends TreeNodeItem {\r\n children?: TreeNodeItem[];\r\n}\r\n\r\n/** A [[TreeNodeItem]] for delay-loaded trees\r\n * @public\r\n */\r\nexport interface DelayLoadedTreeNodeItem extends TreeNodeItem {\r\n hasChildren?: boolean;\r\n}\r\n\r\n/** Array of tree node data elements\r\n * @public\r\n */\r\nexport type TreeDataProviderRaw = ImmediatelyLoadedTreeNodeItem[];\r\n\r\n/** A Promise for TreeDataProviderRaw\r\n * @public\r\n */\r\nexport type TreeDataProviderPromise = Promise<TreeDataProviderRaw>;\r\n\r\n/** Signature for a method that returns TreeDataProviderPromise for supplied parent node\r\n * @public\r\n */\r\nexport type TreeDataProviderMethod = (node?: TreeNodeItem) => Promise<DelayLoadedTreeNodeItem[]>;\r\n\r\n/** Interface for a tree data provider class\r\n * @public\r\n */\r\nexport interface ITreeDataProvider {\r\n /** @deprecated */\r\n onTreeNodeChanged?: BeEvent<TreeDataChangesListener>;\r\n getNodesCount(parent?: TreeNodeItem): Promise<number>;\r\n getNodes(parent?: TreeNodeItem, page?: PageOptions): Promise<DelayLoadedTreeNodeItem[]>;\r\n}\r\n\r\n/** Type definition for all BeInspireTree data providers\r\n * @public\r\n */\r\nexport type TreeDataProvider = TreeDataProviderRaw | TreeDataProviderPromise | TreeDataProviderMethod | ITreeDataProvider;\r\n\r\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderRaw]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderRaw = (provider: TreeDataProvider): provider is TreeDataProviderRaw => {\r\n return Array.isArray(provider);\r\n};\r\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderPromise]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderPromise = (provider: TreeDataProvider): provider is TreeDataProviderPromise => {\r\n return (undefined !== (provider as TreeDataProviderPromise).then);\r\n};\r\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderMethod]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderMethod = (provider: TreeDataProvider): provider is TreeDataProviderMethod => {\r\n return (typeof provider === \"function\");\r\n};\r\n/** Checks if [[TreeDataProvider]] is an [[ITreeDataProvider]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderInterface = (provider: TreeDataProvider): provider is ITreeDataProvider => {\r\n const candidate = provider as ITreeDataProvider;\r\n return undefined !== candidate.getNodes && undefined !== candidate.getNodesCount;\r\n};\r\n/**\r\n * Determines whether node has children\r\n * @param node node to check\r\n * @returns whether node has children\r\n * @public\r\n */\r\nexport const hasChildren = (node: TreeNodeItem) => {\r\n const nodeAsImmediate = node as ImmediatelyLoadedTreeNodeItem;\r\n if (\"children\" in nodeAsImmediate && nodeAsImmediate.children && nodeAsImmediate.children.length > 0)\r\n return true;\r\n const nodeAsDelayed = node as DelayLoadedTreeNodeItem;\r\n if (\"hasChildren\" in nodeAsDelayed && nodeAsDelayed.hasChildren)\r\n return true;\r\n return false;\r\n};\r\n\r\n/**\r\n * An interface tree data change listeners.\r\n * Contains a list of nodes that changed or undefined if root level changed.\r\n * @public\r\n */\r\nexport type TreeDataChangesListener = (nodes: Array<TreeNodeItem | undefined>) => void;\r\n\r\n/**\r\n * EditableTreeDataProvider provides cell editing processing for the Tree.\r\n * @public\r\n */\r\nexport interface EditableTreeDataProvider extends ITreeDataProvider {\r\n updateLabel(nodeItem: TreeNodeItem, newLabel: string): void;\r\n}\r\n\r\n/**\r\n * MutableTreeDataProvider provides manipulation processing for the Tree.\r\n * Useful for Drag & Drop processing.\r\n * @beta @deprecated\r\n */\r\nexport interface MutableTreeDataProvider extends ITreeDataProvider {\r\n insertNode(parent: TreeNodeItem | undefined, child: TreeNodeItem, index?: number): void;\r\n removeNode(parent: TreeNodeItem | undefined, child: TreeNodeItem): void;\r\n moveNode(parent: TreeNodeItem | undefined, newParent: TreeNodeItem | undefined, child: TreeNodeItem, index?: number): void;\r\n\r\n isDescendent(parent: TreeNodeItem | undefined, nodeItem: TreeNodeItem): boolean;\r\n getNodeIndex(parent: TreeNodeItem | undefined, child: TreeNodeItem): number;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Observable.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/Observable.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,wDAAiE;AACjE,yDAAwE;AAExE;;;GAGG;AACH,SAAgB,IAAI,CAAI,QAAsC;IAC5D,OAAO,IAAA,WAAQ,EAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAFD,oBAEC;AAED,gBAAgB;AAChB,SAAgB,gBAAgB,CAAI,UAAyB;IAC3D,OAAO,IAAI,uBAAc,CAAC,CAAC,UAAU,EAAE,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC;AAFD,4CAEC","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 Tree\n */\n\nimport { from as rxjsFrom } from \"rxjs/internal/observable/from\";\nimport { Observable as RxjsObservable } from \"rxjs/internal/Observable\";\n\n/**\n * Helper method that creates an Observable from Iterable or Promise.\n * @public\n */\nexport function from<T>(iterable: Iterable<T> | PromiseLike<T>): Observable<T> {\n return rxjsFrom(iterable);\n}\n\n/** @internal */\nexport function toRxjsObservable<T>(observable: Observable<T>): RxjsObservable<T> {\n return new RxjsObservable((subscriber) => { observable.subscribe(subscriber); });\n}\n\n/**\n * Observable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport interface Observable<T> extends Subscribable<T> { } // eslint-disable-line @typescript-eslint/no-empty-interface\n\n/**\n * Subscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport interface Subscribable<T> {\n subscribe(observer?: Observer<T>): Subscription;\n subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;\n subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;\n subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription; // eslint-disable-line @typescript-eslint/unified-signatures\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\n}\n\n/**\n * Observer interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport declare type Observer<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;\n\n/**\n * Unsubscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport interface Unsubscribable {\n unsubscribe(): void;\n}\n\n/**\n * Subscription interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport interface Subscription extends Unsubscribable {\n readonly closed: boolean;\n unsubscribe(): void;\n add(tearDown: Unsubscribable | (() => void) | void): void;\n}\n\n/**\n * NextObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport interface NextObserver<T> {\n closed?: boolean;\n next: (value: T) => void;\n error?: (err: any) => void;\n complete?: () => void;\n}\n\n/**\n * ErrorObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport interface ErrorObserver<T> {\n closed?: boolean;\n next?: (value: T) => void;\n error: (err: any) => void;\n complete?: () => void;\n}\n\n/**\n * CompletionObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport interface CompletionObserver<T> {\n closed?: boolean;\n next?: (value: T) => void;\n error?: (err: any) => void;\n complete: () => void;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Observable.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/Observable.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,wDAAiE;AACjE,yDAAwE;AAExE;;;GAGG;AACH,SAAgB,IAAI,CAAI,QAAsC;IAC5D,OAAO,IAAA,WAAQ,EAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAFD,oBAEC;AAED,gBAAgB;AAChB,SAAgB,gBAAgB,CAAI,UAAyB;IAC3D,OAAO,IAAI,uBAAc,CAAC,CAAC,UAAU,EAAE,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC;AAFD,4CAEC","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 Tree\r\n */\r\n\r\nimport { from as rxjsFrom } from \"rxjs/internal/observable/from\";\r\nimport { Observable as RxjsObservable } from \"rxjs/internal/Observable\";\r\n\r\n/**\r\n * Helper method that creates an Observable from Iterable or Promise.\r\n * @public\r\n */\r\nexport function from<T>(iterable: Iterable<T> | PromiseLike<T>): Observable<T> {\r\n return rxjsFrom(iterable);\r\n}\r\n\r\n/** @internal */\r\nexport function toRxjsObservable<T>(observable: Observable<T>): RxjsObservable<T> {\r\n return new RxjsObservable((subscriber) => { observable.subscribe(subscriber); });\r\n}\r\n\r\n/**\r\n * Observable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Observable<T> extends Subscribable<T> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * Subscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Subscribable<T> {\r\n subscribe(observer?: Observer<T>): Subscription;\r\n subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;\r\n subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;\r\n subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription; // eslint-disable-line @typescript-eslint/unified-signatures\r\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\r\n}\r\n\r\n/**\r\n * Observer interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport declare type Observer<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;\r\n\r\n/**\r\n * Unsubscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Unsubscribable {\r\n unsubscribe(): void;\r\n}\r\n\r\n/**\r\n * Subscription interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Subscription extends Unsubscribable {\r\n readonly closed: boolean;\r\n unsubscribe(): void;\r\n add(tearDown: Unsubscribable | (() => void) | void): void;\r\n}\r\n\r\n/**\r\n * NextObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface NextObserver<T> {\r\n closed?: boolean;\r\n next: (value: T) => void;\r\n error?: (err: any) => void;\r\n complete?: () => void;\r\n}\r\n\r\n/**\r\n * ErrorObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface ErrorObserver<T> {\r\n closed?: boolean;\r\n next?: (value: T) => void;\r\n error: (err: any) => void;\r\n complete?: () => void;\r\n}\r\n\r\n/**\r\n * CompletionObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface CompletionObserver<T> {\r\n closed?: boolean;\r\n next?: (value: T) => void;\r\n error?: (err: any) => void;\r\n complete: () => void;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeActions.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeActions.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 Tree\n */\n\nimport { CheckBoxState } from \"@itwin/core-react\";\n\n/**\n * Tree actions that can be performed on tree.\n * @public\n */\nexport interface TreeActions {\n onNodeCheckboxClicked: (nodeId: string, newState: CheckBoxState) => void;\n onNodeExpanded: (nodeId: string) => void;\n onNodeCollapsed: (nodeId: string) => void;\n onNodeClicked: (nodeId: string, event: React.MouseEvent) => void;\n onNodeMouseDown: (nodeId: string) => void;\n onNodeMouseMove: (nodeId: string) => void;\n onNodeEditorActivated: (nodeId: string) => void;\n onTreeKeyDown: (event: React.KeyboardEvent) => void;\n onTreeKeyUp: (event: React.KeyboardEvent) => void;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TreeActions.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeActions.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 Tree\r\n */\r\n\r\nimport { CheckBoxState } from \"@itwin/core-react\";\r\n\r\n/**\r\n * Tree actions that can be performed on tree.\r\n * @public\r\n */\r\nexport interface TreeActions {\r\n onNodeCheckboxClicked: (nodeId: string, newState: CheckBoxState) => void;\r\n onNodeExpanded: (nodeId: string) => void;\r\n onNodeCollapsed: (nodeId: string) => void;\r\n onNodeClicked: (nodeId: string, event: React.MouseEvent) => void;\r\n onNodeMouseDown: (nodeId: string) => void;\r\n onNodeMouseMove: (nodeId: string) => void;\r\n onNodeEditorActivated: (nodeId: string) => void;\r\n onTreeKeyDown: (event: React.KeyboardEvent) => void;\r\n onTreeKeyUp: (event: React.KeyboardEvent) => void;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeEventDispatcher.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeEventDispatcher.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 Tree\n */\n\nimport { Observable } from \"rxjs/internal/Observable\";\nimport { concat } from \"rxjs/internal/observable/concat\";\nimport { defer } from \"rxjs/internal/observable/defer\";\nimport { EMPTY } from \"rxjs/internal/observable/empty\";\nimport { from } from \"rxjs/internal/observable/from\";\nimport { merge } from \"rxjs/internal/observable/merge\";\nimport { of } from \"rxjs/internal/observable/of\";\nimport { concatAll } from \"rxjs/internal/operators/concatAll\";\nimport { concatMap } from \"rxjs/internal/operators/concatMap\";\nimport { distinctUntilChanged } from \"rxjs/internal/operators/distinctUntilChanged\";\nimport { finalize } from \"rxjs/internal/operators/finalize\";\nimport { map } from \"rxjs/internal/operators/map\";\nimport { mergeAll } from \"rxjs/internal/operators/mergeAll\";\nimport { publishReplay } from \"rxjs/internal/operators/publishReplay\";\nimport { refCount } from \"rxjs/internal/operators/refCount\";\nimport { subscribeOn } from \"rxjs/internal/operators/subscribeOn\";\nimport { toArray } from \"rxjs/internal/operators/toArray\";\nimport { asapScheduler } from \"rxjs/internal/scheduler/asap\";\nimport { CheckBoxState } from \"@itwin/core-react\";\nimport { SelectionMode } from \"../../common/selection/SelectionModes\";\nimport { TreeNodeItem } from \"../TreeDataProvider\";\nimport { IndividualSelection, isRangeSelection, RangeSelection, TreeSelectionManager } from \"./internal/TreeSelectionManager\";\nimport { TreeActions } from \"./TreeActions\";\nimport { TreeEvents } from \"./TreeEvents\";\nimport { isTreeModelNode, TreeModelNode, TreeModelNodePlaceholder, VisibleTreeNodes } from \"./TreeModel\";\nimport { ITreeNodeLoader } from \"./TreeNodeLoader\";\n\n/**\n * Default event dispatcher that emits tree events according performed actions.\n * It converts low level tree events into TreeEvents.\n * @internal\n */\nexport class TreeEventDispatcher implements TreeActions {\n private _treeEvents: TreeEvents;\n private _nodeLoader: ITreeNodeLoader;\n private _getVisibleNodes: (() => VisibleTreeNodes) | undefined;\n\n private _selectionManager: TreeSelectionManager;\n\n private _activeSelections = new Set<Observable<{ selectedNodeItems: TreeNodeItem[], deselectedNodeItems?: TreeNodeItem[] }>>();\n\n constructor(\n treeEvents: TreeEvents,\n nodeLoader: ITreeNodeLoader,\n selectionMode: SelectionMode,\n getVisibleNodes?: () => VisibleTreeNodes,\n ) {\n this._treeEvents = treeEvents;\n this._nodeLoader = nodeLoader;\n this._getVisibleNodes = getVisibleNodes;\n\n this._selectionManager = new TreeSelectionManager(selectionMode, this._getVisibleNodes);\n\n this._selectionManager.onDragSelection.addListener(({ selectionChanges }) => {\n const modifications = from(selectionChanges)\n .pipe(\n map(({ selectedNodes, deselectedNodes }) => from(this.collectSelectionChanges(selectedNodes, []))\n .pipe(\n concatMap(({ selectedNodeItems }) => from(selectedNodeItems)),\n toArray(),\n map((collectedIds) => ({ selectedNodeItems: collectedIds, deselectedNodeItems: this.collectNodeItems(deselectedNodes) })),\n ),\n ),\n concatAll(),\n publishReplay(),\n refCount(),\n );\n\n /* istanbul ignore else */\n if (this._treeEvents.onSelectionModified !== undefined)\n this._treeEvents.onSelectionModified({ modifications });\n });\n\n this._selectionManager.onSelectionChanged.addListener(({ selectedNodes, deselectedNodes }) => {\n const modifications = merge(\n defer(() => {\n this._activeSelections.add(modifications);\n return EMPTY;\n }),\n this.collectSelectionChanges(selectedNodes, deselectedNodes),\n )\n .pipe(\n finalize(() => {\n this._activeSelections.delete(modifications);\n }),\n publishReplay(),\n refCount(),\n );\n\n /* istanbul ignore else */\n if (this._treeEvents.onSelectionModified !== undefined)\n this._treeEvents.onSelectionModified({ modifications });\n });\n\n this._selectionManager.onSelectionReplaced.addListener(({ selectedNodeIds }) => {\n const replacements = merge(\n defer(() => {\n this._activeSelections.add(replacements);\n return EMPTY;\n }),\n this.collectSelectionChanges(selectedNodeIds, []),\n )\n .pipe(\n finalize(() => {\n this._activeSelections.delete(replacements);\n }),\n publishReplay(),\n refCount(),\n );\n\n /* istanbul ignore else */\n if (this._treeEvents.onSelectionReplaced !== undefined)\n this._treeEvents.onSelectionReplaced({ replacements });\n });\n }\n\n public setVisibleNodes(visibleNodes: () => VisibleTreeNodes) {\n this._getVisibleNodes = visibleNodes;\n this._selectionManager.setVisibleNodes(visibleNodes);\n }\n\n public onNodeCheckboxClicked(nodeId: string, newState: CheckBoxState) {\n if (this._getVisibleNodes === undefined)\n return;\n\n const visibleNodes = this._getVisibleNodes();\n const clickedNode = visibleNodes.getModel().getNode(nodeId);\n if (clickedNode === undefined)\n return;\n\n const immediateStateChanges = [{ nodeItem: clickedNode.item, newState }];\n if (clickedNode.isSelected) {\n for (const node of visibleNodes) {\n if (isTreeModelNode(node) && node.id !== clickedNode.id && node.isSelected && node.checkbox.state !== newState) {\n immediateStateChanges.push({ nodeItem: node.item, newState });\n }\n }\n }\n\n const stateChanges = concat(\n of(immediateStateChanges),\n from(this._activeSelections)\n .pipe(\n mergeAll(),\n map(({ selectedNodeItems }) => selectedNodeItems.map((item) => ({ nodeItem: item, newState }))),\n ),\n )\n .pipe(\n publishReplay(),\n refCount(),\n );\n\n /* istanbul ignore else */\n if (this._treeEvents.onCheckboxStateChanged !== undefined)\n this._treeEvents.onCheckboxStateChanged({ stateChanges });\n }\n\n public onNodeExpanded(nodeId: string) {\n /* istanbul ignore else */\n if (this._treeEvents.onNodeExpanded !== undefined)\n this._treeEvents.onNodeExpanded({ nodeId });\n }\n\n public onNodeCollapsed(nodeId: string) {\n /* istanbul ignore else */\n if (this._treeEvents.onNodeCollapsed !== undefined)\n this._treeEvents.onNodeCollapsed({ nodeId });\n }\n\n public onNodeClicked(nodeId: string, event: React.MouseEvent<Element, MouseEvent>) {\n const node = this._getVisibleNodes ? this._getVisibleNodes().getModel().getNode(nodeId) : undefined;\n const isNodeSelected = node ? node.isSelected : false;\n this._selectionManager.onNodeClicked(nodeId, event);\n\n // if clicked node was already selected fire delayed click event\n if (isNodeSelected && this._treeEvents.onDelayedNodeClick !== undefined) {\n this._treeEvents.onDelayedNodeClick({ nodeId });\n }\n }\n\n public onNodeMouseDown(nodeId: string) {\n this._selectionManager.onNodeMouseDown(nodeId);\n }\n\n public onNodeMouseMove(nodeId: string) {\n this._selectionManager.onNodeMouseMove(nodeId);\n }\n\n public onNodeEditorActivated(nodeId: string) {\n const node = this._getVisibleNodes ? this._getVisibleNodes().getModel().getNode(nodeId) : /* istanbul ignore next */ undefined;\n const isNodeSelected = node ? node.isSelected : false;\n\n // if node was already selected, fire onNodeEditorActivated event\n if (isNodeSelected && this._treeEvents.onNodeEditorActivated !== undefined) {\n this._treeEvents.onNodeEditorActivated({ nodeId });\n }\n }\n\n public onTreeKeyDown(event: React.KeyboardEvent): void {\n this._selectionManager.onTreeKeyDown(event, this);\n }\n\n public onTreeKeyUp(event: React.KeyboardEvent): void {\n this._selectionManager.onTreeKeyUp(event, this);\n }\n\n private collectSelectionChanges(\n selection: IndividualSelection | RangeSelection,\n deselection: IndividualSelection,\n ): Observable<{ selectedNodeItems: TreeNodeItem[], deselectedNodeItems: TreeNodeItem[] }> {\n const deselectedItems = this.collectNodeItems(deselection);\n if (isRangeSelection(selection)) {\n let firstEmission = true;\n return this.collectNodesBetween(selection.from, selection.to)\n .pipe(\n map((selectedNodeItems) => {\n if (firstEmission) {\n firstEmission = false;\n return { selectedNodeItems, deselectedNodeItems: deselectedItems };\n }\n\n return { selectedNodeItems, deselectedNodeItems: [] };\n }),\n );\n }\n\n const selectedItems = this.collectNodeItems(selection);\n return of({ selectedNodeItems: selectedItems, deselectedNodeItems: deselectedItems });\n }\n\n private collectNodesBetween(nodeId1: string, nodeId2: string): Observable<TreeNodeItem[]> {\n const [readyNodes, nodesToLoad] = TreeEventDispatcher.groupNodesByLoadingState(\n this.iterateNodesBetween(nodeId1, nodeId2),\n );\n\n const loadedSelectedNodes = from(\n nodesToLoad.map((node) => {\n const parentNode = node.parentId ? this._getVisibleNodes!().getModel().getNode(node.parentId) : this._getVisibleNodes!().getModel().getRootNode();\n return parentNode ? this._nodeLoader.loadNode(parentNode, node.childIndex) : /* istanbul ignore next */ EMPTY;\n }),\n )\n .pipe(\n // We have requested multiple nodes that may belong to the same page.\n // When the page loads we only want to process the loaded nodes once.\n // Making assumption that loaded nodes from the same page will be emitted without interruptions.\n // Maybe we could simplify this to `this._nodeLoader.loadNodes(nodesToLoad)`?\n mergeAll(),\n distinctUntilChanged(),\n map((loadResult) => loadResult.loadedNodes),\n );\n\n return concat(of(readyNodes), loadedSelectedNodes)\n .pipe(\n // Give enough time for multiple subscribers to subscribe before any emissions begin\n subscribeOn(asapScheduler),\n );\n }\n\n private *iterateNodesBetween(\n nodeId1: string,\n nodeId2: string,\n ): Iterable<TreeModelNode | TreeModelNodePlaceholder> {\n let firstNodeFound = false;\n if (this._getVisibleNodes === undefined) {\n return;\n }\n\n for (const node of this._getVisibleNodes()) {\n if (firstNodeFound) {\n yield node;\n }\n\n if (isTreeModelNode(node)) {\n if (nodeId1 === nodeId2 && node.id === nodeId1) {\n yield node;\n return;\n }\n\n if (node.id === nodeId1 || node.id === nodeId2) {\n if (firstNodeFound) {\n return;\n }\n\n firstNodeFound = true;\n yield node;\n }\n }\n }\n }\n\n private collectNodeItems(nodeIds: string[]): TreeNodeItem[] {\n const items: TreeNodeItem[] = [];\n if (this._getVisibleNodes === undefined)\n return items;\n\n for (const nodeId of nodeIds) {\n const node = this._getVisibleNodes().getModel().getNode(nodeId);\n // istanbul ignore else\n if (node !== undefined)\n items.push(node.item);\n }\n return items;\n }\n\n private static groupNodesByLoadingState(\n nodes: Iterable<TreeModelNode | TreeModelNodePlaceholder>,\n ): [TreeNodeItem[], TreeModelNodePlaceholder[]] {\n const loadedNodeItems: TreeNodeItem[] = [];\n const nodesToLoad: TreeModelNodePlaceholder[] = [];\n for (const node of nodes) {\n if (isTreeModelNode(node)) {\n loadedNodeItems.push(node.item);\n } else {\n nodesToLoad.push(node);\n }\n }\n\n return [loadedNodeItems, nodesToLoad];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TreeEventDispatcher.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeEventDispatcher.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 Tree\r\n */\r\n\r\nimport { Observable } from \"rxjs/internal/Observable\";\r\nimport { concat } from \"rxjs/internal/observable/concat\";\r\nimport { defer } from \"rxjs/internal/observable/defer\";\r\nimport { EMPTY } from \"rxjs/internal/observable/empty\";\r\nimport { from } from \"rxjs/internal/observable/from\";\r\nimport { merge } from \"rxjs/internal/observable/merge\";\r\nimport { of } from \"rxjs/internal/observable/of\";\r\nimport { concatAll } from \"rxjs/internal/operators/concatAll\";\r\nimport { concatMap } from \"rxjs/internal/operators/concatMap\";\r\nimport { distinctUntilChanged } from \"rxjs/internal/operators/distinctUntilChanged\";\r\nimport { finalize } from \"rxjs/internal/operators/finalize\";\r\nimport { map } from \"rxjs/internal/operators/map\";\r\nimport { mergeAll } from \"rxjs/internal/operators/mergeAll\";\r\nimport { publishReplay } from \"rxjs/internal/operators/publishReplay\";\r\nimport { refCount } from \"rxjs/internal/operators/refCount\";\r\nimport { subscribeOn } from \"rxjs/internal/operators/subscribeOn\";\r\nimport { toArray } from \"rxjs/internal/operators/toArray\";\r\nimport { asapScheduler } from \"rxjs/internal/scheduler/asap\";\r\nimport { CheckBoxState } from \"@itwin/core-react\";\r\nimport { SelectionMode } from \"../../common/selection/SelectionModes\";\r\nimport { TreeNodeItem } from \"../TreeDataProvider\";\r\nimport { IndividualSelection, isRangeSelection, RangeSelection, TreeSelectionManager } from \"./internal/TreeSelectionManager\";\r\nimport { TreeActions } from \"./TreeActions\";\r\nimport { TreeEvents } from \"./TreeEvents\";\r\nimport { isTreeModelNode, TreeModelNode, TreeModelNodePlaceholder, VisibleTreeNodes } from \"./TreeModel\";\r\nimport { ITreeNodeLoader } from \"./TreeNodeLoader\";\r\n\r\n/**\r\n * Default event dispatcher that emits tree events according performed actions.\r\n * It converts low level tree events into TreeEvents.\r\n * @internal\r\n */\r\nexport class TreeEventDispatcher implements TreeActions {\r\n private _treeEvents: TreeEvents;\r\n private _nodeLoader: ITreeNodeLoader;\r\n private _getVisibleNodes: (() => VisibleTreeNodes) | undefined;\r\n\r\n private _selectionManager: TreeSelectionManager;\r\n\r\n private _activeSelections = new Set<Observable<{ selectedNodeItems: TreeNodeItem[], deselectedNodeItems?: TreeNodeItem[] }>>();\r\n\r\n constructor(\r\n treeEvents: TreeEvents,\r\n nodeLoader: ITreeNodeLoader,\r\n selectionMode: SelectionMode,\r\n getVisibleNodes?: () => VisibleTreeNodes,\r\n ) {\r\n this._treeEvents = treeEvents;\r\n this._nodeLoader = nodeLoader;\r\n this._getVisibleNodes = getVisibleNodes;\r\n\r\n this._selectionManager = new TreeSelectionManager(selectionMode, this._getVisibleNodes);\r\n\r\n this._selectionManager.onDragSelection.addListener(({ selectionChanges }) => {\r\n const modifications = from(selectionChanges)\r\n .pipe(\r\n map(({ selectedNodes, deselectedNodes }) => from(this.collectSelectionChanges(selectedNodes, []))\r\n .pipe(\r\n concatMap(({ selectedNodeItems }) => from(selectedNodeItems)),\r\n toArray(),\r\n map((collectedIds) => ({ selectedNodeItems: collectedIds, deselectedNodeItems: this.collectNodeItems(deselectedNodes) })),\r\n ),\r\n ),\r\n concatAll(),\r\n publishReplay(),\r\n refCount(),\r\n );\r\n\r\n /* istanbul ignore else */\r\n if (this._treeEvents.onSelectionModified !== undefined)\r\n this._treeEvents.onSelectionModified({ modifications });\r\n });\r\n\r\n this._selectionManager.onSelectionChanged.addListener(({ selectedNodes, deselectedNodes }) => {\r\n const modifications = merge(\r\n defer(() => {\r\n this._activeSelections.add(modifications);\r\n return EMPTY;\r\n }),\r\n this.collectSelectionChanges(selectedNodes, deselectedNodes),\r\n )\r\n .pipe(\r\n finalize(() => {\r\n this._activeSelections.delete(modifications);\r\n }),\r\n publishReplay(),\r\n refCount(),\r\n );\r\n\r\n /* istanbul ignore else */\r\n if (this._treeEvents.onSelectionModified !== undefined)\r\n this._treeEvents.onSelectionModified({ modifications });\r\n });\r\n\r\n this._selectionManager.onSelectionReplaced.addListener(({ selectedNodeIds }) => {\r\n const replacements = merge(\r\n defer(() => {\r\n this._activeSelections.add(replacements);\r\n return EMPTY;\r\n }),\r\n this.collectSelectionChanges(selectedNodeIds, []),\r\n )\r\n .pipe(\r\n finalize(() => {\r\n this._activeSelections.delete(replacements);\r\n }),\r\n publishReplay(),\r\n refCount(),\r\n );\r\n\r\n /* istanbul ignore else */\r\n if (this._treeEvents.onSelectionReplaced !== undefined)\r\n this._treeEvents.onSelectionReplaced({ replacements });\r\n });\r\n }\r\n\r\n public setVisibleNodes(visibleNodes: () => VisibleTreeNodes) {\r\n this._getVisibleNodes = visibleNodes;\r\n this._selectionManager.setVisibleNodes(visibleNodes);\r\n }\r\n\r\n public onNodeCheckboxClicked(nodeId: string, newState: CheckBoxState) {\r\n if (this._getVisibleNodes === undefined)\r\n return;\r\n\r\n const visibleNodes = this._getVisibleNodes();\r\n const clickedNode = visibleNodes.getModel().getNode(nodeId);\r\n if (clickedNode === undefined)\r\n return;\r\n\r\n const immediateStateChanges = [{ nodeItem: clickedNode.item, newState }];\r\n if (clickedNode.isSelected) {\r\n for (const node of visibleNodes) {\r\n if (isTreeModelNode(node) && node.id !== clickedNode.id && node.isSelected && node.checkbox.state !== newState) {\r\n immediateStateChanges.push({ nodeItem: node.item, newState });\r\n }\r\n }\r\n }\r\n\r\n const stateChanges = concat(\r\n of(immediateStateChanges),\r\n from(this._activeSelections)\r\n .pipe(\r\n mergeAll(),\r\n map(({ selectedNodeItems }) => selectedNodeItems.map((item) => ({ nodeItem: item, newState }))),\r\n ),\r\n )\r\n .pipe(\r\n publishReplay(),\r\n refCount(),\r\n );\r\n\r\n /* istanbul ignore else */\r\n if (this._treeEvents.onCheckboxStateChanged !== undefined)\r\n this._treeEvents.onCheckboxStateChanged({ stateChanges });\r\n }\r\n\r\n public onNodeExpanded(nodeId: string) {\r\n /* istanbul ignore else */\r\n if (this._treeEvents.onNodeExpanded !== undefined)\r\n this._treeEvents.onNodeExpanded({ nodeId });\r\n }\r\n\r\n public onNodeCollapsed(nodeId: string) {\r\n /* istanbul ignore else */\r\n if (this._treeEvents.onNodeCollapsed !== undefined)\r\n this._treeEvents.onNodeCollapsed({ nodeId });\r\n }\r\n\r\n public onNodeClicked(nodeId: string, event: React.MouseEvent<Element, MouseEvent>) {\r\n const node = this._getVisibleNodes ? this._getVisibleNodes().getModel().getNode(nodeId) : undefined;\r\n const isNodeSelected = node ? node.isSelected : false;\r\n this._selectionManager.onNodeClicked(nodeId, event);\r\n\r\n // if clicked node was already selected fire delayed click event\r\n if (isNodeSelected && this._treeEvents.onDelayedNodeClick !== undefined) {\r\n this._treeEvents.onDelayedNodeClick({ nodeId });\r\n }\r\n }\r\n\r\n public onNodeMouseDown(nodeId: string) {\r\n this._selectionManager.onNodeMouseDown(nodeId);\r\n }\r\n\r\n public onNodeMouseMove(nodeId: string) {\r\n this._selectionManager.onNodeMouseMove(nodeId);\r\n }\r\n\r\n public onNodeEditorActivated(nodeId: string) {\r\n const node = this._getVisibleNodes ? this._getVisibleNodes().getModel().getNode(nodeId) : /* istanbul ignore next */ undefined;\r\n const isNodeSelected = node ? node.isSelected : false;\r\n\r\n // if node was already selected, fire onNodeEditorActivated event\r\n if (isNodeSelected && this._treeEvents.onNodeEditorActivated !== undefined) {\r\n this._treeEvents.onNodeEditorActivated({ nodeId });\r\n }\r\n }\r\n\r\n public onTreeKeyDown(event: React.KeyboardEvent): void {\r\n this._selectionManager.onTreeKeyDown(event, this);\r\n }\r\n\r\n public onTreeKeyUp(event: React.KeyboardEvent): void {\r\n this._selectionManager.onTreeKeyUp(event, this);\r\n }\r\n\r\n private collectSelectionChanges(\r\n selection: IndividualSelection | RangeSelection,\r\n deselection: IndividualSelection,\r\n ): Observable<{ selectedNodeItems: TreeNodeItem[], deselectedNodeItems: TreeNodeItem[] }> {\r\n const deselectedItems = this.collectNodeItems(deselection);\r\n if (isRangeSelection(selection)) {\r\n let firstEmission = true;\r\n return this.collectNodesBetween(selection.from, selection.to)\r\n .pipe(\r\n map((selectedNodeItems) => {\r\n if (firstEmission) {\r\n firstEmission = false;\r\n return { selectedNodeItems, deselectedNodeItems: deselectedItems };\r\n }\r\n\r\n return { selectedNodeItems, deselectedNodeItems: [] };\r\n }),\r\n );\r\n }\r\n\r\n const selectedItems = this.collectNodeItems(selection);\r\n return of({ selectedNodeItems: selectedItems, deselectedNodeItems: deselectedItems });\r\n }\r\n\r\n private collectNodesBetween(nodeId1: string, nodeId2: string): Observable<TreeNodeItem[]> {\r\n const [readyNodes, nodesToLoad] = TreeEventDispatcher.groupNodesByLoadingState(\r\n this.iterateNodesBetween(nodeId1, nodeId2),\r\n );\r\n\r\n const loadedSelectedNodes = from(\r\n nodesToLoad.map((node) => {\r\n const parentNode = node.parentId ? this._getVisibleNodes!().getModel().getNode(node.parentId) : this._getVisibleNodes!().getModel().getRootNode();\r\n return parentNode ? this._nodeLoader.loadNode(parentNode, node.childIndex) : /* istanbul ignore next */ EMPTY;\r\n }),\r\n )\r\n .pipe(\r\n // We have requested multiple nodes that may belong to the same page.\r\n // When the page loads we only want to process the loaded nodes once.\r\n // Making assumption that loaded nodes from the same page will be emitted without interruptions.\r\n // Maybe we could simplify this to `this._nodeLoader.loadNodes(nodesToLoad)`?\r\n mergeAll(),\r\n distinctUntilChanged(),\r\n map((loadResult) => loadResult.loadedNodes),\r\n );\r\n\r\n return concat(of(readyNodes), loadedSelectedNodes)\r\n .pipe(\r\n // Give enough time for multiple subscribers to subscribe before any emissions begin\r\n subscribeOn(asapScheduler),\r\n );\r\n }\r\n\r\n private *iterateNodesBetween(\r\n nodeId1: string,\r\n nodeId2: string,\r\n ): Iterable<TreeModelNode | TreeModelNodePlaceholder> {\r\n let firstNodeFound = false;\r\n if (this._getVisibleNodes === undefined) {\r\n return;\r\n }\r\n\r\n for (const node of this._getVisibleNodes()) {\r\n if (firstNodeFound) {\r\n yield node;\r\n }\r\n\r\n if (isTreeModelNode(node)) {\r\n if (nodeId1 === nodeId2 && node.id === nodeId1) {\r\n yield node;\r\n return;\r\n }\r\n\r\n if (node.id === nodeId1 || node.id === nodeId2) {\r\n if (firstNodeFound) {\r\n return;\r\n }\r\n\r\n firstNodeFound = true;\r\n yield node;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private collectNodeItems(nodeIds: string[]): TreeNodeItem[] {\r\n const items: TreeNodeItem[] = [];\r\n if (this._getVisibleNodes === undefined)\r\n return items;\r\n\r\n for (const nodeId of nodeIds) {\r\n const node = this._getVisibleNodes().getModel().getNode(nodeId);\r\n // istanbul ignore else\r\n if (node !== undefined)\r\n items.push(node.item);\r\n }\r\n return items;\r\n }\r\n\r\n private static groupNodesByLoadingState(\r\n nodes: Iterable<TreeModelNode | TreeModelNodePlaceholder>,\r\n ): [TreeNodeItem[], TreeModelNodePlaceholder[]] {\r\n const loadedNodeItems: TreeNodeItem[] = [];\r\n const nodesToLoad: TreeModelNodePlaceholder[] = [];\r\n for (const node of nodes) {\r\n if (isTreeModelNode(node)) {\r\n loadedNodeItems.push(node.item);\r\n } else {\r\n nodesToLoad.push(node);\r\n }\r\n }\r\n\r\n return [loadedNodeItems, nodesToLoad];\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeEventHandler.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeEventHandler.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 Tree\n */\n\nimport { takeUntil } from \"rxjs/internal/operators/takeUntil\";\nimport { Subject } from \"rxjs/internal/Subject\";\nimport { IDisposable } from \"@itwin/core-bentley\";\nimport { TreeModelMutator } from \"./internal/TreeModelMutator\";\nimport { Subscription, toRxjsObservable } from \"./Observable\";\nimport {\n TreeCheckboxStateChangeEventArgs, TreeEvents, TreeNodeEventArgs, TreeSelectionModificationEventArgs, TreeSelectionReplacementEventArgs,\n} from \"./TreeEvents\";\nimport { TreeModelNode } from \"./TreeModel\";\nimport { TreeModelSource } from \"./TreeModelSource\";\nimport { ITreeNodeLoader } from \"./TreeNodeLoader\";\n\n/**\n * Params used for tree node editing.\n * @public\n */\nexport interface TreeEditingParams {\n /** Callback that is called when node is updated. */\n onNodeUpdated: (node: TreeModelNode, newValue: string) => void;\n}\n\n/**\n * Data structure that describes tree event handler params.\n * @public\n */\nexport interface TreeEventHandlerParams {\n /** Model source used to modify tree model while handling events. */\n modelSource: TreeModelSource;\n /** Node loader used to load children when node is expanded. */\n nodeLoader: ITreeNodeLoader;\n /** Specifies whether children should be disposed when parent node is collapsed or not. */\n collapsedChildrenDisposalEnabled?: boolean;\n /** Parameters used for node editing. */\n editingParams?: TreeEditingParams;\n}\n\n/**\n * Default tree event handler.\n * @public\n */\nexport class TreeEventHandler implements TreeEvents, IDisposable {\n private _modelMutator: TreeModelMutator;\n private _editingParams?: TreeEditingParams;\n\n private _disposed = new Subject();\n private _selectionReplaced = new Subject();\n\n constructor(params: TreeEventHandlerParams) {\n this._modelMutator = new TreeModelMutator(params.modelSource, params.nodeLoader, !!params.collapsedChildrenDisposalEnabled);\n this._editingParams = params.editingParams;\n }\n\n /** Disposes tree event handler. */\n public dispose() {\n this._disposed.next();\n }\n\n public get modelSource() { return this._modelMutator.modelSource; }\n\n /** Expands node and starts loading children. */\n public onNodeExpanded({ nodeId }: TreeNodeEventArgs) {\n toRxjsObservable(this._modelMutator.expandNode(nodeId)).pipe(takeUntil(this._disposed)).subscribe();\n }\n\n /** Collapses node */\n public onNodeCollapsed({ nodeId }: TreeNodeEventArgs) {\n this._modelMutator.collapseNode(nodeId);\n }\n\n /** Selects and deselects nodes until event is handled, handler is disposed or selection replaced event occurs. */\n public onSelectionModified({ modifications }: TreeSelectionModificationEventArgs): Subscription | undefined {\n return toRxjsObservable(modifications)\n .pipe(\n takeUntil(this._disposed),\n takeUntil(this._selectionReplaced),\n )\n .subscribe({\n next: ({ selectedNodeItems, deselectedNodeItems }) => {\n this._modelMutator.modifySelection(selectedNodeItems, deselectedNodeItems);\n },\n });\n }\n\n /** Replaces currently selected nodes until event is handled, handler is disposed or another selection replaced event occurs. */\n public onSelectionReplaced({ replacements }: TreeSelectionReplacementEventArgs): Subscription | undefined {\n this._selectionReplaced.next();\n\n let firstEmission = true;\n return toRxjsObservable(replacements)\n .pipe(\n takeUntil(this._disposed),\n takeUntil(this._selectionReplaced),\n )\n .subscribe({\n next: ({ selectedNodeItems }) => {\n if (firstEmission) {\n firstEmission = false;\n this._modelMutator.replaceSelection(selectedNodeItems);\n }\n\n this._modelMutator.modifySelection(selectedNodeItems, []);\n },\n });\n }\n\n /** Changes nodes checkbox states. */\n public onCheckboxStateChanged({ stateChanges }: TreeCheckboxStateChangeEventArgs): Subscription | undefined {\n return stateChanges.subscribe((changes) => this._modelMutator.setCheckboxStates(changes));\n }\n\n /** Activates node editing if editing parameters are supplied and node is editable. */\n public onDelayedNodeClick({ nodeId }: TreeNodeEventArgs) {\n this.activateEditor(nodeId);\n }\n\n /** Activates node editing if editing parameters are supplied and node is editable. */\n public onNodeEditorActivated({ nodeId }: TreeNodeEventArgs) {\n this.activateEditor(nodeId);\n }\n\n /** Activates node editing if editing parameters are supplied and node is editable. */\n private activateEditor(nodeId: string) {\n if (this._editingParams === undefined)\n return;\n\n this._modelMutator.activateEditing(nodeId, this._editingParams.onNodeUpdated);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TreeEventHandler.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeEventHandler.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 Tree\r\n */\r\n\r\nimport { takeUntil } from \"rxjs/internal/operators/takeUntil\";\r\nimport { Subject } from \"rxjs/internal/Subject\";\r\nimport { IDisposable } from \"@itwin/core-bentley\";\r\nimport { TreeModelMutator } from \"./internal/TreeModelMutator\";\r\nimport { Subscription, toRxjsObservable } from \"./Observable\";\r\nimport {\r\n TreeCheckboxStateChangeEventArgs, TreeEvents, TreeNodeEventArgs, TreeSelectionModificationEventArgs, TreeSelectionReplacementEventArgs,\r\n} from \"./TreeEvents\";\r\nimport { TreeModelNode } from \"./TreeModel\";\r\nimport { TreeModelSource } from \"./TreeModelSource\";\r\nimport { ITreeNodeLoader } from \"./TreeNodeLoader\";\r\n\r\n/**\r\n * Params used for tree node editing.\r\n * @public\r\n */\r\nexport interface TreeEditingParams {\r\n /** Callback that is called when node is updated. */\r\n onNodeUpdated: (node: TreeModelNode, newValue: string) => void;\r\n}\r\n\r\n/**\r\n * Data structure that describes tree event handler params.\r\n * @public\r\n */\r\nexport interface TreeEventHandlerParams {\r\n /** Model source used to modify tree model while handling events. */\r\n modelSource: TreeModelSource;\r\n /** Node loader used to load children when node is expanded. */\r\n nodeLoader: ITreeNodeLoader;\r\n /** Specifies whether children should be disposed when parent node is collapsed or not. */\r\n collapsedChildrenDisposalEnabled?: boolean;\r\n /** Parameters used for node editing. */\r\n editingParams?: TreeEditingParams;\r\n}\r\n\r\n/**\r\n * Default tree event handler.\r\n * @public\r\n */\r\nexport class TreeEventHandler implements TreeEvents, IDisposable {\r\n private _modelMutator: TreeModelMutator;\r\n private _editingParams?: TreeEditingParams;\r\n\r\n private _disposed = new Subject();\r\n private _selectionReplaced = new Subject();\r\n\r\n constructor(params: TreeEventHandlerParams) {\r\n this._modelMutator = new TreeModelMutator(params.modelSource, params.nodeLoader, !!params.collapsedChildrenDisposalEnabled);\r\n this._editingParams = params.editingParams;\r\n }\r\n\r\n /** Disposes tree event handler. */\r\n public dispose() {\r\n this._disposed.next();\r\n }\r\n\r\n public get modelSource() { return this._modelMutator.modelSource; }\r\n\r\n /** Expands node and starts loading children. */\r\n public onNodeExpanded({ nodeId }: TreeNodeEventArgs) {\r\n toRxjsObservable(this._modelMutator.expandNode(nodeId)).pipe(takeUntil(this._disposed)).subscribe();\r\n }\r\n\r\n /** Collapses node */\r\n public onNodeCollapsed({ nodeId }: TreeNodeEventArgs) {\r\n this._modelMutator.collapseNode(nodeId);\r\n }\r\n\r\n /** Selects and deselects nodes until event is handled, handler is disposed or selection replaced event occurs. */\r\n public onSelectionModified({ modifications }: TreeSelectionModificationEventArgs): Subscription | undefined {\r\n return toRxjsObservable(modifications)\r\n .pipe(\r\n takeUntil(this._disposed),\r\n takeUntil(this._selectionReplaced),\r\n )\r\n .subscribe({\r\n next: ({ selectedNodeItems, deselectedNodeItems }) => {\r\n this._modelMutator.modifySelection(selectedNodeItems, deselectedNodeItems);\r\n },\r\n });\r\n }\r\n\r\n /** Replaces currently selected nodes until event is handled, handler is disposed or another selection replaced event occurs. */\r\n public onSelectionReplaced({ replacements }: TreeSelectionReplacementEventArgs): Subscription | undefined {\r\n this._selectionReplaced.next();\r\n\r\n let firstEmission = true;\r\n return toRxjsObservable(replacements)\r\n .pipe(\r\n takeUntil(this._disposed),\r\n takeUntil(this._selectionReplaced),\r\n )\r\n .subscribe({\r\n next: ({ selectedNodeItems }) => {\r\n if (firstEmission) {\r\n firstEmission = false;\r\n this._modelMutator.replaceSelection(selectedNodeItems);\r\n }\r\n\r\n this._modelMutator.modifySelection(selectedNodeItems, []);\r\n },\r\n });\r\n }\r\n\r\n /** Changes nodes checkbox states. */\r\n public onCheckboxStateChanged({ stateChanges }: TreeCheckboxStateChangeEventArgs): Subscription | undefined {\r\n return stateChanges.subscribe((changes) => this._modelMutator.setCheckboxStates(changes));\r\n }\r\n\r\n /** Activates node editing if editing parameters are supplied and node is editable. */\r\n public onDelayedNodeClick({ nodeId }: TreeNodeEventArgs) {\r\n this.activateEditor(nodeId);\r\n }\r\n\r\n /** Activates node editing if editing parameters are supplied and node is editable. */\r\n public onNodeEditorActivated({ nodeId }: TreeNodeEventArgs) {\r\n this.activateEditor(nodeId);\r\n }\r\n\r\n /** Activates node editing if editing parameters are supplied and node is editable. */\r\n private activateEditor(nodeId: string) {\r\n if (this._editingParams === undefined)\r\n return;\r\n\r\n this._modelMutator.activateEditing(nodeId, this._editingParams.onNodeUpdated);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeEvents.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeEvents.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 Tree\n */\n\nimport { CheckBoxState } from \"@itwin/core-react\";\nimport { TreeNodeItem } from \"../TreeDataProvider\";\nimport { Observable, Subscription } from \"./Observable\";\n\n/**\n * Tree events that can occur while interacting with tree.\n *\n * **Note:** Selection and checkbox state change events payload is an Observable.\n * Observable is a stream of data over time (e.g. in case of selection replaced event\n * it is a stream of selected node items arrays). To access data inside stream `subscribe()` method\n * should be called. This method accepts any subset of 'next', 'error' and 'complete' callbacks.\n * Once subscribe is called observable will start emitting data and calls 'next' callback each time new\n * data is emitted. If some selected nodes are not loaded yet they will be loaded and observable will\n * emit loaded node items. When all selected node items are emitted observable completes and calls\n * 'complete' callback if supplied.\n *\n * @public\n */\nexport interface TreeEvents {\n /** Called when tree node is expanded. */\n onNodeExpanded?(event: TreeNodeEventArgs): void;\n /** Called when tree node is collapsed. */\n onNodeCollapsed?(event: TreeNodeEventArgs): void;\n\n /** Called when selected tree node is clicked. */\n onDelayedNodeClick?(event: TreeNodeEventArgs): void;\n /** Called when selected tree node editor is activated. */\n onNodeEditorActivated?(event: TreeNodeEventArgs): void;\n\n /**\n * Called when tree selection is modified.\n * If Subscription is returned it can be used to stop event handling by calling `unsubscribe()`.\n */\n onSelectionModified?(event: TreeSelectionModificationEventArgs): Subscription | undefined;\n /**\n * Called when tree selection is replaced.\n * If Subscription is returned it can be used to stop event handling by calling `unsubscribe()`.\n */\n onSelectionReplaced?(event: TreeSelectionReplacementEventArgs): Subscription | undefined;\n\n /**\n * Called when checkbox states for nodes are changed.\n * If Subscription is returned it can be used to stop event handling by calling `unsubscribe()`.\n */\n onCheckboxStateChanged?(event: TreeCheckboxStateChangeEventArgs): Subscription | undefined;\n}\n\n/**\n * Data structure that describes tree node event payload.\n * @public\n */\nexport interface TreeNodeEventArgs {\n /** Id of node that is affected by event. */\n nodeId: string;\n}\n\n/**\n * Data structure that describes tree selection modification event payload.\n * @public\n */\nexport interface TreeSelectionModificationEventArgs {\n /**\n * An observable that emits tree selection changes.\n * It starts emitting values when '.subscribe()' is called.\n */\n modifications: Observable<TreeSelectionChange>;\n}\n\n/**\n * Data structure that describes tree selection change.\n * @public\n */\nexport interface TreeSelectionChange {\n /** Tree node items that where selected. */\n selectedNodeItems: TreeNodeItem[];\n /** Tree node items that where deselected. */\n deselectedNodeItems: TreeNodeItem[];\n}\n\n/**\n * Data structure that describes tree selection replacement event payload.\n * @public\n */\nexport interface TreeSelectionReplacementEventArgs {\n /**\n * An observable that emits tree selection replacements containing selected tree node items.\n * It starts emitting values when '.subscribe()' is called.\n */\n replacements: Observable<{ selectedNodeItems: TreeNodeItem[] }>;\n}\n\n/**\n * Data structure that describes tree checkbox state change event payload.\n * @public\n */\nexport interface TreeCheckboxStateChangeEventArgs {\n /**\n * An observable that emits checkbox state changes.\n * It starts emitting values when '.subscribe()' is called.\n */\n stateChanges: Observable<CheckboxStateChange[]>;\n}\n\n/**\n * Data structure that describes checkbox state change.\n * @public\n */\nexport interface CheckboxStateChange {\n /** Tree node item that was affected by checkbox state change. */\n nodeItem: TreeNodeItem;\n /** New state of the checkbox. */\n newState: CheckBoxState;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TreeEvents.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeEvents.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 Tree\r\n */\r\n\r\nimport { CheckBoxState } from \"@itwin/core-react\";\r\nimport { TreeNodeItem } from \"../TreeDataProvider\";\r\nimport { Observable, Subscription } from \"./Observable\";\r\n\r\n/**\r\n * Tree events that can occur while interacting with tree.\r\n *\r\n * **Note:** Selection and checkbox state change events payload is an Observable.\r\n * Observable is a stream of data over time (e.g. in case of selection replaced event\r\n * it is a stream of selected node items arrays). To access data inside stream `subscribe()` method\r\n * should be called. This method accepts any subset of 'next', 'error' and 'complete' callbacks.\r\n * Once subscribe is called observable will start emitting data and calls 'next' callback each time new\r\n * data is emitted. If some selected nodes are not loaded yet they will be loaded and observable will\r\n * emit loaded node items. When all selected node items are emitted observable completes and calls\r\n * 'complete' callback if supplied.\r\n *\r\n * @public\r\n */\r\nexport interface TreeEvents {\r\n /** Called when tree node is expanded. */\r\n onNodeExpanded?(event: TreeNodeEventArgs): void;\r\n /** Called when tree node is collapsed. */\r\n onNodeCollapsed?(event: TreeNodeEventArgs): void;\r\n\r\n /** Called when selected tree node is clicked. */\r\n onDelayedNodeClick?(event: TreeNodeEventArgs): void;\r\n /** Called when selected tree node editor is activated. */\r\n onNodeEditorActivated?(event: TreeNodeEventArgs): void;\r\n\r\n /**\r\n * Called when tree selection is modified.\r\n * If Subscription is returned it can be used to stop event handling by calling `unsubscribe()`.\r\n */\r\n onSelectionModified?(event: TreeSelectionModificationEventArgs): Subscription | undefined;\r\n /**\r\n * Called when tree selection is replaced.\r\n * If Subscription is returned it can be used to stop event handling by calling `unsubscribe()`.\r\n */\r\n onSelectionReplaced?(event: TreeSelectionReplacementEventArgs): Subscription | undefined;\r\n\r\n /**\r\n * Called when checkbox states for nodes are changed.\r\n * If Subscription is returned it can be used to stop event handling by calling `unsubscribe()`.\r\n */\r\n onCheckboxStateChanged?(event: TreeCheckboxStateChangeEventArgs): Subscription | undefined;\r\n}\r\n\r\n/**\r\n * Data structure that describes tree node event payload.\r\n * @public\r\n */\r\nexport interface TreeNodeEventArgs {\r\n /** Id of node that is affected by event. */\r\n nodeId: string;\r\n}\r\n\r\n/**\r\n * Data structure that describes tree selection modification event payload.\r\n * @public\r\n */\r\nexport interface TreeSelectionModificationEventArgs {\r\n /**\r\n * An observable that emits tree selection changes.\r\n * It starts emitting values when '.subscribe()' is called.\r\n */\r\n modifications: Observable<TreeSelectionChange>;\r\n}\r\n\r\n/**\r\n * Data structure that describes tree selection change.\r\n * @public\r\n */\r\nexport interface TreeSelectionChange {\r\n /** Tree node items that where selected. */\r\n selectedNodeItems: TreeNodeItem[];\r\n /** Tree node items that where deselected. */\r\n deselectedNodeItems: TreeNodeItem[];\r\n}\r\n\r\n/**\r\n * Data structure that describes tree selection replacement event payload.\r\n * @public\r\n */\r\nexport interface TreeSelectionReplacementEventArgs {\r\n /**\r\n * An observable that emits tree selection replacements containing selected tree node items.\r\n * It starts emitting values when '.subscribe()' is called.\r\n */\r\n replacements: Observable<{ selectedNodeItems: TreeNodeItem[] }>;\r\n}\r\n\r\n/**\r\n * Data structure that describes tree checkbox state change event payload.\r\n * @public\r\n */\r\nexport interface TreeCheckboxStateChangeEventArgs {\r\n /**\r\n * An observable that emits checkbox state changes.\r\n * It starts emitting values when '.subscribe()' is called.\r\n */\r\n stateChanges: Observable<CheckboxStateChange[]>;\r\n}\r\n\r\n/**\r\n * Data structure that describes checkbox state change.\r\n * @public\r\n */\r\nexport interface CheckboxStateChange {\r\n /** Tree node item that was affected by checkbox state change. */\r\n nodeItem: TreeNodeItem;\r\n /** New state of the checkbox. */\r\n newState: CheckBoxState;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeHooks.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeHooks.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,iCAAkE;AAClE,kDAAkD;AAElD,yDAA8E;AAE9E,uDAAoD;AACpD,qDAAuE;AAEvE;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,WAA4B;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,cAAc,EAAE,CAAC;QACjB,OAAO,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAChE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,KAAK,CAAC;AACf,CAAC;AAZD,oCAYC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAyC,YAA2B,EAAE,WAA4B;IACjI,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,IAAI,+BAAc,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IACnH,OAAO,IAAA,0BAAa,EAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AAHD,8CAGC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CAAyC,YAA2B,EAAE,QAAgB,EAAE,WAA4B;IACxJ,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,IAAI,oCAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5I,OAAO,IAAA,0BAAa,EAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AAHD,wDAGC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,YAA8B;IAC/D,0HAA0H;IAC1H,OAAO,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAI,iCAAe,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,kDAAkD;AACjH,CAAC;AAHD,gDAGC;AAED;;;;;;;;GAQG;AACH,SAAgB,oBAAoB,CAA0C,eAAgE;IAC5I,MAAM,OAAO,GAAG,IAAA,mBAAW,EAAC,GAAqB,EAAE;QACjD,IAAI,OAAO,eAAe,KAAK,UAAU;YACvC,OAAO,eAAe,EAAE,CAAC;QAC3B,OAAO,IAAI,mCAAgB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,IAAA,0BAAa,EAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAPD,oDAOC","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 Tree\n */\n\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useDisposable } from \"@itwin/core-react\";\nimport { TreeDataProvider } from \"../TreeDataProvider\";\nimport { TreeEventHandler, TreeEventHandlerParams } from \"./TreeEventHandler\";\nimport { TreeModel } from \"./TreeModel\";\nimport { TreeModelSource } from \"./TreeModelSource\";\nimport { PagedTreeNodeLoader, TreeNodeLoader } from \"./TreeNodeLoader\";\n\n/**\n * React hook that returns an immutable `TreeModel` whenever it changes in the given\n * `TreeModelSource`.\n *\n * @public\n */\nexport function useTreeModel(modelSource: TreeModelSource): TreeModel {\n const [model, setModel] = useState(modelSource.getModel());\n\n useEffect(() => {\n const onModelChanged = () => {\n setModel(modelSource.getModel());\n };\n onModelChanged();\n return modelSource.onModelChanged.addListener(onModelChanged);\n }, [modelSource]);\n\n return model;\n}\n\n/**\n * Custom hook which creates a nodes' loader using the supplied data provider and model source. The\n * loader pulls nodes from the data provider and puts them into the model source.\n *\n * @public\n */\nexport function useTreeNodeLoader<TDataProvider extends TreeDataProvider>(dataProvider: TDataProvider, modelSource: TreeModelSource) {\n const createLoader = useCallback(() => new TreeNodeLoader(dataProvider, modelSource), [dataProvider, modelSource]);\n return useDisposable(createLoader);\n}\n\n/**\n * Custom hook which creates a paging nodes' loader using the supplied data provider and model source. The loader pulls\n * nodes from the data provider and puts them into the model source.\n * @public\n */\nexport function usePagedTreeNodeLoader<TDataProvider extends TreeDataProvider>(dataProvider: TDataProvider, pageSize: number, modelSource: TreeModelSource) {\n const createLoader = useCallback(() => new PagedTreeNodeLoader(dataProvider, modelSource, pageSize), [dataProvider, modelSource, pageSize]);\n return useDisposable(createLoader);\n}\n\n/**\n * Custom hook which creates a `TreeModelSource`.\n *\n * @note The model source has no direct dependency on the data provider, but we want a fresh model\n * source whenever the data provider changes - that's the reason the hook takes a data provider.\n *\n * @public\n */\nexport function useTreeModelSource(dataProvider: TreeDataProvider) {\n // need to create new model source every time data provider changes although it does not need data provider to be created.\n return useMemo(() => new TreeModelSource(), [dataProvider]); // eslint-disable-line react-hooks/exhaustive-deps\n}\n\n/**\n * Custom hook which creates and takes care of disposing a TreeEventsHandler. The input is either a factory method\n * for a custom `TreeEventHandler` implementation or parameters for the default implementation.\n *\n * @note Caller must ensure `factoryOrParams` changes only when a new handler needs to be created. `useCallback` or `useMemo` can\n * be used for that purpose based on whether the input is a factory function or params object.\n *\n * @public\n */\nexport function useTreeEventsHandler<TEventsHandler extends TreeEventHandler>(factoryOrParams: (() => TEventsHandler) | TreeEventHandlerParams) {\n const factory = useCallback((): TreeEventHandler => {\n if (typeof factoryOrParams === \"function\")\n return factoryOrParams();\n return new TreeEventHandler(factoryOrParams);\n }, [factoryOrParams]);\n return useDisposable(factory);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TreeHooks.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeHooks.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,iCAAkE;AAClE,kDAAkD;AAElD,yDAA8E;AAE9E,uDAAoD;AACpD,qDAAuE;AAEvE;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,WAA4B;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,cAAc,EAAE,CAAC;QACjB,OAAO,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAChE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,KAAK,CAAC;AACf,CAAC;AAZD,oCAYC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAyC,YAA2B,EAAE,WAA4B;IACjI,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,IAAI,+BAAc,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IACnH,OAAO,IAAA,0BAAa,EAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AAHD,8CAGC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CAAyC,YAA2B,EAAE,QAAgB,EAAE,WAA4B;IACxJ,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,IAAI,oCAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5I,OAAO,IAAA,0BAAa,EAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AAHD,wDAGC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,YAA8B;IAC/D,0HAA0H;IAC1H,OAAO,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAI,iCAAe,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,kDAAkD;AACjH,CAAC;AAHD,gDAGC;AAED;;;;;;;;GAQG;AACH,SAAgB,oBAAoB,CAA0C,eAAgE;IAC5I,MAAM,OAAO,GAAG,IAAA,mBAAW,EAAC,GAAqB,EAAE;QACjD,IAAI,OAAO,eAAe,KAAK,UAAU;YACvC,OAAO,eAAe,EAAE,CAAC;QAC3B,OAAO,IAAI,mCAAgB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,IAAA,0BAAa,EAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAPD,oDAOC","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 Tree\r\n */\r\n\r\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { useDisposable } from \"@itwin/core-react\";\r\nimport { TreeDataProvider } from \"../TreeDataProvider\";\r\nimport { TreeEventHandler, TreeEventHandlerParams } from \"./TreeEventHandler\";\r\nimport { TreeModel } from \"./TreeModel\";\r\nimport { TreeModelSource } from \"./TreeModelSource\";\r\nimport { PagedTreeNodeLoader, TreeNodeLoader } from \"./TreeNodeLoader\";\r\n\r\n/**\r\n * React hook that returns an immutable `TreeModel` whenever it changes in the given\r\n * `TreeModelSource`.\r\n *\r\n * @public\r\n */\r\nexport function useTreeModel(modelSource: TreeModelSource): TreeModel {\r\n const [model, setModel] = useState(modelSource.getModel());\r\n\r\n useEffect(() => {\r\n const onModelChanged = () => {\r\n setModel(modelSource.getModel());\r\n };\r\n onModelChanged();\r\n return modelSource.onModelChanged.addListener(onModelChanged);\r\n }, [modelSource]);\r\n\r\n return model;\r\n}\r\n\r\n/**\r\n * Custom hook which creates a nodes' loader using the supplied data provider and model source. The\r\n * loader pulls nodes from the data provider and puts them into the model source.\r\n *\r\n * @public\r\n */\r\nexport function useTreeNodeLoader<TDataProvider extends TreeDataProvider>(dataProvider: TDataProvider, modelSource: TreeModelSource) {\r\n const createLoader = useCallback(() => new TreeNodeLoader(dataProvider, modelSource), [dataProvider, modelSource]);\r\n return useDisposable(createLoader);\r\n}\r\n\r\n/**\r\n * Custom hook which creates a paging nodes' loader using the supplied data provider and model source. The loader pulls\r\n * nodes from the data provider and puts them into the model source.\r\n * @public\r\n */\r\nexport function usePagedTreeNodeLoader<TDataProvider extends TreeDataProvider>(dataProvider: TDataProvider, pageSize: number, modelSource: TreeModelSource) {\r\n const createLoader = useCallback(() => new PagedTreeNodeLoader(dataProvider, modelSource, pageSize), [dataProvider, modelSource, pageSize]);\r\n return useDisposable(createLoader);\r\n}\r\n\r\n/**\r\n * Custom hook which creates a `TreeModelSource`.\r\n *\r\n * @note The model source has no direct dependency on the data provider, but we want a fresh model\r\n * source whenever the data provider changes - that's the reason the hook takes a data provider.\r\n *\r\n * @public\r\n */\r\nexport function useTreeModelSource(dataProvider: TreeDataProvider) {\r\n // need to create new model source every time data provider changes although it does not need data provider to be created.\r\n return useMemo(() => new TreeModelSource(), [dataProvider]); // eslint-disable-line react-hooks/exhaustive-deps\r\n}\r\n\r\n/**\r\n * Custom hook which creates and takes care of disposing a TreeEventsHandler. The input is either a factory method\r\n * for a custom `TreeEventHandler` implementation or parameters for the default implementation.\r\n *\r\n * @note Caller must ensure `factoryOrParams` changes only when a new handler needs to be created. `useCallback` or `useMemo` can\r\n * be used for that purpose based on whether the input is a factory function or params object.\r\n *\r\n * @public\r\n */\r\nexport function useTreeEventsHandler<TEventsHandler extends TreeEventHandler>(factoryOrParams: (() => TEventsHandler) | TreeEventHandlerParams) {\r\n const factory = useCallback((): TreeEventHandler => {\r\n if (typeof factoryOrParams === \"function\")\r\n return factoryOrParams();\r\n return new TreeEventHandler(factoryOrParams);\r\n }, [factoryOrParams]);\r\n return useDisposable(factory);\r\n}\r\n"]}
|