@itwin/components-react 4.0.0-dev.20 → 4.0.0-dev.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/components-react/UiComponents.js.map +1 -1
- package/lib/cjs/components-react/_target.scss +9 -9
- package/lib/cjs/components-react/common/DateUtils.js.map +1 -1
- package/lib/cjs/components-react/common/DelayedSpinner.js.map +1 -1
- package/lib/cjs/components-react/common/HighlightedText.js.map +1 -1
- package/lib/cjs/components-react/common/HighlightingComponentProps.js.map +1 -1
- package/lib/cjs/components-react/common/IImageLoader.js.map +1 -1
- package/lib/cjs/components-react/common/ImageRenderer.js.map +1 -1
- package/lib/cjs/components-react/common/Links.js.map +1 -1
- package/lib/cjs/components-react/common/PageOptions.js.map +1 -1
- package/lib/cjs/components-react/common/SubscriptionScheduler.js.map +1 -1
- package/lib/cjs/components-react/common/UseAsyncValue.js.map +1 -1
- package/lib/cjs/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
- package/lib/cjs/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
- package/lib/cjs/components-react/common/UseRerender.js.map +1 -1
- package/lib/cjs/components-react/common/countMatchesInString.js.map +1 -1
- package/lib/cjs/components-react/common/selection/SelectionHandler.js.map +1 -1
- package/lib/cjs/components-react/common/selection/SelectionModes.js.map +1 -1
- package/lib/cjs/components-react/converters/BooleanTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/CompositeTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/DateTimeTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/EnumTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/NumericTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/PointTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/StringTypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/TypeConverter.js.map +1 -1
- package/lib/cjs/components-react/converters/TypeConverterManager.js.map +1 -1
- package/lib/cjs/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DateField.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DateField.scss +22 -22
- package/lib/cjs/components-react/datepicker/DatePicker.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DatePicker.scss +176 -176
- package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
- package/lib/cjs/components-react/datepicker/DatePickerPopupButton.scss +57 -57
- package/lib/cjs/components-react/datepicker/IntlFormatter.js.map +1 -1
- package/lib/cjs/components-react/datepicker/TimeField.js.map +1 -1
- package/lib/cjs/components-react/datepicker/TimeField.scss +76 -76
- package/lib/cjs/components-react/editors/BooleanEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/BooleanEditor.scss +22 -22
- package/lib/cjs/components-react/editors/CustomNumberEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/CustomNumberEditor.scss +20 -20
- package/lib/cjs/components-react/editors/DateTimeEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/DateTimeEditor.scss +9 -9
- package/lib/cjs/components-react/editors/EditorContainer.js.map +1 -1
- package/lib/cjs/components-react/editors/EditorContainer.scss +6 -6
- package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/EnumButtonGroupEditor.scss +141 -141
- package/lib/cjs/components-react/editors/EnumEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/EnumEditor.scss +22 -22
- package/lib/cjs/components-react/editors/IconEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/IconEditor.scss +16 -16
- package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/ImageCheckBoxEditor.scss +24 -24
- package/lib/cjs/components-react/editors/NumericInputEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/NumericInputEditor.scss +16 -16
- package/lib/cjs/components-react/editors/PopupButton.js.map +1 -1
- package/lib/cjs/components-react/editors/PopupButton.scss +116 -116
- package/lib/cjs/components-react/editors/PropertyEditorManager.js.map +1 -1
- package/lib/cjs/components-react/editors/SliderEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/SliderEditor.scss +13 -13
- package/lib/cjs/components-react/editors/TextEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/TextEditor.scss +20 -20
- package/lib/cjs/components-react/editors/TextareaEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/TextareaEditor.scss +14 -14
- package/lib/cjs/components-react/editors/ToggleEditor.js.map +1 -1
- package/lib/cjs/components-react/editors/ToggleEditor.scss +23 -23
- package/lib/cjs/components-react/editors/variables.scss +7 -7
- package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
- package/lib/cjs/components-react/favorite/FavoritePropertyList.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilder.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRule.scss +38 -38
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.scss +68 -68
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/FilterBuilderState.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/Operators.js.map +1 -1
- package/lib/cjs/components-react/filter-builder/Types.js.map +1 -1
- package/lib/cjs/components-react/filtering/FilteringInput.js.map +1 -1
- package/lib/cjs/components-react/filtering/FilteringInput.scss +58 -58
- package/lib/cjs/components-react/filtering/ResultSelector.js.map +1 -1
- package/lib/cjs/components-react/filtering/ResultSelector.scss +68 -68
- package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
- package/lib/cjs/components-react/iconpicker/IconPickerButton.scss +75 -75
- package/lib/cjs/components-react/inputs/ParsedInput.js.map +1 -1
- package/lib/cjs/components-react/inputs/ParsedInput.scss +23 -23
- package/lib/cjs/components-react/properties/ItemStyle.js.map +1 -1
- package/lib/cjs/components-react/properties/LinkHandler.js.map +1 -1
- package/lib/cjs/components-react/properties/ValueRendererManager.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/ActionButtonList.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/ActionButtonList.scss +25 -25
- package/lib/cjs/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +17 -17
- package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyView.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/PropertyView.scss +106 -106
- package/lib/cjs/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.scss +88 -88
- package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.d.ts +4 -0
- 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.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGrid.scss +73 -73
- package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyList.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +101 -101
- package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
- package/lib/cjs/components-react/selectable-content/SelectableContent.js.map +1 -1
- package/lib/cjs/components-react/selectable-content/SelectableContent.scss +20 -20
- package/lib/cjs/components-react/toolbar/Item.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Item.scss +91 -91
- package/lib/cjs/components-react/toolbar/ItemWrapper.js.map +1 -1
- package/lib/cjs/components-react/toolbar/ItemWrapper.scss +10 -10
- package/lib/cjs/components-react/toolbar/Items.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Items.scss +96 -96
- package/lib/cjs/components-react/toolbar/Overflow.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Overflow.scss +57 -57
- package/lib/cjs/components-react/toolbar/OverflowPanel.js.map +1 -1
- package/lib/cjs/components-react/toolbar/OverflowPanel.scss +37 -37
- package/lib/cjs/components-react/toolbar/PopupItem.js.map +1 -1
- package/lib/cjs/components-react/toolbar/PopupItem.scss +88 -88
- package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
- package/lib/cjs/components-react/toolbar/PopupItemsPanel.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Toolbar.js.map +1 -1
- package/lib/cjs/components-react/toolbar/Toolbar.scss +18 -18
- package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/cjs/components-react/toolbar/_variables.scss +34 -34
- package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
- package/lib/cjs/components-react/toolbar/groupPanel/Column.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Column.scss +9 -9
- package/lib/cjs/components-react/toolbar/groupPanel/Columns.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Columns.scss +10 -10
- package/lib/cjs/components-react/toolbar/groupPanel/Panel.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Panel.scss +15 -15
- package/lib/cjs/components-react/toolbar/groupPanel/Title.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/Title.scss +33 -33
- package/lib/cjs/components-react/toolbar/groupPanel/_variables.scss +16 -16
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
- package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.scss +117 -117
- package/lib/cjs/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
- package/lib/cjs/components-react/toolbar/useDragInteraction.js.map +1 -1
- package/lib/cjs/components-react/toolbar/utilities/Direction.js.map +1 -1
- package/lib/cjs/components-react/tree/HighlightingEngine.js.map +1 -1
- package/lib/cjs/components-react/tree/HighlightingEngine.scss +7 -7
- package/lib/cjs/components-react/tree/ImageLoader.js.map +1 -1
- package/lib/cjs/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
- package/lib/cjs/components-react/tree/TreeComponentTestId.js.map +1 -1
- package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/Observable.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeActions.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeEvents.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeHooks.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeModelSource.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/ControlledTree.scss +102 -102
- package/lib/cjs/components-react/tree/controlled/component/NodeContent.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/NodeContent.scss +27 -27
- package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
- package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
- package/lib/cjs/components-react.js.map +1 -1
- package/lib/esm/components-react/UiComponents.js.map +1 -1
- package/lib/esm/components-react/_target.scss +9 -9
- package/lib/esm/components-react/common/DateUtils.js.map +1 -1
- package/lib/esm/components-react/common/DelayedSpinner.js.map +1 -1
- package/lib/esm/components-react/common/HighlightedText.js.map +1 -1
- package/lib/esm/components-react/common/HighlightingComponentProps.js.map +1 -1
- package/lib/esm/components-react/common/IImageLoader.js.map +1 -1
- package/lib/esm/components-react/common/ImageRenderer.js.map +1 -1
- package/lib/esm/components-react/common/Links.js.map +1 -1
- package/lib/esm/components-react/common/PageOptions.js.map +1 -1
- package/lib/esm/components-react/common/SubscriptionScheduler.js.map +1 -1
- package/lib/esm/components-react/common/UseAsyncValue.js.map +1 -1
- package/lib/esm/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
- package/lib/esm/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
- package/lib/esm/components-react/common/UseRerender.js.map +1 -1
- package/lib/esm/components-react/common/countMatchesInString.js.map +1 -1
- package/lib/esm/components-react/common/selection/SelectionHandler.js.map +1 -1
- package/lib/esm/components-react/common/selection/SelectionModes.js.map +1 -1
- package/lib/esm/components-react/converters/BooleanTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/CompositeTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/DateTimeTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/EnumTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/NumericTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/PointTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/StringTypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/TypeConverter.js.map +1 -1
- package/lib/esm/components-react/converters/TypeConverterManager.js.map +1 -1
- package/lib/esm/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
- package/lib/esm/components-react/datepicker/DateField.js.map +1 -1
- package/lib/esm/components-react/datepicker/DateField.scss +22 -22
- package/lib/esm/components-react/datepicker/DatePicker.js.map +1 -1
- package/lib/esm/components-react/datepicker/DatePicker.scss +176 -176
- package/lib/esm/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
- package/lib/esm/components-react/datepicker/DatePickerPopupButton.scss +57 -57
- package/lib/esm/components-react/datepicker/IntlFormatter.js.map +1 -1
- package/lib/esm/components-react/datepicker/TimeField.js.map +1 -1
- package/lib/esm/components-react/datepicker/TimeField.scss +76 -76
- package/lib/esm/components-react/editors/BooleanEditor.js.map +1 -1
- package/lib/esm/components-react/editors/BooleanEditor.scss +22 -22
- package/lib/esm/components-react/editors/CustomNumberEditor.js.map +1 -1
- package/lib/esm/components-react/editors/CustomNumberEditor.scss +20 -20
- package/lib/esm/components-react/editors/DateTimeEditor.js.map +1 -1
- package/lib/esm/components-react/editors/DateTimeEditor.scss +9 -9
- package/lib/esm/components-react/editors/EditorContainer.js.map +1 -1
- package/lib/esm/components-react/editors/EditorContainer.scss +6 -6
- package/lib/esm/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
- package/lib/esm/components-react/editors/EnumButtonGroupEditor.scss +141 -141
- package/lib/esm/components-react/editors/EnumEditor.js.map +1 -1
- package/lib/esm/components-react/editors/EnumEditor.scss +22 -22
- package/lib/esm/components-react/editors/IconEditor.js.map +1 -1
- package/lib/esm/components-react/editors/IconEditor.scss +16 -16
- package/lib/esm/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
- package/lib/esm/components-react/editors/ImageCheckBoxEditor.scss +24 -24
- package/lib/esm/components-react/editors/NumericInputEditor.js.map +1 -1
- package/lib/esm/components-react/editors/NumericInputEditor.scss +16 -16
- package/lib/esm/components-react/editors/PopupButton.js.map +1 -1
- package/lib/esm/components-react/editors/PopupButton.scss +116 -116
- package/lib/esm/components-react/editors/PropertyEditorManager.js.map +1 -1
- package/lib/esm/components-react/editors/SliderEditor.js.map +1 -1
- package/lib/esm/components-react/editors/SliderEditor.scss +13 -13
- package/lib/esm/components-react/editors/TextEditor.js.map +1 -1
- package/lib/esm/components-react/editors/TextEditor.scss +20 -20
- package/lib/esm/components-react/editors/TextareaEditor.js.map +1 -1
- package/lib/esm/components-react/editors/TextareaEditor.scss +14 -14
- package/lib/esm/components-react/editors/ToggleEditor.js.map +1 -1
- package/lib/esm/components-react/editors/ToggleEditor.scss +23 -23
- package/lib/esm/components-react/editors/variables.scss +7 -7
- package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
- package/lib/esm/components-react/favorite/FavoritePropertyList.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilder.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRule.scss +38 -38
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.scss +68 -68
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
- package/lib/esm/components-react/filter-builder/FilterBuilderState.js.map +1 -1
- package/lib/esm/components-react/filter-builder/Operators.js.map +1 -1
- package/lib/esm/components-react/filter-builder/Types.js.map +1 -1
- package/lib/esm/components-react/filtering/FilteringInput.js.map +1 -1
- package/lib/esm/components-react/filtering/FilteringInput.scss +58 -58
- package/lib/esm/components-react/filtering/ResultSelector.js.map +1 -1
- package/lib/esm/components-react/filtering/ResultSelector.scss +68 -68
- package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
- package/lib/esm/components-react/iconpicker/IconPickerButton.scss +75 -75
- package/lib/esm/components-react/inputs/ParsedInput.js.map +1 -1
- package/lib/esm/components-react/inputs/ParsedInput.scss +23 -23
- package/lib/esm/components-react/properties/ItemStyle.js.map +1 -1
- package/lib/esm/components-react/properties/LinkHandler.js.map +1 -1
- package/lib/esm/components-react/properties/ValueRendererManager.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/ActionButtonList.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/ActionButtonList.scss +25 -25
- package/lib/esm/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +17 -17
- package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyView.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/PropertyView.scss +106 -106
- package/lib/esm/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.scss +88 -88
- package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
- package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
- package/lib/esm/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.d.ts +4 -0
- 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.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGrid.scss +73 -73
- package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyList.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +101 -101
- package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
- package/lib/esm/components-react/selectable-content/SelectableContent.js.map +1 -1
- package/lib/esm/components-react/selectable-content/SelectableContent.scss +20 -20
- package/lib/esm/components-react/toolbar/Item.js.map +1 -1
- package/lib/esm/components-react/toolbar/Item.scss +91 -91
- package/lib/esm/components-react/toolbar/ItemWrapper.js.map +1 -1
- package/lib/esm/components-react/toolbar/ItemWrapper.scss +10 -10
- package/lib/esm/components-react/toolbar/Items.js.map +1 -1
- package/lib/esm/components-react/toolbar/Items.scss +96 -96
- package/lib/esm/components-react/toolbar/Overflow.js.map +1 -1
- package/lib/esm/components-react/toolbar/Overflow.scss +57 -57
- package/lib/esm/components-react/toolbar/OverflowPanel.js.map +1 -1
- package/lib/esm/components-react/toolbar/OverflowPanel.scss +37 -37
- package/lib/esm/components-react/toolbar/PopupItem.js.map +1 -1
- package/lib/esm/components-react/toolbar/PopupItem.scss +88 -88
- package/lib/esm/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
- package/lib/esm/components-react/toolbar/PopupItemsPanel.js.map +1 -1
- package/lib/esm/components-react/toolbar/Toolbar.js.map +1 -1
- package/lib/esm/components-react/toolbar/Toolbar.scss +18 -18
- package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/esm/components-react/toolbar/_variables.scss +34 -34
- package/lib/esm/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
- package/lib/esm/components-react/toolbar/groupPanel/Column.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Column.scss +9 -9
- package/lib/esm/components-react/toolbar/groupPanel/Columns.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Columns.scss +10 -10
- package/lib/esm/components-react/toolbar/groupPanel/Panel.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Panel.scss +15 -15
- package/lib/esm/components-react/toolbar/groupPanel/Title.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/Title.scss +33 -33
- package/lib/esm/components-react/toolbar/groupPanel/_variables.scss +16 -16
- package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
- package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
- package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.scss +117 -117
- package/lib/esm/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
- package/lib/esm/components-react/toolbar/useDragInteraction.js.map +1 -1
- package/lib/esm/components-react/toolbar/utilities/Direction.js.map +1 -1
- package/lib/esm/components-react/tree/HighlightingEngine.js.map +1 -1
- package/lib/esm/components-react/tree/HighlightingEngine.scss +7 -7
- package/lib/esm/components-react/tree/ImageLoader.js.map +1 -1
- package/lib/esm/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
- package/lib/esm/components-react/tree/TreeComponentTestId.js.map +1 -1
- package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/Observable.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeActions.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeEvents.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeHooks.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeModelSource.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/ControlledTree.scss +102 -102
- package/lib/esm/components-react/tree/controlled/component/NodeContent.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/NodeContent.scss +27 -27
- package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
- package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
- package/lib/esm/components-react.js.map +1 -1
- package/lib/public/locales/en/UiComponents.json +139 -139
- package/package.json +3 -3
|
@@ -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":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport \"./ControlledTree.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { areEqual, ListChildComponentProps, ListOnItemsRenderedProps, VariableSizeList } from \"react-window\";\nimport { concat } from \"rxjs/internal/observable/concat\";\nimport { timer } from \"rxjs/internal/observable/timer\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { Tree as CoreTree, TreeNodePlaceholder } from \"@itwin/core-react\";\nimport { createContextWithMandatoryProvider } from \"../../../common/UseContextWithMandatoryProvider\";\nimport { HighlightableTreeProps, HighlightingEngine } from \"../../HighlightingEngine\";\nimport { TreeActions } from \"../TreeActions\";\nimport {\n isTreeModelNode, isTreeModelNodePlaceholder, isTreeModelRootNode, TreeModelNode, TreeModelNodePlaceholder, VisibleTreeNodes,\n} from \"../TreeModel\";\nimport { ITreeNodeLoader } from \"../TreeNodeLoader\";\nimport { TreeNodeRenderer, TreeNodeRendererProps } from \"./TreeNodeRenderer\";\n\nconst NODE_LOAD_DELAY = 500;\n\n/**\n * Data structure that describes range of rendered items in the tree.\n * @public\n */\nexport interface RenderedItemsRange {\n overscanStartIndex: number;\n overscanStopIndex: number;\n visibleStartIndex: number;\n visibleStopIndex: number;\n}\n\n/**\n * Properties for [[TreeRenderer]] component.\n * @public\n */\nexport interface TreeRendererProps {\n treeActions: TreeActions;\n nodeLoader: ITreeNodeLoader;\n\n /** Callback that is used to determine node height. */\n nodeHeight: (node: TreeModelNode | TreeModelNodePlaceholder, index: number) => number;\n\n /** Flat list of nodes to be rendered. */\n visibleNodes: VisibleTreeNodes;\n\n /** Callback to render custom node. */\n nodeRenderer?: (props: TreeNodeRendererProps) => React.ReactNode;\n\n /** Properties used to highlight nodes and scroll to active match while filtering. */\n nodeHighlightingProps?: HighlightableTreeProps;\n\n /** Callback that is called when rendered items range changes. */\n onItemsRendered?: (renderedItems: RenderedItemsRange) => void;\n\n /**\n * Callback used when an editor closes\n * @internal\n */\n onNodeEditorClosed?: () => void;\n\n /** Width of the tree area. */\n width: number;\n\n /** Height of the tree area. */\n height: number;\n}\n\n/**\n * Attributes found on TreeRenderer component\n * @public\n */\nexport interface TreeRendererAttributes {\n /**\n * Scroll to the specified node.\n * @param nodeId Id of the target node to scroll to.\n * @param alignment Controls scrolling behavior. See [react-window](https://github.com/bvaughn/react-window) documentation\n * on `scrollToItem` for details.\n */\n scrollToNode(nodeId: string, alignment?: Alignment): void;\n}\n\ntype Alignment = \"auto\" | \"smart\" | \"center\" | \"end\" | \"start\";\n\n/** [[TreeRenderer]] context that is provided to each rendered node. */\ninterface TreeRendererContext {\n /** Callback to render custom node. */\n nodeRenderer: (props: TreeNodeRendererProps) => React.ReactNode;\n\n treeActions: TreeActions;\n nodeLoader: ITreeNodeLoader;\n\n /** Flat list of nodes to be rendered. */\n visibleNodes: VisibleTreeNodes;\n\n /** Engine used to created node highlighting properties. */\n highlightingEngine?: HighlightingEngine;\n\n /** Callback used detect when label is rendered. It is used by TreeRenderer for scrolling to active match. */\n onLabelRendered?: (node: TreeModelNode) => void;\n\n /** A callback that node calls after rendering to report its width */\n onNodeWidthMeasured?: (width: number) => void;\n\n /** Callback used when an editor closes */\n onNodeEditorClosed?: () => void;\n}\n\n/** [[TreeRenderer]] context provider, consumer and custom hook. */\nconst [\n /** Context of [[TreeRenderer]] provider. */\n TreeRendererContextProvider,\n\n /** Context of [[TreeRenderer]] consumer. */\n _TreeRendererContextConsumer,\n\n /** Custom hook to use [[TreeRenderer]] context. */\n useTreeRendererContext,\n] = createContextWithMandatoryProvider<TreeRendererContext>(\"TreeRendererContext\");\n\n/**\n * Default tree rendering component.\n * @public\n */\nexport class TreeRenderer extends React.Component<TreeRendererProps> implements TreeRendererAttributes {\n private _ref = React.createRef<TreeRendererAttributes>();\n\n /** @inheritdoc */\n public scrollToNode(nodeId: string, alignment?: Alignment) {\n // istanbul ignore else\n if (this._ref.current)\n this._ref.current.scrollToNode(nodeId, alignment);\n }\n\n public override render() {\n return (\n <TreeRendererInner ref={this._ref} {...this.props} />\n );\n }\n}\n\n// eslint-disable-next-line react/display-name\nconst TreeRendererInner = React.forwardRef<TreeRendererAttributes, TreeRendererProps>((props, ref) => {\n const variableSizeListRef = React.useRef<VariableSizeList>(null);\n useTreeRendererAttributes(ref, variableSizeListRef, props.visibleNodes);\n\n const previousVisibleNodes = usePrevious(props.visibleNodes);\n const previousNodeHeight = usePrevious(props.nodeHeight);\n if ((previousVisibleNodes !== undefined && previousVisibleNodes !== props.visibleNodes)\n || (previousNodeHeight !== undefined && previousNodeHeight !== props.nodeHeight)) {\n /* istanbul ignore else */\n if (variableSizeListRef.current) {\n variableSizeListRef.current.resetAfterIndex(0, false);\n }\n }\n\n const coreTreeRef = React.useRef<CoreTree>(null);\n const minContainerWidth = React.useRef<number>(0);\n const onLabelRendered = useScrollToActiveMatch(coreTreeRef, props.nodeHighlightingProps);\n const highlightingEngine = React.useMemo(\n () => props.nodeHighlightingProps && new HighlightingEngine(props.nodeHighlightingProps),\n [props.nodeHighlightingProps],\n );\n\n const rendererContext = React.useMemo<TreeRendererContext>(() => ({\n nodeRenderer: props.nodeRenderer ? props.nodeRenderer : (nodeProps) => (<TreeNodeRenderer {...nodeProps} />),\n treeActions: props.treeActions,\n nodeLoader: props.nodeLoader,\n visibleNodes: props.visibleNodes,\n onLabelRendered,\n highlightingEngine,\n onNodeWidthMeasured: (width: number) => {\n if (width > minContainerWidth.current)\n minContainerWidth.current = width;\n },\n onNodeEditorClosed: () => {\n setFocusToSelected(coreTreeRef);\n props.onNodeEditorClosed && props.onNodeEditorClosed();\n },\n }), [props, onLabelRendered, highlightingEngine]);\n\n const prevTreeWidth = React.useRef<number>(0);\n if (props.width !== prevTreeWidth.current) {\n minContainerWidth.current = 0;\n prevTreeWidth.current = props.width;\n }\n\n const itemKey = React.useCallback(\n (index: number) => getNodeKey(props.visibleNodes.getAtIndex(index)!),\n [props.visibleNodes],\n );\n\n const { nodeHeight, visibleNodes } = props;\n const itemSize = React.useCallback(\n (index: number) => nodeHeight(visibleNodes.getAtIndex(index)!, index),\n [nodeHeight, visibleNodes],\n );\n\n const { nodeHighlightingProps } = props;\n React.useEffect(() => {\n const highlightedNodeId = getHighlightedNodeId(nodeHighlightingProps);\n if (!highlightedNodeId)\n return;\n\n let index = 0;\n for (const node of visibleNodes) {\n if (isTreeModelNode(node) && node.id === highlightedNodeId)\n break;\n\n index++;\n }\n\n assert(variableSizeListRef.current !== null);\n variableSizeListRef.current.scrollToItem(index);\n }, [nodeHighlightingProps]); // eslint-disable-line react-hooks/exhaustive-deps\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const innerElementType = React.useCallback(\n // eslint-disable-next-line react/display-name\n React.forwardRef(({ style, ...rest }: ListChildComponentProps, innerRef: React.Ref<HTMLDivElement>) => (\n <div\n ref={innerRef}\n style={{ ...style, minWidth: minContainerWidth.current }}\n {...rest}\n />\n )),\n [],\n );\n\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\n props.treeActions.onTreeKeyDown(e);\n }, [props.treeActions]);\n\n const handleKeyUp = React.useCallback((e: React.KeyboardEvent) => {\n props.treeActions.onTreeKeyUp(e);\n }, [props.treeActions]);\n\n const onItemsRendered = props.onItemsRendered;\n const handleRenderedItemsChange = React.useCallback((onItemsRenderedProps: ListOnItemsRenderedProps) => {\n onItemsRendered && onItemsRendered({ ...onItemsRenderedProps });\n }, [onItemsRendered]);\n\n return (\n <TreeRendererContextProvider value={rendererContext}>\n <CoreTree ref={coreTreeRef}\n className={classnames(\"components-controlledTree\", \"components-smallEditor-host\")}\n onKeyDown={handleKeyDown} onKeyUp={handleKeyUp}\n >\n <VariableSizeList\n ref={variableSizeListRef}\n className={\"ReactWindow__VariableSizeList\"}\n width={props.width}\n height={props.height}\n itemCount={props.visibleNodes.getNumNodes()}\n itemSize={itemSize}\n estimatedItemSize={25}\n overscanCount={10}\n itemKey={itemKey}\n innerElementType={innerElementType}\n onItemsRendered={handleRenderedItemsChange}\n >\n {Node}\n </VariableSizeList>\n </CoreTree>\n </TreeRendererContextProvider>\n );\n});\n\nfunction getNodeKey(node: TreeModelNode | TreeModelNodePlaceholder): string {\n if (isTreeModelNode(node)) {\n return node.id;\n }\n return `${node.parentId || \"\"}-${node.childIndex}`;\n}\n\nconst Node = React.memo<React.FC<ListChildComponentProps>>( // eslint-disable-line @typescript-eslint/naming-convention\n function Node(props: ListChildComponentProps) {\n const { index, style } = props;\n\n const {\n nodeRenderer,\n visibleNodes,\n treeActions,\n nodeLoader,\n onLabelRendered,\n highlightingEngine,\n onNodeWidthMeasured,\n onNodeEditorClosed,\n } = useTreeRendererContext(Node);\n const node = visibleNodes.getAtIndex(index)!;\n\n useNodeLoading(node, visibleNodes, nodeLoader);\n\n // Mark selected node's wrapper to make detecting consecutively selected nodes with css selectors possible\n const className = classnames(\"node-wrapper\", { \"is-selected\": isTreeModelNode(node) && node.isSelected });\n\n const ref = React.useRef<HTMLDivElement>(null);\n React.useEffect(() => {\n // istanbul ignore else\n if (onNodeWidthMeasured && ref.current)\n onNodeWidthMeasured(ref.current.offsetWidth);\n }, [onNodeWidthMeasured]);\n\n const isEditing = React.useRef(false);\n React.useEffect(() => {\n if (!isTreeModelNode(node))\n return;\n\n if (!isEditing.current && node.editingInfo) {\n isEditing.current = true;\n } else if (isEditing.current && node.editingInfo === undefined) {\n isEditing.current = false;\n /* istanbul ignore else */\n if (onNodeEditorClosed)\n onNodeEditorClosed();\n }\n }, [node, onNodeEditorClosed]);\n\n return (\n <div className={className} style={style} ref={ref}>\n {React.useMemo(() => {\n if (isTreeModelNode(node)) {\n const nodeHighlightProps = highlightingEngine ? highlightingEngine.createRenderProps(node) : undefined;\n return nodeRenderer({ node, treeActions, onLabelRendered, nodeHighlightProps });\n }\n\n return <TreeNodePlaceholder level={node.depth} />;\n }, [node, treeActions, nodeRenderer, onLabelRendered, highlightingEngine])}\n </div>\n );\n },\n areEqual,\n);\n\nfunction useNodeLoading(\n node: TreeModelNode | TreeModelNodePlaceholder,\n visibleNodes: VisibleTreeNodes,\n nodeLoader: ITreeNodeLoader,\n): void {\n React.useEffect(\n () => {\n if (!isTreeModelNodePlaceholder(node)) {\n return;\n }\n\n const treeModel = visibleNodes.getModel();\n const parentNode = node.parentId ? treeModel.getNode(node.parentId) : treeModel.getRootNode();\n if (!isTreeModelNode(parentNode) && !isTreeModelRootNode(parentNode)) {\n return;\n }\n\n const subscription = concat(timer(NODE_LOAD_DELAY), nodeLoader.loadNode(parentNode, node.childIndex)).subscribe();\n return () => subscription.unsubscribe();\n },\n // Mounted node component never changes its node key, thus it's safe to run this effect only once for every\n // nodeLoader change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [nodeLoader],\n );\n}\n\nfunction useTreeRendererAttributes(\n ref: React.Ref<TreeRendererAttributes>,\n variableSizeListRef: React.RefObject<VariableSizeList>,\n visibleNodes: VisibleTreeNodes,\n) {\n const visibleNodesRef = React.useRef(visibleNodes);\n visibleNodesRef.current = visibleNodes;\n React.useImperativeHandle(\n ref,\n () => ({\n scrollToNode: (nodeId, alignment) => {\n assert(variableSizeListRef.current !== null);\n variableSizeListRef.current.scrollToItem(visibleNodesRef.current.getIndexOfNode(nodeId), alignment);\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n}\n\nfunction usePrevious<T>(value: T): T | undefined {\n const ref = React.useRef<T>();\n\n React.useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n\nfunction getHighlightedNodeId(highlightableTreeProps?: HighlightableTreeProps) {\n return (highlightableTreeProps && highlightableTreeProps.activeMatch)\n ? highlightableTreeProps.activeMatch.nodeId\n : undefined;\n}\n\nfunction useScrollToActiveMatch(treeRef: React.RefObject<CoreTree>, highlightableTreeProps?: HighlightableTreeProps) {\n const scrollToActive = React.useRef(false);\n React.useEffect(() => {\n scrollToActive.current = true;\n }, [highlightableTreeProps]);\n\n const onLabelRendered = React.useCallback(\n (node: TreeModelNode) => {\n const highlightedNodeId = getHighlightedNodeId(highlightableTreeProps);\n if (!treeRef.current || !scrollToActive.current || !highlightedNodeId || highlightedNodeId !== node.id)\n return;\n\n scrollToActive.current = false;\n const scrollTo = [...treeRef.current.getElementsByClassName(HighlightingEngine.ACTIVE_CLASS_NAME)];\n // istanbul ignore else\n if (scrollTo.length > 0 && scrollTo[0].scrollIntoView !== undefined)\n scrollTo[0].scrollIntoView({ behavior: \"auto\", block: \"nearest\", inline: \"end\" });\n }, [highlightableTreeProps, treeRef]);\n\n return onLabelRendered;\n}\n\nfunction setFocusToSelected(treeRef: React.RefObject<CoreTree>) {\n /* istanbul ignore else */\n if (treeRef.current)\n treeRef.current.setFocusByClassName(\".core-tree-node.is-selected\");\n}\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 { 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SparseTree.js","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/internal/SparseTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport { immerable } from \"immer\";\nimport { assert, compareNumbers, lowerBound } from \"@itwin/core-bentley\";\n\n/** @internal */\nexport interface Node {\n readonly id: string;\n}\n\n/**\n * Structure for sparse tree storage.\n * It uses SparseArray to store children ids for parent. This allows\n * having tree structure with some nodes missing in the tree branch.\n * @internal\n */\nexport class SparseTree<T extends Node> {\n public [immerable] = true;\n\n private _rootNodes = new SparseArray<string>();\n private _parentToChildren: Record<string, SparseArray<string>> = {};\n private _idToNode: Record<string, T> = {};\n\n public getNode(nodeId: string): T | undefined {\n return this._idToNode[nodeId];\n }\n\n public getChildOffset(parentId: string | undefined, childId: string): number | undefined {\n const children = this.getChildren(parentId);\n if (!children)\n return undefined;\n\n return children.getIndex(childId);\n }\n\n public getChildren(parentId: string | undefined, createIfNotExist: boolean = false): SparseArray<string> | undefined {\n if (parentId === undefined) {\n return this._rootNodes;\n }\n\n if (this._parentToChildren[parentId] === undefined && createIfNotExist) {\n this._parentToChildren[parentId] = new SparseArray<string>();\n }\n\n return this._parentToChildren[parentId];\n }\n\n public setChildren(parentId: string | undefined, children: T[], offset: number) {\n const existingChildren = this.getChildren(parentId, true)!;\n children.forEach((child, index) => {\n const existingChildId = existingChildren.get(offset + index);\n if (existingChildId !== undefined) {\n this.deleteSubtree(existingChildId);\n }\n\n existingChildren.set(offset + index, child.id);\n this._idToNode[child.id] = child;\n });\n }\n\n public insertChild(parentId: string | undefined, child: T, offset: number) {\n const existingChildren = this.getChildren(parentId, true)!;\n existingChildren.insert(offset, child.id);\n this._idToNode[child.id] = child;\n }\n\n public setNodeId(parentId: string | undefined, index: number, newId: string): boolean {\n const previousNodeId = this.getChildren(parentId)?.get(index);\n if (previousNodeId === undefined) {\n return false;\n }\n\n if (previousNodeId === newId) {\n return true;\n }\n\n if (this.getNode(newId) !== undefined) {\n return false;\n }\n\n this._idToNode[newId] = this._idToNode[previousNodeId];\n delete this._idToNode[previousNodeId];\n\n this._parentToChildren[newId] = this._parentToChildren[previousNodeId];\n delete this._parentToChildren[previousNodeId];\n\n if (parentId === undefined) {\n this._rootNodes.set(index, newId);\n } else {\n this._parentToChildren[parentId].set(index, newId);\n }\n\n return true;\n }\n\n public moveNode(\n sourceParentId: string | undefined,\n sourceNodeId: string,\n targetParentId: string | undefined,\n targetIndex: number,\n ): void {\n const sourceNodeSiblings = this.getChildren(sourceParentId);\n assert(sourceNodeSiblings !== undefined);\n\n const sourceIndex = this.getChildOffset(sourceParentId, sourceNodeId);\n assert(sourceIndex !== undefined);\n\n sourceNodeSiblings.remove(sourceIndex);\n if (targetParentId === sourceParentId && targetIndex > sourceIndex) {\n targetIndex -= 1;\n }\n\n const targetNodeSiblings = this.getChildren(targetParentId, true);\n assert(targetNodeSiblings !== undefined);\n targetNodeSiblings.insert(targetIndex, sourceNodeId);\n }\n\n public setNumChildren(parentId: string | undefined, numChildren: number) {\n const children = this.getChildren(parentId, true)!;\n for (const [childId] of children.iterateValues()) {\n this.deleteSubtree(childId);\n }\n\n children.setLength(numChildren);\n }\n\n public removeChild(parentId: string | undefined, child: string | number): void {\n const children = this.getChildren(parentId);\n if (children === undefined)\n return;\n\n if (typeof child === \"string\") {\n const childIndex = children.getIndex(child);\n if (childIndex !== undefined) {\n children.remove(childIndex);\n }\n\n this.deleteSubtree(child);\n } else {\n const childId = children.get(child);\n children.remove(child);\n if (childId !== undefined) {\n this.deleteSubtree(childId);\n }\n }\n }\n\n public deleteSubtree(parentId: string | undefined, deleteParent: boolean = true) {\n const children = this.getChildren(parentId);\n if (children !== undefined) {\n for (const [childId] of children.iterateValues()) {\n this.deleteSubtree(childId);\n }\n }\n\n if (parentId === undefined) {\n this._rootNodes.setLength(0);\n return;\n }\n if (deleteParent) {\n delete this._idToNode[parentId];\n }\n delete this._parentToChildren[parentId];\n }\n}\n\n/**\n * Structure for sparse array value storage.\n * The main advantage of this class over the standard javascript array is that\n * this class does not need to check each index when iterating values that are\n * stored in the array.\n * @public\n */\nexport class SparseArray<T> implements Iterable<T | undefined> {\n public [immerable] = true;\n\n private _length = 0;\n private _array: Array<[T, number]> = [];\n\n /** Returns length of array including intermediate 'undefined' values */\n public getLength(): number {\n return this._length;\n }\n\n /** Sets length of array. */\n public setLength(length: number) {\n const { index } = this.lowerBound(length);\n this._array.length = index;\n this._length = length;\n }\n\n /** Returns index of supplied value.\n *\n * @returns index of value or undefined if value is not found.\n */\n public getIndex(lookupValue: T): number | undefined {\n for (const [value, index] of this._array) {\n if (value === lookupValue)\n return index;\n }\n return undefined;\n }\n\n /** Returns value at specific position.\n *\n * @returns stored value or undefined.\n */\n public get(index: number): T | undefined {\n const { index: i, equal } = this.lowerBound(index);\n return equal ? this._array[i][0] : undefined;\n }\n\n /** Sets value at specific position. Overrides any existing value. */\n public set(index: number, value: T) {\n const { index: i, equal } = this.lowerBound(index);\n this._array.splice(i, equal ? 1 : 0, [value, index]);\n this._length = Math.max(this._length, index + 1);\n }\n\n /** Inserts value at specific position. Increases array length by one. */\n public insert(index: number, value: T) {\n const { index: i } = this.lowerBound(index);\n this._array.splice(i, 0, [value, index]);\n\n for (let j = i + 1; j < this._array.length; j++) {\n this._array[j][1]++;\n }\n\n this._length = Math.max(this._length + 1, index + 1);\n }\n\n /** Removes value at specified index and reduces array length by one. */\n public remove(index: number): void {\n if (index >= this._length) {\n return;\n }\n\n const { index: i, equal } = this.lowerBound(index);\n this._array.splice(i, equal ? 1 : 0);\n\n for (let j = i; j < this._array.length; j++) {\n this._array[j][1]--;\n }\n\n this._length = Math.max(0, this._length - 1);\n }\n\n /**\n * Iterates values that are stored in the array\n * @returns `[value, index]` tuples.\n */\n public iterateValues(): IterableIterator<[T, number]> {\n return this._array[Symbol.iterator]();\n }\n\n /** Iterates the array with all intermediate `undefined` values */\n public [Symbol.iterator](): IterableIterator<T | undefined> {\n const array = this._array;\n const length = this._length;\n return (function* () {\n let currentIndex = 0;\n for (const [value, index] of array) {\n for (; currentIndex < index; ++currentIndex) {\n yield undefined;\n }\n\n yield value;\n ++currentIndex;\n }\n\n for (; currentIndex < length; ++currentIndex) {\n yield undefined;\n }\n })();\n }\n\n private lowerBound(index: number): {\n index: number; equal: boolean;\n } {\n return lowerBound(index, this._array, SparseArray.compare);\n }\n\n private static compare<T>(index: number, value: [T, number]): number {\n return compareNumbers(index, value[1]);\n }\n}\n"]}
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeModelMutator.js","sourceRoot":"","sources":["../../../../../../src/components-react/tree/controlled/internal/TreeModelMutator.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport { EMPTY } from \"rxjs/internal/observable/empty\";\nimport { TreeNodeItem } from \"../../TreeDataProvider\";\nimport { Observable } from \"../Observable\";\nimport { CheckboxStateChange } from \"../TreeEvents\";\nimport { TreeModelNode, TreeModelNodeEditingInfo } from \"../TreeModel\";\nimport { TreeModelSource } from \"../TreeModelSource\";\nimport { ITreeNodeLoader, TreeNodeLoadResult } from \"../TreeNodeLoader\";\n\n/**\n * Provides basic tree manipulation implementation for various cases like\n * expand/collapse node, modify/replace/clear selection. It is used by default\n * tree event handler to modify model when events occur.\n * @internal\n */\nexport class TreeModelMutator {\n private _modelSource: TreeModelSource;\n private _nodeLoader: ITreeNodeLoader;\n private _collapsedChildrenDisposalEnabled: boolean;\n\n constructor(modelSource: TreeModelSource, nodeLoader: ITreeNodeLoader, collapsedChildrenDisposalEnabled: boolean) {\n this._modelSource = modelSource;\n this._nodeLoader = nodeLoader;\n this._collapsedChildrenDisposalEnabled = collapsedChildrenDisposalEnabled;\n }\n\n public get modelSource() { return this._modelSource; }\n\n public expandNode(nodeId: string): Observable<TreeNodeLoadResult> {\n let needToLoadChildren = false;\n this._modelSource.modifyModel((model) => {\n const node = model.getNode(nodeId);\n if (node === undefined || node.isExpanded) {\n return;\n }\n\n needToLoadChildren = node.numChildren === undefined;\n\n node.isExpanded = true;\n if (needToLoadChildren) {\n node.isLoading = true;\n }\n });\n\n const expandedNode = this._modelSource.getModel().getNode(nodeId);\n return needToLoadChildren && expandedNode ? this._nodeLoader.loadNode(expandedNode, 0) : EMPTY;\n }\n\n public collapseNode(nodeId: string) {\n this._modelSource.modifyModel((model) => {\n const node = model.getNode(nodeId);\n if (node === undefined || !node.isExpanded) {\n return;\n }\n\n node.isExpanded = false;\n if (this._collapsedChildrenDisposalEnabled) {\n model.clearChildren(node.id);\n }\n });\n }\n\n public modifySelection(nodesToSelect: TreeNodeItem[], nodesToDeselect: TreeNodeItem[]) {\n this._modelSource.modifyModel((model) => {\n for (const nodeItem of nodesToSelect) {\n const node = model.getNode(nodeItem.id);\n if (node !== undefined) {\n node.isSelected = true;\n }\n }\n\n for (const nodeItem of nodesToDeselect) {\n const node = model.getNode(nodeItem.id);\n if (node !== undefined) {\n node.isSelected = false;\n }\n }\n });\n }\n\n public replaceSelection(nodesToSelect: TreeNodeItem[]) {\n this._modelSource.modifyModel((model) => {\n for (const node of model.iterateTreeModelNodes()) {\n node.isSelected = false;\n }\n\n for (const nodeItem of nodesToSelect) {\n const node = model.getNode(nodeItem.id);\n if (node !== undefined) {\n node.isSelected = true;\n }\n }\n });\n }\n\n public clearNodeSelection() {\n this._modelSource.modifyModel((model) => {\n for (const node of model.iterateTreeModelNodes()) {\n node.isSelected = false;\n }\n });\n }\n\n public setCheckboxStates(stateChanges: CheckboxStateChange[]) {\n this._modelSource.modifyModel((model) => {\n for (const { nodeItem, newState } of stateChanges) {\n const node = model.getNode(nodeItem.id);\n if (node !== undefined) {\n node.checkbox.state = newState;\n }\n }\n });\n }\n\n public activateEditing(nodeId: string, onCommit: (node: TreeModelNode, newValue: string) => void) {\n this._modelSource.modifyModel((model) => {\n const node = model.getNode(nodeId);\n if (!node)\n return;\n\n if (node.item.isEditable) {\n node.editingInfo = this.createNodeEditingInfo(nodeId, onCommit);\n }\n });\n }\n\n private createNodeEditingInfo(nodeId: string, onCommit: (node: TreeModelNode, newValue: string) => void): TreeModelNodeEditingInfo {\n const closeEditing = () => {\n this._modelSource.modifyModel((model) => {\n const node = model.getNode(nodeId);\n // istanbul ignore if\n if (!node)\n return;\n node.editingInfo = undefined;\n });\n };\n\n const onEditCommitted = (node: TreeModelNode, newValue: string) => {\n onCommit(node, newValue);\n closeEditing();\n };\n\n return { onCommit: onEditCommitted, onCancel: closeEditing };\n }\n}\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 { 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 +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,uDAAoD;AACpD,mDAAgD;AAChD,sDAAgD;AAChD,iFAA6H;AAI7H,4CAAgF;AAChF,kDAAwF;AA2BxF,gBAAgB;AAChB,SAAgB,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;AAFD,4CAEC;AAED,gBAAgB;AAChB,MAAa,oBAAoB;IAW/B,YACE,aAA4B,EAC5B,eAAwC;QANnC,uBAAkB,GAAG,IAAI,wBAAS,EAA8B,CAAC;QACjE,wBAAmB,GAAG,IAAI,wBAAS,EAA6B,CAAC;QACjE,oBAAe,GAAG,IAAI,wBAAS,EAA2B,CAAC;QAuJ1D,qBAAgB,GAAG,CAAC,CAAsB,EAAE,OAAoB,EAAE,SAAkB,EAAE,EAAE;YAC9F,IAAI,IAAA,4BAAe,EAAC,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,kCAAqB,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAAC;oBAC9G,qBAAqB,CAAC,WAAW,GAAG,wBAAW,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,mCAAgB,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,IAAA,2BAAe,EAAC,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,iBAAO,EAAE,CAAC;QAC7C,IAAI,CAAC,uBAAuB;aACzB,IAAI,CAAC,IAAA,WAAI,EAAC,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;AAlPD,oDAkPC;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":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport { take } from \"rxjs/internal/operators/take\";\nimport { Subject } from \"rxjs/internal/Subject\";\nimport { BeUiEvent } from \"@itwin/core-bentley\";\nimport { MultiSelectionHandler, SelectionHandler, SingleSelectionHandler } from \"../../../common/selection/SelectionHandler\";\nimport { SelectionMode } from \"../../../common/selection/SelectionModes\";\nimport { Observable } from \"../Observable\";\nimport { TreeActions } from \"../TreeActions\";\nimport { isTreeModelNode, TreeModelNode, VisibleTreeNodes } from \"../TreeModel\";\nimport { isNavigationKey, ItemKeyboardNavigator, Orientation } from \"@itwin/core-react\";\n\n/** @internal */\nexport interface SelectionReplacementEvent {\n selectedNodeIds: IndividualSelection | RangeSelection;\n}\n\n/** @internal */\nexport interface SelectionModificationEvent {\n selectedNodes: IndividualSelection | RangeSelection;\n deselectedNodes: IndividualSelection;\n}\n\n/** @internal */\nexport interface DragSelectionStartEvent {\n selectionChanges: Observable<SelectionModificationEvent>;\n}\n\n/** @internal */\nexport type IndividualSelection = string[];\n\n/** @internal */\nexport interface RangeSelection {\n from: string;\n to: string;\n}\n\n/** @internal */\nexport function isRangeSelection(selection: any): selection is RangeSelection {\n return selection && typeof (selection.from) === \"string\" && typeof (selection.to) === \"string\";\n}\n\n/** @internal */\nexport class TreeSelectionManager implements Pick<TreeActions, \"onNodeClicked\" | \"onNodeMouseDown\" | \"onNodeMouseMove\"> {\n private _selectionHandler: SelectionHandler<Selection>;\n private _dragSelectionOperation?: Subject<SelectionModificationEvent>;\n private _itemHandlers: Array<Array<SingleSelectionHandler<string>>>;\n\n private _getVisibleNodes: (() => VisibleTreeNodes) | undefined;\n\n public onSelectionChanged = new BeUiEvent<SelectionModificationEvent>();\n public onSelectionReplaced = new BeUiEvent<SelectionReplacementEvent>();\n public onDragSelection = new BeUiEvent<DragSelectionStartEvent>();\n\n constructor(\n selectionMode: SelectionMode,\n getVisibleNodes?: () => VisibleTreeNodes,\n ) {\n this._getVisibleNodes = getVisibleNodes;\n\n const onItemsSelected = (selections: Selection[], replacement: boolean) => {\n // Assumes that `selections` will only contain either a list of\n // `IndividualSelection` items or a single `RangeSelection` item.\n if (isIndividualSelection(selections[0])) {\n if (replacement) {\n this.onSelectionReplaced.emit({\n selectedNodeIds: selections as IndividualSelection,\n });\n } else {\n this.onSelectionChanged.emit({\n selectedNodes: selections as IndividualSelection,\n deselectedNodes: [],\n });\n }\n } else {\n if (replacement) {\n this.onSelectionReplaced.emit({\n selectedNodeIds: selections[0],\n });\n } else {\n this.onSelectionChanged.emit({\n selectedNodes: selections[0],\n deselectedNodes: [],\n });\n }\n }\n };\n\n const onItemsDeselected = (deselections: Selection[]) => {\n // Assumes that this will be always called with `IndividualSelection` items\n this.onSelectionChanged.emit({\n selectedNodes: [],\n deselectedNodes: deselections as IndividualSelection,\n });\n };\n\n this._selectionHandler = new SelectionHandler(selectionMode, onItemsSelected, onItemsDeselected);\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const _this = this;\n const itemHandlers = new Proxy({}, {\n get(_target, prop) {\n if (prop === \"length\") {\n return _this._getVisibleNodes === undefined ? 0 : _this._getVisibleNodes().getNumNodes();\n }\n\n // istanbul ignore next\n if (_this._getVisibleNodes === undefined)\n return undefined;\n\n const index: number = +(prop as string);\n const node = _this.getVisibleNodeAtIndex(_this._getVisibleNodes(), index);\n return new ItemHandler(node);\n },\n }) as Array<SingleSelectionHandler<string>>;\n this._itemHandlers = [itemHandlers];\n }\n\n private getVisibleNodeAtIndex(nodes: VisibleTreeNodes | undefined, index: number): TreeModelNode | undefined {\n const foundNode = nodes !== undefined ? nodes.getAtIndex(index) : /* istanbul ignore next */ undefined;\n return isTreeModelNode(foundNode) ? foundNode : undefined;\n }\n\n public setVisibleNodes(visibleNodes: (() => VisibleTreeNodes) | undefined) {\n this._getVisibleNodes = visibleNodes;\n }\n\n public onNodeClicked(nodeId: string, event: React.MouseEvent) {\n const selectionFunc = this._selectionHandler.createSelectionFunction(...this.createSelectionHandlers(nodeId));\n selectionFunc(event.shiftKey, event.ctrlKey);\n }\n\n public onNodeMouseDown(nodeId: string) {\n this._selectionHandler.createDragAction(this.createSelectionHandlers(nodeId)[0], this._itemHandlers, nodeId);\n window.addEventListener(\n \"mouseup\",\n () => {\n /* istanbul ignore else */\n if (this._dragSelectionOperation) {\n this._selectionHandler.completeDragAction();\n this._dragSelectionOperation.complete();\n this._dragSelectionOperation = undefined;\n }\n },\n { once: true },\n );\n this._dragSelectionOperation = new Subject();\n this._dragSelectionOperation\n .pipe(take(1))\n .subscribe((value) => {\n this.onDragSelection.emit({ selectionChanges: this._dragSelectionOperation! });\n this._dragSelectionOperation!.next(value);\n });\n }\n\n public onNodeMouseMove(nodeId: string) {\n this._selectionHandler.updateDragAction(nodeId);\n }\n\n private createSelectionHandlers(\n nodeId: string,\n ): [MultiSelectionHandler<Selection>, SingleSelectionHandler<string>] {\n let deselectedAll = false;\n const multiSelectionHandler: MultiSelectionHandler<Selection> = {\n selectBetween: (item1, item2) => [{ from: item1 as string, to: item2 as string }],\n updateSelection: (selections, deselections) => {\n // Assumes `updateSelection` will never be called with selection ranges\n const selectedNodeIds = selections as string[];\n const deselectedNodeIds = deselections as string[];\n this._dragSelectionOperation!.next({ selectedNodes: selectedNodeIds, deselectedNodes: deselectedNodeIds });\n },\n deselectAll: () => {\n deselectedAll = true;\n },\n areEqual: (item1, item2) => item1 === item2,\n };\n\n const singleSelectionHandler: SingleSelectionHandler<string> = {\n preselect: () => { },\n select: () => { },\n deselect: () => { },\n isSelected: () => {\n if (deselectedAll || this._getVisibleNodes === undefined) {\n return false;\n }\n\n const node = this._getVisibleNodes().getModel().getNode(nodeId);\n return node !== undefined && node.isSelected;\n },\n item: () => nodeId,\n };\n\n return [multiSelectionHandler, singleSelectionHandler];\n }\n\n public onTreeKeyDown(event: React.KeyboardEvent, actions: TreeActions): void {\n this._onKeyboardEvent(event, actions, true);\n }\n\n public onTreeKeyUp(event: React.KeyboardEvent, actions: TreeActions): void {\n this._onKeyboardEvent(event, actions, false);\n }\n\n private _onKeyboardEvent = (e: React.KeyboardEvent, actions: TreeActions, isKeyDown: boolean) => {\n if (isNavigationKey(e.key)) {\n // istanbul ignore next\n if (!this._getVisibleNodes)\n return;\n\n const processedNodeId = this._selectionHandler.processedItem;\n\n const isExpandable = (node: TreeModelNode): boolean => !node.isLoading && node.numChildren !== 0;\n const isEditing = (node: TreeModelNode): boolean => node.editingInfo !== undefined;\n\n // istanbul ignore else\n if (this._getVisibleNodes && isIndividualSelection(processedNodeId)) {\n const processedNode = this._getVisibleNodes().getModel().getNode(processedNodeId);\n // istanbul ignore next\n if (processedNode && isEditing(processedNode))\n return;\n }\n\n const handleKeyboardSelectItem = (index: number) => {\n // istanbul ignore else\n if (this._getVisibleNodes) {\n const node = this.getVisibleNodeAtIndex(this._getVisibleNodes(), index);\n // istanbul ignore else\n if (node) {\n // istanbul ignore next\n if (isEditing(node))\n return;\n\n const selectionFunc = this._selectionHandler.createSelectionFunction(...this.createSelectionHandlers(node.id));\n selectionFunc(e.shiftKey, e.ctrlKey);\n }\n }\n };\n const handleKeyboardActivateItem = (_index: number) => {\n // istanbul ignore else\n if (this._getVisibleNodes && isIndividualSelection(processedNodeId)) {\n const node = this._getVisibleNodes().getModel().getNode(processedNodeId);\n // istanbul ignore else\n if (node) {\n if (isExpandable(node)) {\n if (!node.isExpanded)\n actions.onNodeExpanded(node.id);\n else\n actions.onNodeCollapsed(node.id);\n } else {\n actions.onNodeEditorActivated(node.id);\n }\n }\n }\n };\n const handleCrossAxisArrowKey = (forward: boolean) => {\n // istanbul ignore else\n if (this._getVisibleNodes && isIndividualSelection(processedNodeId)) {\n const node = this._getVisibleNodes().getModel().getNode(processedNodeId);\n // istanbul ignore else\n if (node) {\n if (isExpandable(node)) {\n if (forward && !node.isExpanded)\n actions.onNodeExpanded(node.id);\n else if (!forward && node.isExpanded)\n actions.onNodeCollapsed(node.id);\n }\n }\n }\n };\n\n // istanbul ignore else\n if (isIndividualSelection(processedNodeId)) {\n const itemKeyboardNavigator = new ItemKeyboardNavigator(handleKeyboardSelectItem, handleKeyboardActivateItem);\n itemKeyboardNavigator.orientation = Orientation.Vertical;\n itemKeyboardNavigator.crossAxisArrowKeyHandler = handleCrossAxisArrowKey;\n itemKeyboardNavigator.allowWrap = false;\n itemKeyboardNavigator.itemCount = this._getVisibleNodes().getNumNodes();\n\n const index = this._getVisibleNodes().getIndexOfNode(processedNodeId);\n isKeyDown ?\n itemKeyboardNavigator.handleKeyDownEvent(e, index) :\n itemKeyboardNavigator.handleKeyUpEvent(e, index);\n }\n }\n };\n}\n\ntype Selection = string | RangeSelection;\n\nfunction isIndividualSelection(selection: Selection | undefined): selection is string {\n return typeof (selection) === \"string\";\n}\n\nclass ItemHandler implements SingleSelectionHandler<string> {\n private _node: TreeModelNode | undefined;\n\n constructor(node: TreeModelNode | undefined) {\n this._node = node;\n }\n\n /* istanbul ignore next: noop */\n public preselect() { }\n\n /* istanbul ignore next: noop */\n public select() { }\n\n /* istanbul ignore next: noop */\n public deselect() { }\n\n // eslint-disable-next-line @itwin/prefer-get\n public isSelected(): boolean {\n // istanbul ignore next\n return !!this._node?.isSelected;\n }\n\n public item(): string {\n return this._node?.id ?? \"\";\n }\n}\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 { 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components-react.js","sourceRoot":"","sources":["../../src/components-react.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;;;;;;;;;;;;AAE/F,qEAAqE;AAErE,gEAA+D;AAAtD,4GAAA,YAAY,OAAA;AAErB,kEAAgD;AAChD,wEAAsD;AACtD,qFAAmE;AACnE,uFAAqE;AACrE,4EAA0D;AAC1D,yEAAuD;AACvD,uFAAqE;AACrE,0EAAwD;AACxD,mFAAiE;AACjE,sEAAoD;AAEpD,8EAA4D;AAC5D,qFAAmE;AACnE,qFAAmE;AACnE,sFAAoE;AACpE,kFAAgE;AAChE,yFAAuE;AACvE,gGAA8E;AAC9E,qFAAmE;AACnE,mFAAiE;AACjE,oFAAkE;AAClE,uFAAqE;AAErE,0FAAwE;AAExE,0EAAwD;AACxD,2EAAyD;AACzD,sFAAoE;AACpE,8EAA4D;AAC5D,0EAAwD;AAExD,2EAAyD;AACzD,gFAA8D;AAC9D,4EAA0D;AAC1D,6EAA2D;AAC3D,mFAAiE;AACjE,wEAAsD;AACtD,wEAAsD;AACtD,iFAA+D;AAC/D,gFAA8D;AAC9D,mFAAiE;AACjE,0EAAwD;AACxD,wEAAsD;AACtD,4EAA0D;AAC1D,0EAAwD;AAExD,yFAAuE;AACvE,mFAAiE;AAEjE,8EAA4D;AAC5D,8EAA4D;AAE5D,wEAAsD;AAEtD,4EAA0D;AAC1D,qFAAmE;AACnE,uGAAqF;AACrF,oGAAkF;AAClF,2FAAyE;AACzE,uFAAqE;AACrE,2FAAyE;AACzE,+FAA6E;AAC7E,4GAA0F;AAC1F,mHAAiG;AACjG,yGAAuF;AACvF,iGAA+E;AAE/E,kFAAgE;AAChE,8EAA4D;AAC5D,0EAAwD;AAExD,kHAAgG;AAChG,+GAA6F;AAC7F,sGAAoF;AAEpF,+GAA6F;AAC7F,2GAAyF;AACzF,4GAA0F;AAC1F,4GAA0F;AAC1F,gHAA8F;AAC9F,yGAAuF;AACvF,0GAAwF;AACxF,gHAA8F;AAC9F,0EAAwD;AAExD,kGAAgF;AAChF,uFAAqE;AACrE,6FAA2E;AAC3E,oGAAkF;AAClF,oHAAkG;AAClG,kGAAgF;AAChF,mHAAiG;AACjG,gGAA8E;AAC9E,yFAAuE;AACvE,mGAAiF;AACjF,sHAAoG;AACpG,0HAAwG;AACxG,uHAAqG;AACrG,0GAAwF;AACxF,0GAAwF;AACxF,6GAA2F;AAC3F,oGAAkF;AAClF,6FAA2E;AAC3E,6FAA2E;AAC3E,wGAAsF;AACtF,mGAAiF;AACjF,sGAAoF;AACpF,wHAAsG;AACtG,wHAAsG;AACtG,2HAAyG;AACzG,oHAAkG;AAClG,mHAAiG;AAEjG,0FAAwE;AAExE,wDAAwD;AACxD,kFAAgE;AAEhE,+EAA6D;AAC7D,gFAA8D;AAC9D,8EAA4D;AAC5D,8EAA4D;AAE5D,qEAAmD;AACnD,iFAA+D;AAC/D,uEAAqD;AACrD,+EAA6D;AAC7D,kEAAgD;AAChD,iFAA+D;AAE/D,2EAAyD;AACzD,iFAA+D;AAC/D,6EAA2D;AAC3D,sEAAoD;AACpD,iFAA+D;AAC/D,yFAAuE;AACvE,sFAAoE;AACpE,gFAA8D;AAC9D,+EAA6D;AAC7D,qFAAmE;AACnE,oFAAkE;AAClE,gFAA8D;AAC9D,+EAA6D;AAC7D,8FAA4E;AAC5E,8FAA4E;AAC5E,gGAA8E;AAC9E,4FAA0E;AAC1E,yFAAuE;AAEvE;;;GAGG;AACH;;;GAGG;AACH;;;;GAIG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n// cSpell:ignore iconpicker lineweight hocs datepicker quantityformat\n\nexport { UiComponents } from \"./components-react/UiComponents\";\n\nexport * from \"./components-react/common/Links\";\nexport * from \"./components-react/common/PageOptions\";\nexport * from \"./components-react/common/selection/SelectionModes\";\nexport * from \"./components-react/common/HighlightingComponentProps\";\nexport * from \"./components-react/common/HighlightedText\";\nexport * from \"./components-react/common/IImageLoader\";\nexport * from \"./components-react/common/selection/SelectionHandler\";\nexport * from \"./components-react/common/UseAsyncValue\";\nexport * from \"./components-react/common/UseDebouncedAsyncValue\";\nexport * from \"./components-react/common/DateUtils\";\n\nexport * from \"./components-react/converters/TypeConverter\";\nexport * from \"./components-react/converters/TypeConverterManager\";\nexport * from \"./components-react/converters/BooleanTypeConverter\";\nexport * from \"./components-react/converters/DateTimeTypeConverter\";\nexport * from \"./components-react/converters/EnumTypeConverter\";\nexport * from \"./components-react/converters/HexadecimalTypeConverter\";\nexport * from \"./components-react/converters/NavigationPropertyTypeConverter\";\nexport * from \"./components-react/converters/NumericTypeConverter\";\nexport * from \"./components-react/converters/PointTypeConverter\";\nexport * from \"./components-react/converters/StringTypeConverter\";\nexport * from \"./components-react/converters/CompositeTypeConverter\";\n\nexport * from \"./components-react/converters/valuetypes/ConvertedTypes\";\n\nexport * from \"./components-react/datepicker/DateField\";\nexport * from \"./components-react/datepicker/DatePicker\";\nexport * from \"./components-react/datepicker/DatePickerPopupButton\";\nexport * from \"./components-react/datepicker/IntlFormatter\";\nexport * from \"./components-react/datepicker/TimeField\";\n\nexport * from \"./components-react/editors/BooleanEditor\";\nexport * from \"./components-react/editors/CustomNumberEditor\";\nexport * from \"./components-react/editors/DateTimeEditor\";\nexport * from \"./components-react/editors/EditorContainer\";\nexport * from \"./components-react/editors/EnumButtonGroupEditor\";\nexport * from \"./components-react/editors/EnumEditor\";\nexport * from \"./components-react/editors/IconEditor\";\nexport * from \"./components-react/editors/ImageCheckBoxEditor\";\nexport * from \"./components-react/editors/NumericInputEditor\";\nexport * from \"./components-react/editors/PropertyEditorManager\";\nexport * from \"./components-react/editors/SliderEditor\";\nexport * from \"./components-react/editors/TextEditor\";\nexport * from \"./components-react/editors/TextareaEditor\";\nexport * from \"./components-react/editors/ToggleEditor\";\n\nexport * from \"./components-react/favorite/FavoritePropertiesRenderer\";\nexport * from \"./components-react/favorite/FavoritePropertyList\";\n\nexport * from \"./components-react/filtering/FilteringInput\";\nexport * from \"./components-react/filtering/ResultSelector\";\n\nexport * from \"./components-react/inputs/ParsedInput\";\n\nexport * from \"./components-react/properties/LinkHandler\";\nexport * from \"./components-react/properties/ValueRendererManager\";\nexport * from \"./components-react/properties/renderers/NonPrimitivePropertyRenderer\";\nexport * from \"./components-react/properties/renderers/PrimitivePropertyRenderer\";\nexport * from \"./components-react/properties/renderers/PropertyRenderer\";\nexport * from \"./components-react/properties/renderers/PropertyView\";\nexport * from \"./components-react/properties/renderers/ActionButtonList\";\nexport * from \"./components-react/properties/renderers/ActionButtonRenderer\";\nexport * from \"./components-react/properties/renderers/value/MergedPropertyValueRenderer\";\nexport * from \"./components-react/properties/renderers/value/MultilineTextPropertyValueRenderer\";\nexport * from \"./components-react/properties/renderers/value/UrlPropertyValueRenderer\";\nexport * from \"./components-react/properties/renderers/value/WithContextStyle\";\n\nexport * from \"./components-react/filter-builder/FilterBuilder\";\nexport * from \"./components-react/filter-builder/Operators\";\nexport * from \"./components-react/filter-builder/Types\";\n\nexport * from \"./components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer\";\nexport * from \"./components-react/properties/renderers/label/PrimitivePropertyLabelRenderer\";\nexport * from \"./components-react/properties/renderers/label/PropertyLabelRenderer\";\n\nexport * from \"./components-react/properties/renderers/value/PrimitivePropertyValueRenderer\";\nexport * from \"./components-react/properties/renderers/value/ArrayPropertyValueRenderer\";\nexport * from \"./components-react/properties/renderers/value/StructPropertyValueRenderer\";\nexport * from \"./components-react/properties/renderers/value/DoublePropertyValueRenderer\";\nexport * from \"./components-react/properties/renderers/value/NavigationPropertyValueRenderer\";\nexport * from \"./components-react/properties/renderers/value/table/ArrayValueRenderer\";\nexport * from \"./components-react/properties/renderers/value/table/StructValueRenderer\";\nexport * from \"./components-react/properties/renderers/value/table/NonPrimitiveValueRenderer\";\nexport * from \"./components-react/properties/ItemStyle\";\n\nexport * from \"./components-react/propertygrid/PropertyCategoryRendererManager\";\nexport * from \"./components-react/propertygrid/PropertyDataProvider\";\nexport * from \"./components-react/propertygrid/SimplePropertyDataProvider\";\nexport * from \"./components-react/propertygrid/component/VirtualizedPropertyGrid\";\nexport * from \"./components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider\";\nexport * from \"./components-react/propertygrid/component/PropertyCategoryBlock\";\nexport * from \"./components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier\";\nexport * from \"./components-react/propertygrid/component/PropertyGridCommons\";\nexport * from \"./components-react/propertygrid/component/PropertyList\";\nexport * from \"./components-react/propertygrid/internal/flat-items/FlatGridItem\";\nexport * from \"./components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty\";\nexport * from \"./components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty\";\nexport * from \"./components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty\";\nexport * from \"./components-react/propertygrid/internal/flat-items/MutableFlatGridItem\";\nexport * from \"./components-react/propertygrid/internal/flat-items/MutableGridCategory\";\nexport * from \"./components-react/propertygrid/internal/flat-items/MutableGridItemFactory\";\nexport * from \"./components-react/propertygrid/internal/PropertyGridEventHandler\";\nexport * from \"./components-react/propertygrid/internal/PropertyGridHooks\";\nexport * from \"./components-react/propertygrid/internal/PropertyGridModel\";\nexport * from \"./components-react/propertygrid/internal/PropertyGridModelChangeEvent\";\nexport * from \"./components-react/propertygrid/internal/PropertyGridModelSource\";\nexport * from \"./components-react/propertygrid/dataproviders/FilteringDataProvider\";\nexport * from \"./components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer\";\nexport * from \"./components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer\";\nexport * from \"./components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer\";\nexport * from \"./components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer\";\nexport * from \"./components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase\";\n\nexport * from \"./components-react/selectable-content/SelectableContent\";\n\n// TODO: toolbar/groupPanel components needs a refactor.\nexport * from \"./components-react/toolbar/groupPanel/tool/Tool\";\n\nexport * from \"./components-react/toolbar/groupPanel/Column\";\nexport * from \"./components-react/toolbar/groupPanel/Columns\";\nexport * from \"./components-react/toolbar/groupPanel/Panel\";\nexport * from \"./components-react/toolbar/groupPanel/Title\";\n\nexport * from \"./components-react/toolbar/Toolbar\";\nexport * from \"./components-react/toolbar/ToolbarWithOverflow\";\nexport * from \"./components-react/toolbar/PopupItem\";\nexport * from \"./components-react/toolbar/PopupItemWithDrag\";\nexport * from \"./components-react/toolbar/Item\";\nexport * from \"./components-react/toolbar/utilities/Direction\";\n\nexport * from \"./components-react/tree/TreeDataProvider\";\nexport * from \"./components-react/tree/SimpleTreeDataProvider\";\nexport * from \"./components-react/tree/HighlightingEngine\";\nexport * from \"./components-react/tree/ImageLoader\";\nexport * from \"./components-react/tree/controlled/TreeActions\";\nexport * from \"./components-react/tree/controlled/TreeEventDispatcher\";\nexport * from \"./components-react/tree/controlled/TreeEventHandler\";\nexport * from \"./components-react/tree/controlled/TreeEvents\";\nexport * from \"./components-react/tree/controlled/TreeModel\";\nexport * from \"./components-react/tree/controlled/TreeModelSource\";\nexport * from \"./components-react/tree/controlled/TreeNodeLoader\";\nexport * from \"./components-react/tree/controlled/Observable\";\nexport * from \"./components-react/tree/controlled/TreeHooks\";\nexport * from \"./components-react/tree/controlled/component/ControlledTree\";\nexport * from \"./components-react/tree/controlled/component/TreeNodeEditor\";\nexport * from \"./components-react/tree/controlled/component/TreeNodeRenderer\";\nexport * from \"./components-react/tree/controlled/component/TreeRenderer\";\nexport * from \"./components-react/tree/controlled/internal/SparseTree\";\n\n/** @docs-package-description\n * The components-react package contains React components that are data-oriented, such as PropertyGrid, Table and Tree.\n * For more information, see [learning about components-react]($docs/learning/ui/components/index.md).\n */\n/**\n * @docs-group-description Common\n * Common classes used across various UI components.\n */\n/**\n * @docs-group-description Breadcrumb\n * Classes and components for working with a Breadcrumb.\n * As of version 3.0, the Breadcrumb is deprecated.\n */\n/**\n * @docs-group-description Date\n * Classes, interfaces, and components for showing and setting date and time.\n */\n/**\n * @docs-group-description DragDrop\n * Classes and Higher Order Components for working with the DragDrop API.\n */\n/**\n * @docs-group-description Favorite\n * Classes and components for displaying favorite properties.\n */\n/**\n * @docs-group-description Filtering\n * Classes and components for working with filtering.\n */\n/**\n * @docs-group-description Inputs\n * Input Components that format and parse input.\n */\n/**\n * @docs-group-description SelectableContent\n * Classes and components for working with SelectableContent component.\n */\n/**\n * @docs-group-description Properties\n * Classes and components for working with Properties.\n */\n/**\n * @docs-group-description PropertyEditors\n * Classes and components for working with Property Editors.\n */\n/**\n * @docs-group-description PropertyGrid\n * Classes and components for working with a PropertyGrid.\n */\n/**\n * @docs-group-description Table\n * Classes and components for working with a Table.\n */\n/**\n * @docs-group-description Toolbar\n * Functions and components that provide a Toolbar.\n */\n/**\n * @docs-group-description Tree\n * Classes and components for working with a Tree.\n */\n/**\n * @docs-group-description TypeConverters\n * Classes for working with Type Converters.\n */\n/**\n * @docs-group-description PropertyFilterBuilder\n * Classes and components for working with PropertyFilterBuilder.\n */\n"]}
|
|
1
|
+
{"version":3,"file":"components-react.js","sourceRoot":"","sources":["../../src/components-react.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;;;;;;;;;;;;AAE/F,qEAAqE;AAErE,gEAA+D;AAAtD,4GAAA,YAAY,OAAA;AAErB,kEAAgD;AAChD,wEAAsD;AACtD,qFAAmE;AACnE,uFAAqE;AACrE,4EAA0D;AAC1D,yEAAuD;AACvD,uFAAqE;AACrE,0EAAwD;AACxD,mFAAiE;AACjE,sEAAoD;AAEpD,8EAA4D;AAC5D,qFAAmE;AACnE,qFAAmE;AACnE,sFAAoE;AACpE,kFAAgE;AAChE,yFAAuE;AACvE,gGAA8E;AAC9E,qFAAmE;AACnE,mFAAiE;AACjE,oFAAkE;AAClE,uFAAqE;AAErE,0FAAwE;AAExE,0EAAwD;AACxD,2EAAyD;AACzD,sFAAoE;AACpE,8EAA4D;AAC5D,0EAAwD;AAExD,2EAAyD;AACzD,gFAA8D;AAC9D,4EAA0D;AAC1D,6EAA2D;AAC3D,mFAAiE;AACjE,wEAAsD;AACtD,wEAAsD;AACtD,iFAA+D;AAC/D,gFAA8D;AAC9D,mFAAiE;AACjE,0EAAwD;AACxD,wEAAsD;AACtD,4EAA0D;AAC1D,0EAAwD;AAExD,yFAAuE;AACvE,mFAAiE;AAEjE,8EAA4D;AAC5D,8EAA4D;AAE5D,wEAAsD;AAEtD,4EAA0D;AAC1D,qFAAmE;AACnE,uGAAqF;AACrF,oGAAkF;AAClF,2FAAyE;AACzE,uFAAqE;AACrE,2FAAyE;AACzE,+FAA6E;AAC7E,4GAA0F;AAC1F,mHAAiG;AACjG,yGAAuF;AACvF,iGAA+E;AAE/E,kFAAgE;AAChE,8EAA4D;AAC5D,0EAAwD;AAExD,kHAAgG;AAChG,+GAA6F;AAC7F,sGAAoF;AAEpF,+GAA6F;AAC7F,2GAAyF;AACzF,4GAA0F;AAC1F,4GAA0F;AAC1F,gHAA8F;AAC9F,yGAAuF;AACvF,0GAAwF;AACxF,gHAA8F;AAC9F,0EAAwD;AAExD,kGAAgF;AAChF,uFAAqE;AACrE,6FAA2E;AAC3E,oGAAkF;AAClF,oHAAkG;AAClG,kGAAgF;AAChF,mHAAiG;AACjG,gGAA8E;AAC9E,yFAAuE;AACvE,mGAAiF;AACjF,sHAAoG;AACpG,0HAAwG;AACxG,uHAAqG;AACrG,0GAAwF;AACxF,0GAAwF;AACxF,6GAA2F;AAC3F,oGAAkF;AAClF,6FAA2E;AAC3E,6FAA2E;AAC3E,wGAAsF;AACtF,mGAAiF;AACjF,sGAAoF;AACpF,wHAAsG;AACtG,wHAAsG;AACtG,2HAAyG;AACzG,oHAAkG;AAClG,mHAAiG;AAEjG,0FAAwE;AAExE,wDAAwD;AACxD,kFAAgE;AAEhE,+EAA6D;AAC7D,gFAA8D;AAC9D,8EAA4D;AAC5D,8EAA4D;AAE5D,qEAAmD;AACnD,iFAA+D;AAC/D,uEAAqD;AACrD,+EAA6D;AAC7D,kEAAgD;AAChD,iFAA+D;AAE/D,2EAAyD;AACzD,iFAA+D;AAC/D,6EAA2D;AAC3D,sEAAoD;AACpD,iFAA+D;AAC/D,yFAAuE;AACvE,sFAAoE;AACpE,gFAA8D;AAC9D,+EAA6D;AAC7D,qFAAmE;AACnE,oFAAkE;AAClE,gFAA8D;AAC9D,+EAA6D;AAC7D,8FAA4E;AAC5E,8FAA4E;AAC5E,gGAA8E;AAC9E,4FAA0E;AAC1E,yFAAuE;AAEvE;;;GAGG;AACH;;;GAGG;AACH;;;;GAIG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n// cSpell:ignore iconpicker lineweight hocs datepicker quantityformat\r\n\r\nexport { UiComponents } from \"./components-react/UiComponents\";\r\n\r\nexport * from \"./components-react/common/Links\";\r\nexport * from \"./components-react/common/PageOptions\";\r\nexport * from \"./components-react/common/selection/SelectionModes\";\r\nexport * from \"./components-react/common/HighlightingComponentProps\";\r\nexport * from \"./components-react/common/HighlightedText\";\r\nexport * from \"./components-react/common/IImageLoader\";\r\nexport * from \"./components-react/common/selection/SelectionHandler\";\r\nexport * from \"./components-react/common/UseAsyncValue\";\r\nexport * from \"./components-react/common/UseDebouncedAsyncValue\";\r\nexport * from \"./components-react/common/DateUtils\";\r\n\r\nexport * from \"./components-react/converters/TypeConverter\";\r\nexport * from \"./components-react/converters/TypeConverterManager\";\r\nexport * from \"./components-react/converters/BooleanTypeConverter\";\r\nexport * from \"./components-react/converters/DateTimeTypeConverter\";\r\nexport * from \"./components-react/converters/EnumTypeConverter\";\r\nexport * from \"./components-react/converters/HexadecimalTypeConverter\";\r\nexport * from \"./components-react/converters/NavigationPropertyTypeConverter\";\r\nexport * from \"./components-react/converters/NumericTypeConverter\";\r\nexport * from \"./components-react/converters/PointTypeConverter\";\r\nexport * from \"./components-react/converters/StringTypeConverter\";\r\nexport * from \"./components-react/converters/CompositeTypeConverter\";\r\n\r\nexport * from \"./components-react/converters/valuetypes/ConvertedTypes\";\r\n\r\nexport * from \"./components-react/datepicker/DateField\";\r\nexport * from \"./components-react/datepicker/DatePicker\";\r\nexport * from \"./components-react/datepicker/DatePickerPopupButton\";\r\nexport * from \"./components-react/datepicker/IntlFormatter\";\r\nexport * from \"./components-react/datepicker/TimeField\";\r\n\r\nexport * from \"./components-react/editors/BooleanEditor\";\r\nexport * from \"./components-react/editors/CustomNumberEditor\";\r\nexport * from \"./components-react/editors/DateTimeEditor\";\r\nexport * from \"./components-react/editors/EditorContainer\";\r\nexport * from \"./components-react/editors/EnumButtonGroupEditor\";\r\nexport * from \"./components-react/editors/EnumEditor\";\r\nexport * from \"./components-react/editors/IconEditor\";\r\nexport * from \"./components-react/editors/ImageCheckBoxEditor\";\r\nexport * from \"./components-react/editors/NumericInputEditor\";\r\nexport * from \"./components-react/editors/PropertyEditorManager\";\r\nexport * from \"./components-react/editors/SliderEditor\";\r\nexport * from \"./components-react/editors/TextEditor\";\r\nexport * from \"./components-react/editors/TextareaEditor\";\r\nexport * from \"./components-react/editors/ToggleEditor\";\r\n\r\nexport * from \"./components-react/favorite/FavoritePropertiesRenderer\";\r\nexport * from \"./components-react/favorite/FavoritePropertyList\";\r\n\r\nexport * from \"./components-react/filtering/FilteringInput\";\r\nexport * from \"./components-react/filtering/ResultSelector\";\r\n\r\nexport * from \"./components-react/inputs/ParsedInput\";\r\n\r\nexport * from \"./components-react/properties/LinkHandler\";\r\nexport * from \"./components-react/properties/ValueRendererManager\";\r\nexport * from \"./components-react/properties/renderers/NonPrimitivePropertyRenderer\";\r\nexport * from \"./components-react/properties/renderers/PrimitivePropertyRenderer\";\r\nexport * from \"./components-react/properties/renderers/PropertyRenderer\";\r\nexport * from \"./components-react/properties/renderers/PropertyView\";\r\nexport * from \"./components-react/properties/renderers/ActionButtonList\";\r\nexport * from \"./components-react/properties/renderers/ActionButtonRenderer\";\r\nexport * from \"./components-react/properties/renderers/value/MergedPropertyValueRenderer\";\r\nexport * from \"./components-react/properties/renderers/value/MultilineTextPropertyValueRenderer\";\r\nexport * from \"./components-react/properties/renderers/value/UrlPropertyValueRenderer\";\r\nexport * from \"./components-react/properties/renderers/value/WithContextStyle\";\r\n\r\nexport * from \"./components-react/filter-builder/FilterBuilder\";\r\nexport * from \"./components-react/filter-builder/Operators\";\r\nexport * from \"./components-react/filter-builder/Types\";\r\n\r\nexport * from \"./components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer\";\r\nexport * from \"./components-react/properties/renderers/label/PrimitivePropertyLabelRenderer\";\r\nexport * from \"./components-react/properties/renderers/label/PropertyLabelRenderer\";\r\n\r\nexport * from \"./components-react/properties/renderers/value/PrimitivePropertyValueRenderer\";\r\nexport * from \"./components-react/properties/renderers/value/ArrayPropertyValueRenderer\";\r\nexport * from \"./components-react/properties/renderers/value/StructPropertyValueRenderer\";\r\nexport * from \"./components-react/properties/renderers/value/DoublePropertyValueRenderer\";\r\nexport * from \"./components-react/properties/renderers/value/NavigationPropertyValueRenderer\";\r\nexport * from \"./components-react/properties/renderers/value/table/ArrayValueRenderer\";\r\nexport * from \"./components-react/properties/renderers/value/table/StructValueRenderer\";\r\nexport * from \"./components-react/properties/renderers/value/table/NonPrimitiveValueRenderer\";\r\nexport * from \"./components-react/properties/ItemStyle\";\r\n\r\nexport * from \"./components-react/propertygrid/PropertyCategoryRendererManager\";\r\nexport * from \"./components-react/propertygrid/PropertyDataProvider\";\r\nexport * from \"./components-react/propertygrid/SimplePropertyDataProvider\";\r\nexport * from \"./components-react/propertygrid/component/VirtualizedPropertyGrid\";\r\nexport * from \"./components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider\";\r\nexport * from \"./components-react/propertygrid/component/PropertyCategoryBlock\";\r\nexport * from \"./components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier\";\r\nexport * from \"./components-react/propertygrid/component/PropertyGridCommons\";\r\nexport * from \"./components-react/propertygrid/component/PropertyList\";\r\nexport * from \"./components-react/propertygrid/internal/flat-items/FlatGridItem\";\r\nexport * from \"./components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty\";\r\nexport * from \"./components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty\";\r\nexport * from \"./components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty\";\r\nexport * from \"./components-react/propertygrid/internal/flat-items/MutableFlatGridItem\";\r\nexport * from \"./components-react/propertygrid/internal/flat-items/MutableGridCategory\";\r\nexport * from \"./components-react/propertygrid/internal/flat-items/MutableGridItemFactory\";\r\nexport * from \"./components-react/propertygrid/internal/PropertyGridEventHandler\";\r\nexport * from \"./components-react/propertygrid/internal/PropertyGridHooks\";\r\nexport * from \"./components-react/propertygrid/internal/PropertyGridModel\";\r\nexport * from \"./components-react/propertygrid/internal/PropertyGridModelChangeEvent\";\r\nexport * from \"./components-react/propertygrid/internal/PropertyGridModelSource\";\r\nexport * from \"./components-react/propertygrid/dataproviders/FilteringDataProvider\";\r\nexport * from \"./components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer\";\r\nexport * from \"./components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer\";\r\nexport * from \"./components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer\";\r\nexport * from \"./components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer\";\r\nexport * from \"./components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase\";\r\n\r\nexport * from \"./components-react/selectable-content/SelectableContent\";\r\n\r\n// TODO: toolbar/groupPanel components needs a refactor.\r\nexport * from \"./components-react/toolbar/groupPanel/tool/Tool\";\r\n\r\nexport * from \"./components-react/toolbar/groupPanel/Column\";\r\nexport * from \"./components-react/toolbar/groupPanel/Columns\";\r\nexport * from \"./components-react/toolbar/groupPanel/Panel\";\r\nexport * from \"./components-react/toolbar/groupPanel/Title\";\r\n\r\nexport * from \"./components-react/toolbar/Toolbar\";\r\nexport * from \"./components-react/toolbar/ToolbarWithOverflow\";\r\nexport * from \"./components-react/toolbar/PopupItem\";\r\nexport * from \"./components-react/toolbar/PopupItemWithDrag\";\r\nexport * from \"./components-react/toolbar/Item\";\r\nexport * from \"./components-react/toolbar/utilities/Direction\";\r\n\r\nexport * from \"./components-react/tree/TreeDataProvider\";\r\nexport * from \"./components-react/tree/SimpleTreeDataProvider\";\r\nexport * from \"./components-react/tree/HighlightingEngine\";\r\nexport * from \"./components-react/tree/ImageLoader\";\r\nexport * from \"./components-react/tree/controlled/TreeActions\";\r\nexport * from \"./components-react/tree/controlled/TreeEventDispatcher\";\r\nexport * from \"./components-react/tree/controlled/TreeEventHandler\";\r\nexport * from \"./components-react/tree/controlled/TreeEvents\";\r\nexport * from \"./components-react/tree/controlled/TreeModel\";\r\nexport * from \"./components-react/tree/controlled/TreeModelSource\";\r\nexport * from \"./components-react/tree/controlled/TreeNodeLoader\";\r\nexport * from \"./components-react/tree/controlled/Observable\";\r\nexport * from \"./components-react/tree/controlled/TreeHooks\";\r\nexport * from \"./components-react/tree/controlled/component/ControlledTree\";\r\nexport * from \"./components-react/tree/controlled/component/TreeNodeEditor\";\r\nexport * from \"./components-react/tree/controlled/component/TreeNodeRenderer\";\r\nexport * from \"./components-react/tree/controlled/component/TreeRenderer\";\r\nexport * from \"./components-react/tree/controlled/internal/SparseTree\";\r\n\r\n/** @docs-package-description\r\n * The components-react package contains React components that are data-oriented, such as PropertyGrid, Table and Tree.\r\n * For more information, see [learning about components-react]($docs/learning/ui/components/index.md).\r\n */\r\n/**\r\n * @docs-group-description Common\r\n * Common classes used across various UI components.\r\n */\r\n/**\r\n * @docs-group-description Breadcrumb\r\n * Classes and components for working with a Breadcrumb.\r\n * As of version 3.0, the Breadcrumb is deprecated.\r\n */\r\n/**\r\n * @docs-group-description Date\r\n * Classes, interfaces, and components for showing and setting date and time.\r\n */\r\n/**\r\n * @docs-group-description DragDrop\r\n * Classes and Higher Order Components for working with the DragDrop API.\r\n */\r\n/**\r\n * @docs-group-description Favorite\r\n * Classes and components for displaying favorite properties.\r\n */\r\n/**\r\n * @docs-group-description Filtering\r\n * Classes and components for working with filtering.\r\n */\r\n/**\r\n * @docs-group-description Inputs\r\n * Input Components that format and parse input.\r\n */\r\n/**\r\n * @docs-group-description SelectableContent\r\n * Classes and components for working with SelectableContent component.\r\n */\r\n/**\r\n * @docs-group-description Properties\r\n * Classes and components for working with Properties.\r\n */\r\n/**\r\n * @docs-group-description PropertyEditors\r\n * Classes and components for working with Property Editors.\r\n */\r\n/**\r\n * @docs-group-description PropertyGrid\r\n * Classes and components for working with a PropertyGrid.\r\n */\r\n/**\r\n * @docs-group-description Table\r\n * Classes and components for working with a Table.\r\n */\r\n/**\r\n * @docs-group-description Toolbar\r\n * Functions and components that provide a Toolbar.\r\n */\r\n/**\r\n * @docs-group-description Tree\r\n * Classes and components for working with a Tree.\r\n */\r\n/**\r\n * @docs-group-description TypeConverters\r\n * Classes for working with Type Converters.\r\n */\r\n/**\r\n * @docs-group-description PropertyFilterBuilder\r\n * Classes and components for working with PropertyFilterBuilder.\r\n */\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiComponents.js","sourceRoot":"","sources":["../../../src/components-react/UiComponents.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;;GAGG;AACH,MAAa,YAAY;IAIvB;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAA0B;QACvD,IAAI,YAAY,CAAC,YAAY,EAAE;YAC7B,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,wCAAwC,CAAC,CAAC;YACpG,OAAO;SACR;QAED,aAAa,EAAE,CAAC;QAChB,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC;QAC1C,MAAM,YAAY,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAEvF,MAAM,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACpD,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;IACnC,CAAC;IAED,0DAA0D;IACnD,MAAM,CAAC,SAAS;QACrB,IAAI,YAAY,CAAC,aAAa;YAC5B,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QACrF,YAAY,CAAC,aAAa,GAAG,SAAS,CAAC;QAEvC,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,sDAAsD;IAC/C,MAAM,KAAK,WAAW,KAAc,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAE9E;;OAEG;IACI,MAAM,KAAK,YAAY;QAC5B,IAAI,CAAC,YAAY,CAAC,aAAa;YAC7B,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,mGAAmG,CAAC,CAAC;QAC5J,OAAO,YAAY,CAAC,aAAa,CAAC;IACpC,CAAC;IAED,kDAAkD;IAC3C,MAAM,KAAK,qBAAqB;QACrC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,gBAAgB;IACT,MAAM,KAAK,WAAW;QAC3B,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,SAAS,CAAC,GAAsB;QAC5C,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;YAC7B,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,iFAAiF,CAAC,CAAC;YACtI,OAAO,EAAE,CAAC;SACX;QACD,OAAO,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,cAAc,CAAC,GAAQ;QACnC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC;IAClB,CAAC;;AArEc,yBAAY,GAAG,KAAK,CAAC;SADzB,YAAY","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Common\n */\n\nimport { enablePatches } from \"immer\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { Localization } from \"@itwin/core-common\";\nimport { getClassName, UiError } from \"@itwin/appui-abstract\";\nimport { UiCore } from \"@itwin/core-react\";\n\n/**\n * Manages the localization service for the components-react package.\n * @public\n */\nexport class UiComponents {\n private static _initialized = false;\n private static _localization?: Localization;\n\n /**\n * Registers the localization service namespace for UiComponents. Also initializes UiCore.\n * @param localization The internationalization service created by the host application.\n */\n public static async initialize(localization: Localization): Promise<void> {\n if (UiComponents._initialized) {\n Logger.logInfo(UiComponents.loggerCategory(UiComponents), `UiComponents.initialize already called`);\n return;\n }\n\n enablePatches();\n UiComponents._localization = localization;\n await UiComponents._localization.registerNamespace(UiComponents.localizationNamespace);\n\n await UiCore.initialize(UiComponents._localization);\n UiComponents._initialized = true;\n }\n\n /** Unregisters the UiComponents localization namespace */\n public static terminate() {\n if (UiComponents._localization)\n UiComponents._localization.unregisterNamespace(UiComponents.localizationNamespace);\n UiComponents._localization = undefined;\n\n UiCore.terminate();\n UiComponents._initialized = false;\n }\n\n /** Determines if UiComponents has been initialized */\n public static get initialized(): boolean { return UiComponents._initialized; }\n\n /** The internationalization service created by the host application.\n * @internal\n */\n public static get localization(): Localization {\n if (!UiComponents._localization)\n throw new UiError(UiComponents.loggerCategory(this), \"_localization: UiComponents.initialize has not been called. Unable to return Localization object.\");\n return UiComponents._localization;\n }\n\n /** The internationalization service namespace. */\n public static get localizationNamespace(): string {\n return \"UiComponents\";\n }\n\n /** @internal */\n public static get packageName(): string {\n return \"components-react\";\n }\n\n /** Calls localization.getLocalizedStringWithNamespace with the \"UiComponents\" namespace. Do NOT include the namespace in the key.\n * @internal\n */\n public static translate(key: string | string[]): string {\n if (!UiComponents.initialized) {\n Logger.logError(UiComponents.loggerCategory(this), `translate: UiComponents.initialize has not been called. Returning blank string.`);\n return \"\";\n }\n return UiComponents.localization.getLocalizedString(key, { ns: UiComponents.localizationNamespace });\n }\n\n /** @internal */\n public static loggerCategory(obj: any): string {\n const className = getClassName(obj);\n const category = UiComponents.packageName + (className ? `.${className}` : \"\");\n return category;\n }\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UiComponents.js","sourceRoot":"","sources":["../../../src/components-react/UiComponents.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;;GAGG;AACH,MAAa,YAAY;IAIvB;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAA0B;QACvD,IAAI,YAAY,CAAC,YAAY,EAAE;YAC7B,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,wCAAwC,CAAC,CAAC;YACpG,OAAO;SACR;QAED,aAAa,EAAE,CAAC;QAChB,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC;QAC1C,MAAM,YAAY,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAEvF,MAAM,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACpD,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;IACnC,CAAC;IAED,0DAA0D;IACnD,MAAM,CAAC,SAAS;QACrB,IAAI,YAAY,CAAC,aAAa;YAC5B,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QACrF,YAAY,CAAC,aAAa,GAAG,SAAS,CAAC;QAEvC,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,sDAAsD;IAC/C,MAAM,KAAK,WAAW,KAAc,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAE9E;;OAEG;IACI,MAAM,KAAK,YAAY;QAC5B,IAAI,CAAC,YAAY,CAAC,aAAa;YAC7B,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,mGAAmG,CAAC,CAAC;QAC5J,OAAO,YAAY,CAAC,aAAa,CAAC;IACpC,CAAC;IAED,kDAAkD;IAC3C,MAAM,KAAK,qBAAqB;QACrC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,gBAAgB;IACT,MAAM,KAAK,WAAW;QAC3B,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,SAAS,CAAC,GAAsB;QAC5C,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;YAC7B,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,iFAAiF,CAAC,CAAC;YACtI,OAAO,EAAE,CAAC;SACX;QACD,OAAO,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,cAAc,CAAC,GAAQ;QACnC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC;IAClB,CAAC;;AArEc,yBAAY,GAAG,KAAK,CAAC;SADzB,YAAY","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 Common\r\n */\r\n\r\nimport { enablePatches } from \"immer\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { Localization } from \"@itwin/core-common\";\r\nimport { getClassName, UiError } from \"@itwin/appui-abstract\";\r\nimport { UiCore } from \"@itwin/core-react\";\r\n\r\n/**\r\n * Manages the localization service for the components-react package.\r\n * @public\r\n */\r\nexport class UiComponents {\r\n private static _initialized = false;\r\n private static _localization?: Localization;\r\n\r\n /**\r\n * Registers the localization service namespace for UiComponents. Also initializes UiCore.\r\n * @param localization The internationalization service created by the host application.\r\n */\r\n public static async initialize(localization: Localization): Promise<void> {\r\n if (UiComponents._initialized) {\r\n Logger.logInfo(UiComponents.loggerCategory(UiComponents), `UiComponents.initialize already called`);\r\n return;\r\n }\r\n\r\n enablePatches();\r\n UiComponents._localization = localization;\r\n await UiComponents._localization.registerNamespace(UiComponents.localizationNamespace);\r\n\r\n await UiCore.initialize(UiComponents._localization);\r\n UiComponents._initialized = true;\r\n }\r\n\r\n /** Unregisters the UiComponents localization namespace */\r\n public static terminate() {\r\n if (UiComponents._localization)\r\n UiComponents._localization.unregisterNamespace(UiComponents.localizationNamespace);\r\n UiComponents._localization = undefined;\r\n\r\n UiCore.terminate();\r\n UiComponents._initialized = false;\r\n }\r\n\r\n /** Determines if UiComponents has been initialized */\r\n public static get initialized(): boolean { return UiComponents._initialized; }\r\n\r\n /** The internationalization service created by the host application.\r\n * @internal\r\n */\r\n public static get localization(): Localization {\r\n if (!UiComponents._localization)\r\n throw new UiError(UiComponents.loggerCategory(this), \"_localization: UiComponents.initialize has not been called. Unable to return Localization object.\");\r\n return UiComponents._localization;\r\n }\r\n\r\n /** The internationalization service namespace. */\r\n public static get localizationNamespace(): string {\r\n return \"UiComponents\";\r\n }\r\n\r\n /** @internal */\r\n public static get packageName(): string {\r\n return \"components-react\";\r\n }\r\n\r\n /** Calls localization.getLocalizedStringWithNamespace with the \"UiComponents\" namespace. Do NOT include the namespace in the key.\r\n * @internal\r\n */\r\n public static translate(key: string | string[]): string {\r\n if (!UiComponents.initialized) {\r\n Logger.logError(UiComponents.loggerCategory(this), `translate: UiComponents.initialize has not been called. Returning blank string.`);\r\n return \"\";\r\n }\r\n return UiComponents.localization.getLocalizedString(key, { ns: UiComponents.localizationNamespace });\r\n }\r\n\r\n /** @internal */\r\n public static loggerCategory(obj: any): string {\r\n const className = getClassName(obj);\r\n const category = UiComponents.packageName + (className ? `.${className}` : \"\");\r\n return category;\r\n }\r\n\r\n}\r\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@mixin components-internal-targeted {
|
|
6
|
-
&:hover, &.components-targeted {
|
|
7
|
-
@content;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
@mixin components-internal-targeted {
|
|
6
|
+
&:hover, &.components-targeted {
|
|
7
|
+
@content;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateUtils.js","sourceRoot":"","sources":["../../../../src/components-react/common/DateUtils.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAWH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAgB,EAAE,SAAiB;IACtE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,iBAAiB,EAAE,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC;AAC/F,CAAC;AACD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAU,EAAE,cAAuB,EAAE,aAAiC,EAAE,EAAE;IACrG,IAAI,aAAa,EAAE;QACjB,OAAO,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3G,oBAAoB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/G;IACD,OAAO,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,kBAAkB,EAAE,CAAC;AACpI,CAAC,CAAC;AACF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAU,EAAE,cAAuB,EAAE,aAAiC,EAAE,EAAE;IACrG,IAAI,aAAa,EAAE;QACjB,OAAO,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3G,oBAAoB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/G;IACD,OAAO,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,kBAAkB,EAAE,CAAC;AACpI,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Common\n */\n\n/**\n * Define formatting options for use when component are generating a formatted date string calling `Date.toLocaleTimeString()`.\n * @public\n */\nexport interface DateFormatOptions {\n locales?: string | string[] | undefined;\n options?: Intl.DateTimeFormatOptions | undefined;\n}\n\n/**\n * Adjust a Date object to show time in one time zone as if it is in the local time zone.\n * This is useful when showing sunrise and sunset times for a project location in a different time zone\n * and the time displayed should appear as if the user is seeing clock in project location.\n * Example 1:\n * If you have a UTC time for London (UTC +0100) and you want to display it in Eastern-US (UTC -0400) as if you were in London.\n * ```ts\n * londonDate = new Date(\"July 22, 2018 07:22:13 +0100\");\n * in Eastern-US londonDate will show as '7/22/2018, 2:22:13 AM'\n * adjustedDate = adjustDateToTimezone(londonDate, 1*60);\n * in location Eastern-US adjustedDate will show as '7/22/2018, 7:22:13 AM'\n * ```\n * Example 2:\n * If you have a UTC time for your location (UTC -0400) and you want to display the time as if you are in Western-US (UTC -0700).\n * ```ts\n * easternDate = new Date(\"July 22, 2018 07:22:13 -0400\");\n * adjustedDate = adjustDateToTimezone(easternDate, -7*60);\n * in location Eastern-US adjustedDate will show as '7/22/2018, 7:22:13 AM'\n * ```\n *\n * The utcOffset must be the time in minutes between the UTC and the desired time zone at the date specified by inDateTime.\n * For example, if you want the time offset to New York, NY and the date is during Daylight Saving Time, utcOffset should be -240 (-4 * 60).\n * If the date falls during Standard Time in New York, utcOffset will be -300 (-5 * 60).\n *\n * @param inDateTime date/time at project location\n * @param utcOffset UTC offset in minutes\n * @public\n */\nexport function adjustDateToTimezone(inDateTime: Date, utcOffset: number) {\n return new Date(inDateTime.getTime() + (inDateTime.getTimezoneOffset() + utcOffset) * 60000);\n}\n/**\n * Format a date in a display string, optionally converting to time zone, if specified by timeZoneOffset\n * @param date Date object to format\n * @param timeZoneOffset optional: offset from UTC to use for conversion\n * @param formatOptions optional: allow locale and format for output Date string. If not defined current locale options are used.\n * @returns formatted date string\n * @public\n */\nexport const toDateString = (date: Date, timeZoneOffset?: number, formatOptions?: DateFormatOptions) => {\n if (formatOptions) {\n return undefined === timeZoneOffset ? date.toLocaleDateString(formatOptions.locales, formatOptions.options) :\n adjustDateToTimezone(date, timeZoneOffset).toLocaleDateString(formatOptions.locales, formatOptions.options);\n }\n return undefined === timeZoneOffset ? date.toLocaleDateString() : adjustDateToTimezone(date, timeZoneOffset).toLocaleDateString();\n};\n/**\n * Format the time included in a date, optionally converting to time zone, if specified\n * @param date Date object\n * @param timeZoneOffset optional: offset from UTC to use for conversion\n * @param formatOptions optional: allow locale and format for output Time string. If not defined current locale options are used.\n * @returns formatted time string\n * @public\n */\nexport const toTimeString = (date: Date, timeZoneOffset?: number, formatOptions?: DateFormatOptions) => {\n if (formatOptions) {\n return undefined === timeZoneOffset ? date.toLocaleTimeString(formatOptions.locales, formatOptions.options) :\n adjustDateToTimezone(date, timeZoneOffset).toLocaleTimeString(formatOptions.locales, formatOptions.options);\n }\n return undefined === timeZoneOffset ? date.toLocaleTimeString() : adjustDateToTimezone(date, timeZoneOffset).toLocaleTimeString();\n};\n\n"]}
|
|
1
|
+
{"version":3,"file":"DateUtils.js","sourceRoot":"","sources":["../../../../src/components-react/common/DateUtils.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAWH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAgB,EAAE,SAAiB;IACtE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,iBAAiB,EAAE,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC;AAC/F,CAAC;AACD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAU,EAAE,cAAuB,EAAE,aAAiC,EAAE,EAAE;IACrG,IAAI,aAAa,EAAE;QACjB,OAAO,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3G,oBAAoB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/G;IACD,OAAO,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,kBAAkB,EAAE,CAAC;AACpI,CAAC,CAAC;AACF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAU,EAAE,cAAuB,EAAE,aAAiC,EAAE,EAAE;IACrG,IAAI,aAAa,EAAE;QACjB,OAAO,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3G,oBAAoB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/G;IACD,OAAO,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,kBAAkB,EAAE,CAAC;AACpI,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Common\r\n */\r\n\r\n/**\r\n * Define formatting options for use when component are generating a formatted date string calling `Date.toLocaleTimeString()`.\r\n * @public\r\n */\r\nexport interface DateFormatOptions {\r\n locales?: string | string[] | undefined;\r\n options?: Intl.DateTimeFormatOptions | undefined;\r\n}\r\n\r\n/**\r\n * Adjust a Date object to show time in one time zone as if it is in the local time zone.\r\n * This is useful when showing sunrise and sunset times for a project location in a different time zone\r\n * and the time displayed should appear as if the user is seeing clock in project location.\r\n * Example 1:\r\n * If you have a UTC time for London (UTC +0100) and you want to display it in Eastern-US (UTC -0400) as if you were in London.\r\n * ```ts\r\n * londonDate = new Date(\"July 22, 2018 07:22:13 +0100\");\r\n * in Eastern-US londonDate will show as '7/22/2018, 2:22:13 AM'\r\n * adjustedDate = adjustDateToTimezone(londonDate, 1*60);\r\n * in location Eastern-US adjustedDate will show as '7/22/2018, 7:22:13 AM'\r\n * ```\r\n * Example 2:\r\n * If you have a UTC time for your location (UTC -0400) and you want to display the time as if you are in Western-US (UTC -0700).\r\n * ```ts\r\n * easternDate = new Date(\"July 22, 2018 07:22:13 -0400\");\r\n * adjustedDate = adjustDateToTimezone(easternDate, -7*60);\r\n * in location Eastern-US adjustedDate will show as '7/22/2018, 7:22:13 AM'\r\n * ```\r\n *\r\n * The utcOffset must be the time in minutes between the UTC and the desired time zone at the date specified by inDateTime.\r\n * For example, if you want the time offset to New York, NY and the date is during Daylight Saving Time, utcOffset should be -240 (-4 * 60).\r\n * If the date falls during Standard Time in New York, utcOffset will be -300 (-5 * 60).\r\n *\r\n * @param inDateTime date/time at project location\r\n * @param utcOffset UTC offset in minutes\r\n * @public\r\n */\r\nexport function adjustDateToTimezone(inDateTime: Date, utcOffset: number) {\r\n return new Date(inDateTime.getTime() + (inDateTime.getTimezoneOffset() + utcOffset) * 60000);\r\n}\r\n/**\r\n * Format a date in a display string, optionally converting to time zone, if specified by timeZoneOffset\r\n * @param date Date object to format\r\n * @param timeZoneOffset optional: offset from UTC to use for conversion\r\n * @param formatOptions optional: allow locale and format for output Date string. If not defined current locale options are used.\r\n * @returns formatted date string\r\n * @public\r\n */\r\nexport const toDateString = (date: Date, timeZoneOffset?: number, formatOptions?: DateFormatOptions) => {\r\n if (formatOptions) {\r\n return undefined === timeZoneOffset ? date.toLocaleDateString(formatOptions.locales, formatOptions.options) :\r\n adjustDateToTimezone(date, timeZoneOffset).toLocaleDateString(formatOptions.locales, formatOptions.options);\r\n }\r\n return undefined === timeZoneOffset ? date.toLocaleDateString() : adjustDateToTimezone(date, timeZoneOffset).toLocaleDateString();\r\n};\r\n/**\r\n * Format the time included in a date, optionally converting to time zone, if specified\r\n * @param date Date object\r\n * @param timeZoneOffset optional: offset from UTC to use for conversion\r\n * @param formatOptions optional: allow locale and format for output Time string. If not defined current locale options are used.\r\n * @returns formatted time string\r\n * @public\r\n */\r\nexport const toTimeString = (date: Date, timeZoneOffset?: number, formatOptions?: DateFormatOptions) => {\r\n if (formatOptions) {\r\n return undefined === timeZoneOffset ? date.toLocaleTimeString(formatOptions.locales, formatOptions.options) :\r\n adjustDateToTimezone(date, timeZoneOffset).toLocaleTimeString(formatOptions.locales, formatOptions.options);\r\n }\r\n return undefined === timeZoneOffset ? date.toLocaleTimeString() : adjustDateToTimezone(date, timeZoneOffset).toLocaleTimeString();\r\n};\r\n\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DelayedSpinner.js","sourceRoot":"","sources":["../../../../src/components-react/common/DelayedSpinner.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAe3E;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC;IACjC,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,IAAI,IAAI,KAAK;YACf,OAAO;QACT,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;QAC/C,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,GAAG,KAAK;QACd,OAAO,IAAI,CAAC;IAEd,OAAO,CAAC,oBAAC,cAAc,IAAC,aAAa,QAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,OAAO,GAAI,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,cAAc,GAAG,GAAG,EAAE;IAC1B,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Common\n */\n\nimport * as React from \"react\";\nimport { ProgressRadial, ProgressRadialProps } from \"@itwin/itwinui-react\";\n\n/** Type for ProgressRadialProps.size */\ntype RadialSizeType = ProgressRadialProps[\"size\"];\n\n/**\n * Props for [[DelayedSpinner]] component.\n * @internal\n */\nexport interface DelayedSpinnerProps {\n loadStart?: Date;\n delay?: number;\n size?: RadialSizeType;\n}\n\n/**\n * Spinner that is rendered with delay.\n * @internal\n */\nexport function DelayedSpinner(props: DelayedSpinnerProps) {\n const delay = props.delay ?? 500;\n const [loadStart] = React.useState(props.loadStart || new Date());\n\n const currTime = new Date();\n const diff = (currTime.getTime() - loadStart.getTime());\n\n const update = useForceUpdate();\n React.useEffect(() => {\n if (diff >= delay)\n return;\n const timer = setTimeout(update, delay - diff);\n return () => clearTimeout(timer);\n });\n\n if (diff < delay)\n return null;\n\n return (<ProgressRadial indeterminate size={props.size ?? \"large\"} />);\n}\n\nconst useForceUpdate = () => {\n const [value, set] = React.useState(true);\n return () => set(!value);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"DelayedSpinner.js","sourceRoot":"","sources":["../../../../src/components-react/common/DelayedSpinner.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAe3E;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC;IACjC,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,IAAI,IAAI,KAAK;YACf,OAAO;QACT,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;QAC/C,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,GAAG,KAAK;QACd,OAAO,IAAI,CAAC;IAEd,OAAO,CAAC,oBAAC,cAAc,IAAC,aAAa,QAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,OAAO,GAAI,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,cAAc,GAAG,GAAG,EAAE;IAC1B,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Common\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { ProgressRadial, ProgressRadialProps } from \"@itwin/itwinui-react\";\r\n\r\n/** Type for ProgressRadialProps.size */\r\ntype RadialSizeType = ProgressRadialProps[\"size\"];\r\n\r\n/**\r\n * Props for [[DelayedSpinner]] component.\r\n * @internal\r\n */\r\nexport interface DelayedSpinnerProps {\r\n loadStart?: Date;\r\n delay?: number;\r\n size?: RadialSizeType;\r\n}\r\n\r\n/**\r\n * Spinner that is rendered with delay.\r\n * @internal\r\n */\r\nexport function DelayedSpinner(props: DelayedSpinnerProps) {\r\n const delay = props.delay ?? 500;\r\n const [loadStart] = React.useState(props.loadStart || new Date());\r\n\r\n const currTime = new Date();\r\n const diff = (currTime.getTime() - loadStart.getTime());\r\n\r\n const update = useForceUpdate();\r\n React.useEffect(() => {\r\n if (diff >= delay)\r\n return;\r\n const timer = setTimeout(update, delay - diff);\r\n return () => clearTimeout(timer);\r\n });\r\n\r\n if (diff < delay)\r\n return null;\r\n\r\n return (<ProgressRadial indeterminate size={props.size ?? \"large\"} />);\r\n}\r\n\r\nconst useForceUpdate = () => {\r\n const [value, set] = React.useState(true);\r\n return () => set(!value);\r\n};\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HighlightedText.js","sourceRoot":"","sources":["../../../../src/components-react/common/HighlightedText.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAiBhE;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IACpE,OAAO,CACL,oBAAC,WAAW,IACV,WAAW,EAAE,CAAC,UAAU,CAAC,EACzB,UAAU,EAAE,iBAAwB,EACpC,WAAW,EAAE,gBAAuB,EACpC,eAAe,EAAE,kBAAkB,CAAC,iBAAiB,EACrD,UAAU,EAAE,IAAI,EAChB,eAAe,EAAE,IAAI,EACrB,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC;AACJ,CAAC;AAaD,MAAM,iBAAiB,GAAG,CAAC,IAAoB,EAAsB,EAAE;IACrE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;IAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1F,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,KAAK,KAAK,CAAC,CAAC,EAAE;QACnB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;KACvC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Common\n */\n\nimport React from \"react\";\nimport Highlighter from \"react-highlight-words\";\nimport { HighlightingEngine } from \"../tree/HighlightingEngine\";\n\n/**\n * Properties of [[HighlightedText]]\n * @public\n */\nexport interface HighlightedTextProps {\n /* Filter text which we want to highlight */\n searchText: string;\n /* Index of actively highlighted part in a text */\n activeMatchIndex?: number;\n /* Full text */\n text: string;\n /** Should search be case sensitive */\n caseSensitive?: boolean;\n}\n\n/**\n * Highlighted text\n * Used for highlighting parts in the 'text' which match with 'searchText'\n * Also actively highlights one matched part which is selected with 'activeMatchIndex'\n * @public\n */\nexport function HighlightedText(props: HighlightedTextProps) {\n const { searchText, activeMatchIndex, text, caseSensitive } = props;\n return (\n <Highlighter\n searchWords={[searchText]}\n findChunks={findChunksNoRegex as any} // .d.ts declaration wrong\n activeIndex={activeMatchIndex as any} // .d.ts file seems to be wrong, doesn't work if it's a string\n activeClassName={HighlightingEngine.ACTIVE_CLASS_NAME}\n autoEscape={true}\n textToHighlight={text}\n caseSensitive={caseSensitive}\n />\n );\n}\n\ninterface HighlighterChunk {\n highlight: boolean;\n start: number;\n end: number;\n}\ninterface FindChunksArgs {\n autoEscape?: boolean;\n caseSensitive?: boolean;\n searchWords: string[];\n textToHighlight: string;\n}\nconst findChunksNoRegex = (args: FindChunksArgs): HighlighterChunk[] => {\n const text = args.caseSensitive ? args.textToHighlight : args.textToHighlight.toUpperCase();\n const term = args.caseSensitive ? args.searchWords[0] : args.searchWords[0].toUpperCase();\n const chunks: HighlighterChunk[] = [];\n let index = text.indexOf(term);\n while (index !== -1) {\n chunks.push({ start: index, end: index + term.length, highlight: true });\n index = text.indexOf(term, index + 1);\n }\n return chunks;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"HighlightedText.js","sourceRoot":"","sources":["../../../../src/components-react/common/HighlightedText.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAiBhE;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IACpE,OAAO,CACL,oBAAC,WAAW,IACV,WAAW,EAAE,CAAC,UAAU,CAAC,EACzB,UAAU,EAAE,iBAAwB,EACpC,WAAW,EAAE,gBAAuB,EACpC,eAAe,EAAE,kBAAkB,CAAC,iBAAiB,EACrD,UAAU,EAAE,IAAI,EAChB,eAAe,EAAE,IAAI,EACrB,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC;AACJ,CAAC;AAaD,MAAM,iBAAiB,GAAG,CAAC,IAAoB,EAAsB,EAAE;IACrE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;IAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1F,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,KAAK,KAAK,CAAC,CAAC,EAAE;QACnB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;KACvC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Common\r\n */\r\n\r\nimport React from \"react\";\r\nimport Highlighter from \"react-highlight-words\";\r\nimport { HighlightingEngine } from \"../tree/HighlightingEngine\";\r\n\r\n/**\r\n * Properties of [[HighlightedText]]\r\n * @public\r\n */\r\nexport interface HighlightedTextProps {\r\n /* Filter text which we want to highlight */\r\n searchText: string;\r\n /* Index of actively highlighted part in a text */\r\n activeMatchIndex?: number;\r\n /* Full text */\r\n text: string;\r\n /** Should search be case sensitive */\r\n caseSensitive?: boolean;\r\n}\r\n\r\n/**\r\n * Highlighted text\r\n * Used for highlighting parts in the 'text' which match with 'searchText'\r\n * Also actively highlights one matched part which is selected with 'activeMatchIndex'\r\n * @public\r\n */\r\nexport function HighlightedText(props: HighlightedTextProps) {\r\n const { searchText, activeMatchIndex, text, caseSensitive } = props;\r\n return (\r\n <Highlighter\r\n searchWords={[searchText]}\r\n findChunks={findChunksNoRegex as any} // .d.ts declaration wrong\r\n activeIndex={activeMatchIndex as any} // .d.ts file seems to be wrong, doesn't work if it's a string\r\n activeClassName={HighlightingEngine.ACTIVE_CLASS_NAME}\r\n autoEscape={true}\r\n textToHighlight={text}\r\n caseSensitive={caseSensitive}\r\n />\r\n );\r\n}\r\n\r\ninterface HighlighterChunk {\r\n highlight: boolean;\r\n start: number;\r\n end: number;\r\n}\r\ninterface FindChunksArgs {\r\n autoEscape?: boolean;\r\n caseSensitive?: boolean;\r\n searchWords: string[];\r\n textToHighlight: string;\r\n}\r\nconst findChunksNoRegex = (args: FindChunksArgs): HighlighterChunk[] => {\r\n const text = args.caseSensitive ? args.textToHighlight : args.textToHighlight.toUpperCase();\r\n const term = args.caseSensitive ? args.searchWords[0] : args.searchWords[0].toUpperCase();\r\n const chunks: HighlighterChunk[] = [];\r\n let index = text.indexOf(term);\r\n while (index !== -1) {\r\n chunks.push({ start: index, end: index + term.length, highlight: true });\r\n index = text.indexOf(term, index + 1);\r\n }\r\n return chunks;\r\n};\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HighlightingComponentProps.js","sourceRoot":"","sources":["../../../../src/components-react/common/HighlightingComponentProps.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Common\n */\n\n/**\n * Item highlight info used for identification of a specific highlight in an item\n * @public\n */\nexport interface HighlightInfo {\n /* item's identifier, used for its identification */\n highlightedItemIdentifier: string;\n /* Index of highlighted part in an item */\n highlightIndex: number;\n}\n\n/**\n * Properties used for highlighting parts in item by given text and actively highlighting one highlight in a distinct item specified in `activeHighlight`\n * @public\n */\nexport interface HighlightingComponentProps {\n /* Filter text which we want to highlight */\n highlightedText: string;\n /* Information about the highlight which we want to actively highlight */\n activeHighlight?: HighlightInfo;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HighlightingComponentProps.js","sourceRoot":"","sources":["../../../../src/components-react/common/HighlightingComponentProps.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Common\r\n */\r\n\r\n/**\r\n * Item highlight info used for identification of a specific highlight in an item\r\n * @public\r\n */\r\nexport interface HighlightInfo {\r\n /* item's identifier, used for its identification */\r\n highlightedItemIdentifier: string;\r\n /* Index of highlighted part in an item */\r\n highlightIndex: number;\r\n}\r\n\r\n/**\r\n * Properties used for highlighting parts in item by given text and actively highlighting one highlight in a distinct item specified in `activeHighlight`\r\n * @public\r\n */\r\nexport interface HighlightingComponentProps {\r\n /* Filter text which we want to highlight */\r\n highlightedText: string;\r\n /* Information about the highlight which we want to actively highlight */\r\n activeHighlight?: HighlightInfo;\r\n}\r\n"]}
|