@itwin/components-react 4.1.0-dev.0 → 4.1.0
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 +44 -6
- package/lib/cjs/components-react/UiComponents.d.ts +1 -1
- package/lib/cjs/components-react/UiComponents.d.ts.map +1 -1
- package/lib/cjs/components-react/UiComponents.js.map +1 -1
- package/lib/cjs/components-react/common/DelayedSpinner.d.ts +1 -1
- package/lib/cjs/components-react/common/DelayedSpinner.d.ts.map +1 -1
- package/lib/cjs/components-react/common/DelayedSpinner.js +3 -2
- package/lib/cjs/components-react/common/DelayedSpinner.js.map +1 -1
- package/lib/cjs/components-react/common/ImageRenderer.d.ts +1 -1
- package/lib/cjs/components-react/common/ImageRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/common/ImageRenderer.js.map +1 -1
- package/lib/cjs/components-react/common/SubscriptionScheduler.d.ts +1 -1
- package/lib/cjs/components-react/common/SubscriptionScheduler.d.ts.map +1 -1
- package/lib/cjs/components-react/common/SubscriptionScheduler.js.map +1 -1
- package/lib/cjs/components-react/common/UseDebouncedAsyncValue.js +2 -1
- package/lib/cjs/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
- package/lib/cjs/components-react/converters/BooleanTypeConverter.d.ts +1 -1
- package/lib/cjs/components-react/converters/BooleanTypeConverter.d.ts.map +1 -1
- package/lib/cjs/components-react/converters/BooleanTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/CompositeTypeConverter.d.ts +1 -1
- package/lib/cjs/components-react/converters/CompositeTypeConverter.d.ts.map +1 -1
- package/lib/cjs/components-react/converters/CompositeTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/DateTimeTypeConverter.d.ts +5 -3
- package/lib/cjs/components-react/converters/DateTimeTypeConverter.d.ts.map +1 -1
- package/lib/cjs/components-react/converters/DateTimeTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/EnumTypeConverter.d.ts +1 -1
- package/lib/cjs/components-react/converters/EnumTypeConverter.d.ts.map +1 -1
- package/lib/cjs/components-react/converters/EnumTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/HexadecimalTypeConverter.d.ts +1 -1
- package/lib/cjs/components-react/converters/HexadecimalTypeConverter.d.ts.map +1 -1
- package/lib/cjs/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/NavigationPropertyTypeConverter.d.ts +1 -1
- package/lib/cjs/components-react/converters/NavigationPropertyTypeConverter.d.ts.map +1 -1
- package/lib/cjs/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/NumericTypeConverter.d.ts +3 -2
- package/lib/cjs/components-react/converters/NumericTypeConverter.d.ts.map +1 -1
- package/lib/cjs/components-react/converters/NumericTypeConverter.js +4 -2
- package/lib/cjs/components-react/converters/NumericTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/PointTypeConverter.d.ts +2 -2
- package/lib/cjs/components-react/converters/PointTypeConverter.d.ts.map +1 -1
- package/lib/cjs/components-react/converters/PointTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/StringTypeConverter.d.ts +1 -1
- package/lib/cjs/components-react/converters/StringTypeConverter.d.ts.map +1 -1
- package/lib/cjs/components-react/converters/StringTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/TypeConverter.d.ts +2 -2
- package/lib/cjs/components-react/converters/TypeConverter.d.ts.map +1 -1
- package/lib/cjs/components-react/converters/TypeConverter.js +2 -2
- package/lib/cjs/components-react/converters/TypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/TypeConverterManager.d.ts +1 -1
- package/lib/cjs/components-react/converters/TypeConverterManager.d.ts.map +1 -1
- package/lib/cjs/components-react/converters/TypeConverterManager.js.map +1 -1
- package/lib/cjs/components-react/converters/valuetypes/ConvertedTypes.d.ts +1 -1
- package/lib/cjs/components-react/converters/valuetypes/ConvertedTypes.d.ts.map +1 -1
- package/lib/cjs/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DateField.d.ts +3 -2
- package/lib/cjs/components-react/datepicker/DateField.d.ts.map +1 -1
- package/lib/cjs/components-react/datepicker/DateField.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DatePickerPopupButton.d.ts +2 -2
- package/lib/cjs/components-react/datepicker/DatePickerPopupButton.d.ts.map +1 -1
- package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
- package/lib/cjs/components-react/datepicker/IntlFormatter.d.ts +1 -1
- package/lib/cjs/components-react/datepicker/IntlFormatter.d.ts.map +1 -1
- package/lib/cjs/components-react/datepicker/IntlFormatter.js.map +1 -1
- package/lib/cjs/components-react/datepicker/TimeField.d.ts +1 -1
- package/lib/cjs/components-react/datepicker/TimeField.d.ts.map +1 -1
- package/lib/cjs/components-react/datepicker/TimeField.js.map +1 -1
- package/lib/cjs/components-react/editors/BooleanEditor.d.ts +2 -2
- package/lib/cjs/components-react/editors/BooleanEditor.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/BooleanEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/CustomNumberEditor.d.ts +2 -2
- package/lib/cjs/components-react/editors/CustomNumberEditor.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/CustomNumberEditor.js +4 -2
- package/lib/cjs/components-react/editors/CustomNumberEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/DateTimeEditor.d.ts +4 -3
- package/lib/cjs/components-react/editors/DateTimeEditor.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/DateTimeEditor.js +3 -2
- package/lib/cjs/components-react/editors/DateTimeEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/EditorContainer.d.ts +2 -2
- package/lib/cjs/components-react/editors/EditorContainer.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/EditorContainer.js.map +1 -1
- package/lib/cjs/components-react/editors/EnumButtonGroupEditor.d.ts +2 -2
- package/lib/cjs/components-react/editors/EnumButtonGroupEditor.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/EnumEditor.d.ts +3 -3
- package/lib/cjs/components-react/editors/EnumEditor.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/EnumEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/IconEditor.d.ts +2 -2
- package/lib/cjs/components-react/editors/IconEditor.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/IconEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/ImageCheckBoxEditor.d.ts +2 -2
- package/lib/cjs/components-react/editors/ImageCheckBoxEditor.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/NumericInputEditor.d.ts +2 -2
- package/lib/cjs/components-react/editors/NumericInputEditor.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/NumericInputEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/PopupButton.d.ts +1 -1
- package/lib/cjs/components-react/editors/PopupButton.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/PopupButton.js +4 -3
- package/lib/cjs/components-react/editors/PopupButton.js.map +1 -1
- package/lib/cjs/components-react/editors/PropertyEditorManager.d.ts +1 -1
- package/lib/cjs/components-react/editors/PropertyEditorManager.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/PropertyEditorManager.js.map +1 -1
- package/lib/cjs/components-react/editors/SliderEditor.d.ts +2 -2
- package/lib/cjs/components-react/editors/SliderEditor.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/SliderEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/TextEditor.d.ts +2 -2
- package/lib/cjs/components-react/editors/TextEditor.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/TextEditor.js +4 -2
- package/lib/cjs/components-react/editors/TextEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/TextareaEditor.d.ts +2 -2
- package/lib/cjs/components-react/editors/TextareaEditor.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/TextareaEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/ToggleEditor.d.ts +2 -2
- package/lib/cjs/components-react/editors/ToggleEditor.d.ts.map +1 -1
- package/lib/cjs/components-react/editors/ToggleEditor.js.map +1 -1
- package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.d.ts +2 -2
- package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
- package/lib/cjs/components-react/favorite/FavoritePropertyList.d.ts +1 -1
- package/lib/cjs/components-react/favorite/FavoritePropertyList.d.ts.map +1 -1
- package/lib/cjs/components-react/favorite/FavoritePropertyList.js +3 -2
- package/lib/cjs/components-react/favorite/FavoritePropertyList.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts +4 -4
- package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilder.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts +4 -4
- package/lib/cjs/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +2 -2
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js +2 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js +3 -3
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts +4 -3
- package/lib/cjs/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderState.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/Operators.d.ts +1 -1
- package/lib/cjs/components-react/filter-builder/Operators.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/Operators.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/Types.d.ts +2 -2
- package/lib/cjs/components-react/filter-builder/Types.d.ts.map +1 -1
- package/lib/cjs/components-react/filter-builder/Types.js.map +1 -1
- package/lib/cjs/components-react/filtering/FilteringInput.d.ts +2 -2
- package/lib/cjs/components-react/filtering/FilteringInput.d.ts.map +1 -1
- package/lib/cjs/components-react/filtering/FilteringInput.js.map +1 -1
- package/lib/cjs/components-react/filtering/ResultSelector.d.ts +1 -1
- package/lib/cjs/components-react/filtering/ResultSelector.d.ts.map +1 -1
- package/lib/cjs/components-react/filtering/ResultSelector.js.map +1 -1
- package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts +1 -1
- package/lib/cjs/components-react/iconpicker/IconPickerButton.d.ts.map +1 -1
- package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
- package/lib/cjs/components-react/inputs/ParsedInput.d.ts +2 -2
- package/lib/cjs/components-react/inputs/ParsedInput.d.ts.map +1 -1
- package/lib/cjs/components-react/inputs/ParsedInput.js.map +1 -1
- package/lib/cjs/components-react/properties/ItemStyle.d.ts +1 -1
- package/lib/cjs/components-react/properties/ItemStyle.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/ItemStyle.js.map +1 -1
- package/lib/cjs/components-react/properties/LinkHandler.d.ts +1 -1
- package/lib/cjs/components-react/properties/LinkHandler.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/LinkHandler.js.map +1 -1
- package/lib/cjs/components-react/properties/ValueRendererManager.d.ts +3 -3
- package/lib/cjs/components-react/properties/ValueRendererManager.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/ValueRendererManager.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/ActionButtonList.d.ts +2 -2
- package/lib/cjs/components-react/properties/renderers/ActionButtonList.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/ActionButtonList.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/ActionButtonRenderer.d.ts +2 -2
- package/lib/cjs/components-react/properties/renderers/ActionButtonRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.d.ts +2 -2
- package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js +4 -3
- package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts +1 -1
- package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js +1 -1
- package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts +2 -2
- package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js +3 -2
- package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyRenderer.d.ts +7 -7
- package/lib/cjs/components-react/properties/renderers/PropertyRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyView.d.ts +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyView.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyView.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyView.scss +5 -0
- package/lib/cjs/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.d.ts +1 -1
- package/lib/cjs/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.d.ts +1 -1
- package/lib/cjs/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.d.ts.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 +2 -1
- package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.d.ts +2 -2
- package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts +2 -2
- package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.js +2 -1
- package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/MergedPropertyValueRenderer.d.ts +2 -2
- package/lib/cjs/components-react/properties/renderers/value/MergedPropertyValueRenderer.d.ts.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.d.ts +2 -2
- package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js +18 -17
- package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts +2 -2
- package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js +2 -1
- package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.d.ts +2 -2
- package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js +7 -4
- package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.d.ts +2 -2
- package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.d.ts.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.d.ts +2 -2
- package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.d.ts.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.d.ts +1 -1
- package/lib/cjs/components-react/properties/renderers/value/WithContextStyle.d.ts.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.d.ts +1 -1
- package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts.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.d.ts +3 -3
- package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts.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/StructValueRenderer.d.ts +1 -1
- package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.d.ts +3 -3
- package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.js +2 -1
- package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/PropertyDataProvider.d.ts +1 -1
- package/lib/cjs/components-react/propertygrid/PropertyDataProvider.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.d.ts +6 -1
- package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.js +17 -4
- package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts +1 -1
- package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.d.ts +3 -3
- package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js +2 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.d.ts +9 -8
- package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js +2 -2
- package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts +2 -2
- package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyList.d.ts +8 -7
- package/lib/cjs/components-react/propertygrid/component/PropertyList.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyList.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts +12 -11
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js +51 -46
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts +3 -3
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/FilteringDataProvider.d.ts +5 -4
- package/lib/cjs/components-react/propertygrid/dataproviders/FilteringDataProvider.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/FilteringDataProvider.js +13 -11
- package/lib/cjs/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.d.ts +4 -3
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js +2 -2
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.d.ts +3 -2
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js +2 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.d.ts +3 -2
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.d.ts.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.d.ts +3 -2
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.d.ts.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.d.ts +2 -2
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridEventHandler.d.ts +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridEventHandler.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.d.ts +4 -3
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModel.d.ts +4 -4
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModel.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.d.ts +3 -3
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.d.ts.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.d.ts +3 -3
- package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts +4 -3
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts.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.d.ts +3 -2
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.d.ts.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.d.ts +4 -3
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.d.ts.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.d.ts +5 -4
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js +2 -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.d.ts +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js +2 -2
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.d.ts +5 -4
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js +3 -2
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.d.ts +4 -4
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js +1 -8
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js +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.d.ts +5 -5
- package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js +7 -5
- package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/selectable-content/SelectableContent.d.ts.map +1 -1
- package/lib/cjs/components-react/selectable-content/SelectableContent.js +3 -2
- package/lib/cjs/components-react/selectable-content/SelectableContent.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Item.d.ts +1 -1
- package/lib/cjs/components-react/toolbar/Item.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/Item.js.map +1 -1
- package/lib/cjs/components-react/toolbar/ItemWrapper.d.ts +1 -1
- package/lib/cjs/components-react/toolbar/ItemWrapper.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/ItemWrapper.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Items.d.ts +2 -2
- package/lib/cjs/components-react/toolbar/Items.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/Items.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Overflow.d.ts +1 -1
- package/lib/cjs/components-react/toolbar/Overflow.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/Overflow.js.map +1 -1
- package/lib/cjs/components-react/toolbar/OverflowPanel.d.ts +1 -1
- package/lib/cjs/components-react/toolbar/OverflowPanel.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/OverflowPanel.js.map +1 -1
- package/lib/cjs/components-react/toolbar/PopupItem.d.ts +2 -2
- package/lib/cjs/components-react/toolbar/PopupItem.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/PopupItem.js.map +1 -1
- package/lib/cjs/components-react/toolbar/PopupItemWithDrag.d.ts +3 -2
- package/lib/cjs/components-react/toolbar/PopupItemWithDrag.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
- package/lib/cjs/components-react/toolbar/PopupItemsPanel.d.ts +1 -1
- package/lib/cjs/components-react/toolbar/PopupItemsPanel.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/PopupItemsPanel.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Toolbar.d.ts +2 -2
- package/lib/cjs/components-react/toolbar/Toolbar.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/Toolbar.js.map +1 -1
- package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts +2 -2
- package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js +8 -4
- package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.d.ts +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Column.d.ts +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Column.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Column.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Columns.d.ts +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Columns.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Columns.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Panel.d.ts +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Panel.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Panel.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Title.d.ts +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Title.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Title.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.d.ts +2 -2
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.d.ts +2 -2
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.d.ts.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.js +3 -1
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
- package/lib/cjs/components-react/tree/ImageLoader.d.ts +2 -2
- package/lib/cjs/components-react/tree/ImageLoader.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/ImageLoader.js.map +1 -1
- package/lib/cjs/components-react/tree/SimpleTreeDataProvider.d.ts +2 -2
- package/lib/cjs/components-react/tree/SimpleTreeDataProvider.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
- package/lib/cjs/components-react/tree/TreeDataProvider.d.ts +4 -4
- package/lib/cjs/components-react/tree/TreeDataProvider.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeActions.d.ts +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeActions.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeActions.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.d.ts +6 -6
- package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEventHandler.d.ts +6 -6
- package/lib/cjs/components-react/tree/controlled/TreeEventHandler.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEvents.d.ts +3 -3
- package/lib/cjs/components-react/tree/controlled/TreeEvents.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEvents.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeHooks.d.ts +4 -3
- package/lib/cjs/components-react/tree/controlled/TreeHooks.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeHooks.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeModel.d.ts +3 -3
- package/lib/cjs/components-react/tree/controlled/TreeModel.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeModel.js +7 -4
- package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeModelSource.d.ts +2 -1
- package/lib/cjs/components-react/tree/controlled/TreeModelSource.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeModelSource.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.d.ts +5 -5
- package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js +8 -6
- package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/ControlledTree.d.ts +7 -7
- package/lib/cjs/components-react/tree/controlled/component/ControlledTree.d.ts.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 +2 -2
- package/lib/cjs/components-react/tree/controlled/component/NodeContent.d.ts +5 -5
- package/lib/cjs/components-react/tree/controlled/component/NodeContent.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/NodeContent.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.d.ts +1 -1
- package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.d.ts +6 -6
- package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.d.ts.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.d.ts +5 -5
- package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.js +3 -23
- package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/internal/SparseTree.js +2 -1
- package/lib/cjs/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/internal/TreeModelMutator.d.ts +6 -6
- package/lib/cjs/components-react/tree/controlled/internal/TreeModelMutator.d.ts.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.d.ts +4 -4
- package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.d.ts.map +1 -1
- package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js +4 -2
- package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
- package/lib/esm/components-react/UiComponents.d.ts +1 -1
- package/lib/esm/components-react/UiComponents.d.ts.map +1 -1
- package/lib/esm/components-react/UiComponents.js.map +1 -1
- package/lib/esm/components-react/common/DelayedSpinner.d.ts +1 -1
- package/lib/esm/components-react/common/DelayedSpinner.d.ts.map +1 -1
- package/lib/esm/components-react/common/DelayedSpinner.js +3 -2
- package/lib/esm/components-react/common/DelayedSpinner.js.map +1 -1
- package/lib/esm/components-react/common/ImageRenderer.d.ts +1 -1
- package/lib/esm/components-react/common/ImageRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/common/ImageRenderer.js.map +1 -1
- package/lib/esm/components-react/common/SubscriptionScheduler.d.ts +1 -1
- package/lib/esm/components-react/common/SubscriptionScheduler.d.ts.map +1 -1
- package/lib/esm/components-react/common/SubscriptionScheduler.js.map +1 -1
- package/lib/esm/components-react/common/UseDebouncedAsyncValue.js +2 -1
- package/lib/esm/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
- package/lib/esm/components-react/converters/BooleanTypeConverter.d.ts +1 -1
- package/lib/esm/components-react/converters/BooleanTypeConverter.d.ts.map +1 -1
- package/lib/esm/components-react/converters/BooleanTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/CompositeTypeConverter.d.ts +1 -1
- package/lib/esm/components-react/converters/CompositeTypeConverter.d.ts.map +1 -1
- package/lib/esm/components-react/converters/CompositeTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/DateTimeTypeConverter.d.ts +5 -3
- package/lib/esm/components-react/converters/DateTimeTypeConverter.d.ts.map +1 -1
- package/lib/esm/components-react/converters/DateTimeTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/EnumTypeConverter.d.ts +1 -1
- package/lib/esm/components-react/converters/EnumTypeConverter.d.ts.map +1 -1
- package/lib/esm/components-react/converters/EnumTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/HexadecimalTypeConverter.d.ts +1 -1
- package/lib/esm/components-react/converters/HexadecimalTypeConverter.d.ts.map +1 -1
- package/lib/esm/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/NavigationPropertyTypeConverter.d.ts +1 -1
- package/lib/esm/components-react/converters/NavigationPropertyTypeConverter.d.ts.map +1 -1
- package/lib/esm/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/NumericTypeConverter.d.ts +3 -2
- package/lib/esm/components-react/converters/NumericTypeConverter.d.ts.map +1 -1
- package/lib/esm/components-react/converters/NumericTypeConverter.js +4 -2
- package/lib/esm/components-react/converters/NumericTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/PointTypeConverter.d.ts +2 -2
- package/lib/esm/components-react/converters/PointTypeConverter.d.ts.map +1 -1
- package/lib/esm/components-react/converters/PointTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/StringTypeConverter.d.ts +1 -1
- package/lib/esm/components-react/converters/StringTypeConverter.d.ts.map +1 -1
- package/lib/esm/components-react/converters/StringTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/TypeConverter.d.ts +2 -2
- package/lib/esm/components-react/converters/TypeConverter.d.ts.map +1 -1
- package/lib/esm/components-react/converters/TypeConverter.js +2 -2
- package/lib/esm/components-react/converters/TypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/TypeConverterManager.d.ts +1 -1
- package/lib/esm/components-react/converters/TypeConverterManager.d.ts.map +1 -1
- package/lib/esm/components-react/converters/TypeConverterManager.js.map +1 -1
- package/lib/esm/components-react/converters/valuetypes/ConvertedTypes.d.ts +1 -1
- package/lib/esm/components-react/converters/valuetypes/ConvertedTypes.d.ts.map +1 -1
- package/lib/esm/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
- package/lib/esm/components-react/datepicker/DateField.d.ts +3 -2
- package/lib/esm/components-react/datepicker/DateField.d.ts.map +1 -1
- package/lib/esm/components-react/datepicker/DateField.js.map +1 -1
- package/lib/esm/components-react/datepicker/DatePickerPopupButton.d.ts +2 -2
- package/lib/esm/components-react/datepicker/DatePickerPopupButton.d.ts.map +1 -1
- package/lib/esm/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
- package/lib/esm/components-react/datepicker/IntlFormatter.d.ts +1 -1
- package/lib/esm/components-react/datepicker/IntlFormatter.d.ts.map +1 -1
- package/lib/esm/components-react/datepicker/IntlFormatter.js.map +1 -1
- package/lib/esm/components-react/datepicker/TimeField.d.ts +1 -1
- package/lib/esm/components-react/datepicker/TimeField.d.ts.map +1 -1
- package/lib/esm/components-react/datepicker/TimeField.js.map +1 -1
- package/lib/esm/components-react/editors/BooleanEditor.d.ts +2 -2
- package/lib/esm/components-react/editors/BooleanEditor.d.ts.map +1 -1
- package/lib/esm/components-react/editors/BooleanEditor.js.map +1 -1
- package/lib/esm/components-react/editors/CustomNumberEditor.d.ts +2 -2
- package/lib/esm/components-react/editors/CustomNumberEditor.d.ts.map +1 -1
- package/lib/esm/components-react/editors/CustomNumberEditor.js +4 -2
- package/lib/esm/components-react/editors/CustomNumberEditor.js.map +1 -1
- package/lib/esm/components-react/editors/DateTimeEditor.d.ts +4 -3
- package/lib/esm/components-react/editors/DateTimeEditor.d.ts.map +1 -1
- package/lib/esm/components-react/editors/DateTimeEditor.js +3 -2
- package/lib/esm/components-react/editors/DateTimeEditor.js.map +1 -1
- package/lib/esm/components-react/editors/EditorContainer.d.ts +2 -2
- package/lib/esm/components-react/editors/EditorContainer.d.ts.map +1 -1
- package/lib/esm/components-react/editors/EditorContainer.js.map +1 -1
- package/lib/esm/components-react/editors/EnumButtonGroupEditor.d.ts +2 -2
- package/lib/esm/components-react/editors/EnumButtonGroupEditor.d.ts.map +1 -1
- package/lib/esm/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
- package/lib/esm/components-react/editors/EnumEditor.d.ts +3 -3
- package/lib/esm/components-react/editors/EnumEditor.d.ts.map +1 -1
- package/lib/esm/components-react/editors/EnumEditor.js.map +1 -1
- package/lib/esm/components-react/editors/IconEditor.d.ts +2 -2
- package/lib/esm/components-react/editors/IconEditor.d.ts.map +1 -1
- package/lib/esm/components-react/editors/IconEditor.js.map +1 -1
- package/lib/esm/components-react/editors/ImageCheckBoxEditor.d.ts +2 -2
- package/lib/esm/components-react/editors/ImageCheckBoxEditor.d.ts.map +1 -1
- package/lib/esm/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
- package/lib/esm/components-react/editors/NumericInputEditor.d.ts +2 -2
- package/lib/esm/components-react/editors/NumericInputEditor.d.ts.map +1 -1
- package/lib/esm/components-react/editors/NumericInputEditor.js.map +1 -1
- package/lib/esm/components-react/editors/PopupButton.d.ts +1 -1
- package/lib/esm/components-react/editors/PopupButton.d.ts.map +1 -1
- package/lib/esm/components-react/editors/PopupButton.js +4 -3
- package/lib/esm/components-react/editors/PopupButton.js.map +1 -1
- package/lib/esm/components-react/editors/PropertyEditorManager.d.ts +1 -1
- package/lib/esm/components-react/editors/PropertyEditorManager.d.ts.map +1 -1
- package/lib/esm/components-react/editors/PropertyEditorManager.js.map +1 -1
- package/lib/esm/components-react/editors/SliderEditor.d.ts +2 -2
- package/lib/esm/components-react/editors/SliderEditor.d.ts.map +1 -1
- package/lib/esm/components-react/editors/SliderEditor.js.map +1 -1
- package/lib/esm/components-react/editors/TextEditor.d.ts +2 -2
- package/lib/esm/components-react/editors/TextEditor.d.ts.map +1 -1
- package/lib/esm/components-react/editors/TextEditor.js +4 -2
- package/lib/esm/components-react/editors/TextEditor.js.map +1 -1
- package/lib/esm/components-react/editors/TextareaEditor.d.ts +2 -2
- package/lib/esm/components-react/editors/TextareaEditor.d.ts.map +1 -1
- package/lib/esm/components-react/editors/TextareaEditor.js.map +1 -1
- package/lib/esm/components-react/editors/ToggleEditor.d.ts +2 -2
- package/lib/esm/components-react/editors/ToggleEditor.d.ts.map +1 -1
- package/lib/esm/components-react/editors/ToggleEditor.js.map +1 -1
- package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.d.ts +2 -2
- package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
- package/lib/esm/components-react/favorite/FavoritePropertyList.d.ts +1 -1
- package/lib/esm/components-react/favorite/FavoritePropertyList.d.ts.map +1 -1
- package/lib/esm/components-react/favorite/FavoritePropertyList.js +3 -2
- package/lib/esm/components-react/favorite/FavoritePropertyList.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts +4 -4
- package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilder.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts +4 -4
- package/lib/esm/components-react/filter-builder/FilterBuilderContext.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts +2 -2
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js +2 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js +3 -3
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts +4 -3
- package/lib/esm/components-react/filter-builder/FilterBuilderState.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderState.js.map +1 -1
- package/lib/esm/components-react/filter-builder/Operators.d.ts +1 -1
- package/lib/esm/components-react/filter-builder/Operators.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/Operators.js.map +1 -1
- package/lib/esm/components-react/filter-builder/Types.d.ts +2 -2
- package/lib/esm/components-react/filter-builder/Types.d.ts.map +1 -1
- package/lib/esm/components-react/filter-builder/Types.js.map +1 -1
- package/lib/esm/components-react/filtering/FilteringInput.d.ts +2 -2
- package/lib/esm/components-react/filtering/FilteringInput.d.ts.map +1 -1
- package/lib/esm/components-react/filtering/FilteringInput.js.map +1 -1
- package/lib/esm/components-react/filtering/ResultSelector.d.ts +1 -1
- package/lib/esm/components-react/filtering/ResultSelector.d.ts.map +1 -1
- package/lib/esm/components-react/filtering/ResultSelector.js.map +1 -1
- package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts +1 -1
- package/lib/esm/components-react/iconpicker/IconPickerButton.d.ts.map +1 -1
- package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
- package/lib/esm/components-react/inputs/ParsedInput.d.ts +2 -2
- package/lib/esm/components-react/inputs/ParsedInput.d.ts.map +1 -1
- package/lib/esm/components-react/inputs/ParsedInput.js.map +1 -1
- package/lib/esm/components-react/properties/ItemStyle.d.ts +1 -1
- package/lib/esm/components-react/properties/ItemStyle.d.ts.map +1 -1
- package/lib/esm/components-react/properties/ItemStyle.js.map +1 -1
- package/lib/esm/components-react/properties/LinkHandler.d.ts +1 -1
- package/lib/esm/components-react/properties/LinkHandler.d.ts.map +1 -1
- package/lib/esm/components-react/properties/LinkHandler.js.map +1 -1
- package/lib/esm/components-react/properties/ValueRendererManager.d.ts +3 -3
- package/lib/esm/components-react/properties/ValueRendererManager.d.ts.map +1 -1
- package/lib/esm/components-react/properties/ValueRendererManager.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/ActionButtonList.d.ts +2 -2
- package/lib/esm/components-react/properties/renderers/ActionButtonList.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/ActionButtonList.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/ActionButtonRenderer.d.ts +2 -2
- package/lib/esm/components-react/properties/renderers/ActionButtonRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.d.ts +2 -2
- package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js +4 -3
- package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts +1 -1
- package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js +1 -1
- package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts +2 -2
- package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js +3 -2
- package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyRenderer.d.ts +7 -7
- package/lib/esm/components-react/properties/renderers/PropertyRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyView.d.ts +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyView.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyView.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyView.scss +5 -0
- package/lib/esm/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.d.ts +1 -1
- package/lib/esm/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.d.ts +1 -1
- package/lib/esm/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.d.ts.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 +2 -1
- package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.d.ts +2 -2
- package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts +2 -2
- package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.js +2 -1
- package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/MergedPropertyValueRenderer.d.ts +2 -2
- package/lib/esm/components-react/properties/renderers/value/MergedPropertyValueRenderer.d.ts.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.d.ts +2 -2
- package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js +16 -18
- package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts +2 -2
- package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js +2 -1
- package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.d.ts +2 -2
- package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js +7 -4
- package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.d.ts +2 -2
- package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.d.ts.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.d.ts +2 -2
- package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.d.ts.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.d.ts +1 -1
- package/lib/esm/components-react/properties/renderers/value/WithContextStyle.d.ts.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.d.ts +1 -1
- package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.d.ts.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.d.ts +3 -3
- package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.d.ts.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/StructValueRenderer.d.ts +1 -1
- package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.d.ts +3 -3
- package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.js +2 -1
- package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
- package/lib/esm/components-react/propertygrid/PropertyDataProvider.d.ts +1 -1
- package/lib/esm/components-react/propertygrid/PropertyDataProvider.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.d.ts +6 -1
- package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.js +17 -4
- package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts +1 -1
- package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.d.ts +3 -3
- package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js +2 -1
- package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.d.ts +9 -8
- package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js +2 -2
- package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts +2 -2
- package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyList.d.ts +8 -7
- package/lib/esm/components-react/propertygrid/component/PropertyList.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyList.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts +12 -11
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js +51 -46
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts +3 -3
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/FilteringDataProvider.d.ts +5 -4
- package/lib/esm/components-react/propertygrid/dataproviders/FilteringDataProvider.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/FilteringDataProvider.js +13 -11
- package/lib/esm/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.d.ts +4 -3
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js +2 -2
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.d.ts +3 -2
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js +2 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.d.ts +3 -2
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.d.ts.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.d.ts +3 -2
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.d.ts.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.d.ts +2 -2
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridEventHandler.d.ts +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridEventHandler.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.d.ts +4 -3
- package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModel.d.ts +4 -4
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModel.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.d.ts +3 -3
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.d.ts.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.d.ts +3 -3
- package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts +4 -3
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.d.ts.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.d.ts +3 -2
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.d.ts.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.d.ts +4 -3
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.d.ts.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.d.ts +5 -4
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js +2 -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.d.ts +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js +2 -2
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.d.ts +5 -4
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js +3 -2
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.d.ts +4 -4
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js +1 -8
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js +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.d.ts +5 -5
- package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js +7 -5
- package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/selectable-content/SelectableContent.d.ts.map +1 -1
- package/lib/esm/components-react/selectable-content/SelectableContent.js +3 -2
- package/lib/esm/components-react/selectable-content/SelectableContent.js.map +1 -1
- package/lib/esm/components-react/toolbar/Item.d.ts +1 -1
- package/lib/esm/components-react/toolbar/Item.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/Item.js.map +1 -1
- package/lib/esm/components-react/toolbar/ItemWrapper.d.ts +1 -1
- package/lib/esm/components-react/toolbar/ItemWrapper.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/ItemWrapper.js.map +1 -1
- package/lib/esm/components-react/toolbar/Items.d.ts +2 -2
- package/lib/esm/components-react/toolbar/Items.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/Items.js.map +1 -1
- package/lib/esm/components-react/toolbar/Overflow.d.ts +1 -1
- package/lib/esm/components-react/toolbar/Overflow.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/Overflow.js.map +1 -1
- package/lib/esm/components-react/toolbar/OverflowPanel.d.ts +1 -1
- package/lib/esm/components-react/toolbar/OverflowPanel.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/OverflowPanel.js.map +1 -1
- package/lib/esm/components-react/toolbar/PopupItem.d.ts +2 -2
- package/lib/esm/components-react/toolbar/PopupItem.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/PopupItem.js.map +1 -1
- package/lib/esm/components-react/toolbar/PopupItemWithDrag.d.ts +3 -2
- package/lib/esm/components-react/toolbar/PopupItemWithDrag.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
- package/lib/esm/components-react/toolbar/PopupItemsPanel.d.ts +1 -1
- package/lib/esm/components-react/toolbar/PopupItemsPanel.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/PopupItemsPanel.js.map +1 -1
- package/lib/esm/components-react/toolbar/Toolbar.d.ts +2 -2
- package/lib/esm/components-react/toolbar/Toolbar.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/Toolbar.js.map +1 -1
- package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts +2 -2
- package/lib/esm/components-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js +8 -4
- package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/BackArrow.d.ts +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/BackArrow.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Column.d.ts +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Column.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Column.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Columns.d.ts +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Columns.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Columns.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Panel.d.ts +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Panel.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Panel.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Title.d.ts +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Title.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Title.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.d.ts +2 -2
- package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.d.ts +2 -2
- package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.d.ts.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.js +3 -1
- package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
- package/lib/esm/components-react/tree/ImageLoader.d.ts +2 -2
- package/lib/esm/components-react/tree/ImageLoader.d.ts.map +1 -1
- package/lib/esm/components-react/tree/ImageLoader.js.map +1 -1
- package/lib/esm/components-react/tree/SimpleTreeDataProvider.d.ts +2 -2
- package/lib/esm/components-react/tree/SimpleTreeDataProvider.d.ts.map +1 -1
- package/lib/esm/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
- package/lib/esm/components-react/tree/TreeDataProvider.d.ts +4 -4
- package/lib/esm/components-react/tree/TreeDataProvider.d.ts.map +1 -1
- package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeActions.d.ts +1 -1
- package/lib/esm/components-react/tree/controlled/TreeActions.d.ts.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeActions.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.d.ts +6 -6
- package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.d.ts.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEventHandler.d.ts +6 -6
- package/lib/esm/components-react/tree/controlled/TreeEventHandler.d.ts.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEvents.d.ts +3 -3
- package/lib/esm/components-react/tree/controlled/TreeEvents.d.ts.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEvents.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeHooks.d.ts +4 -3
- package/lib/esm/components-react/tree/controlled/TreeHooks.d.ts.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeHooks.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeModel.d.ts +3 -3
- package/lib/esm/components-react/tree/controlled/TreeModel.d.ts.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeModel.js +7 -4
- package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeModelSource.d.ts +2 -1
- package/lib/esm/components-react/tree/controlled/TreeModelSource.d.ts.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeModelSource.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeNodeLoader.d.ts +5 -5
- package/lib/esm/components-react/tree/controlled/TreeNodeLoader.d.ts.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js +8 -6
- package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/ControlledTree.d.ts +7 -7
- package/lib/esm/components-react/tree/controlled/component/ControlledTree.d.ts.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 +2 -2
- package/lib/esm/components-react/tree/controlled/component/NodeContent.d.ts +5 -5
- package/lib/esm/components-react/tree/controlled/component/NodeContent.d.ts.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/NodeContent.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.d.ts +1 -1
- package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.d.ts.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.d.ts +6 -6
- package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.d.ts.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.d.ts +5 -5
- package/lib/esm/components-react/tree/controlled/component/TreeRenderer.d.ts.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/TreeRenderer.js +3 -23
- package/lib/esm/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/internal/SparseTree.js +2 -1
- package/lib/esm/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/internal/TreeModelMutator.d.ts +6 -6
- package/lib/esm/components-react/tree/controlled/internal/TreeModelMutator.d.ts.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.d.ts +4 -4
- package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.d.ts.map +1 -1
- package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js +4 -2
- package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
- package/package.json +11 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeRenderer.js","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/component/TreeRenderer.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 Tree\r\n */\r\n\r\nimport \"./ControlledTree.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { areEqual, ListChildComponentProps, ListOnItemsRenderedProps, VariableSizeList } from \"react-window\";\r\nimport { concat } from \"rxjs/internal/observable/concat\";\r\nimport { timer } from \"rxjs/internal/observable/timer\";\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { Tree as CoreTree, TreeNodePlaceholder } from \"@itwin/core-react\";\r\nimport { createContextWithMandatoryProvider } from \"../../../common/UseContextWithMandatoryProvider\";\r\nimport { HighlightableTreeProps, HighlightingEngine } from \"../../HighlightingEngine\";\r\nimport { TreeActions } from \"../TreeActions\";\r\nimport {\r\n isTreeModelNode, isTreeModelNodePlaceholder, isTreeModelRootNode, TreeModelNode, TreeModelNodePlaceholder, VisibleTreeNodes,\r\n} from \"../TreeModel\";\r\nimport { ITreeNodeLoader } from \"../TreeNodeLoader\";\r\nimport { TreeNodeRenderer, TreeNodeRendererProps } from \"./TreeNodeRenderer\";\r\n\r\nconst NODE_LOAD_DELAY = 500;\r\n\r\n/**\r\n * Data structure that describes range of rendered items in the tree.\r\n * @public\r\n */\r\nexport interface RenderedItemsRange {\r\n overscanStartIndex: number;\r\n overscanStopIndex: number;\r\n visibleStartIndex: number;\r\n visibleStopIndex: number;\r\n}\r\n\r\n/**\r\n * Properties for [[TreeRenderer]] component.\r\n * @public\r\n */\r\nexport interface TreeRendererProps {\r\n treeActions: TreeActions;\r\n nodeLoader: ITreeNodeLoader;\r\n\r\n /** Callback that is used to determine node height. */\r\n nodeHeight: (node: TreeModelNode | TreeModelNodePlaceholder, index: number) => number;\r\n\r\n /** Flat list of nodes to be rendered. */\r\n visibleNodes: VisibleTreeNodes;\r\n\r\n /** Callback to render custom node. */\r\n nodeRenderer?: (props: TreeNodeRendererProps) => React.ReactNode;\r\n\r\n /** Properties used to highlight nodes and scroll to active match while filtering. */\r\n nodeHighlightingProps?: HighlightableTreeProps;\r\n\r\n /** Callback that is called when rendered items range changes. */\r\n onItemsRendered?: (renderedItems: RenderedItemsRange) => void;\r\n\r\n /**\r\n * Callback used when an editor closes\r\n * @internal\r\n */\r\n onNodeEditorClosed?: () => void;\r\n\r\n /** Width of the tree area. */\r\n width: number;\r\n\r\n /** Height of the tree area. */\r\n height: number;\r\n}\r\n\r\n/**\r\n * Attributes found on TreeRenderer component\r\n * @public\r\n */\r\nexport interface TreeRendererAttributes {\r\n /**\r\n * Scroll to the specified node.\r\n * @param nodeId Id of the target node to scroll to.\r\n * @param alignment Controls scrolling behavior. See [react-window](https://github.com/bvaughn/react-window) documentation\r\n * on `scrollToItem` for details.\r\n */\r\n scrollToNode(nodeId: string, alignment?: Alignment): void;\r\n}\r\n\r\ntype Alignment = \"auto\" | \"smart\" | \"center\" | \"end\" | \"start\";\r\n\r\n/** [[TreeRenderer]] context that is provided to each rendered node. */\r\ninterface TreeRendererContext {\r\n /** Callback to render custom node. */\r\n nodeRenderer: (props: TreeNodeRendererProps) => React.ReactNode;\r\n\r\n treeActions: TreeActions;\r\n nodeLoader: ITreeNodeLoader;\r\n\r\n /** Flat list of nodes to be rendered. */\r\n visibleNodes: VisibleTreeNodes;\r\n\r\n /** Engine used to created node highlighting properties. */\r\n highlightingEngine?: HighlightingEngine;\r\n\r\n /** Callback used detect when label is rendered. It is used by TreeRenderer for scrolling to active match. */\r\n onLabelRendered?: (node: TreeModelNode) => void;\r\n\r\n /** A callback that node calls after rendering to report its width */\r\n onNodeWidthMeasured?: (width: number) => void;\r\n\r\n /** Callback used when an editor closes */\r\n onNodeEditorClosed?: () => void;\r\n}\r\n\r\n/** [[TreeRenderer]] context provider, consumer and custom hook. */\r\nconst [\r\n /** Context of [[TreeRenderer]] provider. */\r\n TreeRendererContextProvider,\r\n\r\n /** Context of [[TreeRenderer]] consumer. */\r\n _TreeRendererContextConsumer,\r\n\r\n /** Custom hook to use [[TreeRenderer]] context. */\r\n useTreeRendererContext,\r\n] = createContextWithMandatoryProvider<TreeRendererContext>(\"TreeRendererContext\");\r\n\r\n/**\r\n * Default tree rendering component.\r\n * @public\r\n */\r\nexport class TreeRenderer extends React.Component<TreeRendererProps> implements TreeRendererAttributes {\r\n private _ref = React.createRef<TreeRendererAttributes>();\r\n\r\n /** @inheritdoc */\r\n public scrollToNode(nodeId: string, alignment?: Alignment) {\r\n // istanbul ignore else\r\n if (this._ref.current)\r\n this._ref.current.scrollToNode(nodeId, alignment);\r\n }\r\n\r\n public override render() {\r\n return (\r\n <TreeRendererInner ref={this._ref} {...this.props} />\r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line react/display-name\r\nconst TreeRendererInner = React.forwardRef<TreeRendererAttributes, TreeRendererProps>((props, ref) => {\r\n const variableSizeListRef = React.useRef<VariableSizeList>(null);\r\n useTreeRendererAttributes(ref, variableSizeListRef, props.visibleNodes);\r\n\r\n const previousVisibleNodes = usePrevious(props.visibleNodes);\r\n const previousNodeHeight = usePrevious(props.nodeHeight);\r\n if ((previousVisibleNodes !== undefined && previousVisibleNodes !== props.visibleNodes)\r\n || (previousNodeHeight !== undefined && previousNodeHeight !== props.nodeHeight)) {\r\n /* istanbul ignore else */\r\n if (variableSizeListRef.current) {\r\n variableSizeListRef.current.resetAfterIndex(0, false);\r\n }\r\n }\r\n\r\n const coreTreeRef = React.useRef<CoreTree>(null);\r\n const minContainerWidth = React.useRef<number>(0);\r\n const onLabelRendered = useScrollToActiveMatch(coreTreeRef, props.nodeHighlightingProps);\r\n const highlightingEngine = React.useMemo(\r\n () => props.nodeHighlightingProps && new HighlightingEngine(props.nodeHighlightingProps),\r\n [props.nodeHighlightingProps],\r\n );\r\n\r\n const rendererContext = React.useMemo<TreeRendererContext>(() => ({\r\n nodeRenderer: props.nodeRenderer ? props.nodeRenderer : (nodeProps) => (<TreeNodeRenderer {...nodeProps} />),\r\n treeActions: props.treeActions,\r\n nodeLoader: props.nodeLoader,\r\n visibleNodes: props.visibleNodes,\r\n onLabelRendered,\r\n highlightingEngine,\r\n onNodeWidthMeasured: (width: number) => {\r\n if (width > minContainerWidth.current)\r\n minContainerWidth.current = width;\r\n },\r\n onNodeEditorClosed: () => {\r\n setFocusToSelected(coreTreeRef);\r\n props.onNodeEditorClosed && props.onNodeEditorClosed();\r\n },\r\n }), [props, onLabelRendered, highlightingEngine]);\r\n\r\n const prevTreeWidth = React.useRef<number>(0);\r\n if (props.width !== prevTreeWidth.current) {\r\n minContainerWidth.current = 0;\r\n prevTreeWidth.current = props.width;\r\n }\r\n\r\n const itemKey = React.useCallback(\r\n (index: number) => getNodeKey(props.visibleNodes.getAtIndex(index)!),\r\n [props.visibleNodes],\r\n );\r\n\r\n const { nodeHeight, visibleNodes } = props;\r\n const itemSize = React.useCallback(\r\n (index: number) => nodeHeight(visibleNodes.getAtIndex(index)!, index),\r\n [nodeHeight, visibleNodes],\r\n );\r\n\r\n const { nodeHighlightingProps } = props;\r\n React.useEffect(() => {\r\n const highlightedNodeId = getHighlightedNodeId(nodeHighlightingProps);\r\n if (!highlightedNodeId)\r\n return;\r\n\r\n let index = 0;\r\n for (const node of visibleNodes) {\r\n if (isTreeModelNode(node) && node.id === highlightedNodeId)\r\n break;\r\n\r\n index++;\r\n }\r\n\r\n assert(variableSizeListRef.current !== null);\r\n variableSizeListRef.current.scrollToItem(index);\r\n }, [nodeHighlightingProps]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const innerElementType = React.useCallback(\r\n // eslint-disable-next-line react/display-name\r\n React.forwardRef(({ style, ...rest }: ListChildComponentProps, innerRef: React.Ref<HTMLDivElement>) => (\r\n <div\r\n ref={innerRef}\r\n style={{ ...style, minWidth: minContainerWidth.current }}\r\n {...rest}\r\n />\r\n )),\r\n [],\r\n );\r\n\r\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\r\n props.treeActions.onTreeKeyDown(e);\r\n }, [props.treeActions]);\r\n\r\n const handleKeyUp = React.useCallback((e: React.KeyboardEvent) => {\r\n props.treeActions.onTreeKeyUp(e);\r\n }, [props.treeActions]);\r\n\r\n const onItemsRendered = props.onItemsRendered;\r\n const handleRenderedItemsChange = React.useCallback((onItemsRenderedProps: ListOnItemsRenderedProps) => {\r\n onItemsRendered && onItemsRendered({ ...onItemsRenderedProps });\r\n }, [onItemsRendered]);\r\n\r\n return (\r\n <TreeRendererContextProvider value={rendererContext}>\r\n <CoreTree ref={coreTreeRef}\r\n className={classnames(\"components-controlledTree\", \"components-smallEditor-host\")}\r\n onKeyDown={handleKeyDown} onKeyUp={handleKeyUp}\r\n >\r\n <VariableSizeList\r\n ref={variableSizeListRef}\r\n className={\"ReactWindow__VariableSizeList\"}\r\n width={props.width}\r\n height={props.height}\r\n itemCount={props.visibleNodes.getNumNodes()}\r\n itemSize={itemSize}\r\n estimatedItemSize={25}\r\n overscanCount={10}\r\n itemKey={itemKey}\r\n innerElementType={innerElementType}\r\n onItemsRendered={handleRenderedItemsChange}\r\n >\r\n {Node}\r\n </VariableSizeList>\r\n </CoreTree>\r\n </TreeRendererContextProvider>\r\n );\r\n});\r\n\r\nfunction getNodeKey(node: TreeModelNode | TreeModelNodePlaceholder): string {\r\n if (isTreeModelNode(node)) {\r\n return node.id;\r\n }\r\n return `${node.parentId || \"\"}-${node.childIndex}`;\r\n}\r\n\r\nconst Node = React.memo<React.FC<ListChildComponentProps>>( // eslint-disable-line @typescript-eslint/naming-convention\r\n function Node(props: ListChildComponentProps) {\r\n const { index, style } = props;\r\n\r\n const {\r\n nodeRenderer,\r\n visibleNodes,\r\n treeActions,\r\n nodeLoader,\r\n onLabelRendered,\r\n highlightingEngine,\r\n onNodeWidthMeasured,\r\n onNodeEditorClosed,\r\n } = useTreeRendererContext(Node);\r\n const node = visibleNodes.getAtIndex(index)!;\r\n\r\n useNodeLoading(node, visibleNodes, nodeLoader);\r\n\r\n // Mark selected node's wrapper to make detecting consecutively selected nodes with css selectors possible\r\n const className = classnames(\"node-wrapper\", { \"is-selected\": isTreeModelNode(node) && node.isSelected });\r\n\r\n const ref = React.useRef<HTMLDivElement>(null);\r\n React.useEffect(() => {\r\n // istanbul ignore else\r\n if (onNodeWidthMeasured && ref.current)\r\n onNodeWidthMeasured(ref.current.offsetWidth);\r\n }, [onNodeWidthMeasured]);\r\n\r\n const isEditing = React.useRef(false);\r\n React.useEffect(() => {\r\n if (!isTreeModelNode(node))\r\n return;\r\n\r\n if (!isEditing.current && node.editingInfo) {\r\n isEditing.current = true;\r\n } else if (isEditing.current && node.editingInfo === undefined) {\r\n isEditing.current = false;\r\n /* istanbul ignore else */\r\n if (onNodeEditorClosed)\r\n onNodeEditorClosed();\r\n }\r\n }, [node, onNodeEditorClosed]);\r\n\r\n return (\r\n <div className={className} style={style} ref={ref}>\r\n {React.useMemo(() => {\r\n if (isTreeModelNode(node)) {\r\n const nodeHighlightProps = highlightingEngine ? highlightingEngine.createRenderProps(node) : undefined;\r\n return nodeRenderer({ node, treeActions, onLabelRendered, nodeHighlightProps });\r\n }\r\n\r\n return <TreeNodePlaceholder level={node.depth} />;\r\n }, [node, treeActions, nodeRenderer, onLabelRendered, highlightingEngine])}\r\n </div>\r\n );\r\n },\r\n areEqual,\r\n);\r\n\r\nfunction useNodeLoading(\r\n node: TreeModelNode | TreeModelNodePlaceholder,\r\n visibleNodes: VisibleTreeNodes,\r\n nodeLoader: ITreeNodeLoader,\r\n): void {\r\n React.useEffect(\r\n () => {\r\n if (!isTreeModelNodePlaceholder(node)) {\r\n return;\r\n }\r\n\r\n const treeModel = visibleNodes.getModel();\r\n const parentNode = node.parentId ? treeModel.getNode(node.parentId) : treeModel.getRootNode();\r\n if (!isTreeModelNode(parentNode) && !isTreeModelRootNode(parentNode)) {\r\n return;\r\n }\r\n\r\n const subscription = concat(timer(NODE_LOAD_DELAY), nodeLoader.loadNode(parentNode, node.childIndex)).subscribe();\r\n return () => subscription.unsubscribe();\r\n },\r\n // Mounted node component never changes its node key, thus it's safe to run this effect only once for every\r\n // nodeLoader change.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [nodeLoader],\r\n );\r\n}\r\n\r\nfunction useTreeRendererAttributes(\r\n ref: React.Ref<TreeRendererAttributes>,\r\n variableSizeListRef: React.RefObject<VariableSizeList>,\r\n visibleNodes: VisibleTreeNodes,\r\n) {\r\n const visibleNodesRef = React.useRef(visibleNodes);\r\n visibleNodesRef.current = visibleNodes;\r\n React.useImperativeHandle(\r\n ref,\r\n () => ({\r\n scrollToNode: (nodeId, alignment) => {\r\n assert(variableSizeListRef.current !== null);\r\n variableSizeListRef.current.scrollToItem(visibleNodesRef.current.getIndexOfNode(nodeId), alignment);\r\n },\r\n }),\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [],\r\n );\r\n}\r\n\r\nfunction usePrevious<T>(value: T): T | undefined {\r\n const ref = React.useRef<T>();\r\n\r\n React.useEffect(() => {\r\n ref.current = value;\r\n }, [value]);\r\n\r\n return ref.current;\r\n}\r\n\r\nfunction getHighlightedNodeId(highlightableTreeProps?: HighlightableTreeProps) {\r\n return (highlightableTreeProps && highlightableTreeProps.activeMatch)\r\n ? highlightableTreeProps.activeMatch.nodeId\r\n : undefined;\r\n}\r\n\r\nfunction useScrollToActiveMatch(treeRef: React.RefObject<CoreTree>, highlightableTreeProps?: HighlightableTreeProps) {\r\n const scrollToActive = React.useRef(false);\r\n React.useEffect(() => {\r\n scrollToActive.current = true;\r\n }, [highlightableTreeProps]);\r\n\r\n const onLabelRendered = React.useCallback(\r\n (node: TreeModelNode) => {\r\n const highlightedNodeId = getHighlightedNodeId(highlightableTreeProps);\r\n if (!treeRef.current || !scrollToActive.current || !highlightedNodeId || highlightedNodeId !== node.id)\r\n return;\r\n\r\n scrollToActive.current = false;\r\n const scrollTo = [...treeRef.current.getElementsByClassName(HighlightingEngine.ACTIVE_CLASS_NAME)];\r\n // istanbul ignore else\r\n if (scrollTo.length > 0 && scrollTo[0].scrollIntoView !== undefined)\r\n scrollTo[0].scrollIntoView({ behavior: \"auto\", block: \"nearest\", inline: \"end\" });\r\n }, [highlightableTreeProps, treeRef]);\r\n\r\n return onLabelRendered;\r\n}\r\n\r\nfunction setFocusToSelected(treeRef: React.RefObject<CoreTree>) {\r\n /* istanbul ignore else */\r\n if (treeRef.current)\r\n treeRef.current.setFocusByClassName(\".core-tree-node.is-selected\");\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"TreeRenderer.js","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/component/TreeRenderer.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 Tree\r\n */\r\n\r\nimport \"./ControlledTree.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport type { ListChildComponentProps, ListOnItemsRenderedProps} from \"react-window\";\r\nimport { areEqual, VariableSizeList } from \"react-window\";\r\nimport { concat } from \"rxjs/internal/observable/concat\";\r\nimport { timer } from \"rxjs/internal/observable/timer\";\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { Tree as CoreTree, TreeNodePlaceholder } from \"@itwin/core-react\";\r\nimport { createContextWithMandatoryProvider } from \"../../../common/UseContextWithMandatoryProvider\";\r\nimport type { HighlightableTreeProps} from \"../../HighlightingEngine\";\r\nimport { HighlightingEngine } from \"../../HighlightingEngine\";\r\nimport type { TreeActions } from \"../TreeActions\";\r\nimport type { TreeModelNode, TreeModelNodePlaceholder, VisibleTreeNodes} from \"../TreeModel\";\r\nimport {\r\n isTreeModelNode, isTreeModelNodePlaceholder, isTreeModelRootNode,\r\n} from \"../TreeModel\";\r\nimport type { ITreeNodeLoader } from \"../TreeNodeLoader\";\r\nimport type { TreeNodeRendererProps } from \"./TreeNodeRenderer\";\r\nimport { TreeNodeRenderer } from \"./TreeNodeRenderer\";\r\n\r\nconst NODE_LOAD_DELAY = 500;\r\n\r\n/**\r\n * Data structure that describes range of rendered items in the tree.\r\n * @public\r\n */\r\nexport interface RenderedItemsRange {\r\n overscanStartIndex: number;\r\n overscanStopIndex: number;\r\n visibleStartIndex: number;\r\n visibleStopIndex: number;\r\n}\r\n\r\n/**\r\n * Properties for [[TreeRenderer]] component.\r\n * @public\r\n */\r\nexport interface TreeRendererProps {\r\n treeActions: TreeActions;\r\n nodeLoader: ITreeNodeLoader;\r\n\r\n /** Callback that is used to determine node height. */\r\n nodeHeight: (node: TreeModelNode | TreeModelNodePlaceholder, index: number) => number;\r\n\r\n /** Flat list of nodes to be rendered. */\r\n visibleNodes: VisibleTreeNodes;\r\n\r\n /** Callback to render custom node. */\r\n nodeRenderer?: (props: TreeNodeRendererProps) => React.ReactNode;\r\n\r\n /** Properties used to highlight nodes and scroll to active match while filtering. */\r\n nodeHighlightingProps?: HighlightableTreeProps;\r\n\r\n /** Callback that is called when rendered items range changes. */\r\n onItemsRendered?: (renderedItems: RenderedItemsRange) => void;\r\n\r\n /**\r\n * Callback used when an editor closes\r\n * @internal\r\n */\r\n onNodeEditorClosed?: () => void;\r\n\r\n /** Width of the tree area. */\r\n width: number;\r\n\r\n /** Height of the tree area. */\r\n height: number;\r\n}\r\n\r\n/**\r\n * Attributes found on TreeRenderer component\r\n * @public\r\n */\r\nexport interface TreeRendererAttributes {\r\n /**\r\n * Scroll to the specified node.\r\n * @param nodeId Id of the target node to scroll to.\r\n * @param alignment Controls scrolling behavior. See [react-window](https://github.com/bvaughn/react-window) documentation\r\n * on `scrollToItem` for details.\r\n */\r\n scrollToNode(nodeId: string, alignment?: Alignment): void;\r\n}\r\n\r\ntype Alignment = \"auto\" | \"smart\" | \"center\" | \"end\" | \"start\";\r\n\r\n/** [[TreeRenderer]] context that is provided to each rendered node. */\r\ninterface TreeRendererContext {\r\n /** Callback to render custom node. */\r\n nodeRenderer: (props: TreeNodeRendererProps) => React.ReactNode;\r\n\r\n treeActions: TreeActions;\r\n nodeLoader: ITreeNodeLoader;\r\n\r\n /** Flat list of nodes to be rendered. */\r\n visibleNodes: VisibleTreeNodes;\r\n\r\n /** Engine used to created node highlighting properties. */\r\n highlightingEngine?: HighlightingEngine;\r\n\r\n /** Callback used detect when label is rendered. It is used by TreeRenderer for scrolling to active match. */\r\n onLabelRendered?: (node: TreeModelNode) => void;\r\n\r\n /** Callback used when an editor closes */\r\n onNodeEditorClosed?: () => void;\r\n}\r\n\r\n/** [[TreeRenderer]] context provider, consumer and custom hook. */\r\nconst [\r\n /** Context of [[TreeRenderer]] provider. */\r\n TreeRendererContextProvider,\r\n\r\n /** Context of [[TreeRenderer]] consumer. */\r\n _TreeRendererContextConsumer,\r\n\r\n /** Custom hook to use [[TreeRenderer]] context. */\r\n useTreeRendererContext,\r\n] = createContextWithMandatoryProvider<TreeRendererContext>(\"TreeRendererContext\");\r\n\r\n/**\r\n * Default tree rendering component.\r\n * @public\r\n */\r\nexport class TreeRenderer extends React.Component<TreeRendererProps> implements TreeRendererAttributes {\r\n private _ref = React.createRef<TreeRendererAttributes>();\r\n\r\n /** @inheritdoc */\r\n public scrollToNode(nodeId: string, alignment?: Alignment) {\r\n // istanbul ignore else\r\n if (this._ref.current)\r\n this._ref.current.scrollToNode(nodeId, alignment);\r\n }\r\n\r\n public override render() {\r\n return (\r\n <TreeRendererInner ref={this._ref} {...this.props} />\r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line react/display-name\r\nconst TreeRendererInner = React.forwardRef<TreeRendererAttributes, TreeRendererProps>((props, ref) => {\r\n const variableSizeListRef = React.useRef<VariableSizeList>(null);\r\n useTreeRendererAttributes(ref, variableSizeListRef, props.visibleNodes);\r\n\r\n const previousVisibleNodes = usePrevious(props.visibleNodes);\r\n const previousNodeHeight = usePrevious(props.nodeHeight);\r\n if ((previousVisibleNodes !== undefined && previousVisibleNodes !== props.visibleNodes)\r\n || (previousNodeHeight !== undefined && previousNodeHeight !== props.nodeHeight)) {\r\n /* istanbul ignore else */\r\n if (variableSizeListRef.current) {\r\n variableSizeListRef.current.resetAfterIndex(0, false);\r\n }\r\n }\r\n\r\n const coreTreeRef = React.useRef<CoreTree>(null);\r\n const onLabelRendered = useScrollToActiveMatch(coreTreeRef, props.nodeHighlightingProps);\r\n const highlightingEngine = React.useMemo(\r\n () => props.nodeHighlightingProps && new HighlightingEngine(props.nodeHighlightingProps),\r\n [props.nodeHighlightingProps],\r\n );\r\n\r\n const rendererContext = React.useMemo<TreeRendererContext>(() => ({\r\n nodeRenderer: props.nodeRenderer ? props.nodeRenderer : (nodeProps) => (<TreeNodeRenderer {...nodeProps} />),\r\n treeActions: props.treeActions,\r\n nodeLoader: props.nodeLoader,\r\n visibleNodes: props.visibleNodes,\r\n onLabelRendered,\r\n highlightingEngine,\r\n onNodeEditorClosed: () => {\r\n setFocusToSelected(coreTreeRef);\r\n props.onNodeEditorClosed && props.onNodeEditorClosed();\r\n },\r\n }), [props, onLabelRendered, highlightingEngine]);\r\n\r\n const itemKey = React.useCallback(\r\n (index: number) => getNodeKey(props.visibleNodes.getAtIndex(index)!),\r\n [props.visibleNodes],\r\n );\r\n\r\n const { nodeHeight, visibleNodes } = props;\r\n const itemSize = React.useCallback(\r\n (index: number) => nodeHeight(visibleNodes.getAtIndex(index)!, index),\r\n [nodeHeight, visibleNodes],\r\n );\r\n\r\n const { nodeHighlightingProps } = props;\r\n React.useEffect(() => {\r\n const highlightedNodeId = getHighlightedNodeId(nodeHighlightingProps);\r\n if (!highlightedNodeId)\r\n return;\r\n\r\n let index = 0;\r\n for (const node of visibleNodes) {\r\n if (isTreeModelNode(node) && node.id === highlightedNodeId)\r\n break;\r\n\r\n index++;\r\n }\r\n\r\n assert(variableSizeListRef.current !== null);\r\n variableSizeListRef.current.scrollToItem(index);\r\n }, [nodeHighlightingProps]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\r\n props.treeActions.onTreeKeyDown(e);\r\n }, [props.treeActions]);\r\n\r\n const handleKeyUp = React.useCallback((e: React.KeyboardEvent) => {\r\n props.treeActions.onTreeKeyUp(e);\r\n }, [props.treeActions]);\r\n\r\n const onItemsRendered = props.onItemsRendered;\r\n const handleRenderedItemsChange = React.useCallback((onItemsRenderedProps: ListOnItemsRenderedProps) => {\r\n onItemsRendered && onItemsRendered({ ...onItemsRenderedProps });\r\n }, [onItemsRendered]);\r\n\r\n return (\r\n <TreeRendererContextProvider value={rendererContext}>\r\n <CoreTree ref={coreTreeRef}\r\n className={classnames(\"components-controlledTree\", \"components-smallEditor-host\")}\r\n onKeyDown={handleKeyDown} onKeyUp={handleKeyUp}\r\n >\r\n <VariableSizeList\r\n ref={variableSizeListRef}\r\n className={\"ReactWindow__VariableSizeList\"}\r\n width={props.width}\r\n height={props.height}\r\n itemCount={props.visibleNodes.getNumNodes()}\r\n itemSize={itemSize}\r\n estimatedItemSize={25}\r\n overscanCount={10}\r\n itemKey={itemKey}\r\n onItemsRendered={handleRenderedItemsChange}\r\n >\r\n {Node}\r\n </VariableSizeList>\r\n </CoreTree>\r\n </TreeRendererContextProvider>\r\n );\r\n});\r\n\r\nfunction getNodeKey(node: TreeModelNode | TreeModelNodePlaceholder): string {\r\n if (isTreeModelNode(node)) {\r\n return node.id;\r\n }\r\n return `${node.parentId || \"\"}-${node.childIndex}`;\r\n}\r\n\r\nconst Node = React.memo<React.FC<ListChildComponentProps>>( // eslint-disable-line @typescript-eslint/naming-convention\r\n function Node(props: ListChildComponentProps) {\r\n const { index, style } = props;\r\n\r\n const {\r\n nodeRenderer,\r\n visibleNodes,\r\n treeActions,\r\n nodeLoader,\r\n onLabelRendered,\r\n highlightingEngine,\r\n onNodeEditorClosed,\r\n } = useTreeRendererContext(Node);\r\n const node = visibleNodes.getAtIndex(index)!;\r\n\r\n useNodeLoading(node, visibleNodes, nodeLoader);\r\n\r\n // Mark selected node's wrapper to make detecting consecutively selected nodes with css selectors possible\r\n const className = classnames(\"node-wrapper\", { \"is-selected\": isTreeModelNode(node) && node.isSelected });\r\n\r\n const isEditing = React.useRef(false);\r\n React.useEffect(() => {\r\n if (!isTreeModelNode(node))\r\n return;\r\n\r\n if (!isEditing.current && node.editingInfo) {\r\n isEditing.current = true;\r\n } else if (isEditing.current && node.editingInfo === undefined) {\r\n isEditing.current = false;\r\n /* istanbul ignore else */\r\n if (onNodeEditorClosed)\r\n onNodeEditorClosed();\r\n }\r\n }, [node, onNodeEditorClosed]);\r\n\r\n return (\r\n <div className={className} style={style}>\r\n {React.useMemo(() => {\r\n if (isTreeModelNode(node)) {\r\n const nodeHighlightProps = highlightingEngine ? highlightingEngine.createRenderProps(node) : undefined;\r\n return nodeRenderer({ node, treeActions, onLabelRendered, nodeHighlightProps });\r\n }\r\n\r\n return <TreeNodePlaceholder level={node.depth} />;\r\n }, [node, treeActions, nodeRenderer, onLabelRendered, highlightingEngine])}\r\n </div>\r\n );\r\n },\r\n areEqual,\r\n);\r\n\r\nfunction useNodeLoading(\r\n node: TreeModelNode | TreeModelNodePlaceholder,\r\n visibleNodes: VisibleTreeNodes,\r\n nodeLoader: ITreeNodeLoader,\r\n): void {\r\n React.useEffect(\r\n () => {\r\n if (!isTreeModelNodePlaceholder(node)) {\r\n return;\r\n }\r\n\r\n const treeModel = visibleNodes.getModel();\r\n const parentNode = node.parentId ? treeModel.getNode(node.parentId) : treeModel.getRootNode();\r\n if (!isTreeModelNode(parentNode) && !isTreeModelRootNode(parentNode)) {\r\n return;\r\n }\r\n\r\n const subscription = concat(timer(NODE_LOAD_DELAY), nodeLoader.loadNode(parentNode, node.childIndex)).subscribe();\r\n return () => subscription.unsubscribe();\r\n },\r\n // Mounted node component never changes its node key, thus it's safe to run this effect only once for every\r\n // nodeLoader change.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [nodeLoader],\r\n );\r\n}\r\n\r\nfunction useTreeRendererAttributes(\r\n ref: React.Ref<TreeRendererAttributes>,\r\n variableSizeListRef: React.RefObject<VariableSizeList>,\r\n visibleNodes: VisibleTreeNodes,\r\n) {\r\n const visibleNodesRef = React.useRef(visibleNodes);\r\n visibleNodesRef.current = visibleNodes;\r\n React.useImperativeHandle(\r\n ref,\r\n () => ({\r\n scrollToNode: (nodeId, alignment) => {\r\n assert(variableSizeListRef.current !== null);\r\n variableSizeListRef.current.scrollToItem(visibleNodesRef.current.getIndexOfNode(nodeId), alignment);\r\n },\r\n }),\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [],\r\n );\r\n}\r\n\r\nfunction usePrevious<T>(value: T): T | undefined {\r\n const ref = React.useRef<T>();\r\n\r\n React.useEffect(() => {\r\n ref.current = value;\r\n }, [value]);\r\n\r\n return ref.current;\r\n}\r\n\r\nfunction getHighlightedNodeId(highlightableTreeProps?: HighlightableTreeProps) {\r\n return (highlightableTreeProps && highlightableTreeProps.activeMatch)\r\n ? highlightableTreeProps.activeMatch.nodeId\r\n : undefined;\r\n}\r\n\r\nfunction useScrollToActiveMatch(treeRef: React.RefObject<CoreTree>, highlightableTreeProps?: HighlightableTreeProps) {\r\n const scrollToActive = React.useRef(false);\r\n React.useEffect(() => {\r\n scrollToActive.current = true;\r\n }, [highlightableTreeProps]);\r\n\r\n const onLabelRendered = React.useCallback(\r\n (node: TreeModelNode) => {\r\n const highlightedNodeId = getHighlightedNodeId(highlightableTreeProps);\r\n if (!treeRef.current || !scrollToActive.current || !highlightedNodeId || highlightedNodeId !== node.id)\r\n return;\r\n\r\n scrollToActive.current = false;\r\n const scrollTo = [...treeRef.current.getElementsByClassName(HighlightingEngine.ACTIVE_CLASS_NAME)];\r\n // istanbul ignore else\r\n if (scrollTo.length > 0 && scrollTo[0].scrollIntoView !== undefined)\r\n scrollTo[0].scrollIntoView({ behavior: \"auto\", block: \"nearest\", inline: \"end\" });\r\n }, [highlightableTreeProps, treeRef]);\r\n\r\n return onLabelRendered;\r\n}\r\n\r\nfunction setFocusToSelected(treeRef: React.RefObject<CoreTree>) {\r\n /* istanbul ignore else */\r\n if (treeRef.current)\r\n treeRef.current.setFocusByClassName(\".core-tree-node.is-selected\");\r\n}\r\n"]}
|
|
@@ -56,7 +56,8 @@ export class SparseTree {
|
|
|
56
56
|
this._idToNode[child.id] = child;
|
|
57
57
|
}
|
|
58
58
|
setNodeId(parentId, index, newId) {
|
|
59
|
-
|
|
59
|
+
var _c;
|
|
60
|
+
const previousNodeId = (_c = this.getChildren(parentId)) === null || _c === void 0 ? void 0 : _c.get(index);
|
|
60
61
|
if (previousNodeId === undefined) {
|
|
61
62
|
return false;
|
|
62
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SparseTree.js","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/internal/SparseTree.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 { immerable } from \"immer\";\r\nimport { assert, compareNumbers, lowerBound } from \"@itwin/core-bentley\";\r\n\r\n/** @internal */\r\nexport interface Node {\r\n readonly id: string;\r\n}\r\n\r\n/**\r\n * Structure for sparse tree storage.\r\n * It uses SparseArray to store children ids for parent. This allows\r\n * having tree structure with some nodes missing in the tree branch.\r\n * @internal\r\n */\r\nexport class SparseTree<T extends Node> {\r\n public [immerable] = true;\r\n\r\n private _rootNodes = new SparseArray<string>();\r\n private _parentToChildren: Record<string, SparseArray<string>> = {};\r\n private _idToNode: Record<string, T> = {};\r\n\r\n public getNode(nodeId: string): T | undefined {\r\n return this._idToNode[nodeId];\r\n }\r\n\r\n public getChildOffset(parentId: string | undefined, childId: string): number | undefined {\r\n const children = this.getChildren(parentId);\r\n if (!children)\r\n return undefined;\r\n\r\n return children.getIndex(childId);\r\n }\r\n\r\n public getChildren(parentId: string | undefined, createIfNotExist: boolean = false): SparseArray<string> | undefined {\r\n if (parentId === undefined) {\r\n return this._rootNodes;\r\n }\r\n\r\n if (this._parentToChildren[parentId] === undefined && createIfNotExist) {\r\n this._parentToChildren[parentId] = new SparseArray<string>();\r\n }\r\n\r\n return this._parentToChildren[parentId];\r\n }\r\n\r\n public setChildren(parentId: string | undefined, children: T[], offset: number) {\r\n const existingChildren = this.getChildren(parentId, true)!;\r\n children.forEach((child, index) => {\r\n const existingChildId = existingChildren.get(offset + index);\r\n if (existingChildId !== undefined) {\r\n this.deleteSubtree(existingChildId);\r\n }\r\n\r\n existingChildren.set(offset + index, child.id);\r\n this._idToNode[child.id] = child;\r\n });\r\n }\r\n\r\n public insertChild(parentId: string | undefined, child: T, offset: number) {\r\n const existingChildren = this.getChildren(parentId, true)!;\r\n existingChildren.insert(offset, child.id);\r\n this._idToNode[child.id] = child;\r\n }\r\n\r\n public setNodeId(parentId: string | undefined, index: number, newId: string): boolean {\r\n const previousNodeId = this.getChildren(parentId)?.get(index);\r\n if (previousNodeId === undefined) {\r\n return false;\r\n }\r\n\r\n if (previousNodeId === newId) {\r\n return true;\r\n }\r\n\r\n if (this.getNode(newId) !== undefined) {\r\n return false;\r\n }\r\n\r\n this._idToNode[newId] = this._idToNode[previousNodeId];\r\n delete this._idToNode[previousNodeId];\r\n\r\n this._parentToChildren[newId] = this._parentToChildren[previousNodeId];\r\n delete this._parentToChildren[previousNodeId];\r\n\r\n if (parentId === undefined) {\r\n this._rootNodes.set(index, newId);\r\n } else {\r\n this._parentToChildren[parentId].set(index, newId);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public moveNode(\r\n sourceParentId: string | undefined,\r\n sourceNodeId: string,\r\n targetParentId: string | undefined,\r\n targetIndex: number,\r\n ): void {\r\n const sourceNodeSiblings = this.getChildren(sourceParentId);\r\n assert(sourceNodeSiblings !== undefined);\r\n\r\n const sourceIndex = this.getChildOffset(sourceParentId, sourceNodeId);\r\n assert(sourceIndex !== undefined);\r\n\r\n sourceNodeSiblings.remove(sourceIndex);\r\n if (targetParentId === sourceParentId && targetIndex > sourceIndex) {\r\n targetIndex -= 1;\r\n }\r\n\r\n const targetNodeSiblings = this.getChildren(targetParentId, true);\r\n assert(targetNodeSiblings !== undefined);\r\n targetNodeSiblings.insert(targetIndex, sourceNodeId);\r\n }\r\n\r\n public setNumChildren(parentId: string | undefined, numChildren: number) {\r\n const children = this.getChildren(parentId, true)!;\r\n for (const [childId] of children.iterateValues()) {\r\n this.deleteSubtree(childId);\r\n }\r\n\r\n children.setLength(numChildren);\r\n }\r\n\r\n public removeChild(parentId: string | undefined, child: string | number): void {\r\n const children = this.getChildren(parentId);\r\n if (children === undefined)\r\n return;\r\n\r\n if (typeof child === \"string\") {\r\n const childIndex = children.getIndex(child);\r\n if (childIndex !== undefined) {\r\n children.remove(childIndex);\r\n }\r\n\r\n this.deleteSubtree(child);\r\n } else {\r\n const childId = children.get(child);\r\n children.remove(child);\r\n if (childId !== undefined) {\r\n this.deleteSubtree(childId);\r\n }\r\n }\r\n }\r\n\r\n public deleteSubtree(parentId: string | undefined, deleteParent: boolean = true) {\r\n const children = this.getChildren(parentId);\r\n if (children !== undefined) {\r\n for (const [childId] of children.iterateValues()) {\r\n this.deleteSubtree(childId);\r\n }\r\n }\r\n\r\n if (parentId === undefined) {\r\n this._rootNodes.setLength(0);\r\n return;\r\n }\r\n if (deleteParent) {\r\n delete this._idToNode[parentId];\r\n }\r\n delete this._parentToChildren[parentId];\r\n }\r\n}\r\n\r\n/**\r\n * Structure for sparse array value storage.\r\n * The main advantage of this class over the standard javascript array is that\r\n * this class does not need to check each index when iterating values that are\r\n * stored in the array.\r\n * @public\r\n */\r\nexport class SparseArray<T> implements Iterable<T | undefined> {\r\n public [immerable] = true;\r\n\r\n private _length = 0;\r\n private _array: Array<[T, number]> = [];\r\n\r\n /** Returns length of array including intermediate 'undefined' values */\r\n public getLength(): number {\r\n return this._length;\r\n }\r\n\r\n /** Sets length of array. */\r\n public setLength(length: number) {\r\n const { index } = this.lowerBound(length);\r\n this._array.length = index;\r\n this._length = length;\r\n }\r\n\r\n /** Returns index of supplied value.\r\n *\r\n * @returns index of value or undefined if value is not found.\r\n */\r\n public getIndex(lookupValue: T): number | undefined {\r\n for (const [value, index] of this._array) {\r\n if (value === lookupValue)\r\n return index;\r\n }\r\n return undefined;\r\n }\r\n\r\n /** Returns value at specific position.\r\n *\r\n * @returns stored value or undefined.\r\n */\r\n public get(index: number): T | undefined {\r\n const { index: i, equal } = this.lowerBound(index);\r\n return equal ? this._array[i][0] : undefined;\r\n }\r\n\r\n /** Sets value at specific position. Overrides any existing value. */\r\n public set(index: number, value: T) {\r\n const { index: i, equal } = this.lowerBound(index);\r\n this._array.splice(i, equal ? 1 : 0, [value, index]);\r\n this._length = Math.max(this._length, index + 1);\r\n }\r\n\r\n /** Inserts value at specific position. Increases array length by one. */\r\n public insert(index: number, value: T) {\r\n const { index: i } = this.lowerBound(index);\r\n this._array.splice(i, 0, [value, index]);\r\n\r\n for (let j = i + 1; j < this._array.length; j++) {\r\n this._array[j][1]++;\r\n }\r\n\r\n this._length = Math.max(this._length + 1, index + 1);\r\n }\r\n\r\n /** Removes value at specified index and reduces array length by one. */\r\n public remove(index: number): void {\r\n if (index >= this._length) {\r\n return;\r\n }\r\n\r\n const { index: i, equal } = this.lowerBound(index);\r\n this._array.splice(i, equal ? 1 : 0);\r\n\r\n for (let j = i; j < this._array.length; j++) {\r\n this._array[j][1]--;\r\n }\r\n\r\n this._length = Math.max(0, this._length - 1);\r\n }\r\n\r\n /**\r\n * Iterates values that are stored in the array\r\n * @returns `[value, index]` tuples.\r\n */\r\n public iterateValues(): IterableIterator<[T, number]> {\r\n return this._array[Symbol.iterator]();\r\n }\r\n\r\n /** Iterates the array with all intermediate `undefined` values */\r\n public [Symbol.iterator](): IterableIterator<T | undefined> {\r\n const array = this._array;\r\n const length = this._length;\r\n return (function* () {\r\n let currentIndex = 0;\r\n for (const [value, index] of array) {\r\n for (; currentIndex < index; ++currentIndex) {\r\n yield undefined;\r\n }\r\n\r\n yield value;\r\n ++currentIndex;\r\n }\r\n\r\n for (; currentIndex < length; ++currentIndex) {\r\n yield undefined;\r\n }\r\n })();\r\n }\r\n\r\n private lowerBound(index: number): {\r\n index: number; equal: boolean;\r\n } {\r\n return lowerBound(index, this._array, SparseArray.compare);\r\n }\r\n\r\n private static compare<T>(index: number, value: [T, number]): number {\r\n return compareNumbers(index, value[1]);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SparseTree.js","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/internal/SparseTree.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAOzE;;;;;GAKG;AACH,MAAM,OAAO,UAAU;IAAvB;QACS,QAAW,GAAG,IAAI,CAAC;QAElB,eAAU,GAAG,IAAI,WAAW,EAAU,CAAC;QACvC,sBAAiB,GAAwC,EAAE,CAAC;QAC5D,cAAS,GAAsB,EAAE,CAAC;IA+I5C,CAAC;IA7IQ,OAAO,CAAC,MAAc;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,cAAc,CAAC,QAA4B,EAAE,OAAe;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ;YACX,OAAO,SAAS,CAAC;QAEnB,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEM,WAAW,CAAC,QAA4B,EAAE,mBAA4B,KAAK;QAChF,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,gBAAgB,EAAE;YACtE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,IAAI,WAAW,EAAU,CAAC;SAC9D;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAEM,WAAW,CAAC,QAA4B,EAAE,QAAa,EAAE,MAAc;QAC5E,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAE,CAAC;QAC3D,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;YAC7D,IAAI,eAAe,KAAK,SAAS,EAAE;gBACjC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;aACrC;YAED,gBAAgB,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,WAAW,CAAC,QAA4B,EAAE,KAAQ,EAAE,MAAc;QACvE,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAE,CAAC;QAC3D,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;IACnC,CAAC;IAEM,SAAS,CAAC,QAA4B,EAAE,KAAa,EAAE,KAAa;;QACzE,MAAM,cAAc,GAAG,MAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,0CAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,cAAc,KAAK,SAAS,EAAE;YAChC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,cAAc,KAAK,KAAK,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;YACrC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAEtC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAE9C,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACnC;aAAM;YACL,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACpD;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,QAAQ,CACb,cAAkC,EAClC,YAAoB,EACpB,cAAkC,EAClC,WAAmB;QAEnB,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC5D,MAAM,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC;QAEzC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACtE,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC;QAElC,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,cAAc,KAAK,cAAc,IAAI,WAAW,GAAG,WAAW,EAAE;YAClE,WAAW,IAAI,CAAC,CAAC;SAClB;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAClE,MAAM,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC;QACzC,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACvD,CAAC;IAEM,cAAc,CAAC,QAA4B,EAAE,WAAmB;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAE,CAAC;QACnD,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,aAAa,EAAE,EAAE;YAChD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC7B;QAED,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAEM,WAAW,CAAC,QAA4B,EAAE,KAAsB;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,QAAQ,KAAK,SAAS;YACxB,OAAO;QAET,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;aAC7B;YAED,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;aAC7B;SACF;IACH,CAAC;IAEM,aAAa,CAAC,QAA4B,EAAE,eAAwB,IAAI;QAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,aAAa,EAAE,EAAE;gBAChD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;aAC7B;SACF;QAED,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO;SACR;QACD,IAAI,YAAY,EAAE;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SACjC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACF;KAnJS,SAAS;AAqJnB;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IAAxB;QACS,QAAW,GAAG,IAAI,CAAC;QAElB,YAAO,GAAG,CAAC,CAAC;QACZ,WAAM,GAAuB,EAAE,CAAC;IA4G1C,CAAC;IA1GC,wEAAwE;IACjE,SAAS;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,4BAA4B;IACrB,SAAS,CAAC,MAAc;QAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,WAAc;QAC5B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YACxC,IAAI,KAAK,KAAK,WAAW;gBACvB,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACI,GAAG,CAAC,KAAa;QACtB,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,qEAAqE;IAC9D,GAAG,CAAC,KAAa,EAAE,KAAQ;QAChC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,yEAAyE;IAClE,MAAM,CAAC,KAAa,EAAE,KAAQ;QACnC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACrB;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,wEAAwE;IACjE,MAAM,CAAC,KAAa;QACzB,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YACzB,OAAO;SACR;QAED,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACrB;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACI,aAAa;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,kEAAkE;IAC3D,OAlFC,SAAS,EAkFT,MAAM,CAAC,QAAQ,EAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE;gBAClC,OAAO,YAAY,GAAG,KAAK,EAAE,EAAE,YAAY,EAAE;oBAC3C,MAAM,SAAS,CAAC;iBACjB;gBAED,MAAM,KAAK,CAAC;gBACZ,EAAE,YAAY,CAAC;aAChB;YAED,OAAO,YAAY,GAAG,MAAM,EAAE,EAAE,YAAY,EAAE;gBAC5C,MAAM,SAAS,CAAC;aACjB;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAEO,UAAU,CAAC,KAAa;QAG9B,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAEO,MAAM,CAAC,OAAO,CAAI,KAAa,EAAE,KAAkB;QACzD,OAAO,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;CACF","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 { immerable } from \"immer\";\r\nimport { assert, compareNumbers, lowerBound } from \"@itwin/core-bentley\";\r\n\r\n/** @internal */\r\nexport interface Node {\r\n readonly id: string;\r\n}\r\n\r\n/**\r\n * Structure for sparse tree storage.\r\n * It uses SparseArray to store children ids for parent. This allows\r\n * having tree structure with some nodes missing in the tree branch.\r\n * @internal\r\n */\r\nexport class SparseTree<T extends Node> {\r\n public [immerable] = true;\r\n\r\n private _rootNodes = new SparseArray<string>();\r\n private _parentToChildren: Record<string, SparseArray<string>> = {};\r\n private _idToNode: Record<string, T> = {};\r\n\r\n public getNode(nodeId: string): T | undefined {\r\n return this._idToNode[nodeId];\r\n }\r\n\r\n public getChildOffset(parentId: string | undefined, childId: string): number | undefined {\r\n const children = this.getChildren(parentId);\r\n if (!children)\r\n return undefined;\r\n\r\n return children.getIndex(childId);\r\n }\r\n\r\n public getChildren(parentId: string | undefined, createIfNotExist: boolean = false): SparseArray<string> | undefined {\r\n if (parentId === undefined) {\r\n return this._rootNodes;\r\n }\r\n\r\n if (this._parentToChildren[parentId] === undefined && createIfNotExist) {\r\n this._parentToChildren[parentId] = new SparseArray<string>();\r\n }\r\n\r\n return this._parentToChildren[parentId];\r\n }\r\n\r\n public setChildren(parentId: string | undefined, children: T[], offset: number) {\r\n const existingChildren = this.getChildren(parentId, true)!;\r\n children.forEach((child, index) => {\r\n const existingChildId = existingChildren.get(offset + index);\r\n if (existingChildId !== undefined) {\r\n this.deleteSubtree(existingChildId);\r\n }\r\n\r\n existingChildren.set(offset + index, child.id);\r\n this._idToNode[child.id] = child;\r\n });\r\n }\r\n\r\n public insertChild(parentId: string | undefined, child: T, offset: number) {\r\n const existingChildren = this.getChildren(parentId, true)!;\r\n existingChildren.insert(offset, child.id);\r\n this._idToNode[child.id] = child;\r\n }\r\n\r\n public setNodeId(parentId: string | undefined, index: number, newId: string): boolean {\r\n const previousNodeId = this.getChildren(parentId)?.get(index);\r\n if (previousNodeId === undefined) {\r\n return false;\r\n }\r\n\r\n if (previousNodeId === newId) {\r\n return true;\r\n }\r\n\r\n if (this.getNode(newId) !== undefined) {\r\n return false;\r\n }\r\n\r\n this._idToNode[newId] = this._idToNode[previousNodeId];\r\n delete this._idToNode[previousNodeId];\r\n\r\n this._parentToChildren[newId] = this._parentToChildren[previousNodeId];\r\n delete this._parentToChildren[previousNodeId];\r\n\r\n if (parentId === undefined) {\r\n this._rootNodes.set(index, newId);\r\n } else {\r\n this._parentToChildren[parentId].set(index, newId);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public moveNode(\r\n sourceParentId: string | undefined,\r\n sourceNodeId: string,\r\n targetParentId: string | undefined,\r\n targetIndex: number,\r\n ): void {\r\n const sourceNodeSiblings = this.getChildren(sourceParentId);\r\n assert(sourceNodeSiblings !== undefined);\r\n\r\n const sourceIndex = this.getChildOffset(sourceParentId, sourceNodeId);\r\n assert(sourceIndex !== undefined);\r\n\r\n sourceNodeSiblings.remove(sourceIndex);\r\n if (targetParentId === sourceParentId && targetIndex > sourceIndex) {\r\n targetIndex -= 1;\r\n }\r\n\r\n const targetNodeSiblings = this.getChildren(targetParentId, true);\r\n assert(targetNodeSiblings !== undefined);\r\n targetNodeSiblings.insert(targetIndex, sourceNodeId);\r\n }\r\n\r\n public setNumChildren(parentId: string | undefined, numChildren: number) {\r\n const children = this.getChildren(parentId, true)!;\r\n for (const [childId] of children.iterateValues()) {\r\n this.deleteSubtree(childId);\r\n }\r\n\r\n children.setLength(numChildren);\r\n }\r\n\r\n public removeChild(parentId: string | undefined, child: string | number): void {\r\n const children = this.getChildren(parentId);\r\n if (children === undefined)\r\n return;\r\n\r\n if (typeof child === \"string\") {\r\n const childIndex = children.getIndex(child);\r\n if (childIndex !== undefined) {\r\n children.remove(childIndex);\r\n }\r\n\r\n this.deleteSubtree(child);\r\n } else {\r\n const childId = children.get(child);\r\n children.remove(child);\r\n if (childId !== undefined) {\r\n this.deleteSubtree(childId);\r\n }\r\n }\r\n }\r\n\r\n public deleteSubtree(parentId: string | undefined, deleteParent: boolean = true) {\r\n const children = this.getChildren(parentId);\r\n if (children !== undefined) {\r\n for (const [childId] of children.iterateValues()) {\r\n this.deleteSubtree(childId);\r\n }\r\n }\r\n\r\n if (parentId === undefined) {\r\n this._rootNodes.setLength(0);\r\n return;\r\n }\r\n if (deleteParent) {\r\n delete this._idToNode[parentId];\r\n }\r\n delete this._parentToChildren[parentId];\r\n }\r\n}\r\n\r\n/**\r\n * Structure for sparse array value storage.\r\n * The main advantage of this class over the standard javascript array is that\r\n * this class does not need to check each index when iterating values that are\r\n * stored in the array.\r\n * @public\r\n */\r\nexport class SparseArray<T> implements Iterable<T | undefined> {\r\n public [immerable] = true;\r\n\r\n private _length = 0;\r\n private _array: Array<[T, number]> = [];\r\n\r\n /** Returns length of array including intermediate 'undefined' values */\r\n public getLength(): number {\r\n return this._length;\r\n }\r\n\r\n /** Sets length of array. */\r\n public setLength(length: number) {\r\n const { index } = this.lowerBound(length);\r\n this._array.length = index;\r\n this._length = length;\r\n }\r\n\r\n /** Returns index of supplied value.\r\n *\r\n * @returns index of value or undefined if value is not found.\r\n */\r\n public getIndex(lookupValue: T): number | undefined {\r\n for (const [value, index] of this._array) {\r\n if (value === lookupValue)\r\n return index;\r\n }\r\n return undefined;\r\n }\r\n\r\n /** Returns value at specific position.\r\n *\r\n * @returns stored value or undefined.\r\n */\r\n public get(index: number): T | undefined {\r\n const { index: i, equal } = this.lowerBound(index);\r\n return equal ? this._array[i][0] : undefined;\r\n }\r\n\r\n /** Sets value at specific position. Overrides any existing value. */\r\n public set(index: number, value: T) {\r\n const { index: i, equal } = this.lowerBound(index);\r\n this._array.splice(i, equal ? 1 : 0, [value, index]);\r\n this._length = Math.max(this._length, index + 1);\r\n }\r\n\r\n /** Inserts value at specific position. Increases array length by one. */\r\n public insert(index: number, value: T) {\r\n const { index: i } = this.lowerBound(index);\r\n this._array.splice(i, 0, [value, index]);\r\n\r\n for (let j = i + 1; j < this._array.length; j++) {\r\n this._array[j][1]++;\r\n }\r\n\r\n this._length = Math.max(this._length + 1, index + 1);\r\n }\r\n\r\n /** Removes value at specified index and reduces array length by one. */\r\n public remove(index: number): void {\r\n if (index >= this._length) {\r\n return;\r\n }\r\n\r\n const { index: i, equal } = this.lowerBound(index);\r\n this._array.splice(i, equal ? 1 : 0);\r\n\r\n for (let j = i; j < this._array.length; j++) {\r\n this._array[j][1]--;\r\n }\r\n\r\n this._length = Math.max(0, this._length - 1);\r\n }\r\n\r\n /**\r\n * Iterates values that are stored in the array\r\n * @returns `[value, index]` tuples.\r\n */\r\n public iterateValues(): IterableIterator<[T, number]> {\r\n return this._array[Symbol.iterator]();\r\n }\r\n\r\n /** Iterates the array with all intermediate `undefined` values */\r\n public [Symbol.iterator](): IterableIterator<T | undefined> {\r\n const array = this._array;\r\n const length = this._length;\r\n return (function* () {\r\n let currentIndex = 0;\r\n for (const [value, index] of array) {\r\n for (; currentIndex < index; ++currentIndex) {\r\n yield undefined;\r\n }\r\n\r\n yield value;\r\n ++currentIndex;\r\n }\r\n\r\n for (; currentIndex < length; ++currentIndex) {\r\n yield undefined;\r\n }\r\n })();\r\n }\r\n\r\n private lowerBound(index: number): {\r\n index: number; equal: boolean;\r\n } {\r\n return lowerBound(index, this._array, SparseArray.compare);\r\n }\r\n\r\n private static compare<T>(index: number, value: [T, number]): number {\r\n return compareNumbers(index, value[1]);\r\n }\r\n}\r\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module Tree
|
|
3
3
|
*/
|
|
4
|
-
import { TreeNodeItem } from "../../TreeDataProvider";
|
|
5
|
-
import { Observable } from "../Observable";
|
|
6
|
-
import { CheckboxStateChange } from "../TreeEvents";
|
|
7
|
-
import { TreeModelNode } from "../TreeModel";
|
|
8
|
-
import { TreeModelSource } from "../TreeModelSource";
|
|
9
|
-
import { ITreeNodeLoader, TreeNodeLoadResult } from "../TreeNodeLoader";
|
|
4
|
+
import type { TreeNodeItem } from "../../TreeDataProvider";
|
|
5
|
+
import type { Observable } from "../Observable";
|
|
6
|
+
import type { CheckboxStateChange } from "../TreeEvents";
|
|
7
|
+
import type { TreeModelNode } from "../TreeModel";
|
|
8
|
+
import type { TreeModelSource } from "../TreeModelSource";
|
|
9
|
+
import type { ITreeNodeLoader, TreeNodeLoadResult } from "../TreeNodeLoader";
|
|
10
10
|
/**
|
|
11
11
|
* Provides basic tree manipulation implementation for various cases like
|
|
12
12
|
* expand/collapse node, modify/replace/clear selection. It is used by default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeModelMutator.d.ts","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/internal/TreeModelMutator.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"TreeModelMutator.d.ts","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/internal/TreeModelMutator.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAA4B,MAAM,cAAc,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE7E;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,iCAAiC,CAAU;gBAEvC,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,gCAAgC,EAAE,OAAO;IAMhH,IAAW,WAAW,oBAAgC;IAE/C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,kBAAkB,CAAC;IAoB1D,YAAY,CAAC,MAAM,EAAE,MAAM;IAc3B,eAAe,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE;IAkB9E,gBAAgB,CAAC,aAAa,EAAE,YAAY,EAAE;IAe9C,kBAAkB;IAQlB,iBAAiB,CAAC,YAAY,EAAE,mBAAmB,EAAE;IAWrD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI;IAYhG,OAAO,CAAC,qBAAqB;CAkB9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeModelMutator.js","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/internal/TreeModelMutator.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 { EMPTY } from \"rxjs/internal/observable/empty\";\r\nimport { TreeNodeItem } from \"../../TreeDataProvider\";\r\nimport { Observable } from \"../Observable\";\r\nimport { CheckboxStateChange } from \"../TreeEvents\";\r\nimport { TreeModelNode, TreeModelNodeEditingInfo } from \"../TreeModel\";\r\nimport { TreeModelSource } from \"../TreeModelSource\";\r\nimport { ITreeNodeLoader, TreeNodeLoadResult } from \"../TreeNodeLoader\";\r\n\r\n/**\r\n * Provides basic tree manipulation implementation for various cases like\r\n * expand/collapse node, modify/replace/clear selection. It is used by default\r\n * tree event handler to modify model when events occur.\r\n * @internal\r\n */\r\nexport class TreeModelMutator {\r\n private _modelSource: TreeModelSource;\r\n private _nodeLoader: ITreeNodeLoader;\r\n private _collapsedChildrenDisposalEnabled: boolean;\r\n\r\n constructor(modelSource: TreeModelSource, nodeLoader: ITreeNodeLoader, collapsedChildrenDisposalEnabled: boolean) {\r\n this._modelSource = modelSource;\r\n this._nodeLoader = nodeLoader;\r\n this._collapsedChildrenDisposalEnabled = collapsedChildrenDisposalEnabled;\r\n }\r\n\r\n public get modelSource() { return this._modelSource; }\r\n\r\n public expandNode(nodeId: string): Observable<TreeNodeLoadResult> {\r\n let needToLoadChildren = false;\r\n this._modelSource.modifyModel((model) => {\r\n const node = model.getNode(nodeId);\r\n if (node === undefined || node.isExpanded) {\r\n return;\r\n }\r\n\r\n needToLoadChildren = node.numChildren === undefined;\r\n\r\n node.isExpanded = true;\r\n if (needToLoadChildren) {\r\n node.isLoading = true;\r\n }\r\n });\r\n\r\n const expandedNode = this._modelSource.getModel().getNode(nodeId);\r\n return needToLoadChildren && expandedNode ? this._nodeLoader.loadNode(expandedNode, 0) : EMPTY;\r\n }\r\n\r\n public collapseNode(nodeId: string) {\r\n this._modelSource.modifyModel((model) => {\r\n const node = model.getNode(nodeId);\r\n if (node === undefined || !node.isExpanded) {\r\n return;\r\n }\r\n\r\n node.isExpanded = false;\r\n if (this._collapsedChildrenDisposalEnabled) {\r\n model.clearChildren(node.id);\r\n }\r\n });\r\n }\r\n\r\n public modifySelection(nodesToSelect: TreeNodeItem[], nodesToDeselect: TreeNodeItem[]) {\r\n this._modelSource.modifyModel((model) => {\r\n for (const nodeItem of nodesToSelect) {\r\n const node = model.getNode(nodeItem.id);\r\n if (node !== undefined) {\r\n node.isSelected = true;\r\n }\r\n }\r\n\r\n for (const nodeItem of nodesToDeselect) {\r\n const node = model.getNode(nodeItem.id);\r\n if (node !== undefined) {\r\n node.isSelected = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public replaceSelection(nodesToSelect: TreeNodeItem[]) {\r\n this._modelSource.modifyModel((model) => {\r\n for (const node of model.iterateTreeModelNodes()) {\r\n node.isSelected = false;\r\n }\r\n\r\n for (const nodeItem of nodesToSelect) {\r\n const node = model.getNode(nodeItem.id);\r\n if (node !== undefined) {\r\n node.isSelected = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public clearNodeSelection() {\r\n this._modelSource.modifyModel((model) => {\r\n for (const node of model.iterateTreeModelNodes()) {\r\n node.isSelected = false;\r\n }\r\n });\r\n }\r\n\r\n public setCheckboxStates(stateChanges: CheckboxStateChange[]) {\r\n this._modelSource.modifyModel((model) => {\r\n for (const { nodeItem, newState } of stateChanges) {\r\n const node = model.getNode(nodeItem.id);\r\n if (node !== undefined) {\r\n node.checkbox.state = newState;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public activateEditing(nodeId: string, onCommit: (node: TreeModelNode, newValue: string) => void) {\r\n this._modelSource.modifyModel((model) => {\r\n const node = model.getNode(nodeId);\r\n if (!node)\r\n return;\r\n\r\n if (node.item.isEditable) {\r\n node.editingInfo = this.createNodeEditingInfo(nodeId, onCommit);\r\n }\r\n });\r\n }\r\n\r\n private createNodeEditingInfo(nodeId: string, onCommit: (node: TreeModelNode, newValue: string) => void): TreeModelNodeEditingInfo {\r\n const closeEditing = () => {\r\n this._modelSource.modifyModel((model) => {\r\n const node = model.getNode(nodeId);\r\n // istanbul ignore if\r\n if (!node)\r\n return;\r\n node.editingInfo = undefined;\r\n });\r\n };\r\n\r\n const onEditCommitted = (node: TreeModelNode, newValue: string) => {\r\n onCommit(node, newValue);\r\n closeEditing();\r\n };\r\n\r\n return { onCommit: onEditCommitted, onCancel: closeEditing };\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"TreeModelMutator.js","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/internal/TreeModelMutator.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 { EMPTY } from \"rxjs/internal/observable/empty\";\r\nimport type { TreeNodeItem } from \"../../TreeDataProvider\";\r\nimport type { Observable } from \"../Observable\";\r\nimport type { CheckboxStateChange } from \"../TreeEvents\";\r\nimport type { TreeModelNode, TreeModelNodeEditingInfo } from \"../TreeModel\";\r\nimport type { TreeModelSource } from \"../TreeModelSource\";\r\nimport type { ITreeNodeLoader, TreeNodeLoadResult } from \"../TreeNodeLoader\";\r\n\r\n/**\r\n * Provides basic tree manipulation implementation for various cases like\r\n * expand/collapse node, modify/replace/clear selection. It is used by default\r\n * tree event handler to modify model when events occur.\r\n * @internal\r\n */\r\nexport class TreeModelMutator {\r\n private _modelSource: TreeModelSource;\r\n private _nodeLoader: ITreeNodeLoader;\r\n private _collapsedChildrenDisposalEnabled: boolean;\r\n\r\n constructor(modelSource: TreeModelSource, nodeLoader: ITreeNodeLoader, collapsedChildrenDisposalEnabled: boolean) {\r\n this._modelSource = modelSource;\r\n this._nodeLoader = nodeLoader;\r\n this._collapsedChildrenDisposalEnabled = collapsedChildrenDisposalEnabled;\r\n }\r\n\r\n public get modelSource() { return this._modelSource; }\r\n\r\n public expandNode(nodeId: string): Observable<TreeNodeLoadResult> {\r\n let needToLoadChildren = false;\r\n this._modelSource.modifyModel((model) => {\r\n const node = model.getNode(nodeId);\r\n if (node === undefined || node.isExpanded) {\r\n return;\r\n }\r\n\r\n needToLoadChildren = node.numChildren === undefined;\r\n\r\n node.isExpanded = true;\r\n if (needToLoadChildren) {\r\n node.isLoading = true;\r\n }\r\n });\r\n\r\n const expandedNode = this._modelSource.getModel().getNode(nodeId);\r\n return needToLoadChildren && expandedNode ? this._nodeLoader.loadNode(expandedNode, 0) : EMPTY;\r\n }\r\n\r\n public collapseNode(nodeId: string) {\r\n this._modelSource.modifyModel((model) => {\r\n const node = model.getNode(nodeId);\r\n if (node === undefined || !node.isExpanded) {\r\n return;\r\n }\r\n\r\n node.isExpanded = false;\r\n if (this._collapsedChildrenDisposalEnabled) {\r\n model.clearChildren(node.id);\r\n }\r\n });\r\n }\r\n\r\n public modifySelection(nodesToSelect: TreeNodeItem[], nodesToDeselect: TreeNodeItem[]) {\r\n this._modelSource.modifyModel((model) => {\r\n for (const nodeItem of nodesToSelect) {\r\n const node = model.getNode(nodeItem.id);\r\n if (node !== undefined) {\r\n node.isSelected = true;\r\n }\r\n }\r\n\r\n for (const nodeItem of nodesToDeselect) {\r\n const node = model.getNode(nodeItem.id);\r\n if (node !== undefined) {\r\n node.isSelected = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public replaceSelection(nodesToSelect: TreeNodeItem[]) {\r\n this._modelSource.modifyModel((model) => {\r\n for (const node of model.iterateTreeModelNodes()) {\r\n node.isSelected = false;\r\n }\r\n\r\n for (const nodeItem of nodesToSelect) {\r\n const node = model.getNode(nodeItem.id);\r\n if (node !== undefined) {\r\n node.isSelected = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public clearNodeSelection() {\r\n this._modelSource.modifyModel((model) => {\r\n for (const node of model.iterateTreeModelNodes()) {\r\n node.isSelected = false;\r\n }\r\n });\r\n }\r\n\r\n public setCheckboxStates(stateChanges: CheckboxStateChange[]) {\r\n this._modelSource.modifyModel((model) => {\r\n for (const { nodeItem, newState } of stateChanges) {\r\n const node = model.getNode(nodeItem.id);\r\n if (node !== undefined) {\r\n node.checkbox.state = newState;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public activateEditing(nodeId: string, onCommit: (node: TreeModelNode, newValue: string) => void) {\r\n this._modelSource.modifyModel((model) => {\r\n const node = model.getNode(nodeId);\r\n if (!node)\r\n return;\r\n\r\n if (node.item.isEditable) {\r\n node.editingInfo = this.createNodeEditingInfo(nodeId, onCommit);\r\n }\r\n });\r\n }\r\n\r\n private createNodeEditingInfo(nodeId: string, onCommit: (node: TreeModelNode, newValue: string) => void): TreeModelNodeEditingInfo {\r\n const closeEditing = () => {\r\n this._modelSource.modifyModel((model) => {\r\n const node = model.getNode(nodeId);\r\n // istanbul ignore if\r\n if (!node)\r\n return;\r\n node.editingInfo = undefined;\r\n });\r\n };\r\n\r\n const onEditCommitted = (node: TreeModelNode, newValue: string) => {\r\n onCommit(node, newValue);\r\n closeEditing();\r\n };\r\n\r\n return { onCommit: onEditCommitted, onCancel: closeEditing };\r\n }\r\n}\r\n"]}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
/// <reference types="react" />
|
|
5
5
|
import { BeUiEvent } from "@itwin/core-bentley";
|
|
6
|
-
import { SelectionMode } from "../../../common/selection/SelectionModes";
|
|
7
|
-
import { Observable } from "../Observable";
|
|
8
|
-
import { TreeActions } from "../TreeActions";
|
|
9
|
-
import { VisibleTreeNodes } from "../TreeModel";
|
|
6
|
+
import type { SelectionMode } from "../../../common/selection/SelectionModes";
|
|
7
|
+
import type { Observable } from "../Observable";
|
|
8
|
+
import type { TreeActions } from "../TreeActions";
|
|
9
|
+
import type { VisibleTreeNodes } from "../TreeModel";
|
|
10
10
|
/** @internal */
|
|
11
11
|
export interface SelectionReplacementEvent {
|
|
12
12
|
selectedNodeIds: IndividualSelection | RangeSelection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeSelectionManager.d.ts","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/internal/TreeSelectionManager.ts"],"names":[],"mappings":"AAIA;;GAEG;;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"TreeSelectionManager.d.ts","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/internal/TreeSelectionManager.ts"],"names":[],"mappings":"AAIA;;GAEG;;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIpE,gBAAgB;AAChB,MAAM,WAAW,yBAAyB;IACxC,eAAe,EAAE,mBAAmB,GAAG,cAAc,CAAC;CACvD;AAED,gBAAgB;AAChB,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,mBAAmB,GAAG,cAAc,CAAC;IACpD,eAAe,EAAE,mBAAmB,CAAC;CACtC;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,UAAU,CAAC,0BAA0B,CAAC,CAAC;CAC1D;AAED,gBAAgB;AAChB,MAAM,MAAM,mBAAmB,GAAG,MAAM,EAAE,CAAC;AAE3C,gBAAgB;AAChB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,GAAG,GAAG,SAAS,IAAI,cAAc,CAE5E;AAED,gBAAgB;AAChB,qBAAa,oBAAqB,YAAW,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;IACrH,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,uBAAuB,CAAC,CAAsC;IACtE,OAAO,CAAC,aAAa,CAA+C;IAEpE,OAAO,CAAC,gBAAgB,CAAuC;IAExD,kBAAkB,wCAA+C;IACjE,mBAAmB,uCAA8C;IACjE,eAAe,qCAA4C;gBAGhE,aAAa,EAAE,aAAa,EAC5B,eAAe,CAAC,EAAE,MAAM,gBAAgB;IA8D1C,OAAO,CAAC,qBAAqB;IAKtB,eAAe,CAAC,YAAY,EAAE,CAAC,MAAM,gBAAgB,CAAC,GAAG,SAAS;IAIlE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU;IAKrD,eAAe,CAAC,MAAM,EAAE,MAAM;IAuB9B,eAAe,CAAC,MAAM,EAAE,MAAM;IAIrC,OAAO,CAAC,uBAAuB;IAoCxB,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAIrE,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAI1E,OAAO,CAAC,gBAAgB,CAiFtB;CACH"}
|
|
@@ -237,11 +237,13 @@ class ItemHandler {
|
|
|
237
237
|
deselect() { }
|
|
238
238
|
// eslint-disable-next-line @itwin/prefer-get
|
|
239
239
|
isSelected() {
|
|
240
|
+
var _a;
|
|
240
241
|
// istanbul ignore next
|
|
241
|
-
return !!this._node
|
|
242
|
+
return !!((_a = this._node) === null || _a === void 0 ? void 0 : _a.isSelected);
|
|
242
243
|
}
|
|
243
244
|
item() {
|
|
244
|
-
|
|
245
|
+
var _a, _b;
|
|
246
|
+
return (_b = (_a = this._node) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : "";
|
|
245
247
|
}
|
|
246
248
|
}
|
|
247
249
|
//# sourceMappingURL=TreeSelectionManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeSelectionManager.js","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/internal/TreeSelectionManager.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAyB,gBAAgB,EAA0B,MAAM,4CAA4C,CAAC;AAI7H,OAAO,EAAE,eAAe,EAAmC,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA2BxF,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAC,SAAc;IAC7C,OAAO,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC;AACjG,CAAC;AAED,gBAAgB;AAChB,MAAM,OAAO,oBAAoB;IAW/B,YACE,aAA4B,EAC5B,eAAwC;QANnC,uBAAkB,GAAG,IAAI,SAAS,EAA8B,CAAC;QACjE,wBAAmB,GAAG,IAAI,SAAS,EAA6B,CAAC;QACjE,oBAAe,GAAG,IAAI,SAAS,EAA2B,CAAC;QAuJ1D,qBAAgB,GAAG,CAAC,CAAsB,EAAE,OAAoB,EAAE,SAAkB,EAAE,EAAE;YAC9F,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBAC1B,uBAAuB;gBACvB,IAAI,CAAC,IAAI,CAAC,gBAAgB;oBACxB,OAAO;gBAET,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;gBAE7D,MAAM,YAAY,GAAG,CAAC,IAAmB,EAAW,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC;gBACjG,MAAM,SAAS,GAAG,CAAC,IAAmB,EAAW,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC;gBAEnF,uBAAuB;gBACvB,IAAI,IAAI,CAAC,gBAAgB,IAAI,qBAAqB,CAAC,eAAe,CAAC,EAAE;oBACnE,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBAClF,uBAAuB;oBACvB,IAAI,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC;wBAC3C,OAAO;iBACV;gBAED,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAE,EAAE;oBACjD,uBAAuB;oBACvB,IAAI,IAAI,CAAC,gBAAgB,EAAE;wBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,CAAC;wBACxE,uBAAuB;wBACvB,IAAI,IAAI,EAAE;4BACR,uBAAuB;4BACvB,IAAI,SAAS,CAAC,IAAI,CAAC;gCACjB,OAAO;4BAET,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC/G,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;yBACtC;qBACF;gBACH,CAAC,CAAC;gBACF,MAAM,0BAA0B,GAAG,CAAC,MAAc,EAAE,EAAE;oBACpD,uBAAuB;oBACvB,IAAI,IAAI,CAAC,gBAAgB,IAAI,qBAAqB,CAAC,eAAe,CAAC,EAAE;wBACnE,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;wBACzE,uBAAuB;wBACvB,IAAI,IAAI,EAAE;4BACR,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;gCACtB,IAAI,CAAC,IAAI,CAAC,UAAU;oCAClB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;oCAEhC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;6BACpC;iCAAM;gCACL,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;6BACxC;yBACF;qBACF;gBACH,CAAC,CAAC;gBACF,MAAM,uBAAuB,GAAG,CAAC,OAAgB,EAAE,EAAE;oBACnD,uBAAuB;oBACvB,IAAI,IAAI,CAAC,gBAAgB,IAAI,qBAAqB,CAAC,eAAe,CAAC,EAAE;wBACnE,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;wBACzE,uBAAuB;wBACvB,IAAI,IAAI,EAAE;4BACR,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;gCACtB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU;oCAC7B,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qCAC7B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU;oCAClC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;6BACpC;yBACF;qBACF;gBACH,CAAC,CAAC;gBAEF,uBAAuB;gBACvB,IAAI,qBAAqB,CAAC,eAAe,CAAC,EAAE;oBAC1C,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAAC;oBAC9G,qBAAqB,CAAC,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;oBACzD,qBAAqB,CAAC,wBAAwB,GAAG,uBAAuB,CAAC;oBACzE,qBAAqB,CAAC,SAAS,GAAG,KAAK,CAAC;oBACxC,qBAAqB,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAE,CAAC;oBAExE,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;oBACtE,SAAS,CAAC,CAAC;wBACT,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;wBACpD,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;iBACpD;aACF;QACH,CAAC,CAAC;QAlOA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAExC,MAAM,eAAe,GAAG,CAAC,UAAuB,EAAE,WAAoB,EAAE,EAAE;YACxE,+DAA+D;YAC/D,iEAAiE;YACjE,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;gBACxC,IAAI,WAAW,EAAE;oBACf,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;wBAC5B,eAAe,EAAE,UAAiC;qBACnD,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;wBAC3B,aAAa,EAAE,UAAiC;wBAChD,eAAe,EAAE,EAAE;qBACpB,CAAC,CAAC;iBACJ;aACF;iBAAM;gBACL,IAAI,WAAW,EAAE;oBACf,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;wBAC5B,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;qBAC/B,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;wBAC3B,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;wBAC5B,eAAe,EAAE,EAAE;qBACpB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,CAAC,YAAyB,EAAE,EAAE;YACtD,2EAA2E;YAC3E,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC3B,aAAa,EAAE,EAAE;gBACjB,eAAe,EAAE,YAAmC;aACrD,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,aAAa,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;QAEjG,4DAA4D;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC;QACnB,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE;YACjC,GAAG,CAAC,OAAO,EAAE,IAAI;gBACf,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACrB,OAAO,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAE,CAAC;iBAC1F;gBAED,uBAAuB;gBACvB,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS;oBACtC,OAAO,SAAS,CAAC;gBAEnB,MAAM,KAAK,GAAW,CAAE,IAAe,CAAC;gBACxC,MAAM,IAAI,GAAG,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC1E,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;SACF,CAA0C,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAEO,qBAAqB,CAAC,KAAmC,EAAE,KAAa;QAC9E,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC;QACvG,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,CAAC;IAEM,eAAe,CAAC,YAAkD;QACvE,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;IACvC,CAAC;IAEM,aAAa,CAAC,MAAc,EAAE,KAAuB;QAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9G,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAEM,eAAe,CAAC,MAAc;QACnC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC7G,MAAM,CAAC,gBAAgB,CACrB,SAAS,EACT,GAAG,EAAE;YACH,0BAA0B;YAC1B,IAAI,IAAI,CAAC,uBAAuB,EAAE;gBAChC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;gBAC5C,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC;gBACxC,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;aAC1C;QACH,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;QACF,IAAI,CAAC,uBAAuB,GAAG,IAAI,OAAO,EAAE,CAAC;QAC7C,IAAI,CAAC,uBAAuB;aACzB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,uBAAwB,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,uBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,eAAe,CAAC,MAAc;QACnC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAEO,uBAAuB,CAC7B,MAAc;QAEd,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,MAAM,qBAAqB,GAAqC;YAC9D,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAe,EAAE,EAAE,EAAE,KAAe,EAAE,CAAC;YACjF,eAAe,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE;gBAC5C,uEAAuE;gBACvE,MAAM,eAAe,GAAG,UAAsB,CAAC;gBAC/C,MAAM,iBAAiB,GAAG,YAAwB,CAAC;gBACnD,IAAI,CAAC,uBAAwB,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC7G,CAAC;YACD,WAAW,EAAE,GAAG,EAAE;gBAChB,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK;SAC5C,CAAC;QAEF,MAAM,sBAAsB,GAAmC;YAC7D,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC;YACpB,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC;YACjB,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC;YACnB,UAAU,EAAE,GAAG,EAAE;gBACf,IAAI,aAAa,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;oBACxD,OAAO,KAAK,CAAC;iBACd;gBAED,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChE,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC;YAC/C,CAAC;YACD,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM;SACnB,CAAC;QAEF,OAAO,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;IACzD,CAAC;IAEM,aAAa,CAAC,KAA0B,EAAE,OAAoB;QACnE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,WAAW,CAAC,KAA0B,EAAE,OAAoB;QACjE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;CAoFF;AAID,SAAS,qBAAqB,CAAC,SAAgC;IAC7D,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC;AACzC,CAAC;AAED,MAAM,WAAW;IAGf,YAAY,IAA+B;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,gCAAgC;IACzB,SAAS,KAAK,CAAC;IAEtB,gCAAgC;IACzB,MAAM,KAAK,CAAC;IAEnB,gCAAgC;IACzB,QAAQ,KAAK,CAAC;IAErB,6CAA6C;IACtC,UAAU;QACf,uBAAuB;QACvB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC;IAClC,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;CACF","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 { take } from \"rxjs/internal/operators/take\";\r\nimport { Subject } from \"rxjs/internal/Subject\";\r\nimport { BeUiEvent } from \"@itwin/core-bentley\";\r\nimport { MultiSelectionHandler, SelectionHandler, SingleSelectionHandler } from \"../../../common/selection/SelectionHandler\";\r\nimport { SelectionMode } from \"../../../common/selection/SelectionModes\";\r\nimport { Observable } from \"../Observable\";\r\nimport { TreeActions } from \"../TreeActions\";\r\nimport { isTreeModelNode, TreeModelNode, VisibleTreeNodes } from \"../TreeModel\";\r\nimport { isNavigationKey, ItemKeyboardNavigator, Orientation } from \"@itwin/core-react\";\r\n\r\n/** @internal */\r\nexport interface SelectionReplacementEvent {\r\n selectedNodeIds: IndividualSelection | RangeSelection;\r\n}\r\n\r\n/** @internal */\r\nexport interface SelectionModificationEvent {\r\n selectedNodes: IndividualSelection | RangeSelection;\r\n deselectedNodes: IndividualSelection;\r\n}\r\n\r\n/** @internal */\r\nexport interface DragSelectionStartEvent {\r\n selectionChanges: Observable<SelectionModificationEvent>;\r\n}\r\n\r\n/** @internal */\r\nexport type IndividualSelection = string[];\r\n\r\n/** @internal */\r\nexport interface RangeSelection {\r\n from: string;\r\n to: string;\r\n}\r\n\r\n/** @internal */\r\nexport function isRangeSelection(selection: any): selection is RangeSelection {\r\n return selection && typeof (selection.from) === \"string\" && typeof (selection.to) === \"string\";\r\n}\r\n\r\n/** @internal */\r\nexport class TreeSelectionManager implements Pick<TreeActions, \"onNodeClicked\" | \"onNodeMouseDown\" | \"onNodeMouseMove\"> {\r\n private _selectionHandler: SelectionHandler<Selection>;\r\n private _dragSelectionOperation?: Subject<SelectionModificationEvent>;\r\n private _itemHandlers: Array<Array<SingleSelectionHandler<string>>>;\r\n\r\n private _getVisibleNodes: (() => VisibleTreeNodes) | undefined;\r\n\r\n public onSelectionChanged = new BeUiEvent<SelectionModificationEvent>();\r\n public onSelectionReplaced = new BeUiEvent<SelectionReplacementEvent>();\r\n public onDragSelection = new BeUiEvent<DragSelectionStartEvent>();\r\n\r\n constructor(\r\n selectionMode: SelectionMode,\r\n getVisibleNodes?: () => VisibleTreeNodes,\r\n ) {\r\n this._getVisibleNodes = getVisibleNodes;\r\n\r\n const onItemsSelected = (selections: Selection[], replacement: boolean) => {\r\n // Assumes that `selections` will only contain either a list of\r\n // `IndividualSelection` items or a single `RangeSelection` item.\r\n if (isIndividualSelection(selections[0])) {\r\n if (replacement) {\r\n this.onSelectionReplaced.emit({\r\n selectedNodeIds: selections as IndividualSelection,\r\n });\r\n } else {\r\n this.onSelectionChanged.emit({\r\n selectedNodes: selections as IndividualSelection,\r\n deselectedNodes: [],\r\n });\r\n }\r\n } else {\r\n if (replacement) {\r\n this.onSelectionReplaced.emit({\r\n selectedNodeIds: selections[0],\r\n });\r\n } else {\r\n this.onSelectionChanged.emit({\r\n selectedNodes: selections[0],\r\n deselectedNodes: [],\r\n });\r\n }\r\n }\r\n };\r\n\r\n const onItemsDeselected = (deselections: Selection[]) => {\r\n // Assumes that this will be always called with `IndividualSelection` items\r\n this.onSelectionChanged.emit({\r\n selectedNodes: [],\r\n deselectedNodes: deselections as IndividualSelection,\r\n });\r\n };\r\n\r\n this._selectionHandler = new SelectionHandler(selectionMode, onItemsSelected, onItemsDeselected);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const _this = this;\r\n const itemHandlers = new Proxy({}, {\r\n get(_target, prop) {\r\n if (prop === \"length\") {\r\n return _this._getVisibleNodes === undefined ? 0 : _this._getVisibleNodes().getNumNodes();\r\n }\r\n\r\n // istanbul ignore next\r\n if (_this._getVisibleNodes === undefined)\r\n return undefined;\r\n\r\n const index: number = +(prop as string);\r\n const node = _this.getVisibleNodeAtIndex(_this._getVisibleNodes(), index);\r\n return new ItemHandler(node);\r\n },\r\n }) as Array<SingleSelectionHandler<string>>;\r\n this._itemHandlers = [itemHandlers];\r\n }\r\n\r\n private getVisibleNodeAtIndex(nodes: VisibleTreeNodes | undefined, index: number): TreeModelNode | undefined {\r\n const foundNode = nodes !== undefined ? nodes.getAtIndex(index) : /* istanbul ignore next */ undefined;\r\n return isTreeModelNode(foundNode) ? foundNode : undefined;\r\n }\r\n\r\n public setVisibleNodes(visibleNodes: (() => VisibleTreeNodes) | undefined) {\r\n this._getVisibleNodes = visibleNodes;\r\n }\r\n\r\n public onNodeClicked(nodeId: string, event: React.MouseEvent) {\r\n const selectionFunc = this._selectionHandler.createSelectionFunction(...this.createSelectionHandlers(nodeId));\r\n selectionFunc(event.shiftKey, event.ctrlKey);\r\n }\r\n\r\n public onNodeMouseDown(nodeId: string) {\r\n this._selectionHandler.createDragAction(this.createSelectionHandlers(nodeId)[0], this._itemHandlers, nodeId);\r\n window.addEventListener(\r\n \"mouseup\",\r\n () => {\r\n /* istanbul ignore else */\r\n if (this._dragSelectionOperation) {\r\n this._selectionHandler.completeDragAction();\r\n this._dragSelectionOperation.complete();\r\n this._dragSelectionOperation = undefined;\r\n }\r\n },\r\n { once: true },\r\n );\r\n this._dragSelectionOperation = new Subject();\r\n this._dragSelectionOperation\r\n .pipe(take(1))\r\n .subscribe((value) => {\r\n this.onDragSelection.emit({ selectionChanges: this._dragSelectionOperation! });\r\n this._dragSelectionOperation!.next(value);\r\n });\r\n }\r\n\r\n public onNodeMouseMove(nodeId: string) {\r\n this._selectionHandler.updateDragAction(nodeId);\r\n }\r\n\r\n private createSelectionHandlers(\r\n nodeId: string,\r\n ): [MultiSelectionHandler<Selection>, SingleSelectionHandler<string>] {\r\n let deselectedAll = false;\r\n const multiSelectionHandler: MultiSelectionHandler<Selection> = {\r\n selectBetween: (item1, item2) => [{ from: item1 as string, to: item2 as string }],\r\n updateSelection: (selections, deselections) => {\r\n // Assumes `updateSelection` will never be called with selection ranges\r\n const selectedNodeIds = selections as string[];\r\n const deselectedNodeIds = deselections as string[];\r\n this._dragSelectionOperation!.next({ selectedNodes: selectedNodeIds, deselectedNodes: deselectedNodeIds });\r\n },\r\n deselectAll: () => {\r\n deselectedAll = true;\r\n },\r\n areEqual: (item1, item2) => item1 === item2,\r\n };\r\n\r\n const singleSelectionHandler: SingleSelectionHandler<string> = {\r\n preselect: () => { },\r\n select: () => { },\r\n deselect: () => { },\r\n isSelected: () => {\r\n if (deselectedAll || this._getVisibleNodes === undefined) {\r\n return false;\r\n }\r\n\r\n const node = this._getVisibleNodes().getModel().getNode(nodeId);\r\n return node !== undefined && node.isSelected;\r\n },\r\n item: () => nodeId,\r\n };\r\n\r\n return [multiSelectionHandler, singleSelectionHandler];\r\n }\r\n\r\n public onTreeKeyDown(event: React.KeyboardEvent, actions: TreeActions): void {\r\n this._onKeyboardEvent(event, actions, true);\r\n }\r\n\r\n public onTreeKeyUp(event: React.KeyboardEvent, actions: TreeActions): void {\r\n this._onKeyboardEvent(event, actions, false);\r\n }\r\n\r\n private _onKeyboardEvent = (e: React.KeyboardEvent, actions: TreeActions, isKeyDown: boolean) => {\r\n if (isNavigationKey(e.key)) {\r\n // istanbul ignore next\r\n if (!this._getVisibleNodes)\r\n return;\r\n\r\n const processedNodeId = this._selectionHandler.processedItem;\r\n\r\n const isExpandable = (node: TreeModelNode): boolean => !node.isLoading && node.numChildren !== 0;\r\n const isEditing = (node: TreeModelNode): boolean => node.editingInfo !== undefined;\r\n\r\n // istanbul ignore else\r\n if (this._getVisibleNodes && isIndividualSelection(processedNodeId)) {\r\n const processedNode = this._getVisibleNodes().getModel().getNode(processedNodeId);\r\n // istanbul ignore next\r\n if (processedNode && isEditing(processedNode))\r\n return;\r\n }\r\n\r\n const handleKeyboardSelectItem = (index: number) => {\r\n // istanbul ignore else\r\n if (this._getVisibleNodes) {\r\n const node = this.getVisibleNodeAtIndex(this._getVisibleNodes(), index);\r\n // istanbul ignore else\r\n if (node) {\r\n // istanbul ignore next\r\n if (isEditing(node))\r\n return;\r\n\r\n const selectionFunc = this._selectionHandler.createSelectionFunction(...this.createSelectionHandlers(node.id));\r\n selectionFunc(e.shiftKey, e.ctrlKey);\r\n }\r\n }\r\n };\r\n const handleKeyboardActivateItem = (_index: number) => {\r\n // istanbul ignore else\r\n if (this._getVisibleNodes && isIndividualSelection(processedNodeId)) {\r\n const node = this._getVisibleNodes().getModel().getNode(processedNodeId);\r\n // istanbul ignore else\r\n if (node) {\r\n if (isExpandable(node)) {\r\n if (!node.isExpanded)\r\n actions.onNodeExpanded(node.id);\r\n else\r\n actions.onNodeCollapsed(node.id);\r\n } else {\r\n actions.onNodeEditorActivated(node.id);\r\n }\r\n }\r\n }\r\n };\r\n const handleCrossAxisArrowKey = (forward: boolean) => {\r\n // istanbul ignore else\r\n if (this._getVisibleNodes && isIndividualSelection(processedNodeId)) {\r\n const node = this._getVisibleNodes().getModel().getNode(processedNodeId);\r\n // istanbul ignore else\r\n if (node) {\r\n if (isExpandable(node)) {\r\n if (forward && !node.isExpanded)\r\n actions.onNodeExpanded(node.id);\r\n else if (!forward && node.isExpanded)\r\n actions.onNodeCollapsed(node.id);\r\n }\r\n }\r\n }\r\n };\r\n\r\n // istanbul ignore else\r\n if (isIndividualSelection(processedNodeId)) {\r\n const itemKeyboardNavigator = new ItemKeyboardNavigator(handleKeyboardSelectItem, handleKeyboardActivateItem);\r\n itemKeyboardNavigator.orientation = Orientation.Vertical;\r\n itemKeyboardNavigator.crossAxisArrowKeyHandler = handleCrossAxisArrowKey;\r\n itemKeyboardNavigator.allowWrap = false;\r\n itemKeyboardNavigator.itemCount = this._getVisibleNodes().getNumNodes();\r\n\r\n const index = this._getVisibleNodes().getIndexOfNode(processedNodeId);\r\n isKeyDown ?\r\n itemKeyboardNavigator.handleKeyDownEvent(e, index) :\r\n itemKeyboardNavigator.handleKeyUpEvent(e, index);\r\n }\r\n }\r\n };\r\n}\r\n\r\ntype Selection = string | RangeSelection;\r\n\r\nfunction isIndividualSelection(selection: Selection | undefined): selection is string {\r\n return typeof (selection) === \"string\";\r\n}\r\n\r\nclass ItemHandler implements SingleSelectionHandler<string> {\r\n private _node: TreeModelNode | undefined;\r\n\r\n constructor(node: TreeModelNode | undefined) {\r\n this._node = node;\r\n }\r\n\r\n /* istanbul ignore next: noop */\r\n public preselect() { }\r\n\r\n /* istanbul ignore next: noop */\r\n public select() { }\r\n\r\n /* istanbul ignore next: noop */\r\n public deselect() { }\r\n\r\n // eslint-disable-next-line @itwin/prefer-get\r\n public isSelected(): boolean {\r\n // istanbul ignore next\r\n return !!this._node?.isSelected;\r\n }\r\n\r\n public item(): string {\r\n return this._node?.id ?? \"\";\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"TreeSelectionManager.js","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/internal/TreeSelectionManager.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 { take } from \"rxjs/internal/operators/take\";\r\nimport { Subject } from \"rxjs/internal/Subject\";\r\nimport { BeUiEvent } from \"@itwin/core-bentley\";\r\nimport type { MultiSelectionHandler, SingleSelectionHandler } from \"../../../common/selection/SelectionHandler\";\r\nimport { SelectionHandler } from \"../../../common/selection/SelectionHandler\";\r\nimport type { SelectionMode } from \"../../../common/selection/SelectionModes\";\r\nimport type { Observable } from \"../Observable\";\r\nimport type { TreeActions } from \"../TreeActions\";\r\nimport type { TreeModelNode, VisibleTreeNodes } from \"../TreeModel\";\r\nimport { isTreeModelNode } from \"../TreeModel\";\r\nimport { isNavigationKey, ItemKeyboardNavigator, Orientation } from \"@itwin/core-react\";\r\n\r\n/** @internal */\r\nexport interface SelectionReplacementEvent {\r\n selectedNodeIds: IndividualSelection | RangeSelection;\r\n}\r\n\r\n/** @internal */\r\nexport interface SelectionModificationEvent {\r\n selectedNodes: IndividualSelection | RangeSelection;\r\n deselectedNodes: IndividualSelection;\r\n}\r\n\r\n/** @internal */\r\nexport interface DragSelectionStartEvent {\r\n selectionChanges: Observable<SelectionModificationEvent>;\r\n}\r\n\r\n/** @internal */\r\nexport type IndividualSelection = string[];\r\n\r\n/** @internal */\r\nexport interface RangeSelection {\r\n from: string;\r\n to: string;\r\n}\r\n\r\n/** @internal */\r\nexport function isRangeSelection(selection: any): selection is RangeSelection {\r\n return selection && typeof (selection.from) === \"string\" && typeof (selection.to) === \"string\";\r\n}\r\n\r\n/** @internal */\r\nexport class TreeSelectionManager implements Pick<TreeActions, \"onNodeClicked\" | \"onNodeMouseDown\" | \"onNodeMouseMove\"> {\r\n private _selectionHandler: SelectionHandler<Selection>;\r\n private _dragSelectionOperation?: Subject<SelectionModificationEvent>;\r\n private _itemHandlers: Array<Array<SingleSelectionHandler<string>>>;\r\n\r\n private _getVisibleNodes: (() => VisibleTreeNodes) | undefined;\r\n\r\n public onSelectionChanged = new BeUiEvent<SelectionModificationEvent>();\r\n public onSelectionReplaced = new BeUiEvent<SelectionReplacementEvent>();\r\n public onDragSelection = new BeUiEvent<DragSelectionStartEvent>();\r\n\r\n constructor(\r\n selectionMode: SelectionMode,\r\n getVisibleNodes?: () => VisibleTreeNodes,\r\n ) {\r\n this._getVisibleNodes = getVisibleNodes;\r\n\r\n const onItemsSelected = (selections: Selection[], replacement: boolean) => {\r\n // Assumes that `selections` will only contain either a list of\r\n // `IndividualSelection` items or a single `RangeSelection` item.\r\n if (isIndividualSelection(selections[0])) {\r\n if (replacement) {\r\n this.onSelectionReplaced.emit({\r\n selectedNodeIds: selections as IndividualSelection,\r\n });\r\n } else {\r\n this.onSelectionChanged.emit({\r\n selectedNodes: selections as IndividualSelection,\r\n deselectedNodes: [],\r\n });\r\n }\r\n } else {\r\n if (replacement) {\r\n this.onSelectionReplaced.emit({\r\n selectedNodeIds: selections[0],\r\n });\r\n } else {\r\n this.onSelectionChanged.emit({\r\n selectedNodes: selections[0],\r\n deselectedNodes: [],\r\n });\r\n }\r\n }\r\n };\r\n\r\n const onItemsDeselected = (deselections: Selection[]) => {\r\n // Assumes that this will be always called with `IndividualSelection` items\r\n this.onSelectionChanged.emit({\r\n selectedNodes: [],\r\n deselectedNodes: deselections as IndividualSelection,\r\n });\r\n };\r\n\r\n this._selectionHandler = new SelectionHandler(selectionMode, onItemsSelected, onItemsDeselected);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const _this = this;\r\n const itemHandlers = new Proxy({}, {\r\n get(_target, prop) {\r\n if (prop === \"length\") {\r\n return _this._getVisibleNodes === undefined ? 0 : _this._getVisibleNodes().getNumNodes();\r\n }\r\n\r\n // istanbul ignore next\r\n if (_this._getVisibleNodes === undefined)\r\n return undefined;\r\n\r\n const index: number = +(prop as string);\r\n const node = _this.getVisibleNodeAtIndex(_this._getVisibleNodes(), index);\r\n return new ItemHandler(node);\r\n },\r\n }) as Array<SingleSelectionHandler<string>>;\r\n this._itemHandlers = [itemHandlers];\r\n }\r\n\r\n private getVisibleNodeAtIndex(nodes: VisibleTreeNodes | undefined, index: number): TreeModelNode | undefined {\r\n const foundNode = nodes !== undefined ? nodes.getAtIndex(index) : /* istanbul ignore next */ undefined;\r\n return isTreeModelNode(foundNode) ? foundNode : undefined;\r\n }\r\n\r\n public setVisibleNodes(visibleNodes: (() => VisibleTreeNodes) | undefined) {\r\n this._getVisibleNodes = visibleNodes;\r\n }\r\n\r\n public onNodeClicked(nodeId: string, event: React.MouseEvent) {\r\n const selectionFunc = this._selectionHandler.createSelectionFunction(...this.createSelectionHandlers(nodeId));\r\n selectionFunc(event.shiftKey, event.ctrlKey);\r\n }\r\n\r\n public onNodeMouseDown(nodeId: string) {\r\n this._selectionHandler.createDragAction(this.createSelectionHandlers(nodeId)[0], this._itemHandlers, nodeId);\r\n window.addEventListener(\r\n \"mouseup\",\r\n () => {\r\n /* istanbul ignore else */\r\n if (this._dragSelectionOperation) {\r\n this._selectionHandler.completeDragAction();\r\n this._dragSelectionOperation.complete();\r\n this._dragSelectionOperation = undefined;\r\n }\r\n },\r\n { once: true },\r\n );\r\n this._dragSelectionOperation = new Subject();\r\n this._dragSelectionOperation\r\n .pipe(take(1))\r\n .subscribe((value) => {\r\n this.onDragSelection.emit({ selectionChanges: this._dragSelectionOperation! });\r\n this._dragSelectionOperation!.next(value);\r\n });\r\n }\r\n\r\n public onNodeMouseMove(nodeId: string) {\r\n this._selectionHandler.updateDragAction(nodeId);\r\n }\r\n\r\n private createSelectionHandlers(\r\n nodeId: string,\r\n ): [MultiSelectionHandler<Selection>, SingleSelectionHandler<string>] {\r\n let deselectedAll = false;\r\n const multiSelectionHandler: MultiSelectionHandler<Selection> = {\r\n selectBetween: (item1, item2) => [{ from: item1 as string, to: item2 as string }],\r\n updateSelection: (selections, deselections) => {\r\n // Assumes `updateSelection` will never be called with selection ranges\r\n const selectedNodeIds = selections as string[];\r\n const deselectedNodeIds = deselections as string[];\r\n this._dragSelectionOperation!.next({ selectedNodes: selectedNodeIds, deselectedNodes: deselectedNodeIds });\r\n },\r\n deselectAll: () => {\r\n deselectedAll = true;\r\n },\r\n areEqual: (item1, item2) => item1 === item2,\r\n };\r\n\r\n const singleSelectionHandler: SingleSelectionHandler<string> = {\r\n preselect: () => { },\r\n select: () => { },\r\n deselect: () => { },\r\n isSelected: () => {\r\n if (deselectedAll || this._getVisibleNodes === undefined) {\r\n return false;\r\n }\r\n\r\n const node = this._getVisibleNodes().getModel().getNode(nodeId);\r\n return node !== undefined && node.isSelected;\r\n },\r\n item: () => nodeId,\r\n };\r\n\r\n return [multiSelectionHandler, singleSelectionHandler];\r\n }\r\n\r\n public onTreeKeyDown(event: React.KeyboardEvent, actions: TreeActions): void {\r\n this._onKeyboardEvent(event, actions, true);\r\n }\r\n\r\n public onTreeKeyUp(event: React.KeyboardEvent, actions: TreeActions): void {\r\n this._onKeyboardEvent(event, actions, false);\r\n }\r\n\r\n private _onKeyboardEvent = (e: React.KeyboardEvent, actions: TreeActions, isKeyDown: boolean) => {\r\n if (isNavigationKey(e.key)) {\r\n // istanbul ignore next\r\n if (!this._getVisibleNodes)\r\n return;\r\n\r\n const processedNodeId = this._selectionHandler.processedItem;\r\n\r\n const isExpandable = (node: TreeModelNode): boolean => !node.isLoading && node.numChildren !== 0;\r\n const isEditing = (node: TreeModelNode): boolean => node.editingInfo !== undefined;\r\n\r\n // istanbul ignore else\r\n if (this._getVisibleNodes && isIndividualSelection(processedNodeId)) {\r\n const processedNode = this._getVisibleNodes().getModel().getNode(processedNodeId);\r\n // istanbul ignore next\r\n if (processedNode && isEditing(processedNode))\r\n return;\r\n }\r\n\r\n const handleKeyboardSelectItem = (index: number) => {\r\n // istanbul ignore else\r\n if (this._getVisibleNodes) {\r\n const node = this.getVisibleNodeAtIndex(this._getVisibleNodes(), index);\r\n // istanbul ignore else\r\n if (node) {\r\n // istanbul ignore next\r\n if (isEditing(node))\r\n return;\r\n\r\n const selectionFunc = this._selectionHandler.createSelectionFunction(...this.createSelectionHandlers(node.id));\r\n selectionFunc(e.shiftKey, e.ctrlKey);\r\n }\r\n }\r\n };\r\n const handleKeyboardActivateItem = (_index: number) => {\r\n // istanbul ignore else\r\n if (this._getVisibleNodes && isIndividualSelection(processedNodeId)) {\r\n const node = this._getVisibleNodes().getModel().getNode(processedNodeId);\r\n // istanbul ignore else\r\n if (node) {\r\n if (isExpandable(node)) {\r\n if (!node.isExpanded)\r\n actions.onNodeExpanded(node.id);\r\n else\r\n actions.onNodeCollapsed(node.id);\r\n } else {\r\n actions.onNodeEditorActivated(node.id);\r\n }\r\n }\r\n }\r\n };\r\n const handleCrossAxisArrowKey = (forward: boolean) => {\r\n // istanbul ignore else\r\n if (this._getVisibleNodes && isIndividualSelection(processedNodeId)) {\r\n const node = this._getVisibleNodes().getModel().getNode(processedNodeId);\r\n // istanbul ignore else\r\n if (node) {\r\n if (isExpandable(node)) {\r\n if (forward && !node.isExpanded)\r\n actions.onNodeExpanded(node.id);\r\n else if (!forward && node.isExpanded)\r\n actions.onNodeCollapsed(node.id);\r\n }\r\n }\r\n }\r\n };\r\n\r\n // istanbul ignore else\r\n if (isIndividualSelection(processedNodeId)) {\r\n const itemKeyboardNavigator = new ItemKeyboardNavigator(handleKeyboardSelectItem, handleKeyboardActivateItem);\r\n itemKeyboardNavigator.orientation = Orientation.Vertical;\r\n itemKeyboardNavigator.crossAxisArrowKeyHandler = handleCrossAxisArrowKey;\r\n itemKeyboardNavigator.allowWrap = false;\r\n itemKeyboardNavigator.itemCount = this._getVisibleNodes().getNumNodes();\r\n\r\n const index = this._getVisibleNodes().getIndexOfNode(processedNodeId);\r\n isKeyDown ?\r\n itemKeyboardNavigator.handleKeyDownEvent(e, index) :\r\n itemKeyboardNavigator.handleKeyUpEvent(e, index);\r\n }\r\n }\r\n };\r\n}\r\n\r\ntype Selection = string | RangeSelection;\r\n\r\nfunction isIndividualSelection(selection: Selection | undefined): selection is string {\r\n return typeof (selection) === \"string\";\r\n}\r\n\r\nclass ItemHandler implements SingleSelectionHandler<string> {\r\n private _node: TreeModelNode | undefined;\r\n\r\n constructor(node: TreeModelNode | undefined) {\r\n this._node = node;\r\n }\r\n\r\n /* istanbul ignore next: noop */\r\n public preselect() { }\r\n\r\n /* istanbul ignore next: noop */\r\n public select() { }\r\n\r\n /* istanbul ignore next: noop */\r\n public deselect() { }\r\n\r\n // eslint-disable-next-line @itwin/prefer-get\r\n public isSelected(): boolean {\r\n // istanbul ignore next\r\n return !!this._node?.isSelected;\r\n }\r\n\r\n public item(): string {\r\n return this._node?.id ?? \"\";\r\n }\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/components-react",
|
|
3
|
-
"version": "4.1.0
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "iTwin.js UI complex components",
|
|
5
5
|
"main": "lib/cjs/components-react.js",
|
|
6
6
|
"module": "lib/esm/components-react.js",
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
"url": "http://www.bentley.com"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"@itwin/appui-abstract": "
|
|
26
|
-
"@itwin/core-bentley": "
|
|
27
|
-
"@itwin/core-react": "^4.1.0
|
|
25
|
+
"@itwin/appui-abstract": "^3.7.0 || ^4.0.0",
|
|
26
|
+
"@itwin/core-bentley": "^3.7.0 || ^4.0.0",
|
|
27
|
+
"@itwin/core-react": "^4.1.0",
|
|
28
28
|
"react": "^17.0.0 || ^18.0.0",
|
|
29
29
|
"react-dom": "^17.0.0 || ^18.0.0"
|
|
30
30
|
},
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@itwin/core-common": "^3.7.0",
|
|
40
40
|
"@itwin/core-geometry": "^3.7.0",
|
|
41
41
|
"@itwin/core-i18n": "^3.7.0",
|
|
42
|
-
"@itwin/core-react": "4.1.0
|
|
42
|
+
"@itwin/core-react": "4.1.0",
|
|
43
43
|
"@itwin/eslint-plugin": "^3.7.0",
|
|
44
44
|
"@testing-library/dom": "^8.11.2",
|
|
45
45
|
"@testing-library/react": "^12.0.0",
|
|
@@ -122,7 +122,11 @@
|
|
|
122
122
|
"extends": [
|
|
123
123
|
"plugin:@itwin/ui",
|
|
124
124
|
"plugin:@itwin/jsdoc"
|
|
125
|
-
]
|
|
125
|
+
],
|
|
126
|
+
"rules": {
|
|
127
|
+
"@typescript-eslint/consistent-type-imports": "error",
|
|
128
|
+
"no-duplicate-imports": "off"
|
|
129
|
+
}
|
|
126
130
|
},
|
|
127
131
|
"scripts": {
|
|
128
132
|
"build": "npm run -s copy:locale && npm run -s build:cjs && npm run -s build:esm",
|
|
@@ -135,6 +139,7 @@
|
|
|
135
139
|
"clean": "rimraf lib .rush/temp/package-deps*.json",
|
|
136
140
|
"cover": "nyc npm -s test",
|
|
137
141
|
"lint": "eslint -f visualstudio \"./src/**/*.{ts,tsx}\" 1>&2",
|
|
142
|
+
"lint:fix": "npm run -s lint -- --fix",
|
|
138
143
|
"extract-api": "betools extract-api --entry=components-react",
|
|
139
144
|
"test": "mocha --config ../.mocharc.json \"./lib/cjs/test/**/*.test.js\"",
|
|
140
145
|
"test:watch": "npm -s test -- --reporter min --watch-extensions ts,tsx --watch",
|