@itwin/components-react 4.0.0-dev.13 → 4.0.0-dev.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +129 -1
- package/README.md +2 -2
- 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 +104 -104
- 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.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
- package/lib/cjs/components-react/propertygrid/component/PropertyGrid.scss +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/table/TableDataProvider.js.map +1 -1
- 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 +104 -104
- 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.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
- package/lib/esm/components-react/propertygrid/component/PropertyGrid.scss +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/table/TableDataProvider.js.map +1 -1
- 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 +16 -14
- package/ThirdPartyNotices.md +0 -31
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "../../../target";
|
|
6
|
-
@import "~@itwin/core-react/lib/cjs/core-react/typography";
|
|
7
|
-
@import "variables";
|
|
8
|
-
|
|
9
|
-
.components-toolbar-item-expandable-group-tool-item {
|
|
10
|
-
$item-height: 32px;
|
|
11
|
-
$item-border-width: 2px;
|
|
12
|
-
$active-tool-stripe-height: 22px;
|
|
13
|
-
$active-tool-stripe-width: 2px;
|
|
14
|
-
$icon-size: 16px;
|
|
15
|
-
$space-between-icon-and-label: 32px - 16px;
|
|
16
|
-
|
|
17
|
-
white-space: nowrap;
|
|
18
|
-
height: $item-height;
|
|
19
|
-
color: var(--iui-color-text);
|
|
20
|
-
cursor: pointer;
|
|
21
|
-
border-radius: var(--iui-border-radius-1);
|
|
22
|
-
display: flex;
|
|
23
|
-
align-items: center;
|
|
24
|
-
|
|
25
|
-
@include body1;
|
|
26
|
-
|
|
27
|
-
@mixin components-active-tool {
|
|
28
|
-
&:not(.components-disabled) {
|
|
29
|
-
background: var(--iui-color-background-hover);
|
|
30
|
-
color: var(--iui-color-text-accent-hover);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
> .components-icon {
|
|
35
|
-
width: $icon-size;
|
|
36
|
-
height: $icon-size;
|
|
37
|
-
display: inline-block;
|
|
38
|
-
margin-right: $space-between-icon-and-label;
|
|
39
|
-
margin-left: 8px;
|
|
40
|
-
position: relative;
|
|
41
|
-
|
|
42
|
-
> .components-badge {
|
|
43
|
-
position: absolute;
|
|
44
|
-
top: -8px;
|
|
45
|
-
left: -8px;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
> .components-label {
|
|
50
|
-
display: inline-block;
|
|
51
|
-
margin-right: $space-after-label;
|
|
52
|
-
line-height: $item-height;
|
|
53
|
-
|
|
54
|
-
&:after {
|
|
55
|
-
display: block;
|
|
56
|
-
content: attr(title);
|
|
57
|
-
font-weight: bold;
|
|
58
|
-
height: 1px;
|
|
59
|
-
color: transparent;
|
|
60
|
-
overflow: hidden;
|
|
61
|
-
visibility: hidden;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
@include components-internal-targeted {
|
|
66
|
-
&:not(.components-disabled) {
|
|
67
|
-
color: var(--iui-color-text-hover);
|
|
68
|
-
|
|
69
|
-
@include body1;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
&:active {
|
|
74
|
-
@include components-active-tool;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
&:focus {
|
|
78
|
-
outline: none;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
&.components-pointer-up {
|
|
82
|
-
@include components-internal-targeted {
|
|
83
|
-
@include components-active-tool;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
&.components-focused:not(.components-disabled) {
|
|
88
|
-
color: var(--iui-color-text-accent);
|
|
89
|
-
border-color: var(--iui-color-border-accent);
|
|
90
|
-
border-width: $item-border-width;
|
|
91
|
-
border-style: solid;
|
|
92
|
-
|
|
93
|
-
@include body1;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
&.components-active:not(.components-disabled) {
|
|
97
|
-
color: var(--iui-color-text-accent);
|
|
98
|
-
|
|
99
|
-
@include body1;
|
|
100
|
-
|
|
101
|
-
&::before {
|
|
102
|
-
content: "";
|
|
103
|
-
background-color: var(--iui-color-border-accent);
|
|
104
|
-
display: block;
|
|
105
|
-
position: relative;
|
|
106
|
-
top: 0;
|
|
107
|
-
left: $item-border-width + 1;
|
|
108
|
-
width: $active-tool-stripe-width;
|
|
109
|
-
height: $active-tool-stripe-height;
|
|
110
|
-
border-radius: 2px;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
&.components-disabled {
|
|
115
|
-
color: var(--iui-color-text-disabled);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
@import "../../../target";
|
|
6
|
+
@import "~@itwin/core-react/lib/cjs/core-react/typography";
|
|
7
|
+
@import "variables";
|
|
8
|
+
|
|
9
|
+
.components-toolbar-item-expandable-group-tool-item {
|
|
10
|
+
$item-height: 32px;
|
|
11
|
+
$item-border-width: 2px;
|
|
12
|
+
$active-tool-stripe-height: 22px;
|
|
13
|
+
$active-tool-stripe-width: 2px;
|
|
14
|
+
$icon-size: 16px;
|
|
15
|
+
$space-between-icon-and-label: 32px - 16px;
|
|
16
|
+
|
|
17
|
+
white-space: nowrap;
|
|
18
|
+
height: $item-height;
|
|
19
|
+
color: var(--iui-color-text);
|
|
20
|
+
cursor: pointer;
|
|
21
|
+
border-radius: var(--iui-border-radius-1);
|
|
22
|
+
display: flex;
|
|
23
|
+
align-items: center;
|
|
24
|
+
|
|
25
|
+
@include body1;
|
|
26
|
+
|
|
27
|
+
@mixin components-active-tool {
|
|
28
|
+
&:not(.components-disabled) {
|
|
29
|
+
background: var(--iui-color-background-hover);
|
|
30
|
+
color: var(--iui-color-text-accent-hover);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
> .components-icon {
|
|
35
|
+
width: $icon-size;
|
|
36
|
+
height: $icon-size;
|
|
37
|
+
display: inline-block;
|
|
38
|
+
margin-right: $space-between-icon-and-label;
|
|
39
|
+
margin-left: 8px;
|
|
40
|
+
position: relative;
|
|
41
|
+
|
|
42
|
+
> .components-badge {
|
|
43
|
+
position: absolute;
|
|
44
|
+
top: -8px;
|
|
45
|
+
left: -8px;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
> .components-label {
|
|
50
|
+
display: inline-block;
|
|
51
|
+
margin-right: $space-after-label;
|
|
52
|
+
line-height: $item-height;
|
|
53
|
+
|
|
54
|
+
&:after {
|
|
55
|
+
display: block;
|
|
56
|
+
content: attr(title);
|
|
57
|
+
font-weight: bold;
|
|
58
|
+
height: 1px;
|
|
59
|
+
color: transparent;
|
|
60
|
+
overflow: hidden;
|
|
61
|
+
visibility: hidden;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@include components-internal-targeted {
|
|
66
|
+
&:not(.components-disabled) {
|
|
67
|
+
color: var(--iui-color-text-hover);
|
|
68
|
+
|
|
69
|
+
@include body1;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&:active {
|
|
74
|
+
@include components-active-tool;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
&:focus {
|
|
78
|
+
outline: none;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
&.components-pointer-up {
|
|
82
|
+
@include components-internal-targeted {
|
|
83
|
+
@include components-active-tool;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&.components-focused:not(.components-disabled) {
|
|
88
|
+
color: var(--iui-color-text-accent);
|
|
89
|
+
border-color: var(--iui-color-border-accent);
|
|
90
|
+
border-width: $item-border-width;
|
|
91
|
+
border-style: solid;
|
|
92
|
+
|
|
93
|
+
@include body1;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
&.components-active:not(.components-disabled) {
|
|
97
|
+
color: var(--iui-color-text-accent);
|
|
98
|
+
|
|
99
|
+
@include body1;
|
|
100
|
+
|
|
101
|
+
&::before {
|
|
102
|
+
content: "";
|
|
103
|
+
background-color: var(--iui-color-border-accent);
|
|
104
|
+
display: block;
|
|
105
|
+
position: relative;
|
|
106
|
+
top: 0;
|
|
107
|
+
left: $item-border-width + 1;
|
|
108
|
+
width: $active-tool-stripe-width;
|
|
109
|
+
height: $active-tool-stripe-height;
|
|
110
|
+
border-radius: 2px;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
&.components-disabled {
|
|
115
|
+
color: var(--iui-color-text-disabled);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
6
|
-
|
|
7
|
-
$no-shadow: none;
|
|
8
|
-
$shadow: drop-shadow(0 1px 0 $buic-foreground-body-reverse);
|
|
9
|
-
$space-after-label: 16px;
|
|
10
|
-
|
|
11
|
-
$expander-arrow-thickness: 2px;
|
|
12
|
-
$expander-arrow-size-val: 6;
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
6
|
+
|
|
7
|
+
$no-shadow: none;
|
|
8
|
+
$shadow: drop-shadow(0 1px 0 $buic-foreground-body-reverse);
|
|
9
|
+
$space-after-label: 16px;
|
|
10
|
+
|
|
11
|
+
$expander-arrow-thickness: 2px;
|
|
12
|
+
$expander-arrow-size-val: 6;
|
|
13
13
|
$space-after-expander: 10px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDragInteraction.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/useDragInteraction.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport { Point, Timer } from \"@itwin/core-react\";\n\n/** @internal */\nconst getDragDistance = (from: Point, to: Point) => {\n return from.getDistanceTo(to);\n};\n\ninterface UseDragArgs {\n readonly initialPosition: React.MutableRefObject<Point | undefined>;\n readonly onDrag: () => void;\n}\n\nfunction useDrag(args: UseDragArgs) {\n const { initialPosition, onDrag } = args;\n const handlePointerMove = React.useCallback((e: PointerEvent) => {\n // istanbul ignore if\n if (!initialPosition.current)\n return;\n const newPosition = new Point(e.clientX, e.clientY);\n const dragDistance = getDragDistance(initialPosition.current, newPosition);\n if (dragDistance < 20)\n return;\n onDrag();\n }, [initialPosition, onDrag]);\n return { handlePointerMove };\n}\n\ninterface UseLongPressArgs {\n readonly initialPosition: React.RefObject<Point | undefined>;\n readonly onLongPress: () => void;\n}\n\nfunction useLongPress(args: UseLongPressArgs) {\n const longPressTimer = React.useRef(new Timer(500));\n const handlePointerDown = React.useCallback(() => {\n longPressTimer.current.start();\n }, []);\n const handlePointerUp = React.useCallback(() => {\n longPressTimer.current.stop();\n }, []);\n\n const handlePointerMove = React.useCallback((e: PointerEvent) => {\n if (!args.initialPosition.current)\n return;\n const newPosition = new Point(e.clientX, e.clientY);\n const distance = args.initialPosition.current.getDistanceTo(newPosition);\n distance >= 10 && longPressTimer.current.stop();\n }, [args.initialPosition]);\n React.useEffect(() => {\n longPressTimer.current.setOnExecute(args.onLongPress);\n return () => {\n longPressTimer.current.setOnExecute(undefined); // eslint-disable-line react-hooks/exhaustive-deps\n };\n }, [args.onLongPress]);\n return { handlePointerDown, handlePointerMove, handlePointerUp };\n}\n\n/**\n * Hook used on expandable item that require drag or long press to open\n * @param onClick Function called when item is clicked.\n * @param onOpenPanel Function called when item is dragged or long pressed to open panel.\n * @public\n */\nexport function useDragInteraction(onClick?: () => void, onOpenPanel?: () => void) {\n const initialPosition = React.useRef<Point | undefined>(undefined);\n const skipClick = React.useRef<boolean>(false);\n const handleOpenPanel = React.useCallback(() => {\n initialPosition.current = undefined;\n skipClick.current = true;\n onOpenPanel && onOpenPanel();\n }, [onOpenPanel]);\n const {\n handlePointerMove: dragPointerMove,\n } = useDrag({\n initialPosition,\n onDrag: handleOpenPanel,\n });\n const {\n handlePointerDown: longPressPointerDown,\n handlePointerMove: longPressPointerMove,\n handlePointerUp: longPressPointerUp,\n } = useLongPress({\n initialPosition,\n onLongPress: handleOpenPanel,\n });\n const handleButtonClick = React.useCallback(() => {\n // istanbul ignore if\n if (skipClick.current)\n return;\n onClick && onClick();\n }, [onClick]);\n const handlePointerDown = React.useCallback((e: React.PointerEvent) => {\n (e.target instanceof Element) && e.target.releasePointerCapture(e.pointerId);\n initialPosition.current = new Point(e.clientX, e.clientY);\n skipClick.current = false;\n longPressPointerDown();\n }, [longPressPointerDown]);\n const handlePointerMove = React.useCallback((e: PointerEvent) => {\n dragPointerMove(e);\n longPressPointerMove(e);\n }, [dragPointerMove, longPressPointerMove]);\n const handlePointerUp = React.useCallback(() => {\n initialPosition.current = undefined;\n longPressPointerUp();\n }, [longPressPointerUp]);\n React.useEffect(() => {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp);\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp);\n };\n }, [handlePointerMove, handlePointerUp]);\n return { handlePointerDown, handleButtonClick };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"useDragInteraction.js","sourceRoot":"","sources":["../../../../src/components-react/toolbar/useDragInteraction.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Toolbar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Point, Timer } from \"@itwin/core-react\";\r\n\r\n/** @internal */\r\nconst getDragDistance = (from: Point, to: Point) => {\r\n return from.getDistanceTo(to);\r\n};\r\n\r\ninterface UseDragArgs {\r\n readonly initialPosition: React.MutableRefObject<Point | undefined>;\r\n readonly onDrag: () => void;\r\n}\r\n\r\nfunction useDrag(args: UseDragArgs) {\r\n const { initialPosition, onDrag } = args;\r\n const handlePointerMove = React.useCallback((e: PointerEvent) => {\r\n // istanbul ignore if\r\n if (!initialPosition.current)\r\n return;\r\n const newPosition = new Point(e.clientX, e.clientY);\r\n const dragDistance = getDragDistance(initialPosition.current, newPosition);\r\n if (dragDistance < 20)\r\n return;\r\n onDrag();\r\n }, [initialPosition, onDrag]);\r\n return { handlePointerMove };\r\n}\r\n\r\ninterface UseLongPressArgs {\r\n readonly initialPosition: React.RefObject<Point | undefined>;\r\n readonly onLongPress: () => void;\r\n}\r\n\r\nfunction useLongPress(args: UseLongPressArgs) {\r\n const longPressTimer = React.useRef(new Timer(500));\r\n const handlePointerDown = React.useCallback(() => {\r\n longPressTimer.current.start();\r\n }, []);\r\n const handlePointerUp = React.useCallback(() => {\r\n longPressTimer.current.stop();\r\n }, []);\r\n\r\n const handlePointerMove = React.useCallback((e: PointerEvent) => {\r\n if (!args.initialPosition.current)\r\n return;\r\n const newPosition = new Point(e.clientX, e.clientY);\r\n const distance = args.initialPosition.current.getDistanceTo(newPosition);\r\n distance >= 10 && longPressTimer.current.stop();\r\n }, [args.initialPosition]);\r\n React.useEffect(() => {\r\n longPressTimer.current.setOnExecute(args.onLongPress);\r\n return () => {\r\n longPressTimer.current.setOnExecute(undefined); // eslint-disable-line react-hooks/exhaustive-deps\r\n };\r\n }, [args.onLongPress]);\r\n return { handlePointerDown, handlePointerMove, handlePointerUp };\r\n}\r\n\r\n/**\r\n * Hook used on expandable item that require drag or long press to open\r\n * @param onClick Function called when item is clicked.\r\n * @param onOpenPanel Function called when item is dragged or long pressed to open panel.\r\n * @public\r\n */\r\nexport function useDragInteraction(onClick?: () => void, onOpenPanel?: () => void) {\r\n const initialPosition = React.useRef<Point | undefined>(undefined);\r\n const skipClick = React.useRef<boolean>(false);\r\n const handleOpenPanel = React.useCallback(() => {\r\n initialPosition.current = undefined;\r\n skipClick.current = true;\r\n onOpenPanel && onOpenPanel();\r\n }, [onOpenPanel]);\r\n const {\r\n handlePointerMove: dragPointerMove,\r\n } = useDrag({\r\n initialPosition,\r\n onDrag: handleOpenPanel,\r\n });\r\n const {\r\n handlePointerDown: longPressPointerDown,\r\n handlePointerMove: longPressPointerMove,\r\n handlePointerUp: longPressPointerUp,\r\n } = useLongPress({\r\n initialPosition,\r\n onLongPress: handleOpenPanel,\r\n });\r\n const handleButtonClick = React.useCallback(() => {\r\n // istanbul ignore if\r\n if (skipClick.current)\r\n return;\r\n onClick && onClick();\r\n }, [onClick]);\r\n const handlePointerDown = React.useCallback((e: React.PointerEvent) => {\r\n (e.target instanceof Element) && e.target.releasePointerCapture(e.pointerId);\r\n initialPosition.current = new Point(e.clientX, e.clientY);\r\n skipClick.current = false;\r\n longPressPointerDown();\r\n }, [longPressPointerDown]);\r\n const handlePointerMove = React.useCallback((e: PointerEvent) => {\r\n dragPointerMove(e);\r\n longPressPointerMove(e);\r\n }, [dragPointerMove, longPressPointerMove]);\r\n const handlePointerUp = React.useCallback(() => {\r\n initialPosition.current = undefined;\r\n longPressPointerUp();\r\n }, [longPressPointerUp]);\r\n React.useEffect(() => {\r\n document.addEventListener(\"pointermove\", handlePointerMove);\r\n document.addEventListener(\"pointerup\", handlePointerUp);\r\n return () => {\r\n document.removeEventListener(\"pointermove\", handlePointerMove);\r\n document.removeEventListener(\"pointerup\", handlePointerUp);\r\n };\r\n }, [handlePointerMove, handlePointerUp]);\r\n return { handlePointerDown, handleButtonClick };\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Direction.js","sourceRoot":"","sources":["../../../../../src/components-react/toolbar/utilities/Direction.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;GAEG;AACH,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,yCAAQ,CAAA;IACR,uCAAG,CAAA;IACH,2CAAK,CAAA;IACL,6CAAM,CAAA;AACR,CAAC,EALW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAKpB;AAED;;GAEG;AACH,MAAa,gBAAgB;IAU3B,qDAAqD;IAC9C,MAAM,CAAC,eAAe,CAAC,SAAoB;QAChD,QAAQ,SAAS,EAAE;YACjB,KAAK,SAAS,CAAC,IAAI;gBACjB,OAAO,gBAAgB,CAAC,eAAe,CAAC;YAC1C,KAAK,SAAS,CAAC,GAAG;gBAChB,OAAO,gBAAgB,CAAC,cAAc,CAAC;YACzC,KAAK,SAAS,CAAC,KAAK;gBAClB,OAAO,gBAAgB,CAAC,gBAAgB,CAAC;YAC3C,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,gBAAgB,CAAC,iBAAiB,CAAC;SAC7C;IACH,CAAC;IAED,+DAA+D;IACxD,MAAM,CAAC,sBAAsB,CAAC,SAAoB;QACvD,QAAQ,SAAS,EAAE;YACjB,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,KAAK;gBAClB,OAAO,mBAAmB,CAAC,UAAU,CAAC;YACxC,KAAK,SAAS,CAAC,GAAG,CAAC;YACnB,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,mBAAmB,CAAC,QAAQ,CAAC;SACvC;IACH,CAAC;;AAjCD,uCAAuC;AAChB,gCAAe,GAAG,2BAA2B,CAAC;AACrE,sCAAsC;AACf,+BAAc,GAAG,0BAA0B,CAAC;AACnE,wCAAwC;AACjB,iCAAgB,GAAG,4BAA4B,CAAC;AACvE,yCAAyC;AAClB,kCAAiB,GAAG,6BAA6B,CAAC;AAR9D,4CAAgB;AAqC7B;;GAEG;AACH,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,qEAAQ,CAAA;IACR,yEAAU,CAAA;AACZ,CAAC,EAHW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAG9B;AAED;;GAEG;AACH,MAAa,0BAA0B;IAMrC,+DAA+D;IACxD,MAAM,CAAC,eAAe,CAAC,SAA8B;QAC1D,QAAQ,SAAS,EAAE;YACjB,KAAK,mBAAmB,CAAC,QAAQ;gBAC/B,OAAO,0BAA0B,CAAC,mBAAmB,CAAC;YACxD,KAAK,mBAAmB,CAAC,UAAU;gBACjC,OAAO,0BAA0B,CAAC,qBAAqB,CAAC;SAC3D;IACH,CAAC;IAED,6DAA6D;IACtD,MAAM,CAAC,OAAO,CAAC,SAA8B;QAClD,QAAQ,SAAS,EAAE;YACjB,KAAK,mBAAmB,CAAC,QAAQ;gBAC/B,OAAO,mBAAmB,CAAC,UAAU,CAAC;YACxC,KAAK,mBAAmB,CAAC,UAAU;gBACjC,OAAO,mBAAmB,CAAC,QAAQ,CAAC;SACvC;IACH,CAAC;;AAvBD,qDAAqD;AAC9B,8CAAmB,GAAG,qBAAqB,CAAC;AACnE,uDAAuD;AAChC,gDAAqB,GAAG,uBAAuB,CAAC;AAJ5D,gEAA0B","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\n/** Available directions.\n * @public\n */\nexport enum Direction {\n Left = 1,\n Top,\n Right,\n Bottom,\n}\n\n/** Helpers for [[Direction]].\n * @internal\n */\nexport class DirectionHelpers {\n /** Class name of [[Direction.Left]] */\n public static readonly LEFT_CLASS_NAME = \"components-direction-left\";\n /** Class name of [[Direction.Top]] */\n public static readonly TOP_CLASS_NAME = \"components-direction-top\";\n /** Class name of [[Direction.Right]] */\n public static readonly RIGHT_CLASS_NAME = \"components-direction-right\";\n /** Class name of [[Direction.Bottom]] */\n public static readonly BOTTOM_CLASS_NAME = \"components-direction-bottom\";\n\n /** @returns Class name of specified [[Direction]] */\n public static getCssClassName(direction: Direction): string {\n switch (direction) {\n case Direction.Left:\n return DirectionHelpers.LEFT_CLASS_NAME;\n case Direction.Top:\n return DirectionHelpers.TOP_CLASS_NAME;\n case Direction.Right:\n return DirectionHelpers.RIGHT_CLASS_NAME;\n case Direction.Bottom:\n return DirectionHelpers.BOTTOM_CLASS_NAME;\n }\n }\n\n /** @returns Orthogonal direction of specified [[Direction]] */\n public static getOrthogonalDirection(direction: Direction): OrthogonalDirection {\n switch (direction) {\n case Direction.Left:\n case Direction.Right:\n return OrthogonalDirection.Horizontal;\n case Direction.Top:\n case Direction.Bottom:\n return OrthogonalDirection.Vertical;\n }\n }\n}\n\n/** Available orthogonal directions.\n * @alpha\n */\nexport enum OrthogonalDirection {\n Vertical,\n Horizontal,\n}\n\n/** Helpers for [[OrthogonalDirection]].\n * @internal\n */\nexport class OrthogonalDirectionHelpers {\n /** Class name of [[OrthogonalDirection.Vertical]] */\n public static readonly VERTICAL_CLASS_NAME = \"components-vertical\";\n /** Class name of [[OrthogonalDirection.Horizontal]] */\n public static readonly HORIZONTAL_CLASS_NAME = \"components-horizontal\";\n\n /** @returns Class name of specified [[OrthogonalDirection]] */\n public static getCssClassName(direction: OrthogonalDirection): string {\n switch (direction) {\n case OrthogonalDirection.Vertical:\n return OrthogonalDirectionHelpers.VERTICAL_CLASS_NAME;\n case OrthogonalDirection.Horizontal:\n return OrthogonalDirectionHelpers.HORIZONTAL_CLASS_NAME;\n }\n }\n\n /** @returns Opposite of specified [[OrthogonalDirection]] */\n public static inverse(direction: OrthogonalDirection): OrthogonalDirection {\n switch (direction) {\n case OrthogonalDirection.Vertical:\n return OrthogonalDirection.Horizontal;\n case OrthogonalDirection.Horizontal:\n return OrthogonalDirection.Vertical;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Direction.js","sourceRoot":"","sources":["../../../../../src/components-react/toolbar/utilities/Direction.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;GAEG;AACH,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,yCAAQ,CAAA;IACR,uCAAG,CAAA;IACH,2CAAK,CAAA;IACL,6CAAM,CAAA;AACR,CAAC,EALW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAKpB;AAED;;GAEG;AACH,MAAa,gBAAgB;IAU3B,qDAAqD;IAC9C,MAAM,CAAC,eAAe,CAAC,SAAoB;QAChD,QAAQ,SAAS,EAAE;YACjB,KAAK,SAAS,CAAC,IAAI;gBACjB,OAAO,gBAAgB,CAAC,eAAe,CAAC;YAC1C,KAAK,SAAS,CAAC,GAAG;gBAChB,OAAO,gBAAgB,CAAC,cAAc,CAAC;YACzC,KAAK,SAAS,CAAC,KAAK;gBAClB,OAAO,gBAAgB,CAAC,gBAAgB,CAAC;YAC3C,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,gBAAgB,CAAC,iBAAiB,CAAC;SAC7C;IACH,CAAC;IAED,+DAA+D;IACxD,MAAM,CAAC,sBAAsB,CAAC,SAAoB;QACvD,QAAQ,SAAS,EAAE;YACjB,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,KAAK;gBAClB,OAAO,mBAAmB,CAAC,UAAU,CAAC;YACxC,KAAK,SAAS,CAAC,GAAG,CAAC;YACnB,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,mBAAmB,CAAC,QAAQ,CAAC;SACvC;IACH,CAAC;;AAjCD,uCAAuC;AAChB,gCAAe,GAAG,2BAA2B,CAAC;AACrE,sCAAsC;AACf,+BAAc,GAAG,0BAA0B,CAAC;AACnE,wCAAwC;AACjB,iCAAgB,GAAG,4BAA4B,CAAC;AACvE,yCAAyC;AAClB,kCAAiB,GAAG,6BAA6B,CAAC;AAR9D,4CAAgB;AAqC7B;;GAEG;AACH,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,qEAAQ,CAAA;IACR,yEAAU,CAAA;AACZ,CAAC,EAHW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAG9B;AAED;;GAEG;AACH,MAAa,0BAA0B;IAMrC,+DAA+D;IACxD,MAAM,CAAC,eAAe,CAAC,SAA8B;QAC1D,QAAQ,SAAS,EAAE;YACjB,KAAK,mBAAmB,CAAC,QAAQ;gBAC/B,OAAO,0BAA0B,CAAC,mBAAmB,CAAC;YACxD,KAAK,mBAAmB,CAAC,UAAU;gBACjC,OAAO,0BAA0B,CAAC,qBAAqB,CAAC;SAC3D;IACH,CAAC;IAED,6DAA6D;IACtD,MAAM,CAAC,OAAO,CAAC,SAA8B;QAClD,QAAQ,SAAS,EAAE;YACjB,KAAK,mBAAmB,CAAC,QAAQ;gBAC/B,OAAO,mBAAmB,CAAC,UAAU,CAAC;YACxC,KAAK,mBAAmB,CAAC,UAAU;gBACjC,OAAO,mBAAmB,CAAC,QAAQ,CAAC;SACvC;IACH,CAAC;;AAvBD,qDAAqD;AAC9B,8CAAmB,GAAG,qBAAqB,CAAC;AACnE,uDAAuD;AAChC,gDAAqB,GAAG,uBAAuB,CAAC;AAJ5D,gEAA0B","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Toolbar\r\n */\r\n\r\n/** Available directions.\r\n * @public\r\n */\r\nexport enum Direction {\r\n Left = 1,\r\n Top,\r\n Right,\r\n Bottom,\r\n}\r\n\r\n/** Helpers for [[Direction]].\r\n * @internal\r\n */\r\nexport class DirectionHelpers {\r\n /** Class name of [[Direction.Left]] */\r\n public static readonly LEFT_CLASS_NAME = \"components-direction-left\";\r\n /** Class name of [[Direction.Top]] */\r\n public static readonly TOP_CLASS_NAME = \"components-direction-top\";\r\n /** Class name of [[Direction.Right]] */\r\n public static readonly RIGHT_CLASS_NAME = \"components-direction-right\";\r\n /** Class name of [[Direction.Bottom]] */\r\n public static readonly BOTTOM_CLASS_NAME = \"components-direction-bottom\";\r\n\r\n /** @returns Class name of specified [[Direction]] */\r\n public static getCssClassName(direction: Direction): string {\r\n switch (direction) {\r\n case Direction.Left:\r\n return DirectionHelpers.LEFT_CLASS_NAME;\r\n case Direction.Top:\r\n return DirectionHelpers.TOP_CLASS_NAME;\r\n case Direction.Right:\r\n return DirectionHelpers.RIGHT_CLASS_NAME;\r\n case Direction.Bottom:\r\n return DirectionHelpers.BOTTOM_CLASS_NAME;\r\n }\r\n }\r\n\r\n /** @returns Orthogonal direction of specified [[Direction]] */\r\n public static getOrthogonalDirection(direction: Direction): OrthogonalDirection {\r\n switch (direction) {\r\n case Direction.Left:\r\n case Direction.Right:\r\n return OrthogonalDirection.Horizontal;\r\n case Direction.Top:\r\n case Direction.Bottom:\r\n return OrthogonalDirection.Vertical;\r\n }\r\n }\r\n}\r\n\r\n/** Available orthogonal directions.\r\n * @alpha\r\n */\r\nexport enum OrthogonalDirection {\r\n Vertical,\r\n Horizontal,\r\n}\r\n\r\n/** Helpers for [[OrthogonalDirection]].\r\n * @internal\r\n */\r\nexport class OrthogonalDirectionHelpers {\r\n /** Class name of [[OrthogonalDirection.Vertical]] */\r\n public static readonly VERTICAL_CLASS_NAME = \"components-vertical\";\r\n /** Class name of [[OrthogonalDirection.Horizontal]] */\r\n public static readonly HORIZONTAL_CLASS_NAME = \"components-horizontal\";\r\n\r\n /** @returns Class name of specified [[OrthogonalDirection]] */\r\n public static getCssClassName(direction: OrthogonalDirection): string {\r\n switch (direction) {\r\n case OrthogonalDirection.Vertical:\r\n return OrthogonalDirectionHelpers.VERTICAL_CLASS_NAME;\r\n case OrthogonalDirection.Horizontal:\r\n return OrthogonalDirectionHelpers.HORIZONTAL_CLASS_NAME;\r\n }\r\n }\r\n\r\n /** @returns Opposite of specified [[OrthogonalDirection]] */\r\n public static inverse(direction: OrthogonalDirection): OrthogonalDirection {\r\n switch (direction) {\r\n case OrthogonalDirection.Vertical:\r\n return OrthogonalDirection.Horizontal;\r\n case OrthogonalDirection.Horizontal:\r\n return OrthogonalDirection.Vertical;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HighlightingEngine.js","sourceRoot":"","sources":["../../../../src/components-react/tree/HighlightingEngine.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qCAAmC;AACnC,6CAA+B;AAC/B,+DAA4D;AA+B5D;;;GAGG;AACH,MAAa,kBAAkB;IAK7B,YAAY,KAA6B;QACvC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;IACxC,CAAC;IAEM,YAAY,CAAC,IAAqB;QACvC,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IACnE,CAAC;IAEM,mBAAmB,CAAC,IAAqB;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAa,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC;IAEM,iBAAiB,CAAC,IAAqB;QAC5C,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;SACjD,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAY,EAAE,KAAiC;QAC3E,IAAI,KAAK,CAAC,UAAU;YAClB,OAAO,CAAC,oBAAC,iCAAe,IAAC,IAAI,EAAE,IAAI,KAAM,KAAK,GAAI,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;;AA1BsB,oCAAiB,GAAG,4BAA4B,CAAC;AAH7D,gDAAkB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport \"./HighlightingEngine.scss\";\nimport * as React from \"react\";\nimport { HighlightedText } from \"../common/HighlightedText\";\n\n/**\n * Properties for identifying an active highlight on a node in a tree.\n * @see [[HighlightableTreeProps.activeMatch]]\n * @public\n */\nexport interface ActiveMatchInfo {\n nodeId: string;\n matchIndex: number;\n}\n\n/**\n * Properties for highlighting nodes in a tree.\n * @see [[ControlledTreeProps.nodeHighlightingProps]]\n * @public\n */\nexport interface HighlightableTreeProps {\n searchText: string;\n activeMatch?: ActiveMatchInfo;\n}\n\n/**\n * Properties for a highlightable [[TreeNode]]\n * @public\n */\nexport interface HighlightableTreeNodeProps {\n searchText: string;\n activeMatchIndex?: number;\n}\n\n/**\n * Tree highlighting engine\n * @public\n */\nexport class HighlightingEngine {\n private _searchText: string;\n private _activeMatch?: ActiveMatchInfo;\n public static readonly ACTIVE_CLASS_NAME = \"components-activehighlight\";\n\n constructor(props: HighlightableTreeProps) {\n this._searchText = props.searchText;\n this._activeMatch = props.activeMatch;\n }\n\n public isNodeActive(node: { id?: string }) {\n return this._activeMatch && node.id === this._activeMatch.nodeId;\n }\n\n public getActiveMatchIndex(node: { id?: string }) {\n return this.isNodeActive(node) ? this._activeMatch!.matchIndex : undefined;\n }\n\n public createRenderProps(node: { id?: string }): HighlightableTreeNodeProps {\n return {\n searchText: this._searchText,\n activeMatchIndex: this.getActiveMatchIndex(node),\n };\n }\n\n public static renderNodeLabel(text: string, props: HighlightableTreeNodeProps): React.ReactNode {\n if (props.searchText)\n return (<HighlightedText text={text} {...props} />);\n return text;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HighlightingEngine.js","sourceRoot":"","sources":["../../../../src/components-react/tree/HighlightingEngine.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qCAAmC;AACnC,6CAA+B;AAC/B,+DAA4D;AA+B5D;;;GAGG;AACH,MAAa,kBAAkB;IAK7B,YAAY,KAA6B;QACvC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;IACxC,CAAC;IAEM,YAAY,CAAC,IAAqB;QACvC,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IACnE,CAAC;IAEM,mBAAmB,CAAC,IAAqB;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAa,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC;IAEM,iBAAiB,CAAC,IAAqB;QAC5C,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;SACjD,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAY,EAAE,KAAiC;QAC3E,IAAI,KAAK,CAAC,UAAU;YAClB,OAAO,CAAC,oBAAC,iCAAe,IAAC,IAAI,EAAE,IAAI,KAAM,KAAK,GAAI,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;;AA1BsB,oCAAiB,GAAG,4BAA4B,CAAC;AAH7D,gDAAkB","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tree\r\n */\r\n\r\nimport \"./HighlightingEngine.scss\";\r\nimport * as React from \"react\";\r\nimport { HighlightedText } from \"../common/HighlightedText\";\r\n\r\n/**\r\n * Properties for identifying an active highlight on a node in a tree.\r\n * @see [[HighlightableTreeProps.activeMatch]]\r\n * @public\r\n */\r\nexport interface ActiveMatchInfo {\r\n nodeId: string;\r\n matchIndex: number;\r\n}\r\n\r\n/**\r\n * Properties for highlighting nodes in a tree.\r\n * @see [[ControlledTreeProps.nodeHighlightingProps]]\r\n * @public\r\n */\r\nexport interface HighlightableTreeProps {\r\n searchText: string;\r\n activeMatch?: ActiveMatchInfo;\r\n}\r\n\r\n/**\r\n * Properties for a highlightable [[TreeNode]]\r\n * @public\r\n */\r\nexport interface HighlightableTreeNodeProps {\r\n searchText: string;\r\n activeMatchIndex?: number;\r\n}\r\n\r\n/**\r\n * Tree highlighting engine\r\n * @public\r\n */\r\nexport class HighlightingEngine {\r\n private _searchText: string;\r\n private _activeMatch?: ActiveMatchInfo;\r\n public static readonly ACTIVE_CLASS_NAME = \"components-activehighlight\";\r\n\r\n constructor(props: HighlightableTreeProps) {\r\n this._searchText = props.searchText;\r\n this._activeMatch = props.activeMatch;\r\n }\r\n\r\n public isNodeActive(node: { id?: string }) {\r\n return this._activeMatch && node.id === this._activeMatch.nodeId;\r\n }\r\n\r\n public getActiveMatchIndex(node: { id?: string }) {\r\n return this.isNodeActive(node) ? this._activeMatch!.matchIndex : undefined;\r\n }\r\n\r\n public createRenderProps(node: { id?: string }): HighlightableTreeNodeProps {\r\n return {\r\n searchText: this._searchText,\r\n activeMatchIndex: this.getActiveMatchIndex(node),\r\n };\r\n }\r\n\r\n public static renderNodeLabel(text: string, props: HighlightableTreeNodeProps): React.ReactNode {\r\n if (props.searchText)\r\n return (<HighlightedText text={text} {...props} />);\r\n return text;\r\n }\r\n}\r\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
|
|
6
|
-
.components-activehighlight {
|
|
7
|
-
background-color: orange;
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
|
|
6
|
+
.components-activehighlight {
|
|
7
|
+
background-color: orange;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageLoader.js","sourceRoot":"","sources":["../../../../src/components-react/tree/ImageLoader.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAYH;;GAEG;AACH,MAAa,eAAe;IAC1B,oDAAoD;IAC7C,IAAI,CAAC,IAAkB;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI;YACZ,OAAO,SAAS,CAAC;QAEnB,OAAO;YACL,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,IAAI,CAAC,IAAI;SACjB,CAAC;IACJ,CAAC;CACF;AAXD,0CAWC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport { IImageLoader, LoadedImage } from \"../common/IImageLoader\";\nimport { TreeNodeItem } from \"./TreeDataProvider\";\n\n/** Interface for a tree image loader\n * @public\n */\nexport interface ITreeImageLoader extends IImageLoader {\n load: (item: TreeNodeItem) => LoadedImage | undefined;\n}\n\n/** Default image loader for the tree\n * @public\n */\nexport class TreeImageLoader implements ITreeImageLoader {\n /** Loads image data from either [[TreeNodeItem]] */\n public load(item: TreeNodeItem): LoadedImage | undefined {\n if (!item.icon)\n return undefined;\n\n return {\n sourceType: \"webfont-icon\",\n value: item.icon,\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ImageLoader.js","sourceRoot":"","sources":["../../../../src/components-react/tree/ImageLoader.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAYH;;GAEG;AACH,MAAa,eAAe;IAC1B,oDAAoD;IAC7C,IAAI,CAAC,IAAkB;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI;YACZ,OAAO,SAAS,CAAC;QAEnB,OAAO;YACL,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,IAAI,CAAC,IAAI;SACjB,CAAC;IACJ,CAAC;CACF;AAXD,0CAWC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tree\r\n */\r\n\r\nimport { IImageLoader, LoadedImage } from \"../common/IImageLoader\";\r\nimport { TreeNodeItem } from \"./TreeDataProvider\";\r\n\r\n/** Interface for a tree image loader\r\n * @public\r\n */\r\nexport interface ITreeImageLoader extends IImageLoader {\r\n load: (item: TreeNodeItem) => LoadedImage | undefined;\r\n}\r\n\r\n/** Default image loader for the tree\r\n * @public\r\n */\r\nexport class TreeImageLoader implements ITreeImageLoader {\r\n /** Loads image data from either [[TreeNodeItem]] */\r\n public load(item: TreeNodeItem): LoadedImage | undefined {\r\n if (!item.icon)\r\n return undefined;\r\n\r\n return {\r\n sourceType: \"webfont-icon\",\r\n value: item.icon,\r\n };\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleTreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/SimpleTreeDataProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAaH;;;GAGG;AACH,MAAa,sBAAsB;IAGjC,YAAmB,SAA0C;QAC3D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAEO,kBAAkB,CAAC,QAAiB,EAAE,WAAyB;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC,KAAK;YACR,OAAO,EAAE,CAAC;QAEZ,IAAI,CAAC,WAAW;YACd,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QAEpB,IAAI,YAAgC,CAAC;QACrC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5D,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;YAChC,YAAY,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3D;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,MAAqB,EAAE,WAAyB;QACpE,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,MAAqB;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IACxE,CAAC;CACF;AA/BD,wDA+BC","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 { PageOptions } from \"../common/PageOptions\";\nimport { ITreeDataProvider, TreeNodeItem } from \"./TreeDataProvider\";\n\n/**\n * Used by [[SimpleTreeDataProvider]].\n * key - Parent id.\n * value - Child tree node items.\n * @public\n */\nexport type SimpleTreeDataProviderHierarchy = Map<string | undefined, TreeNodeItem[]>;\n\n/**\n * A tree data provider using [[SimpleTreeDataProviderHierarchy]].\n * @public\n */\nexport class SimpleTreeDataProvider implements ITreeDataProvider {\n private _hierarchy: SimpleTreeDataProviderHierarchy;\n\n public constructor(hierarchy: SimpleTreeDataProviderHierarchy) {\n this._hierarchy = hierarchy;\n }\n\n private getNodesByParentId(parentId?: string, pageOptions?: PageOptions): TreeNodeItem[] {\n const nodes = this._hierarchy.get(parentId);\n\n if (!nodes)\n return [];\n\n if (!pageOptions)\n return [...nodes];\n\n let pageEndIndex: number | undefined;\n if (pageOptions.size !== undefined && pageOptions.size !== 0) {\n pageEndIndex = pageOptions.size;\n pageEndIndex += pageOptions.start ? pageOptions.start : 0;\n }\n return nodes.slice(pageOptions.start, pageEndIndex);\n }\n\n public async getNodes(parent?: TreeNodeItem, pageOptions?: PageOptions): Promise<TreeNodeItem[]> {\n return this.getNodesByParentId(parent ? parent.id : undefined, pageOptions);\n }\n\n public async getNodesCount(parent?: TreeNodeItem): Promise<number> {\n return this.getNodesByParentId(parent ? parent.id : undefined).length;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SimpleTreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/SimpleTreeDataProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAaH;;;GAGG;AACH,MAAa,sBAAsB;IAGjC,YAAmB,SAA0C;QAC3D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAEO,kBAAkB,CAAC,QAAiB,EAAE,WAAyB;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC,KAAK;YACR,OAAO,EAAE,CAAC;QAEZ,IAAI,CAAC,WAAW;YACd,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QAEpB,IAAI,YAAgC,CAAC;QACrC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5D,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;YAChC,YAAY,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3D;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,MAAqB,EAAE,WAAyB;QACpE,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,MAAqB;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IACxE,CAAC;CACF;AA/BD,wDA+BC","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 { PageOptions } from \"../common/PageOptions\";\r\nimport { ITreeDataProvider, TreeNodeItem } from \"./TreeDataProvider\";\r\n\r\n/**\r\n * Used by [[SimpleTreeDataProvider]].\r\n * key - Parent id.\r\n * value - Child tree node items.\r\n * @public\r\n */\r\nexport type SimpleTreeDataProviderHierarchy = Map<string | undefined, TreeNodeItem[]>;\r\n\r\n/**\r\n * A tree data provider using [[SimpleTreeDataProviderHierarchy]].\r\n * @public\r\n */\r\nexport class SimpleTreeDataProvider implements ITreeDataProvider {\r\n private _hierarchy: SimpleTreeDataProviderHierarchy;\r\n\r\n public constructor(hierarchy: SimpleTreeDataProviderHierarchy) {\r\n this._hierarchy = hierarchy;\r\n }\r\n\r\n private getNodesByParentId(parentId?: string, pageOptions?: PageOptions): TreeNodeItem[] {\r\n const nodes = this._hierarchy.get(parentId);\r\n\r\n if (!nodes)\r\n return [];\r\n\r\n if (!pageOptions)\r\n return [...nodes];\r\n\r\n let pageEndIndex: number | undefined;\r\n if (pageOptions.size !== undefined && pageOptions.size !== 0) {\r\n pageEndIndex = pageOptions.size;\r\n pageEndIndex += pageOptions.start ? pageOptions.start : 0;\r\n }\r\n return nodes.slice(pageOptions.start, pageEndIndex);\r\n }\r\n\r\n public async getNodes(parent?: TreeNodeItem, pageOptions?: PageOptions): Promise<TreeNodeItem[]> {\r\n return this.getNodesByParentId(parent ? parent.id : undefined, pageOptions);\r\n }\r\n\r\n public async getNodesCount(parent?: TreeNodeItem): Promise<number> {\r\n return this.getNodesByParentId(parent ? parent.id : undefined).length;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeComponentTestId.js","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeComponentTestId.ts"],"names":[],"mappings":";AACA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;;;;GAKG;AACH,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,yCAAkB,CAAA;IAClB,0DAAmC,CAAA;IACnC,yEAAkD,CAAA;IAClD,0DAAmC,CAAA;AACrC,CAAC,EALW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAK9B","sourcesContent":["\n/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\n/**\n * Different tree component IDs that are assigned to those components as `data-testid` attribute\n * to help locate them in tests.\n *\n * @internal\n */\nexport enum TreeComponentTestId {\n Node = \"tree-node\",\n NodeContents = \"tree-node-contents\",\n NodeExpansionToggle = \"tree-node-expansion-toggle\",\n NodeCheckbox = \"tree-node-checkbox\",\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TreeComponentTestId.js","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeComponentTestId.ts"],"names":[],"mappings":";AACA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;;;;GAKG;AACH,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,yCAAkB,CAAA;IAClB,0DAAmC,CAAA;IACnC,yEAAkD,CAAA;IAClD,0DAAmC,CAAA;AACrC,CAAC,EALW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAK9B","sourcesContent":["\r\n/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tree\r\n */\r\n\r\n/**\r\n * Different tree component IDs that are assigned to those components as `data-testid` attribute\r\n * to help locate them in tests.\r\n *\r\n * @internal\r\n */\r\nexport enum TreeComponentTestId {\r\n Node = \"tree-node\",\r\n NodeContents = \"tree-node-contents\",\r\n NodeExpansionToggle = \"tree-node-expansion-toggle\",\r\n NodeCheckbox = \"tree-node-checkbox\",\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAyEH;;GAEG;AACI,MAAM,qBAAqB,GAAG,CAAC,QAA0B,EAAmC,EAAE;IACnG,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AACF;;GAEG;AACI,MAAM,yBAAyB,GAAG,CAAC,QAA0B,EAAuC,EAAE;IAC3G,OAAO,CAAC,SAAS,KAAM,QAAoC,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC,CAAC;AAFW,QAAA,yBAAyB,6BAEpC;AACF;;GAEG;AACI,MAAM,wBAAwB,GAAG,CAAC,QAA0B,EAAsC,EAAE;IACzG,OAAO,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;AAC1C,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC;AACF;;GAEG;AACI,MAAM,2BAA2B,GAAG,CAAC,QAA0B,EAAiC,EAAE;IACvG,MAAM,SAAS,GAAG,QAA6B,CAAC;IAChD,OAAO,SAAS,KAAK,SAAS,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS,CAAC,aAAa,CAAC;AACnF,CAAC,CAAC;AAHW,QAAA,2BAA2B,+BAGtC;AACF;;;;;GAKG;AACH,uBAAuB;AAChB,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAE,EAAE;IAChD,MAAM,eAAe,GAAG,IAAqC,CAAC;IAC9D,IAAI,UAAU,IAAI,eAAe,IAAI,eAAe,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAClG,OAAO,IAAI,CAAC;IACd,MAAM,aAAa,GAAG,IAA+B,CAAC;IACtD,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW;QAC7D,OAAO,IAAI,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\nimport { CheckBoxState } from \"@itwin/core-react\";\nimport { PageOptions } from \"../common/PageOptions\";\nimport { ItemStyle } from \"../properties/ItemStyle\";\n\n/**\n * A node item which can be displayed in a tree.\n * @public\n */\nexport interface TreeNodeItem {\n id: string;\n parentId?: string;\n label: PropertyRecord;\n description?: string;\n autoExpand?: boolean;\n icon?: string;\n isSelectionDisabled?: boolean;\n isCheckboxVisible?: boolean;\n isCheckboxDisabled?: boolean;\n checkBoxState?: CheckBoxState;\n isEditable?: boolean;\n style?: ItemStyle;\n /**\n * A key-value pairs data structure that can be used by data provider\n * to store some custom data for this node item.\n */\n extendedData?: { [key: string]: any };\n}\n\n/** A [[TreeNodeItem]] for immediately loaded trees\n * @public\n */\nexport interface ImmediatelyLoadedTreeNodeItem extends TreeNodeItem {\n children?: TreeNodeItem[];\n}\n\n/** A [[TreeNodeItem]] for delay-loaded trees\n * @public\n */\nexport interface DelayLoadedTreeNodeItem extends TreeNodeItem {\n hasChildren?: boolean;\n}\n\n/** Array of tree node data elements\n * @public\n */\nexport type TreeDataProviderRaw = ImmediatelyLoadedTreeNodeItem[];\n\n/** A Promise for TreeDataProviderRaw\n * @public\n */\nexport type TreeDataProviderPromise = Promise<TreeDataProviderRaw>;\n\n/** Signature for a method that returns TreeDataProviderPromise for supplied parent node\n * @public\n */\nexport type TreeDataProviderMethod = (node?: TreeNodeItem) => Promise<DelayLoadedTreeNodeItem[]>;\n\n/** Interface for a tree data provider class\n * @public\n */\nexport interface ITreeDataProvider {\n getNodesCount(parent?: TreeNodeItem): Promise<number>;\n getNodes(parent?: TreeNodeItem, page?: PageOptions): Promise<DelayLoadedTreeNodeItem[]>;\n}\n\n/** Type definition for all Tree data providers\n * @public\n */\nexport type TreeDataProvider = TreeDataProviderRaw | TreeDataProviderPromise | TreeDataProviderMethod | ITreeDataProvider;\n\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderRaw]]\n * @public\n */\nexport const isTreeDataProviderRaw = (provider: TreeDataProvider): provider is TreeDataProviderRaw => {\n return Array.isArray(provider);\n};\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderPromise]]\n * @public\n */\nexport const isTreeDataProviderPromise = (provider: TreeDataProvider): provider is TreeDataProviderPromise => {\n return (undefined !== (provider as TreeDataProviderPromise).then);\n};\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderMethod]]\n * @public\n */\nexport const isTreeDataProviderMethod = (provider: TreeDataProvider): provider is TreeDataProviderMethod => {\n return (typeof provider === \"function\");\n};\n/** Checks if [[TreeDataProvider]] is an [[ITreeDataProvider]]\n * @public\n */\nexport const isTreeDataProviderInterface = (provider: TreeDataProvider): provider is ITreeDataProvider => {\n const candidate = provider as ITreeDataProvider;\n return undefined !== candidate.getNodes && undefined !== candidate.getNodesCount;\n};\n/**\n * Determines whether node has children\n * @param node node to check\n * @returns whether node has children\n * @public\n */\n// istanbul ignore next\nexport const hasChildren = (node: TreeNodeItem) => {\n const nodeAsImmediate = node as ImmediatelyLoadedTreeNodeItem;\n if (\"children\" in nodeAsImmediate && nodeAsImmediate.children && nodeAsImmediate.children.length > 0)\n return true;\n const nodeAsDelayed = node as DelayLoadedTreeNodeItem;\n if (\"hasChildren\" in nodeAsDelayed && nodeAsDelayed.hasChildren)\n return true;\n return false;\n};\n\n/**\n * EditableTreeDataProvider provides cell editing processing for the Tree.\n * @public\n */\nexport interface EditableTreeDataProvider extends ITreeDataProvider {\n updateLabel(nodeItem: TreeNodeItem, newLabel: string): void;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TreeDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAyEH;;GAEG;AACI,MAAM,qBAAqB,GAAG,CAAC,QAA0B,EAAmC,EAAE;IACnG,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AACF;;GAEG;AACI,MAAM,yBAAyB,GAAG,CAAC,QAA0B,EAAuC,EAAE;IAC3G,OAAO,CAAC,SAAS,KAAM,QAAoC,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC,CAAC;AAFW,QAAA,yBAAyB,6BAEpC;AACF;;GAEG;AACI,MAAM,wBAAwB,GAAG,CAAC,QAA0B,EAAsC,EAAE;IACzG,OAAO,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;AAC1C,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC;AACF;;GAEG;AACI,MAAM,2BAA2B,GAAG,CAAC,QAA0B,EAAiC,EAAE;IACvG,MAAM,SAAS,GAAG,QAA6B,CAAC;IAChD,OAAO,SAAS,KAAK,SAAS,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS,CAAC,aAAa,CAAC;AACnF,CAAC,CAAC;AAHW,QAAA,2BAA2B,+BAGtC;AACF;;;;;GAKG;AACH,uBAAuB;AAChB,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAE,EAAE;IAChD,MAAM,eAAe,GAAG,IAAqC,CAAC;IAC9D,IAAI,UAAU,IAAI,eAAe,IAAI,eAAe,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAClG,OAAO,IAAI,CAAC;IACd,MAAM,aAAa,GAAG,IAA+B,CAAC;IACtD,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW;QAC7D,OAAO,IAAI,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tree\r\n */\r\n\r\nimport { PropertyRecord } from \"@itwin/appui-abstract\";\r\nimport { CheckBoxState } from \"@itwin/core-react\";\r\nimport { PageOptions } from \"../common/PageOptions\";\r\nimport { ItemStyle } from \"../properties/ItemStyle\";\r\n\r\n/**\r\n * A node item which can be displayed in a tree.\r\n * @public\r\n */\r\nexport interface TreeNodeItem {\r\n id: string;\r\n parentId?: string;\r\n label: PropertyRecord;\r\n description?: string;\r\n autoExpand?: boolean;\r\n icon?: string;\r\n isSelectionDisabled?: boolean;\r\n isCheckboxVisible?: boolean;\r\n isCheckboxDisabled?: boolean;\r\n checkBoxState?: CheckBoxState;\r\n isEditable?: boolean;\r\n style?: ItemStyle;\r\n /**\r\n * A key-value pairs data structure that can be used by data provider\r\n * to store some custom data for this node item.\r\n */\r\n extendedData?: { [key: string]: any };\r\n}\r\n\r\n/** A [[TreeNodeItem]] for immediately loaded trees\r\n * @public\r\n */\r\nexport interface ImmediatelyLoadedTreeNodeItem extends TreeNodeItem {\r\n children?: TreeNodeItem[];\r\n}\r\n\r\n/** A [[TreeNodeItem]] for delay-loaded trees\r\n * @public\r\n */\r\nexport interface DelayLoadedTreeNodeItem extends TreeNodeItem {\r\n hasChildren?: boolean;\r\n}\r\n\r\n/** Array of tree node data elements\r\n * @public\r\n */\r\nexport type TreeDataProviderRaw = ImmediatelyLoadedTreeNodeItem[];\r\n\r\n/** A Promise for TreeDataProviderRaw\r\n * @public\r\n */\r\nexport type TreeDataProviderPromise = Promise<TreeDataProviderRaw>;\r\n\r\n/** Signature for a method that returns TreeDataProviderPromise for supplied parent node\r\n * @public\r\n */\r\nexport type TreeDataProviderMethod = (node?: TreeNodeItem) => Promise<DelayLoadedTreeNodeItem[]>;\r\n\r\n/** Interface for a tree data provider class\r\n * @public\r\n */\r\nexport interface ITreeDataProvider {\r\n getNodesCount(parent?: TreeNodeItem): Promise<number>;\r\n getNodes(parent?: TreeNodeItem, page?: PageOptions): Promise<DelayLoadedTreeNodeItem[]>;\r\n}\r\n\r\n/** Type definition for all Tree data providers\r\n * @public\r\n */\r\nexport type TreeDataProvider = TreeDataProviderRaw | TreeDataProviderPromise | TreeDataProviderMethod | ITreeDataProvider;\r\n\r\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderRaw]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderRaw = (provider: TreeDataProvider): provider is TreeDataProviderRaw => {\r\n return Array.isArray(provider);\r\n};\r\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderPromise]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderPromise = (provider: TreeDataProvider): provider is TreeDataProviderPromise => {\r\n return (undefined !== (provider as TreeDataProviderPromise).then);\r\n};\r\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderMethod]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderMethod = (provider: TreeDataProvider): provider is TreeDataProviderMethod => {\r\n return (typeof provider === \"function\");\r\n};\r\n/** Checks if [[TreeDataProvider]] is an [[ITreeDataProvider]]\r\n * @public\r\n */\r\nexport const isTreeDataProviderInterface = (provider: TreeDataProvider): provider is ITreeDataProvider => {\r\n const candidate = provider as ITreeDataProvider;\r\n return undefined !== candidate.getNodes && undefined !== candidate.getNodesCount;\r\n};\r\n/**\r\n * Determines whether node has children\r\n * @param node node to check\r\n * @returns whether node has children\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport const hasChildren = (node: TreeNodeItem) => {\r\n const nodeAsImmediate = node as ImmediatelyLoadedTreeNodeItem;\r\n if (\"children\" in nodeAsImmediate && nodeAsImmediate.children && nodeAsImmediate.children.length > 0)\r\n return true;\r\n const nodeAsDelayed = node as DelayLoadedTreeNodeItem;\r\n if (\"hasChildren\" in nodeAsDelayed && nodeAsDelayed.hasChildren)\r\n return true;\r\n return false;\r\n};\r\n\r\n/**\r\n * EditableTreeDataProvider provides cell editing processing for the Tree.\r\n * @public\r\n */\r\nexport interface EditableTreeDataProvider extends ITreeDataProvider {\r\n updateLabel(nodeItem: TreeNodeItem, newLabel: string): void;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Observable.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/Observable.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,wDAAiE;AACjE,yDAAwE;AAExE;;;GAGG;AACH,SAAgB,IAAI,CAAI,QAAsC;IAC5D,OAAO,IAAA,WAAQ,EAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAFD,oBAEC;AA+FD,gBAAgB;AAChB,SAAgB,gBAAgB,CAAI,UAAyB;IAC3D,OAAO,IAAI,uBAAc,CAAC,CAAC,UAAU,EAAE,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC;AAFD,4CAEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport { from as rxjsFrom } from \"rxjs/internal/observable/from\";\nimport { Observable as RxjsObservable } from \"rxjs/internal/Observable\";\n\n/**\n * Helper method that creates an Observable from Iterable or Promise.\n * @public\n */\nexport function from<T>(iterable: Iterable<T> | PromiseLike<T>): Observable<T> {\n return rxjsFrom(iterable);\n}\n\n/**\n * Observable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n *\n * To use it with [rxjs](https://github.com/ReactiveX/rxjs) operators wrap it inside\n * `Observable` from [rxjs](https://github.com/ReactiveX/rxjs). Example:\n *\n * ```\n * import { Observable as RxjsObservable } from \"rxjs\";\n *\n * new RxjsObservable((subscriber) => thisObservable.subscribe(subscriber));\n * ```\n *\n * @public\n */\nexport interface Observable<T> extends Subscribable<T> { } // eslint-disable-line @typescript-eslint/no-empty-interface\n\n/**\n * Subscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport interface Subscribable<T> {\n subscribe(observer?: Observer<T>): Subscription;\n subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;\n subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;\n subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription; // eslint-disable-line @typescript-eslint/unified-signatures\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\n}\n\n/**\n * Observer interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport declare type Observer<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;\n\n/**\n * Unsubscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport interface Unsubscribable {\n unsubscribe(): void;\n}\n\n/**\n * Subscription interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport interface Subscription extends Unsubscribable {\n readonly closed: boolean;\n unsubscribe(): void;\n add(tearDown: Unsubscribable | (() => void) | void): void;\n}\n\n/**\n * NextObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport interface NextObserver<T> {\n closed?: boolean;\n next: (value: T) => void;\n error?: (err: any) => void;\n complete?: () => void;\n}\n\n/**\n * ErrorObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport interface ErrorObserver<T> {\n closed?: boolean;\n next?: (value: T) => void;\n error: (err: any) => void;\n complete?: () => void;\n}\n\n/**\n * CompletionObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n */\nexport interface CompletionObserver<T> {\n closed?: boolean;\n next?: (value: T) => void;\n error?: (err: any) => void;\n complete: () => void;\n}\n\n/** @internal */\nexport function toRxjsObservable<T>(observable: Observable<T>): RxjsObservable<T> {\n return new RxjsObservable((subscriber) => { observable.subscribe(subscriber); });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Observable.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/Observable.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,wDAAiE;AACjE,yDAAwE;AAExE;;;GAGG;AACH,SAAgB,IAAI,CAAI,QAAsC;IAC5D,OAAO,IAAA,WAAQ,EAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAFD,oBAEC;AA+FD,gBAAgB;AAChB,SAAgB,gBAAgB,CAAI,UAAyB;IAC3D,OAAO,IAAI,uBAAc,CAAC,CAAC,UAAU,EAAE,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC;AAFD,4CAEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tree\r\n */\r\n\r\nimport { from as rxjsFrom } from \"rxjs/internal/observable/from\";\r\nimport { Observable as RxjsObservable } from \"rxjs/internal/Observable\";\r\n\r\n/**\r\n * Helper method that creates an Observable from Iterable or Promise.\r\n * @public\r\n */\r\nexport function from<T>(iterable: Iterable<T> | PromiseLike<T>): Observable<T> {\r\n return rxjsFrom(iterable);\r\n}\r\n\r\n/**\r\n * Observable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n *\r\n * To use it with [rxjs](https://github.com/ReactiveX/rxjs) operators wrap it inside\r\n * `Observable` from [rxjs](https://github.com/ReactiveX/rxjs). Example:\r\n *\r\n * ```\r\n * import { Observable as RxjsObservable } from \"rxjs\";\r\n *\r\n * new RxjsObservable((subscriber) => thisObservable.subscribe(subscriber));\r\n * ```\r\n *\r\n * @public\r\n */\r\nexport interface Observable<T> extends Subscribable<T> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * Subscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Subscribable<T> {\r\n subscribe(observer?: Observer<T>): Subscription;\r\n subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;\r\n subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;\r\n subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription; // eslint-disable-line @typescript-eslint/unified-signatures\r\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\r\n}\r\n\r\n/**\r\n * Observer interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport declare type Observer<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;\r\n\r\n/**\r\n * Unsubscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Unsubscribable {\r\n unsubscribe(): void;\r\n}\r\n\r\n/**\r\n * Subscription interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface Subscription extends Unsubscribable {\r\n readonly closed: boolean;\r\n unsubscribe(): void;\r\n add(tearDown: Unsubscribable | (() => void) | void): void;\r\n}\r\n\r\n/**\r\n * NextObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface NextObserver<T> {\r\n closed?: boolean;\r\n next: (value: T) => void;\r\n error?: (err: any) => void;\r\n complete?: () => void;\r\n}\r\n\r\n/**\r\n * ErrorObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface ErrorObserver<T> {\r\n closed?: boolean;\r\n next?: (value: T) => void;\r\n error: (err: any) => void;\r\n complete?: () => void;\r\n}\r\n\r\n/**\r\n * CompletionObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\r\n * This interface ensures that consumers are not required to have rxjs as dependency.\r\n * @public\r\n */\r\nexport interface CompletionObserver<T> {\r\n closed?: boolean;\r\n next?: (value: T) => void;\r\n error?: (err: any) => void;\r\n complete: () => void;\r\n}\r\n\r\n/** @internal */\r\nexport function toRxjsObservable<T>(observable: Observable<T>): RxjsObservable<T> {\r\n return new RxjsObservable((subscriber) => { observable.subscribe(subscriber); });\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeActions.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeActions.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport { CheckBoxState } from \"@itwin/core-react\";\n\n/**\n * Tree actions that can be performed on tree.\n * @public\n */\nexport interface TreeActions {\n onNodeCheckboxClicked: (nodeId: string, newState: CheckBoxState) => void;\n onNodeExpanded: (nodeId: string) => void;\n onNodeCollapsed: (nodeId: string) => void;\n onNodeClicked: (nodeId: string, event: React.MouseEvent) => void;\n onNodeMouseDown: (nodeId: string) => void;\n onNodeMouseMove: (nodeId: string) => void;\n onNodeEditorActivated: (nodeId: string) => void;\n onTreeKeyDown: (event: React.KeyboardEvent) => void;\n onTreeKeyUp: (event: React.KeyboardEvent) => void;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TreeActions.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeActions.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tree\r\n */\r\n\r\nimport { CheckBoxState } from \"@itwin/core-react\";\r\n\r\n/**\r\n * Tree actions that can be performed on tree.\r\n * @public\r\n */\r\nexport interface TreeActions {\r\n onNodeCheckboxClicked: (nodeId: string, newState: CheckBoxState) => void;\r\n onNodeExpanded: (nodeId: string) => void;\r\n onNodeCollapsed: (nodeId: string) => void;\r\n onNodeClicked: (nodeId: string, event: React.MouseEvent) => void;\r\n onNodeMouseDown: (nodeId: string) => void;\r\n onNodeMouseMove: (nodeId: string) => void;\r\n onNodeEditorActivated: (nodeId: string) => void;\r\n onTreeKeyDown: (event: React.KeyboardEvent) => void;\r\n onTreeKeyUp: (event: React.KeyboardEvent) => void;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeEventDispatcher.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeEventDispatcher.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport { Observable } from \"rxjs/internal/Observable\";\nimport { concat } from \"rxjs/internal/observable/concat\";\nimport { defer } from \"rxjs/internal/observable/defer\";\nimport { EMPTY } from \"rxjs/internal/observable/empty\";\nimport { from } from \"rxjs/internal/observable/from\";\nimport { generate } from \"rxjs/internal/observable/generate\";\nimport { merge } from \"rxjs/internal/observable/merge\";\nimport { of } from \"rxjs/internal/observable/of\";\nimport { zip } from \"rxjs/internal/observable/zip\";\nimport { concatAll } from \"rxjs/internal/operators/concatAll\";\nimport { concatMap } from \"rxjs/internal/operators/concatMap\";\nimport { defaultIfEmpty } from \"rxjs/internal/operators/defaultIfEmpty\";\nimport { distinctUntilChanged } from \"rxjs/internal/operators/distinctUntilChanged\";\nimport { filter } from \"rxjs/internal/operators/filter\";\nimport { finalize } from \"rxjs/internal/operators/finalize\";\nimport { map } from \"rxjs/internal/operators/map\";\nimport { mergeAll } from \"rxjs/internal/operators/mergeAll\";\nimport { publishReplay } from \"rxjs/internal/operators/publishReplay\";\nimport { refCount } from \"rxjs/internal/operators/refCount\";\nimport { subscribeOn } from \"rxjs/internal/operators/subscribeOn\";\nimport { toArray } from \"rxjs/internal/operators/toArray\";\nimport { asapScheduler } from \"rxjs/internal/scheduler/asap\";\nimport { CheckBoxState } from \"@itwin/core-react\";\nimport { SelectionMode } from \"../../common/selection/SelectionModes\";\nimport { TreeNodeItem } from \"../TreeDataProvider\";\nimport { IndividualSelection, isRangeSelection, RangeSelection, TreeSelectionManager } from \"./internal/TreeSelectionManager\";\nimport { TreeActions } from \"./TreeActions\";\nimport { TreeEvents } from \"./TreeEvents\";\nimport { isTreeModelNode, TreeModelNode, TreeModelNodePlaceholder, VisibleTreeNodes } from \"./TreeModel\";\nimport { ITreeNodeLoader } from \"./TreeNodeLoader\";\n\n/**\n * Default event dispatcher that emits tree events according performed actions.\n * It converts low level tree events into TreeEvents.\n * @internal\n */\nexport class TreeEventDispatcher implements TreeActions {\n private _treeEvents: TreeEvents;\n private _nodeLoader: ITreeNodeLoader;\n private _getVisibleNodes: (() => VisibleTreeNodes) | undefined;\n\n private _selectionManager: TreeSelectionManager;\n\n private _activeSelections = new Set<Observable<{ selectedNodeItems: TreeNodeItem[], deselectedNodeItems?: TreeNodeItem[] }>>();\n\n constructor(\n treeEvents: TreeEvents,\n nodeLoader: ITreeNodeLoader,\n selectionMode: SelectionMode,\n getVisibleNodes?: () => VisibleTreeNodes,\n ) {\n this._treeEvents = treeEvents;\n this._nodeLoader = nodeLoader;\n this._getVisibleNodes = getVisibleNodes;\n\n this._selectionManager = new TreeSelectionManager(selectionMode, this._getVisibleNodes);\n\n this._selectionManager.onDragSelection.addListener(({ selectionChanges }) => {\n const modifications = from(selectionChanges)\n .pipe(\n map(({ selectedNodes, deselectedNodes }) => from(this.collectSelectionChanges(selectedNodes, []))\n .pipe(\n concatMap(({ selectedNodeItems }) => from(selectedNodeItems)),\n toArray(),\n map((collectedIds) => ({ selectedNodeItems: collectedIds, deselectedNodeItems: this.collectNodeItems(deselectedNodes) })),\n ),\n ),\n concatAll(),\n publishReplay(),\n refCount(),\n );\n\n /* istanbul ignore else */\n if (this._treeEvents.onSelectionModified !== undefined)\n this._treeEvents.onSelectionModified({ modifications });\n });\n\n this._selectionManager.onSelectionChanged.addListener(({ selectedNodes, deselectedNodes }) => {\n const modifications = merge(\n defer(() => {\n this._activeSelections.add(modifications);\n return EMPTY;\n }),\n this.collectSelectionChanges(selectedNodes, deselectedNodes),\n )\n .pipe(\n finalize(() => {\n this._activeSelections.delete(modifications);\n }),\n publishReplay(),\n refCount(),\n );\n\n /* istanbul ignore else */\n if (this._treeEvents.onSelectionModified !== undefined)\n this._treeEvents.onSelectionModified({ modifications });\n });\n\n this._selectionManager.onSelectionReplaced.addListener(({ selectedNodeIds }) => {\n const replacements = merge(\n defer(() => {\n this._activeSelections.add(replacements);\n return EMPTY;\n }),\n this.collectSelectionChanges(selectedNodeIds, []),\n )\n .pipe(\n finalize(() => {\n this._activeSelections.delete(replacements);\n }),\n publishReplay(),\n refCount(),\n );\n\n /* istanbul ignore else */\n if (this._treeEvents.onSelectionReplaced !== undefined)\n this._treeEvents.onSelectionReplaced({ replacements });\n });\n }\n\n public setVisibleNodes(visibleNodes: () => VisibleTreeNodes) {\n this._getVisibleNodes = visibleNodes;\n this._selectionManager.setVisibleNodes(visibleNodes);\n }\n\n public onNodeCheckboxClicked(nodeId: string, newState: CheckBoxState) {\n if (this._getVisibleNodes === undefined)\n return;\n\n const visibleNodes = this._getVisibleNodes();\n const clickedNode = visibleNodes.getModel().getNode(nodeId);\n if (clickedNode === undefined)\n return;\n\n const immediateStateChanges = [{ nodeItem: clickedNode.item, newState }];\n if (clickedNode.isSelected) {\n for (const node of visibleNodes) {\n if (isTreeModelNode(node) && node.id !== clickedNode.id && node.isSelected && node.checkbox.state !== newState) {\n immediateStateChanges.push({ nodeItem: node.item, newState });\n }\n }\n }\n\n const stateChanges = concat(\n of(immediateStateChanges),\n from(this._activeSelections)\n .pipe(\n mergeAll(),\n map(({ selectedNodeItems }) => selectedNodeItems.map((item) => ({ nodeItem: item, newState }))),\n ),\n )\n .pipe(\n publishReplay(),\n refCount(),\n );\n\n /* istanbul ignore else */\n if (this._treeEvents.onCheckboxStateChanged !== undefined)\n this._treeEvents.onCheckboxStateChanged({ stateChanges });\n }\n\n public onNodeExpanded(nodeId: string) {\n /* istanbul ignore else */\n if (this._treeEvents.onNodeExpanded !== undefined)\n this._treeEvents.onNodeExpanded({ nodeId });\n }\n\n public onNodeCollapsed(nodeId: string) {\n /* istanbul ignore else */\n if (this._treeEvents.onNodeCollapsed !== undefined)\n this._treeEvents.onNodeCollapsed({ nodeId });\n }\n\n public onNodeClicked(nodeId: string, event: React.MouseEvent<Element, MouseEvent>) {\n const node = this._getVisibleNodes ? this._getVisibleNodes().getModel().getNode(nodeId) : undefined;\n const isNodeSelected = node ? node.isSelected : false;\n this._selectionManager.onNodeClicked(nodeId, event);\n\n // if clicked node was already selected fire delayed click event\n if (isNodeSelected && this._treeEvents.onDelayedNodeClick !== undefined) {\n this._treeEvents.onDelayedNodeClick({ nodeId });\n }\n }\n\n public onNodeMouseDown(nodeId: string) {\n this._selectionManager.onNodeMouseDown(nodeId);\n }\n\n public onNodeMouseMove(nodeId: string) {\n this._selectionManager.onNodeMouseMove(nodeId);\n }\n\n public onNodeEditorActivated(nodeId: string) {\n const node = this._getVisibleNodes ? this._getVisibleNodes().getModel().getNode(nodeId) : /* istanbul ignore next */ undefined;\n const isNodeSelected = node ? node.isSelected : false;\n\n // if node was already selected, fire onNodeEditorActivated event\n if (isNodeSelected && this._treeEvents.onNodeEditorActivated !== undefined) {\n this._treeEvents.onNodeEditorActivated({ nodeId });\n }\n }\n\n public onTreeKeyDown(event: React.KeyboardEvent): void {\n this._selectionManager.onTreeKeyDown(event, this);\n }\n\n public onTreeKeyUp(event: React.KeyboardEvent): void {\n this._selectionManager.onTreeKeyUp(event, this);\n }\n\n private collectSelectionChanges(\n selection: IndividualSelection | RangeSelection,\n deselection: IndividualSelection,\n ): Observable<{ selectedNodeItems: TreeNodeItem[], deselectedNodeItems: TreeNodeItem[] }> {\n const deselectedItems = this.collectNodeItems(deselection);\n if (isRangeSelection(selection)) {\n return zip(\n this.collectNodesBetween(selection.from, selection.to).pipe(defaultIfEmpty([] as TreeNodeItem[])),\n // Without a scheduler `generate` would block the main thread indefinitely\n generate({ initialState: deselectedItems, iterate: () => [], scheduler: asapScheduler }),\n ).pipe(map(([selectedNodeItems, deselectedNodeItems]) => ({ selectedNodeItems, deselectedNodeItems })));\n }\n\n const selectedItems = this.collectNodeItems(selection);\n return of({ selectedNodeItems: selectedItems, deselectedNodeItems: deselectedItems });\n }\n\n private collectNodesBetween(nodeId1: string, nodeId2: string): Observable<TreeNodeItem[]> {\n const [readyNodes, nodesToLoad] = TreeEventDispatcher.groupNodesByLoadingState(\n this.iterateNodesBetween(nodeId1, nodeId2),\n );\n\n const loadedSelectedNodes = from(\n nodesToLoad.map((node) => {\n const parentNode = node.parentId\n ? this._getVisibleNodes!().getModel().getNode(node.parentId)\n : this._getVisibleNodes!().getModel().getRootNode();\n return parentNode ? this._nodeLoader.loadNode(parentNode, node.childIndex) : /* istanbul ignore next */ EMPTY;\n }),\n )\n .pipe(\n // We have requested multiple nodes that may belong to the same page.\n // When the page loads we only want to process the loaded nodes once.\n // Making assumption that loaded nodes from the same page will be emitted without interruptions.\n // Maybe we could simplify this to `this._nodeLoader.loadNodes(nodesToLoad)`?\n mergeAll(),\n distinctUntilChanged(),\n );\n\n return concat(\n of(readyNodes.filter((node) => !node.isSelectionDisabled).map((node) => node.item)),\n loadedSelectedNodes.pipe(map(({ loadedNodes }) => loadedNodes.filter((item) => !item.isSelectionDisabled))),\n ).pipe(\n filter((nodeItems) => nodeItems.length > 0),\n // Give enough time for multiple subscribers to subscribe before any emissions begin\n subscribeOn(asapScheduler),\n );\n }\n\n private *iterateNodesBetween(\n nodeId1: string,\n nodeId2: string,\n ): Iterable<TreeModelNode | TreeModelNodePlaceholder> {\n let firstNodeFound = false;\n if (this._getVisibleNodes === undefined) {\n return;\n }\n\n for (const node of this._getVisibleNodes()) {\n if (firstNodeFound) {\n yield node;\n }\n\n if (isTreeModelNode(node)) {\n if (nodeId1 === nodeId2 && node.id === nodeId1) {\n yield node;\n return;\n }\n\n if (node.id === nodeId1 || node.id === nodeId2) {\n if (firstNodeFound) {\n return;\n }\n\n firstNodeFound = true;\n yield node;\n }\n }\n }\n }\n\n private collectNodeItems(nodeIds: string[]): TreeNodeItem[] {\n const items: TreeNodeItem[] = [];\n if (this._getVisibleNodes === undefined) {\n return items;\n }\n\n for (const nodeId of nodeIds) {\n const node = this._getVisibleNodes().getModel().getNode(nodeId);\n // istanbul ignore else\n if (node !== undefined && !node.isSelectionDisabled) {\n items.push(node.item);\n }\n }\n return items;\n }\n\n private static groupNodesByLoadingState(\n nodes: Iterable<TreeModelNode | TreeModelNodePlaceholder>,\n ): [TreeModelNode[], TreeModelNodePlaceholder[]] {\n const loadedNodeItems: TreeModelNode[] = [];\n const nodesToLoad: TreeModelNodePlaceholder[] = [];\n for (const node of nodes) {\n if (isTreeModelNode(node)) {\n loadedNodeItems.push(node);\n } else {\n nodesToLoad.push(node);\n }\n }\n\n return [loadedNodeItems, nodesToLoad];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TreeEventDispatcher.js","sourceRoot":"","sources":["../../../../../src/components-react/tree/controlled/TreeEventDispatcher.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tree\r\n */\r\n\r\nimport { Observable } from \"rxjs/internal/Observable\";\r\nimport { concat } from \"rxjs/internal/observable/concat\";\r\nimport { defer } from \"rxjs/internal/observable/defer\";\r\nimport { EMPTY } from \"rxjs/internal/observable/empty\";\r\nimport { from } from \"rxjs/internal/observable/from\";\r\nimport { generate } from \"rxjs/internal/observable/generate\";\r\nimport { merge } from \"rxjs/internal/observable/merge\";\r\nimport { of } from \"rxjs/internal/observable/of\";\r\nimport { zip } from \"rxjs/internal/observable/zip\";\r\nimport { concatAll } from \"rxjs/internal/operators/concatAll\";\r\nimport { concatMap } from \"rxjs/internal/operators/concatMap\";\r\nimport { defaultIfEmpty } from \"rxjs/internal/operators/defaultIfEmpty\";\r\nimport { distinctUntilChanged } from \"rxjs/internal/operators/distinctUntilChanged\";\r\nimport { filter } from \"rxjs/internal/operators/filter\";\r\nimport { finalize } from \"rxjs/internal/operators/finalize\";\r\nimport { map } from \"rxjs/internal/operators/map\";\r\nimport { mergeAll } from \"rxjs/internal/operators/mergeAll\";\r\nimport { publishReplay } from \"rxjs/internal/operators/publishReplay\";\r\nimport { refCount } from \"rxjs/internal/operators/refCount\";\r\nimport { subscribeOn } from \"rxjs/internal/operators/subscribeOn\";\r\nimport { toArray } from \"rxjs/internal/operators/toArray\";\r\nimport { asapScheduler } from \"rxjs/internal/scheduler/asap\";\r\nimport { CheckBoxState } from \"@itwin/core-react\";\r\nimport { SelectionMode } from \"../../common/selection/SelectionModes\";\r\nimport { TreeNodeItem } from \"../TreeDataProvider\";\r\nimport { IndividualSelection, isRangeSelection, RangeSelection, TreeSelectionManager } from \"./internal/TreeSelectionManager\";\r\nimport { TreeActions } from \"./TreeActions\";\r\nimport { TreeEvents } from \"./TreeEvents\";\r\nimport { isTreeModelNode, TreeModelNode, TreeModelNodePlaceholder, VisibleTreeNodes } from \"./TreeModel\";\r\nimport { ITreeNodeLoader } from \"./TreeNodeLoader\";\r\n\r\n/**\r\n * Default event dispatcher that emits tree events according performed actions.\r\n * It converts low level tree events into TreeEvents.\r\n * @internal\r\n */\r\nexport class TreeEventDispatcher implements TreeActions {\r\n private _treeEvents: TreeEvents;\r\n private _nodeLoader: ITreeNodeLoader;\r\n private _getVisibleNodes: (() => VisibleTreeNodes) | undefined;\r\n\r\n private _selectionManager: TreeSelectionManager;\r\n\r\n private _activeSelections = new Set<Observable<{ selectedNodeItems: TreeNodeItem[], deselectedNodeItems?: TreeNodeItem[] }>>();\r\n\r\n constructor(\r\n treeEvents: TreeEvents,\r\n nodeLoader: ITreeNodeLoader,\r\n selectionMode: SelectionMode,\r\n getVisibleNodes?: () => VisibleTreeNodes,\r\n ) {\r\n this._treeEvents = treeEvents;\r\n this._nodeLoader = nodeLoader;\r\n this._getVisibleNodes = getVisibleNodes;\r\n\r\n this._selectionManager = new TreeSelectionManager(selectionMode, this._getVisibleNodes);\r\n\r\n this._selectionManager.onDragSelection.addListener(({ selectionChanges }) => {\r\n const modifications = from(selectionChanges)\r\n .pipe(\r\n map(({ selectedNodes, deselectedNodes }) => from(this.collectSelectionChanges(selectedNodes, []))\r\n .pipe(\r\n concatMap(({ selectedNodeItems }) => from(selectedNodeItems)),\r\n toArray(),\r\n map((collectedIds) => ({ selectedNodeItems: collectedIds, deselectedNodeItems: this.collectNodeItems(deselectedNodes) })),\r\n ),\r\n ),\r\n concatAll(),\r\n publishReplay(),\r\n refCount(),\r\n );\r\n\r\n /* istanbul ignore else */\r\n if (this._treeEvents.onSelectionModified !== undefined)\r\n this._treeEvents.onSelectionModified({ modifications });\r\n });\r\n\r\n this._selectionManager.onSelectionChanged.addListener(({ selectedNodes, deselectedNodes }) => {\r\n const modifications = merge(\r\n defer(() => {\r\n this._activeSelections.add(modifications);\r\n return EMPTY;\r\n }),\r\n this.collectSelectionChanges(selectedNodes, deselectedNodes),\r\n )\r\n .pipe(\r\n finalize(() => {\r\n this._activeSelections.delete(modifications);\r\n }),\r\n publishReplay(),\r\n refCount(),\r\n );\r\n\r\n /* istanbul ignore else */\r\n if (this._treeEvents.onSelectionModified !== undefined)\r\n this._treeEvents.onSelectionModified({ modifications });\r\n });\r\n\r\n this._selectionManager.onSelectionReplaced.addListener(({ selectedNodeIds }) => {\r\n const replacements = merge(\r\n defer(() => {\r\n this._activeSelections.add(replacements);\r\n return EMPTY;\r\n }),\r\n this.collectSelectionChanges(selectedNodeIds, []),\r\n )\r\n .pipe(\r\n finalize(() => {\r\n this._activeSelections.delete(replacements);\r\n }),\r\n publishReplay(),\r\n refCount(),\r\n );\r\n\r\n /* istanbul ignore else */\r\n if (this._treeEvents.onSelectionReplaced !== undefined)\r\n this._treeEvents.onSelectionReplaced({ replacements });\r\n });\r\n }\r\n\r\n public setVisibleNodes(visibleNodes: () => VisibleTreeNodes) {\r\n this._getVisibleNodes = visibleNodes;\r\n this._selectionManager.setVisibleNodes(visibleNodes);\r\n }\r\n\r\n public onNodeCheckboxClicked(nodeId: string, newState: CheckBoxState) {\r\n if (this._getVisibleNodes === undefined)\r\n return;\r\n\r\n const visibleNodes = this._getVisibleNodes();\r\n const clickedNode = visibleNodes.getModel().getNode(nodeId);\r\n if (clickedNode === undefined)\r\n return;\r\n\r\n const immediateStateChanges = [{ nodeItem: clickedNode.item, newState }];\r\n if (clickedNode.isSelected) {\r\n for (const node of visibleNodes) {\r\n if (isTreeModelNode(node) && node.id !== clickedNode.id && node.isSelected && node.checkbox.state !== newState) {\r\n immediateStateChanges.push({ nodeItem: node.item, newState });\r\n }\r\n }\r\n }\r\n\r\n const stateChanges = concat(\r\n of(immediateStateChanges),\r\n from(this._activeSelections)\r\n .pipe(\r\n mergeAll(),\r\n map(({ selectedNodeItems }) => selectedNodeItems.map((item) => ({ nodeItem: item, newState }))),\r\n ),\r\n )\r\n .pipe(\r\n publishReplay(),\r\n refCount(),\r\n );\r\n\r\n /* istanbul ignore else */\r\n if (this._treeEvents.onCheckboxStateChanged !== undefined)\r\n this._treeEvents.onCheckboxStateChanged({ stateChanges });\r\n }\r\n\r\n public onNodeExpanded(nodeId: string) {\r\n /* istanbul ignore else */\r\n if (this._treeEvents.onNodeExpanded !== undefined)\r\n this._treeEvents.onNodeExpanded({ nodeId });\r\n }\r\n\r\n public onNodeCollapsed(nodeId: string) {\r\n /* istanbul ignore else */\r\n if (this._treeEvents.onNodeCollapsed !== undefined)\r\n this._treeEvents.onNodeCollapsed({ nodeId });\r\n }\r\n\r\n public onNodeClicked(nodeId: string, event: React.MouseEvent<Element, MouseEvent>) {\r\n const node = this._getVisibleNodes ? this._getVisibleNodes().getModel().getNode(nodeId) : undefined;\r\n const isNodeSelected = node ? node.isSelected : false;\r\n this._selectionManager.onNodeClicked(nodeId, event);\r\n\r\n // if clicked node was already selected fire delayed click event\r\n if (isNodeSelected && this._treeEvents.onDelayedNodeClick !== undefined) {\r\n this._treeEvents.onDelayedNodeClick({ nodeId });\r\n }\r\n }\r\n\r\n public onNodeMouseDown(nodeId: string) {\r\n this._selectionManager.onNodeMouseDown(nodeId);\r\n }\r\n\r\n public onNodeMouseMove(nodeId: string) {\r\n this._selectionManager.onNodeMouseMove(nodeId);\r\n }\r\n\r\n public onNodeEditorActivated(nodeId: string) {\r\n const node = this._getVisibleNodes ? this._getVisibleNodes().getModel().getNode(nodeId) : /* istanbul ignore next */ undefined;\r\n const isNodeSelected = node ? node.isSelected : false;\r\n\r\n // if node was already selected, fire onNodeEditorActivated event\r\n if (isNodeSelected && this._treeEvents.onNodeEditorActivated !== undefined) {\r\n this._treeEvents.onNodeEditorActivated({ nodeId });\r\n }\r\n }\r\n\r\n public onTreeKeyDown(event: React.KeyboardEvent): void {\r\n this._selectionManager.onTreeKeyDown(event, this);\r\n }\r\n\r\n public onTreeKeyUp(event: React.KeyboardEvent): void {\r\n this._selectionManager.onTreeKeyUp(event, this);\r\n }\r\n\r\n private collectSelectionChanges(\r\n selection: IndividualSelection | RangeSelection,\r\n deselection: IndividualSelection,\r\n ): Observable<{ selectedNodeItems: TreeNodeItem[], deselectedNodeItems: TreeNodeItem[] }> {\r\n const deselectedItems = this.collectNodeItems(deselection);\r\n if (isRangeSelection(selection)) {\r\n return zip(\r\n this.collectNodesBetween(selection.from, selection.to).pipe(defaultIfEmpty([] as TreeNodeItem[])),\r\n // Without a scheduler `generate` would block the main thread indefinitely\r\n generate({ initialState: deselectedItems, iterate: () => [], scheduler: asapScheduler }),\r\n ).pipe(map(([selectedNodeItems, deselectedNodeItems]) => ({ selectedNodeItems, deselectedNodeItems })));\r\n }\r\n\r\n const selectedItems = this.collectNodeItems(selection);\r\n return of({ selectedNodeItems: selectedItems, deselectedNodeItems: deselectedItems });\r\n }\r\n\r\n private collectNodesBetween(nodeId1: string, nodeId2: string): Observable<TreeNodeItem[]> {\r\n const [readyNodes, nodesToLoad] = TreeEventDispatcher.groupNodesByLoadingState(\r\n this.iterateNodesBetween(nodeId1, nodeId2),\r\n );\r\n\r\n const loadedSelectedNodes = from(\r\n nodesToLoad.map((node) => {\r\n const parentNode = node.parentId\r\n ? this._getVisibleNodes!().getModel().getNode(node.parentId)\r\n : this._getVisibleNodes!().getModel().getRootNode();\r\n return parentNode ? this._nodeLoader.loadNode(parentNode, node.childIndex) : /* istanbul ignore next */ EMPTY;\r\n }),\r\n )\r\n .pipe(\r\n // We have requested multiple nodes that may belong to the same page.\r\n // When the page loads we only want to process the loaded nodes once.\r\n // Making assumption that loaded nodes from the same page will be emitted without interruptions.\r\n // Maybe we could simplify this to `this._nodeLoader.loadNodes(nodesToLoad)`?\r\n mergeAll(),\r\n distinctUntilChanged(),\r\n );\r\n\r\n return concat(\r\n of(readyNodes.filter((node) => !node.isSelectionDisabled).map((node) => node.item)),\r\n loadedSelectedNodes.pipe(map(({ loadedNodes }) => loadedNodes.filter((item) => !item.isSelectionDisabled))),\r\n ).pipe(\r\n filter((nodeItems) => nodeItems.length > 0),\r\n // Give enough time for multiple subscribers to subscribe before any emissions begin\r\n subscribeOn(asapScheduler),\r\n );\r\n }\r\n\r\n private *iterateNodesBetween(\r\n nodeId1: string,\r\n nodeId2: string,\r\n ): Iterable<TreeModelNode | TreeModelNodePlaceholder> {\r\n let firstNodeFound = false;\r\n if (this._getVisibleNodes === undefined) {\r\n return;\r\n }\r\n\r\n for (const node of this._getVisibleNodes()) {\r\n if (firstNodeFound) {\r\n yield node;\r\n }\r\n\r\n if (isTreeModelNode(node)) {\r\n if (nodeId1 === nodeId2 && node.id === nodeId1) {\r\n yield node;\r\n return;\r\n }\r\n\r\n if (node.id === nodeId1 || node.id === nodeId2) {\r\n if (firstNodeFound) {\r\n return;\r\n }\r\n\r\n firstNodeFound = true;\r\n yield node;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private collectNodeItems(nodeIds: string[]): TreeNodeItem[] {\r\n const items: TreeNodeItem[] = [];\r\n if (this._getVisibleNodes === undefined) {\r\n return items;\r\n }\r\n\r\n for (const nodeId of nodeIds) {\r\n const node = this._getVisibleNodes().getModel().getNode(nodeId);\r\n // istanbul ignore else\r\n if (node !== undefined && !node.isSelectionDisabled) {\r\n items.push(node.item);\r\n }\r\n }\r\n return items;\r\n }\r\n\r\n private static groupNodesByLoadingState(\r\n nodes: Iterable<TreeModelNode | TreeModelNodePlaceholder>,\r\n ): [TreeModelNode[], TreeModelNodePlaceholder[]] {\r\n const loadedNodeItems: TreeModelNode[] = [];\r\n const nodesToLoad: TreeModelNodePlaceholder[] = [];\r\n for (const node of nodes) {\r\n if (isTreeModelNode(node)) {\r\n loadedNodeItems.push(node);\r\n } else {\r\n nodesToLoad.push(node);\r\n }\r\n }\r\n\r\n return [loadedNodeItems, nodesToLoad];\r\n }\r\n}\r\n"]}
|