@itwin/grouping-mapping-widget 0.35.3 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/GroupingMappingWidget.d.ts +28 -0
- package/lib/cjs/GroupingMappingWidget.js +71 -0
- package/lib/cjs/GroupingMappingWidget.js.map +1 -0
- package/lib/cjs/WidgetShell/GroupingMapping.js +4 -3
- package/lib/cjs/WidgetShell/GroupingMapping.js.map +1 -1
- package/lib/cjs/WidgetShell/GroupingMappingWidget.js +2 -1
- package/lib/cjs/WidgetShell/GroupingMappingWidget.js.map +1 -1
- package/lib/cjs/WidgetShell/Router/GroupingMappingRouter.js +6 -5
- package/lib/cjs/WidgetShell/Router/GroupingMappingRouter.js.map +1 -1
- package/lib/cjs/WidgetShell/WidgetHeader/WidgetHeader.js +3 -2
- package/lib/cjs/WidgetShell/WidgetHeader/WidgetHeader.js.map +1 -1
- package/lib/cjs/common/utils.js +12 -11
- package/lib/cjs/common/utils.js.map +1 -1
- package/lib/cjs/components/GroupingMappingContext.js +3 -2
- package/lib/cjs/components/GroupingMappingContext.js.map +1 -1
- package/lib/cjs/components/Groups/Editing/GroupAction.d.ts +2 -2
- package/lib/cjs/components/Groups/Editing/GroupAction.js +8 -7
- package/lib/cjs/components/Groups/Editing/GroupAction.js.map +1 -1
- package/lib/cjs/components/Groups/Editing/GroupDetails.js +4 -3
- package/lib/cjs/components/Groups/Editing/GroupDetails.js.map +1 -1
- package/lib/cjs/components/Groups/Editing/GroupDetailsActionPanel.js +3 -2
- package/lib/cjs/components/Groups/Editing/GroupDetailsActionPanel.js.map +1 -1
- package/lib/cjs/components/Groups/Editing/GroupDetailsStep.d.ts +2 -2
- package/lib/cjs/components/Groups/Editing/GroupDetailsStep.js +5 -4
- package/lib/cjs/components/Groups/Editing/GroupDetailsStep.js.map +1 -1
- package/lib/cjs/components/Groups/GroupMenuActions.js +5 -4
- package/lib/cjs/components/Groups/GroupMenuActions.js.map +1 -1
- package/lib/cjs/components/Groups/GroupOverlapProgressBar.js +2 -1
- package/lib/cjs/components/Groups/GroupOverlapProgressBar.js.map +1 -1
- package/lib/cjs/components/Groups/GroupsAddButton.js +2 -1
- package/lib/cjs/components/Groups/GroupsAddButton.js.map +1 -1
- package/lib/cjs/components/Groups/GroupsShowHideButtons.js +2 -1
- package/lib/cjs/components/Groups/GroupsShowHideButtons.js.map +1 -1
- package/lib/cjs/components/Groups/GroupsView.js +4 -3
- package/lib/cjs/components/Groups/GroupsView.js.map +1 -1
- package/lib/cjs/components/Groups/GroupsVisualization.js +9 -6
- package/lib/cjs/components/Groups/GroupsVisualization.js.map +1 -1
- package/lib/cjs/components/Groups/GroupsVisualizationActions.js +3 -2
- package/lib/cjs/components/Groups/GroupsVisualizationActions.js.map +1 -1
- package/lib/cjs/components/Groups/OverlappedElementsInformationPanel.js +6 -5
- package/lib/cjs/components/Groups/OverlappedElementsInformationPanel.js.map +1 -1
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilder.js +4 -3
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilder.js.map +1 -1
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderActionPanel.js +2 -1
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderActionPanel.js.map +1 -1
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderCustomUI.js +2 -1
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderCustomUI.js.map +1 -1
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderStep.d.ts +2 -2
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderStep.js +7 -6
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderStep.js.map +1 -1
- package/lib/cjs/components/Groups/ToggleGroupVisibility.js +3 -2
- package/lib/cjs/components/Groups/ToggleGroupVisibility.js.map +1 -1
- package/lib/cjs/components/Groups/hooks/useVisualization.js +2 -1
- package/lib/cjs/components/Groups/hooks/useVisualization.js.map +1 -1
- package/lib/cjs/components/Mappings/Editing/MappingAction.d.ts +2 -2
- package/lib/cjs/components/Mappings/Editing/MappingAction.js +9 -8
- package/lib/cjs/components/Mappings/Editing/MappingAction.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionLogCustomFilter.js +17 -6
- package/lib/cjs/components/Mappings/Extraction/ExtractionLogCustomFilter.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionMessageModal.js +12 -11
- package/lib/cjs/components/Mappings/Extraction/ExtractionMessageModal.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js +2 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js +2 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js +2 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js +2 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js.map +1 -1
- package/lib/cjs/components/Mappings/Import/ConfirmMappingsImport.d.ts +2 -2
- package/lib/cjs/components/Mappings/Import/ConfirmMappingsImport.js +20 -19
- package/lib/cjs/components/Mappings/Import/ConfirmMappingsImport.js.map +1 -1
- package/lib/cjs/components/Mappings/Import/MappingImportWizardModal.d.ts +2 -2
- package/lib/cjs/components/Mappings/Import/MappingImportWizardModal.js +19 -18
- package/lib/cjs/components/Mappings/Import/MappingImportWizardModal.js.map +1 -1
- package/lib/cjs/components/Mappings/Import/SelectIModel.d.ts +2 -2
- package/lib/cjs/components/Mappings/Import/SelectIModel.js +9 -8
- package/lib/cjs/components/Mappings/Import/SelectIModel.js.map +1 -1
- package/lib/cjs/components/Mappings/Import/SelectITwin.d.ts +2 -2
- package/lib/cjs/components/Mappings/Import/SelectITwin.js +14 -13
- package/lib/cjs/components/Mappings/Import/SelectITwin.js.map +1 -1
- package/lib/cjs/components/Mappings/Import/SelectMappings.d.ts +2 -2
- package/lib/cjs/components/Mappings/Import/SelectMappings.js +10 -9
- package/lib/cjs/components/Mappings/Import/SelectMappings.js.map +1 -1
- package/lib/cjs/components/Mappings/MappingViewActionGroup.js +5 -4
- package/lib/cjs/components/Mappings/MappingViewActionGroup.js.map +1 -1
- package/lib/cjs/components/Mappings/Mappings.d.ts +2 -2
- package/lib/cjs/components/Mappings/Mappings.js.map +1 -1
- package/lib/cjs/components/Mappings/MappingsView.d.ts +2 -2
- package/lib/cjs/components/Mappings/MappingsView.js +17 -15
- package/lib/cjs/components/Mappings/MappingsView.js.map +1 -1
- package/lib/cjs/components/Mappings/hooks/useFetchExtractionStatus.js +4 -3
- package/lib/cjs/components/Mappings/hooks/useFetchExtractionStatus.js.map +1 -1
- package/lib/cjs/components/Mappings/hooks/useMappingsOperations.js +2 -1
- package/lib/cjs/components/Mappings/hooks/useMappingsOperations.js.map +1 -1
- package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyAction.js +3 -2
- package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyAction.js.map +1 -1
- package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js +2 -1
- package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js.map +1 -1
- package/lib/cjs/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js +3 -2
- package/lib/cjs/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js.map +1 -1
- package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.js +4 -3
- package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.js.map +1 -1
- package/lib/cjs/components/Properties/GroupColorToggle.js +3 -2
- package/lib/cjs/components/Properties/GroupColorToggle.js.map +1 -1
- package/lib/cjs/components/Properties/GroupInformationPanel.js +3 -2
- package/lib/cjs/components/Properties/GroupInformationPanel.js.map +1 -1
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.d.ts +1 -1
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.js +28 -26
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.js.map +1 -1
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyTable.js +5 -4
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyTable.js.map +1 -1
- package/lib/cjs/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js +12 -11
- package/lib/cjs/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js.map +1 -1
- package/lib/cjs/components/Properties/GroupProperties/SaveModal.js +5 -4
- package/lib/cjs/components/Properties/GroupProperties/SaveModal.js.map +1 -1
- package/lib/cjs/components/Properties/GroupProperties/SortableHorizontalTile.js +2 -1
- package/lib/cjs/components/Properties/GroupProperties/SortableHorizontalTile.js.map +1 -1
- package/lib/cjs/components/Properties/PropertyMenuWithVisualization.js +2 -1
- package/lib/cjs/components/Properties/PropertyMenuWithVisualization.js.map +1 -1
- package/lib/cjs/components/Properties/PropertyTable.js +2 -1
- package/lib/cjs/components/Properties/PropertyTable.js.map +1 -1
- package/lib/cjs/components/Properties/PropertyTableToolbar.js +3 -5
- package/lib/cjs/components/Properties/PropertyTableToolbar.js.map +1 -1
- package/lib/cjs/components/Properties/hooks/useValidator.d.ts +2 -2
- package/lib/cjs/components/Properties/hooks/useValidator.js +12 -9
- package/lib/cjs/components/Properties/hooks/useValidator.js.map +1 -1
- package/lib/cjs/components/SharedComponents/ActionPanel.js +3 -2
- package/lib/cjs/components/SharedComponents/ActionPanel.js.map +1 -1
- package/lib/cjs/components/SharedComponents/DeleteModal.js +5 -4
- package/lib/cjs/components/SharedComponents/DeleteModal.js.map +1 -1
- package/lib/cjs/components/SharedComponents/LoadingOverlay.js +3 -2
- package/lib/cjs/components/SharedComponents/LoadingOverlay.js.map +1 -1
- package/lib/cjs/components/customUI/DefaultGroupingUI.d.ts +1 -1
- package/lib/cjs/components/customUI/DefaultGroupingUI.js +7 -5
- package/lib/cjs/components/customUI/DefaultGroupingUI.js.map +1 -1
- package/lib/cjs/components/customUI/GroupQueryBuilderCustomUI.js +3 -2
- package/lib/cjs/components/customUI/GroupQueryBuilderCustomUI.js.map +1 -1
- package/lib/cjs/components/customUI/ManualGroupingCustomUI.js +5 -4
- package/lib/cjs/components/customUI/ManualGroupingCustomUI.js.map +1 -1
- package/lib/cjs/components/customUI/SearchGroupingCustomUI.js +5 -4
- package/lib/cjs/components/customUI/SearchGroupingCustomUI.js.map +1 -1
- package/lib/cjs/grouping-mapping-widget.d.ts +3 -0
- package/lib/cjs/grouping-mapping-widget.js +4 -1
- package/lib/cjs/grouping-mapping-widget.js.map +1 -1
- package/lib/cjs/test/GroupingMappingCustomUI.test.js +5 -5
- package/lib/cjs/test/GroupingMappingCustomUI.test.js.map +1 -1
- package/lib/cjs/test/setup.d.ts +2 -0
- package/lib/cjs/test/setup.js +10 -0
- package/lib/cjs/test/setup.js.map +1 -0
- package/lib/esm/GroupingMappingWidget.d.ts +28 -0
- package/lib/esm/GroupingMappingWidget.js +67 -0
- package/lib/esm/GroupingMappingWidget.js.map +1 -0
- package/lib/esm/WidgetShell/GroupingMapping.js +5 -4
- package/lib/esm/WidgetShell/GroupingMapping.js.map +1 -1
- package/lib/esm/WidgetShell/GroupingMappingWidget.js +2 -1
- package/lib/esm/WidgetShell/GroupingMappingWidget.js.map +1 -1
- package/lib/esm/WidgetShell/Router/GroupingMappingRouter.js +6 -5
- package/lib/esm/WidgetShell/Router/GroupingMappingRouter.js.map +1 -1
- package/lib/esm/WidgetShell/WidgetHeader/WidgetHeader.js +3 -2
- package/lib/esm/WidgetShell/WidgetHeader/WidgetHeader.js.map +1 -1
- package/lib/esm/common/utils.js +12 -11
- package/lib/esm/common/utils.js.map +1 -1
- package/lib/esm/components/GroupingMappingContext.js +3 -2
- package/lib/esm/components/GroupingMappingContext.js.map +1 -1
- package/lib/esm/components/Groups/Editing/GroupAction.d.ts +2 -2
- package/lib/esm/components/Groups/Editing/GroupAction.js +8 -7
- package/lib/esm/components/Groups/Editing/GroupAction.js.map +1 -1
- package/lib/esm/components/Groups/Editing/GroupDetails.js +4 -3
- package/lib/esm/components/Groups/Editing/GroupDetails.js.map +1 -1
- package/lib/esm/components/Groups/Editing/GroupDetailsActionPanel.js +3 -2
- package/lib/esm/components/Groups/Editing/GroupDetailsActionPanel.js.map +1 -1
- package/lib/esm/components/Groups/Editing/GroupDetailsStep.d.ts +2 -2
- package/lib/esm/components/Groups/Editing/GroupDetailsStep.js +5 -4
- package/lib/esm/components/Groups/Editing/GroupDetailsStep.js.map +1 -1
- package/lib/esm/components/Groups/GroupMenuActions.js +5 -4
- package/lib/esm/components/Groups/GroupMenuActions.js.map +1 -1
- package/lib/esm/components/Groups/GroupOverlapProgressBar.js +2 -1
- package/lib/esm/components/Groups/GroupOverlapProgressBar.js.map +1 -1
- package/lib/esm/components/Groups/GroupsAddButton.js +2 -1
- package/lib/esm/components/Groups/GroupsAddButton.js.map +1 -1
- package/lib/esm/components/Groups/GroupsShowHideButtons.js +2 -1
- package/lib/esm/components/Groups/GroupsShowHideButtons.js.map +1 -1
- package/lib/esm/components/Groups/GroupsView.js +4 -3
- package/lib/esm/components/Groups/GroupsView.js.map +1 -1
- package/lib/esm/components/Groups/GroupsVisualization.js +9 -6
- package/lib/esm/components/Groups/GroupsVisualization.js.map +1 -1
- package/lib/esm/components/Groups/GroupsVisualizationActions.js +3 -2
- package/lib/esm/components/Groups/GroupsVisualizationActions.js.map +1 -1
- package/lib/esm/components/Groups/OverlappedElementsInformationPanel.js +6 -5
- package/lib/esm/components/Groups/OverlappedElementsInformationPanel.js.map +1 -1
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilder.js +4 -3
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilder.js.map +1 -1
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderActionPanel.js +2 -1
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderActionPanel.js.map +1 -1
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderCustomUI.js +2 -1
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderCustomUI.js.map +1 -1
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderStep.d.ts +2 -2
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderStep.js +7 -6
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderStep.js.map +1 -1
- package/lib/esm/components/Groups/ToggleGroupVisibility.js +3 -2
- package/lib/esm/components/Groups/ToggleGroupVisibility.js.map +1 -1
- package/lib/esm/components/Groups/hooks/useVisualization.js +2 -1
- package/lib/esm/components/Groups/hooks/useVisualization.js.map +1 -1
- package/lib/esm/components/Mappings/Editing/MappingAction.d.ts +2 -2
- package/lib/esm/components/Mappings/Editing/MappingAction.js +9 -8
- package/lib/esm/components/Mappings/Editing/MappingAction.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionLogCustomFilter.js +17 -6
- package/lib/esm/components/Mappings/Extraction/ExtractionLogCustomFilter.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionMessageModal.js +12 -11
- package/lib/esm/components/Mappings/Extraction/ExtractionMessageModal.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js +2 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js +2 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js +2 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js +2 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js.map +1 -1
- package/lib/esm/components/Mappings/Import/ConfirmMappingsImport.d.ts +2 -2
- package/lib/esm/components/Mappings/Import/ConfirmMappingsImport.js +20 -19
- package/lib/esm/components/Mappings/Import/ConfirmMappingsImport.js.map +1 -1
- package/lib/esm/components/Mappings/Import/MappingImportWizardModal.d.ts +2 -2
- package/lib/esm/components/Mappings/Import/MappingImportWizardModal.js +19 -18
- package/lib/esm/components/Mappings/Import/MappingImportWizardModal.js.map +1 -1
- package/lib/esm/components/Mappings/Import/SelectIModel.d.ts +2 -2
- package/lib/esm/components/Mappings/Import/SelectIModel.js +9 -8
- package/lib/esm/components/Mappings/Import/SelectIModel.js.map +1 -1
- package/lib/esm/components/Mappings/Import/SelectITwin.d.ts +2 -2
- package/lib/esm/components/Mappings/Import/SelectITwin.js +14 -13
- package/lib/esm/components/Mappings/Import/SelectITwin.js.map +1 -1
- package/lib/esm/components/Mappings/Import/SelectMappings.d.ts +2 -2
- package/lib/esm/components/Mappings/Import/SelectMappings.js +10 -9
- package/lib/esm/components/Mappings/Import/SelectMappings.js.map +1 -1
- package/lib/esm/components/Mappings/MappingViewActionGroup.js +5 -4
- package/lib/esm/components/Mappings/MappingViewActionGroup.js.map +1 -1
- package/lib/esm/components/Mappings/Mappings.d.ts +2 -2
- package/lib/esm/components/Mappings/Mappings.js.map +1 -1
- package/lib/esm/components/Mappings/MappingsView.d.ts +2 -2
- package/lib/esm/components/Mappings/MappingsView.js +15 -14
- package/lib/esm/components/Mappings/MappingsView.js.map +1 -1
- package/lib/esm/components/Mappings/hooks/useFetchExtractionStatus.js +4 -3
- package/lib/esm/components/Mappings/hooks/useFetchExtractionStatus.js.map +1 -1
- package/lib/esm/components/Mappings/hooks/useMappingsOperations.js +2 -1
- package/lib/esm/components/Mappings/hooks/useMappingsOperations.js.map +1 -1
- package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyAction.js +3 -2
- package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyAction.js.map +1 -1
- package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js +2 -1
- package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js.map +1 -1
- package/lib/esm/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js +3 -2
- package/lib/esm/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js.map +1 -1
- package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.js +4 -3
- package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.js.map +1 -1
- package/lib/esm/components/Properties/GroupColorToggle.js +3 -2
- package/lib/esm/components/Properties/GroupColorToggle.js.map +1 -1
- package/lib/esm/components/Properties/GroupInformationPanel.js +3 -2
- package/lib/esm/components/Properties/GroupInformationPanel.js.map +1 -1
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.d.ts +1 -1
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.js +26 -25
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.js.map +1 -1
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyTable.js +5 -4
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyTable.js.map +1 -1
- package/lib/esm/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js +12 -11
- package/lib/esm/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js.map +1 -1
- package/lib/esm/components/Properties/GroupProperties/SaveModal.js +5 -4
- package/lib/esm/components/Properties/GroupProperties/SaveModal.js.map +1 -1
- package/lib/esm/components/Properties/GroupProperties/SortableHorizontalTile.js +2 -1
- package/lib/esm/components/Properties/GroupProperties/SortableHorizontalTile.js.map +1 -1
- package/lib/esm/components/Properties/PropertyMenuWithVisualization.js +2 -1
- package/lib/esm/components/Properties/PropertyMenuWithVisualization.js.map +1 -1
- package/lib/esm/components/Properties/PropertyTable.js +2 -1
- package/lib/esm/components/Properties/PropertyTable.js.map +1 -1
- package/lib/esm/components/Properties/PropertyTableToolbar.js +3 -5
- package/lib/esm/components/Properties/PropertyTableToolbar.js.map +1 -1
- package/lib/esm/components/Properties/hooks/useValidator.d.ts +2 -2
- package/lib/esm/components/Properties/hooks/useValidator.js +9 -8
- package/lib/esm/components/Properties/hooks/useValidator.js.map +1 -1
- package/lib/esm/components/SharedComponents/ActionPanel.js +3 -2
- package/lib/esm/components/SharedComponents/ActionPanel.js.map +1 -1
- package/lib/esm/components/SharedComponents/DeleteModal.js +5 -4
- package/lib/esm/components/SharedComponents/DeleteModal.js.map +1 -1
- package/lib/esm/components/SharedComponents/LoadingOverlay.js +3 -2
- package/lib/esm/components/SharedComponents/LoadingOverlay.js.map +1 -1
- package/lib/esm/components/customUI/DefaultGroupingUI.d.ts +1 -1
- package/lib/esm/components/customUI/DefaultGroupingUI.js +5 -4
- package/lib/esm/components/customUI/DefaultGroupingUI.js.map +1 -1
- package/lib/esm/components/customUI/GroupQueryBuilderCustomUI.js +3 -2
- package/lib/esm/components/customUI/GroupQueryBuilderCustomUI.js.map +1 -1
- package/lib/esm/components/customUI/ManualGroupingCustomUI.js +5 -4
- package/lib/esm/components/customUI/ManualGroupingCustomUI.js.map +1 -1
- package/lib/esm/components/customUI/SearchGroupingCustomUI.js +5 -4
- package/lib/esm/components/customUI/SearchGroupingCustomUI.js.map +1 -1
- package/lib/esm/grouping-mapping-widget.d.ts +3 -0
- package/lib/esm/grouping-mapping-widget.js +2 -0
- package/lib/esm/grouping-mapping-widget.js.map +1 -1
- package/lib/esm/test/GroupingMappingCustomUI.test.js +5 -5
- package/lib/esm/test/GroupingMappingCustomUI.test.js.map +1 -1
- package/lib/esm/test/setup.d.ts +2 -0
- package/lib/esm/test/setup.js +8 -0
- package/lib/esm/test/setup.js.map +1 -0
- package/lib/public/locales/en/GroupingMappingWidget.json +220 -0
- package/package.json +4 -4
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { toaster } from "@itwin/itwinui-react";
|
|
2
2
|
import { Presentation } from "@itwin/presentation-frontend";
|
|
3
3
|
import { useCallback, useEffect, useState } from "react";
|
|
4
|
+
import { GroupingMappingWidget } from "../../../GroupingMappingWidget";
|
|
4
5
|
import { useGroupHilitedElementsContext } from "../../context/GroupHilitedElementsContext";
|
|
5
6
|
import { visualizeGroupColors } from "../groupsHelpers";
|
|
6
7
|
import { clearEmphasizedElements, clearOverriddenElements, transparentOverriddenElements, visualizeElementsByQuery, zoomToElements, } from "../../../common/viewerUtils";
|
|
@@ -45,7 +46,7 @@ export const useVisualization = (shouldVisualize, iModelConnection, query, query
|
|
|
45
46
|
await zoomToElements(resolvedHiliteIds);
|
|
46
47
|
}
|
|
47
48
|
catch {
|
|
48
|
-
toaster.negative("
|
|
49
|
+
toaster.negative(GroupingMappingWidget.translate("errors.invalidQuery"));
|
|
49
50
|
}
|
|
50
51
|
finally {
|
|
51
52
|
setIsRendering(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVisualization.js","sourceRoot":"","sources":["../../../../../src/components/Groups/hooks/useVisualization.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,6BAA6B,EAC7B,wBAAwB,EACxB,cAAc,GACf,MAAM,6BAA6B,CAAC;AAErC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,eAAwB,EAAE,gBAAkC,EAAE,KAAa,EAAE,mBAA2B,EAAE,EAAE;IAC3I,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAC/D,MAAM,EACJ,cAAc,EACd,eAAe,EACf,0BAA0B,EAAE,EAAE,2BAA2B,EAAE,EAC3D,2BAA2B,GAC5B,GAAG,8BAA8B,EAAE,CAAC;IACrC,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAE7E,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACvC,IAAI,CAAC,eAAe;YAAE,OAAO;QAC7B,IAAI,cAAc,EAAE;YAClB,MAAM,oBAAoB,CAAC,eAAe,EAAE,2BAA2B,EAAE,2BAA2B,CAAC,CAAC;SACvG;aAAM;YACL,uBAAuB,EAAE,CAAC;SAC3B;QACD,uBAAuB,EAAE,CAAC;IAC5B,CAAC,EAAE,CAAC,eAAe,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;IAEjH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe;YAAE,OAAO;QAC7B,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,EAAE,GAA6B,EAAE,iBAAqC,EAAE,EAAE;YACvJ,IAAI,mBAAmB,KAAK,WAAW,EAAE;gBACvC,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;gBACxE,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9H,uBAAuB,CAAC,KAAK,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,cAAc,CAAC;IACxB,CAAC,EAAE,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC;IAE7D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe;YAAE,OAAO;QAC7B,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;YAC7B,IAAI;gBACF,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;oBAC1B,OAAO;iBACR;gBACD,cAAc,CAAC,IAAI,CAAC,CAAC;gBACrB,6BAA6B,EAAE,CAAC;gBAChC,MAAM,iBAAiB,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;gBACzF,MAAM,cAAc,CAAC,iBAAiB,CAAC,CAAC;aACzC;YAAC,MAAM;gBACN,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"useVisualization.js","sourceRoot":"","sources":["../../../../../src/components/Groups/hooks/useVisualization.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 *--------------------------------------------------------------------------------------------*/\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { toaster } from \"@itwin/itwinui-react\";\nimport type { ISelectionProvider, SelectionChangeEventArgs } from \"@itwin/presentation-frontend\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { GroupingMappingWidget } from \"../../../GroupingMappingWidget\";\nimport { useGroupHilitedElementsContext } from \"../../context/GroupHilitedElementsContext\";\nimport { visualizeGroupColors } from \"../groupsHelpers\";\nimport {\n clearEmphasizedElements,\n clearOverriddenElements,\n transparentOverriddenElements,\n visualizeElementsByQuery,\n zoomToElements,\n} from \"../../../common/viewerUtils\";\n\nexport const useVisualization = (shouldVisualize: boolean, iModelConnection: IModelConnection, query: string, queryGenerationType: string) => {\n const [isRendering, setIsRendering] = useState<boolean>(false);\n const {\n showGroupColor,\n hiddenGroupsIds,\n overlappedElementsMetadata: { overlappedElementGroupPairs },\n setNumberOfVisualizedGroups,\n } = useGroupHilitedElementsContext();\n const [simpleSelectionQuery, setSimpleSelectionQuery] = useState<string>(\"\");\n\n const resetView = useCallback(async () => {\n if (!shouldVisualize) return;\n if (showGroupColor) {\n await visualizeGroupColors(hiddenGroupsIds, overlappedElementGroupPairs, setNumberOfVisualizedGroups);\n } else {\n clearOverriddenElements();\n }\n clearEmphasizedElements();\n }, [hiddenGroupsIds, overlappedElementGroupPairs, setNumberOfVisualizedGroups, shouldVisualize, showGroupColor]);\n\n useEffect(() => {\n if (!shouldVisualize) return;\n const removeListener = Presentation.selection.selectionChange.addListener(async (evt: SelectionChangeEventArgs, selectionProvider: ISelectionProvider) => {\n if (queryGenerationType === \"Selection\") {\n const selection = selectionProvider.getSelection(evt.imodel, evt.level);\n const query = selection.instanceKeys.size > 0 ? `SELECT ECInstanceId FROM ${selection.instanceKeys.keys().next().value}` : \"\";\n setSimpleSelectionQuery(query);\n }\n });\n return removeListener;\n }, [iModelConnection, queryGenerationType, shouldVisualize]);\n\n useEffect(() => {\n if (!shouldVisualize) return;\n const reemphasize = async () => {\n try {\n if (!query || query === \"\") {\n return;\n }\n setIsRendering(true);\n transparentOverriddenElements();\n const resolvedHiliteIds = await visualizeElementsByQuery(query, \"red\", iModelConnection);\n await zoomToElements(resolvedHiliteIds);\n } catch {\n toaster.negative(GroupingMappingWidget.translate(\"errors.invalidQuery\"));\n } finally {\n setIsRendering(false);\n }\n };\n\n void reemphasize();\n }, [iModelConnection, query, shouldVisualize]);\n\n const clearPresentationSelection = useCallback(\n () => shouldVisualize && Presentation.selection.clearSelection(\"GroupingMappingWidget\", iModelConnection),\n [iModelConnection, shouldVisualize],\n );\n\n useEffect(() => {\n clearPresentationSelection();\n }, [clearPresentationSelection, iModelConnection]);\n\n return { isRendering, setIsRendering, simpleSelectionQuery, setSimpleSelectionQuery, clearPresentationSelection, resetView };\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import "./MappingAction.scss";
|
|
3
3
|
import type { Mapping } from "@itwin/insights-client";
|
|
4
|
-
declare const
|
|
4
|
+
declare const getDefaultDisplayStrings: () => {
|
|
5
5
|
mappingDetails: string;
|
|
6
6
|
};
|
|
7
7
|
/**
|
|
@@ -12,7 +12,7 @@ export interface MappingActionProps {
|
|
|
12
12
|
mapping?: Mapping;
|
|
13
13
|
onSaveSuccess: () => void;
|
|
14
14
|
onClickCancel?: () => void;
|
|
15
|
-
displayStrings?: Partial<typeof
|
|
15
|
+
displayStrings?: Partial<ReturnType<typeof getDefaultDisplayStrings>>;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Component to create or update a mapping.
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { Fieldset, LabeledInput, Text, ToggleSwitch } from "@itwin/itwinui-react";
|
|
6
6
|
import React, { useState } from "react";
|
|
7
|
+
import { GroupingMappingWidget } from "../../../GroupingMappingWidget";
|
|
7
8
|
import ActionPanel from "../../SharedComponents/ActionPanel";
|
|
8
9
|
import useValidator, { NAME_REQUIREMENTS } from "../../Properties/hooks/useValidator";
|
|
9
10
|
import "./MappingAction.scss";
|
|
@@ -11,9 +12,9 @@ import { useMappingClient } from "../../context/MappingClientContext";
|
|
|
11
12
|
import { useGroupingMappingApiConfig } from "../../context/GroupingApiConfigContext";
|
|
12
13
|
import { handleInputChange } from "../../../common/utils";
|
|
13
14
|
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
|
14
|
-
const
|
|
15
|
-
mappingDetails: "
|
|
16
|
-
};
|
|
15
|
+
const getDefaultDisplayStrings = () => ({
|
|
16
|
+
mappingDetails: GroupingMappingWidget.translate("mappings.mappingDetails"),
|
|
17
|
+
});
|
|
17
18
|
/**
|
|
18
19
|
* Component to create or update a mapping.
|
|
19
20
|
* @public
|
|
@@ -28,7 +29,7 @@ export const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displaySt
|
|
|
28
29
|
});
|
|
29
30
|
const [validator, showValidationMessage] = useValidator();
|
|
30
31
|
const queryClient = useQueryClient();
|
|
31
|
-
const displayStrings = React.useMemo(() => ({ ...
|
|
32
|
+
const displayStrings = React.useMemo(() => ({ ...getDefaultDisplayStrings(), ...userDisplayStrings }), [userDisplayStrings]);
|
|
32
33
|
const { mutate: saveMutation, isLoading } = useMutation({
|
|
33
34
|
mutationFn: async (newMapping) => {
|
|
34
35
|
const accessToken = await getAccessToken();
|
|
@@ -54,8 +55,8 @@ export const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displaySt
|
|
|
54
55
|
return (React.createElement(React.Fragment, null,
|
|
55
56
|
React.createElement("div", { className: "gmw-details-form-container" },
|
|
56
57
|
React.createElement(Fieldset, { legend: displayStrings.mappingDetails, className: "gmw-details-form" },
|
|
57
|
-
React.createElement(Text, { variant: "small", as: "small", className: "gmw-field-legend" }, "
|
|
58
|
-
React.createElement(LabeledInput, { id: "name", name: "name", label: "
|
|
58
|
+
React.createElement(Text, { variant: "small", as: "small", className: "gmw-field-legend" }, GroupingMappingWidget.translate("common.mandatoryFields")),
|
|
59
|
+
React.createElement(LabeledInput, { id: "name", name: "name", label: GroupingMappingWidget.translate("common.name"), value: values.name, required: true, onChange: (event) => {
|
|
59
60
|
handleInputChange(event, values, setValues);
|
|
60
61
|
validator.showMessageFor("name");
|
|
61
62
|
}, message: validator.message("name", values.name, NAME_REQUIREMENTS), status: validator.message("name", values.name, NAME_REQUIREMENTS) ? "negative" : undefined, onBlur: () => {
|
|
@@ -64,10 +65,10 @@ export const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displaySt
|
|
|
64
65
|
handleInputChange(event, values, setValues);
|
|
65
66
|
validator.showMessageFor("name");
|
|
66
67
|
} }),
|
|
67
|
-
React.createElement(LabeledInput, { id: "description", name: "description", label: "
|
|
68
|
+
React.createElement(LabeledInput, { id: "description", name: "description", label: GroupingMappingWidget.translate("common.description"), value: values.description, onChange: (event) => {
|
|
68
69
|
handleInputChange(event, values, setValues);
|
|
69
70
|
} }),
|
|
70
|
-
React.createElement(ToggleSwitch, { id: "extractionEnabled", name: "extractionEnabled", label: "
|
|
71
|
+
React.createElement(ToggleSwitch, { id: "extractionEnabled", name: "extractionEnabled", label: GroupingMappingWidget.translate("mappings.extractDataFromIModel"), labelPosition: "right", checked: values.extractionEnabled, onChange: (event) => {
|
|
71
72
|
setValues({ ...values, extractionEnabled: event.currentTarget.checked });
|
|
72
73
|
} }))),
|
|
73
74
|
React.createElement(ActionPanel, { onSave: onSave, onCancel: onClickCancel, isSavingDisabled: !values.name, isLoading: isLoading })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MappingAction.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Editing/MappingAction.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAC7D,OAAO,YAAY,EAAE,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEpE,MAAM,
|
|
1
|
+
{"version":3,"file":"MappingAction.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Editing/MappingAction.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 *--------------------------------------------------------------------------------------------*/\nimport { Fieldset, LabeledInput, Text, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport React, { useState } from \"react\";\nimport { GroupingMappingWidget } from \"../../../GroupingMappingWidget\";\nimport ActionPanel from \"../../SharedComponents/ActionPanel\";\nimport useValidator, { NAME_REQUIREMENTS } from \"../../Properties/hooks/useValidator\";\nimport \"./MappingAction.scss\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport type { Mapping, MappingCreate } from \"@itwin/insights-client\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport { handleInputChange } from \"../../../common/utils\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\n\nconst getDefaultDisplayStrings = () => ({\n mappingDetails: GroupingMappingWidget.translate(\"mappings.mappingDetails\"),\n});\n\n/**\n * Props for the {@link MappingAction} component.\n * @public\n */\nexport interface MappingActionProps {\n mapping?: Mapping;\n onSaveSuccess: () => void;\n onClickCancel?: () => void;\n displayStrings?: Partial<ReturnType<typeof getDefaultDisplayStrings>>;\n}\n\n/**\n * Component to create or update a mapping.\n * @public\n */\nexport const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings: userDisplayStrings }: MappingActionProps) => {\n const { getAccessToken, iModelId } = useGroupingMappingApiConfig();\n const mappingClient = useMappingClient();\n const [values, setValues] = useState({\n name: mapping?.mappingName ?? \"\",\n description: mapping?.description ?? \"\",\n extractionEnabled: mapping?.extractionEnabled ?? true,\n });\n const [validator, showValidationMessage] = useValidator();\n const queryClient = useQueryClient();\n\n const displayStrings = React.useMemo(() => ({ ...getDefaultDisplayStrings(), ...userDisplayStrings }), [userDisplayStrings]);\n\n const { mutate: saveMutation, isLoading } = useMutation({\n mutationFn: async (newMapping: MappingCreate) => {\n const accessToken = await getAccessToken();\n return mapping ? mappingClient.updateMapping(accessToken, mapping.id, newMapping) : mappingClient.createMapping(accessToken, newMapping);\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries({ queryKey: [\"mappings\"] });\n onSaveSuccess();\n },\n });\n\n const onSave = async () => {\n if (!validator.allValid()) {\n showValidationMessage(true);\n return;\n }\n saveMutation({\n iModelId,\n mappingName: values.name,\n description: values.description,\n extractionEnabled: values.extractionEnabled,\n });\n };\n\n return (\n <>\n <div className=\"gmw-details-form-container\">\n <Fieldset legend={displayStrings.mappingDetails} className=\"gmw-details-form\">\n <Text variant=\"small\" as=\"small\" className=\"gmw-field-legend\">\n {GroupingMappingWidget.translate(\"common.mandatoryFields\")}\n </Text>\n <LabeledInput\n id=\"name\"\n name=\"name\"\n label={GroupingMappingWidget.translate(\"common.name\")}\n value={values.name}\n required\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n message={validator.message(\"name\", values.name, NAME_REQUIREMENTS)}\n status={validator.message(\"name\", values.name, NAME_REQUIREMENTS) ? \"negative\" : undefined}\n onBlur={() => {\n validator.showMessageFor(\"name\");\n }}\n onBlurCapture={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n />\n <LabeledInput\n id=\"description\"\n name=\"description\"\n label={GroupingMappingWidget.translate(\"common.description\")}\n value={values.description}\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n }}\n />\n <ToggleSwitch\n id=\"extractionEnabled\"\n name=\"extractionEnabled\"\n label={GroupingMappingWidget.translate(\"mappings.extractDataFromIModel\")}\n labelPosition=\"right\"\n checked={values.extractionEnabled}\n onChange={(event) => {\n setValues({ ...values, extractionEnabled: event.currentTarget.checked });\n }}\n />\n </Fieldset>\n </div>\n <ActionPanel onSave={onSave} onCancel={onClickCancel} isSavingDisabled={!values.name} isLoading={isLoading} />\n </>\n );\n};\n"]}
|
|
@@ -1,19 +1,30 @@
|
|
|
1
1
|
import { BaseFilter, FilterButtonBar, InputGroup, Radio } from "@itwin/itwinui-react";
|
|
2
2
|
import React, { useMemo, useState } from "react";
|
|
3
|
+
import { GroupingMappingWidget } from "../../../GroupingMappingWidget";
|
|
3
4
|
export function ExtractionLogCustomFilter({ column, clearFilter, setFilter }) {
|
|
4
5
|
const [value, setValue] = useState(column.filterValue);
|
|
5
6
|
const translatedLabels = useMemo(() => ({
|
|
6
|
-
filter: "
|
|
7
|
-
clear: "
|
|
7
|
+
filter: GroupingMappingWidget.translate("extraction.filter"),
|
|
8
|
+
clear: GroupingMappingWidget.translate("common.clear"),
|
|
8
9
|
}), []);
|
|
9
10
|
const filterOptionList = useMemo(() => {
|
|
10
|
-
if (column.
|
|
11
|
-
return [
|
|
11
|
+
if (column.id === "category") {
|
|
12
|
+
return [
|
|
13
|
+
{ value: "GroupQuery", label: "GroupQuery" },
|
|
14
|
+
{ value: "NoMatchesForECProperties", label: "NoMatchesForECProperties" },
|
|
15
|
+
{ value: "QueryTranslation", label: "QueryTranslation" },
|
|
16
|
+
{ value: "QueryExecution", label: "QueryExecution" },
|
|
17
|
+
];
|
|
12
18
|
}
|
|
13
|
-
return [
|
|
19
|
+
return [
|
|
20
|
+
{ value: "Info", label: GroupingMappingWidget.translate("extraction.info") },
|
|
21
|
+
{ value: "Warning", label: GroupingMappingWidget.translate("extraction.warning") },
|
|
22
|
+
{ value: "Error", label: GroupingMappingWidget.translate("extraction.error") },
|
|
23
|
+
{ value: "Trace", label: GroupingMappingWidget.translate("extraction.trace") },
|
|
24
|
+
];
|
|
14
25
|
}, [column]);
|
|
15
26
|
return (React.createElement(BaseFilter, null,
|
|
16
|
-
React.createElement(InputGroup, { displayStyle: "default" }, filterOptionList.map((option, id) => (React.createElement(Radio, { name: "filterOption", key: id, label: option, defaultChecked: option === value, onChange: () => setValue(option) })))),
|
|
27
|
+
React.createElement(InputGroup, { displayStyle: "default" }, filterOptionList.map((option, id) => (React.createElement(Radio, { name: "filterOption", key: id, label: option.label, defaultChecked: option.value === value, onChange: () => setValue(option.value) })))),
|
|
17
28
|
React.createElement(FilterButtonBar, { setFilter: () => setFilter(value), clearFilter: clearFilter, translatedLabels: translatedLabels })));
|
|
18
29
|
}
|
|
19
30
|
//# sourceMappingURL=ExtractionLogCustomFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractionLogCustomFilter.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Extraction/ExtractionLogCustomFilter.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ExtractionLogCustomFilter.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Extraction/ExtractionLogCustomFilter.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,MAAM,UAAU,yBAAyB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAA6C;IACrH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAqB,MAAM,CAAC,WAAiC,CAAC,CAAC;IACjG,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CAAC,CAAC;QACL,MAAM,EAAE,qBAAqB,CAAC,SAAS,CAAC,mBAAmB,CAAC;QAC5D,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,cAAc,CAAC;KACvD,CAAC,EACF,EAAE,CACH,CAAC;IACF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,IAAI,MAAM,CAAC,EAAE,KAAK,UAAU,EAAE;YAC5B,OAAO;gBACL,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;gBAC5C,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,0BAA0B,EAAE;gBACxE,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;gBACxD,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE;aACrD,CAAC;SACH;QACD,OAAO;YACL,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE;YAC5E,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE;YAClF,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;YAC9E,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;SAC/E,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,OAAO,CACL,oBAAC,UAAU;QACT,oBAAC,UAAU,IAAC,YAAY,EAAC,SAAS,IAC/B,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CACpC,oBAAC,KAAK,IAAC,IAAI,EAAC,cAAc,EAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,CAC5I,CAAC,CACS;QACb,oBAAC,eAAe,IAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,GAAI,CACzG,CACd,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport type { TableFilterProps } from \"@itwin/itwinui-react\";\nimport { BaseFilter, FilterButtonBar, InputGroup, Radio } from \"@itwin/itwinui-react\";\nimport React, { useMemo, useState } from \"react\";\nimport { GroupingMappingWidget } from \"../../../GroupingMappingWidget\";\n\nexport function ExtractionLogCustomFilter({ column, clearFilter, setFilter }: TableFilterProps<Record<string, unknown>>): React.ReactElement {\n const [value, setValue] = useState<string | undefined>(column.filterValue as string | undefined);\n const translatedLabels = useMemo(\n () => ({\n filter: GroupingMappingWidget.translate(\"extraction.filter\"),\n clear: GroupingMappingWidget.translate(\"common.clear\"),\n }),\n [],\n );\n const filterOptionList = useMemo(() => {\n if (column.id === \"category\") {\n return [\n { value: \"GroupQuery\", label: \"GroupQuery\" },\n { value: \"NoMatchesForECProperties\", label: \"NoMatchesForECProperties\" },\n { value: \"QueryTranslation\", label: \"QueryTranslation\" },\n { value: \"QueryExecution\", label: \"QueryExecution\" },\n ];\n }\n return [\n { value: \"Info\", label: GroupingMappingWidget.translate(\"extraction.info\") },\n { value: \"Warning\", label: GroupingMappingWidget.translate(\"extraction.warning\") },\n { value: \"Error\", label: GroupingMappingWidget.translate(\"extraction.error\") },\n { value: \"Trace\", label: GroupingMappingWidget.translate(\"extraction.trace\") },\n ];\n }, [column]);\n return (\n <BaseFilter>\n <InputGroup displayStyle=\"default\">\n {filterOptionList.map((option, id) => (\n <Radio name=\"filterOption\" key={id} label={option.label} defaultChecked={option.value === value} onChange={() => setValue(option.value)} />\n ))}\n </InputGroup>\n <FilterButtonBar setFilter={() => setFilter(value)} clearFilter={clearFilter} translatedLabels={translatedLabels} />\n </BaseFilter>\n );\n}\n"]}
|
|
@@ -15,6 +15,7 @@ import { useMemoizedCollectionPick } from "../../../common/hooks/useMemoizedColl
|
|
|
15
15
|
import { fetchGroups } from "../../Groups/hooks/useFetchGroups";
|
|
16
16
|
import { useFetchMappings } from "../hooks/useFetchMappings";
|
|
17
17
|
import { useGroupsClient } from "../../context/GroupsClientContext";
|
|
18
|
+
import { GroupingMappingWidget } from "../../../GroupingMappingWidget";
|
|
18
19
|
export const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData, timestamp }) => {
|
|
19
20
|
const [formattedExtractionMessage, setFormattedExtractionMessage] = useState(undefined);
|
|
20
21
|
const groupingMappingApiConfig = useGroupingMappingApiConfig();
|
|
@@ -62,10 +63,10 @@ export const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData,
|
|
|
62
63
|
const groupName = queryResult?.data?.groups?.find((group) => group.id === groupId)?.groupName;
|
|
63
64
|
if (replacedMessage.includes("MappingId:")) {
|
|
64
65
|
const mappingName = getMappingName(mappingId, mappings);
|
|
65
|
-
replacedMessage = replacedMessage.replace(/MappingId: [\w-]+/,
|
|
66
|
+
replacedMessage = replacedMessage.replace(/MappingId: [\w-]+/, GroupingMappingWidget.translate("extraction.mappingLabel", { mappingName }));
|
|
66
67
|
}
|
|
67
68
|
if (replacedMessage.includes("GroupId:")) {
|
|
68
|
-
replacedMessage = replacedMessage.replace(/GroupId: [\w-]+/,
|
|
69
|
+
replacedMessage = replacedMessage.replace(/GroupId: [\w-]+/, GroupingMappingWidget.translate("extraction.groupLabel", { groupName: groupName ?? GroupingMappingWidget.translate("extraction.notFound") }));
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
72
|
return { ...extractionMessage, message: replacedMessage };
|
|
@@ -85,13 +86,13 @@ export const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData,
|
|
|
85
86
|
setFormattedTimestamp(newDateTime.toLocaleString(undefined, options));
|
|
86
87
|
}, [timestamp]);
|
|
87
88
|
const translatedLabels = useMemo(() => ({
|
|
88
|
-
filter: "
|
|
89
|
-
clear: "
|
|
89
|
+
filter: GroupingMappingWidget.translate("extraction.filter"),
|
|
90
|
+
clear: GroupingMappingWidget.translate("common.clear"),
|
|
90
91
|
}), []);
|
|
91
92
|
const columns = useMemo(() => [
|
|
92
93
|
{
|
|
93
94
|
id: "category",
|
|
94
|
-
Header: "
|
|
95
|
+
Header: GroupingMappingWidget.translate("extraction.category"),
|
|
95
96
|
accessor: "category",
|
|
96
97
|
fieldType: "text",
|
|
97
98
|
Filter: ExtractionLogCustomFilter,
|
|
@@ -99,7 +100,7 @@ export const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData,
|
|
|
99
100
|
},
|
|
100
101
|
{
|
|
101
102
|
id: "level",
|
|
102
|
-
Header: "
|
|
103
|
+
Header: GroupingMappingWidget.translate("extraction.level"),
|
|
103
104
|
accessor: "level",
|
|
104
105
|
cellRenderer: ({ cellElementProps, cellProps }) => {
|
|
105
106
|
const level = cellProps.row.original.level;
|
|
@@ -110,7 +111,7 @@ export const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData,
|
|
|
110
111
|
},
|
|
111
112
|
{
|
|
112
113
|
id: "message",
|
|
113
|
-
Header: "
|
|
114
|
+
Header: GroupingMappingWidget.translate("extraction.message"),
|
|
114
115
|
accessor: "message",
|
|
115
116
|
width: "25vw",
|
|
116
117
|
fieldType: "text",
|
|
@@ -118,14 +119,14 @@ export const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData,
|
|
|
118
119
|
},
|
|
119
120
|
], [translatedLabels]);
|
|
120
121
|
const isLoading = pickedResult.some((query) => query.isLoading) || isMappingsLoading;
|
|
121
|
-
return (React.createElement(Modal, { className: "gmw-message-modal-container", title: "
|
|
122
|
+
return (React.createElement(Modal, { className: "gmw-message-modal-container", title: GroupingMappingWidget.translate("extraction.extractionLogs"), isOpen: isOpen, onClose: onClose, closeOnExternalClick: false },
|
|
122
123
|
React.createElement(ModalContent, null,
|
|
123
124
|
React.createElement("div", { className: "gmw-timestamp-icon" },
|
|
124
|
-
React.createElement(Icon, { title: "
|
|
125
|
+
React.createElement(Icon, { title: GroupingMappingWidget.translate("extraction.extractionTimestamp"), size: "medium" },
|
|
125
126
|
React.createElement(SvgClock, null)),
|
|
126
127
|
React.createElement(Text, null, formattedTimestamp)),
|
|
127
|
-
React.createElement(Table, { columns: columns, data: formattedExtractionMessage ?? [], emptyTableContent: "", emptyFilteredTableContent: "
|
|
128
|
+
React.createElement(Table, { columns: columns, data: formattedExtractionMessage ?? [], emptyTableContent: "", emptyFilteredTableContent: GroupingMappingWidget.translate("extraction.noResults"), className: "gmw-extraction-message-table-container", isLoading: isLoading })),
|
|
128
129
|
React.createElement(ModalButtonBar, null,
|
|
129
|
-
React.createElement(Button, { onClick: onClose, styleType: "high-visibility" }, "
|
|
130
|
+
React.createElement(Button, { onClick: onClose, styleType: "high-visibility" }, GroupingMappingWidget.translate("common.close")))));
|
|
130
131
|
};
|
|
131
132
|
//# sourceMappingURL=ExtractionMessageModal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractionMessageModal.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Extraction/ExtractionMessageModal.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 *--------------------------------------------------------------------------------------------*/\nimport { Button, DefaultCell, Icon, Modal, ModalButtonBar, ModalContent, Table, tableFilters, Text } from \"@itwin/itwinui-react\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { CreateTypeFromInterface } from \"../../../common/utils\";\nimport \"./ExtractionMessageModal.scss\";\nimport { SvgClock } from \"@itwin/itwinui-icons-react\";\nimport type { CellRendererProps, Column } from \"react-table\";\nimport { StatusIcon } from \"../../SharedComponents/StatusIcon\";\nimport { ExtractionLogCustomFilter } from \"./ExtractionLogCustomFilter\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport type { GroupMinimal, Mapping } from \"@itwin/insights-client\";\nimport { useQueries } from \"@tanstack/react-query\";\nimport { useMemoizedCollectionPick } from \"../../../common/hooks/useMemoizedCollectionPick\";\nimport { fetchGroups } from \"../../Groups/hooks/useFetchGroups\";\nimport { useFetchMappings } from \"../hooks/useFetchMappings\";\nimport { useGroupsClient } from \"../../context/GroupsClientContext\";\n\nexport interface ExtractionMessageData {\n date: string;\n category: string;\n level: string;\n message: string;\n}\n\nexport interface ExtractionMessageModalProps {\n isOpen: boolean;\n onClose: () => void;\n extractionMessageData: ExtractionMessageData[];\n timestamp: string;\n}\n\nexport const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData, timestamp }: ExtractionMessageModalProps) => {\n const [formattedExtractionMessage, setFormattedExtractionMessage] = useState<ExtractionMessageData[] | undefined>(undefined);\n const groupingMappingApiConfig = useGroupingMappingApiConfig();\n const { iModelId, getAccessToken } = groupingMappingApiConfig;\n const mappingClient = useMappingClient();\n const groupsClient = useGroupsClient();\n const { data: mappings, isLoading: isMappingsLoading } = useFetchMappings(iModelId, getAccessToken, mappingClient);\n const [formattedTimestamp, setFormattedTimestamp] = useState<string>(\"\");\n\n const getMappingName = useCallback((mappingId: string, mappings: Mapping[]) => {\n return mappings.find((mapping) => mapping.id === mappingId)?.mappingName ?? \"\";\n }, []);\n\n const extractionInfo = useMemo(() => {\n const infoMap = new Map<string, { mappingId: string; groupId: string }>();\n\n extractionMessageData.forEach((message) => {\n const splittedMessage = message.message.split(\" \");\n const mappingId = splittedMessage[splittedMessage.indexOf(\"MappingId:\") + 1]?.match(/^([^,]+),$/)?.[1];\n const groupId = splittedMessage[splittedMessage.indexOf(\"GroupId:\") + 1]?.match(/^([^,]+).$/)?.[1];\n\n if (mappingId && groupId) {\n infoMap.set(message.message, { mappingId, groupId });\n }\n });\n\n return infoMap;\n }, [extractionMessageData]);\n\n // useQueries to fetch all group names\n const groupQueriesResults = useQueries({\n queries: Array.from(extractionInfo.values()).map(({ mappingId }) => ({\n queryKey: [\"mapping\", \"groups\", mappingId],\n queryFn: async () => {\n const groups = await fetchGroups(mappingId, groupingMappingApiConfig.getAccessToken, groupsClient);\n // Return both mappingId and groups in the result\n return { mappingId, groups };\n },\n })),\n });\n\n // Workaround to get data from useQueries with more stability\n const pickedResult = useMemoizedCollectionPick(groupQueriesResults, [\"data\", \"error\", \"isLoading\", \"isSuccess\"]);\n\n useEffect(() => {\n if (pickedResult.every((query) => query.isSuccess) && mappings) {\n const formattedMessages = extractionMessageData.map((extractionMessage) => {\n let replacedMessage: string = extractionMessage.message;\n\n const info = extractionInfo.get(extractionMessage.message);\n if (info) {\n const { mappingId, groupId } = info;\n\n const queryResult = pickedResult.find((result) => result.data?.mappingId === mappingId);\n const groupName = queryResult?.data?.groups?.find((group: GroupMinimal) => group.id === groupId)?.groupName;\n\n if (replacedMessage.includes(\"MappingId:\")) {\n const mappingName = getMappingName(mappingId, mappings);\n replacedMessage = replacedMessage.replace(/MappingId: [\\w-]+/, `Mapping: ${mappingName}`);\n }\n\n if (replacedMessage.includes(\"GroupId:\")) {\n replacedMessage = replacedMessage.replace(/GroupId: [\\w-]+/, `Group: ${groupName ? groupName : \"<Not Found>\"}`);\n }\n }\n\n return { ...extractionMessage, message: replacedMessage };\n });\n\n setFormattedExtractionMessage(formattedMessages);\n }\n }, [extractionMessageData, mappings, extractionInfo, getMappingName, pickedResult]);\n\n useEffect(() => {\n const newDateTime: Date = new Date(timestamp);\n const options: Intl.DateTimeFormatOptions = {\n day: \"numeric\",\n month: \"numeric\",\n year: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n };\n setFormattedTimestamp(newDateTime.toLocaleString(undefined, options));\n }, [timestamp]);\n\n const translatedLabels = useMemo(\n () => ({\n filter: \"Filter\",\n clear: \"Clear\",\n }),\n [],\n );\n\n const columns = useMemo(\n (): Column<CreateTypeFromInterface<ExtractionMessageData>>[] => [\n {\n id: \"category\",\n Header: \"Category\",\n accessor: \"category\",\n fieldType: \"text\",\n Filter: ExtractionLogCustomFilter,\n filter: \"equals\",\n },\n {\n id: \"level\",\n Header: \"Level\",\n accessor: \"level\",\n cellRenderer: ({ cellElementProps, cellProps }: CellRendererProps<CreateTypeFromInterface<ExtractionMessageData>>) => {\n const level = cellProps.row.original.level;\n return (\n <DefaultCell\n cellElementProps={cellElementProps}\n cellProps={cellProps}\n startIcon={\n level === \"Error\" ? (\n <StatusIcon status=\"error\" />\n ) : level === \"Warning\" ? (\n <StatusIcon status=\"warning\" />\n ) : level === \"Info\" ? (\n <StatusIcon status=\"informational\" />\n ) : (\n <StatusIcon status=\"trace\" />\n )\n }\n >\n {level}\n </DefaultCell>\n );\n },\n Filter: ExtractionLogCustomFilter,\n filter: \"equals\",\n },\n {\n id: \"message\",\n Header: \"Message\",\n accessor: \"message\",\n width: \"25vw\",\n fieldType: \"text\",\n Filter: tableFilters.TextFilter(translatedLabels),\n },\n ],\n [translatedLabels],\n );\n const isLoading = pickedResult.some((query) => query.isLoading) || isMappingsLoading;\n\n return (\n <Modal className=\"gmw-message-modal-container\" title=\"Extraction Logs\" isOpen={isOpen} onClose={onClose} closeOnExternalClick={false}>\n <ModalContent>\n <div className=\"gmw-timestamp-icon\">\n <Icon title=\"Extraction Timestamp\" size=\"medium\">\n <SvgClock />\n </Icon>\n <Text>{formattedTimestamp}</Text>\n </div>\n <Table<CreateTypeFromInterface<ExtractionMessageData>>\n columns={columns}\n data={formattedExtractionMessage ?? []}\n emptyTableContent={\"\"}\n emptyFilteredTableContent=\"No results match filters.\"\n className=\"gmw-extraction-message-table-container\"\n isLoading={isLoading}\n />\n </ModalContent>\n <ModalButtonBar>\n <Button onClick={onClose} styleType=\"high-visibility\">\n Close\n </Button>\n </ModalButtonBar>\n </Modal>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"ExtractionMessageModal.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Extraction/ExtractionMessageModal.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 *--------------------------------------------------------------------------------------------*/\nimport { Button, DefaultCell, Icon, Modal, ModalButtonBar, ModalContent, Table, tableFilters, Text } from \"@itwin/itwinui-react\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { CreateTypeFromInterface } from \"../../../common/utils\";\nimport \"./ExtractionMessageModal.scss\";\nimport { SvgClock } from \"@itwin/itwinui-icons-react\";\nimport type { CellRendererProps, Column } from \"react-table\";\nimport { StatusIcon } from \"../../SharedComponents/StatusIcon\";\nimport { ExtractionLogCustomFilter } from \"./ExtractionLogCustomFilter\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport type { GroupMinimal, Mapping } from \"@itwin/insights-client\";\nimport { useQueries } from \"@tanstack/react-query\";\nimport { useMemoizedCollectionPick } from \"../../../common/hooks/useMemoizedCollectionPick\";\nimport { fetchGroups } from \"../../Groups/hooks/useFetchGroups\";\nimport { useFetchMappings } from \"../hooks/useFetchMappings\";\nimport { useGroupsClient } from \"../../context/GroupsClientContext\";\nimport { GroupingMappingWidget } from \"../../../GroupingMappingWidget\";\n\nexport interface ExtractionMessageData {\n date: string;\n category: string;\n level: string;\n message: string;\n}\n\nexport interface ExtractionMessageModalProps {\n isOpen: boolean;\n onClose: () => void;\n extractionMessageData: ExtractionMessageData[];\n timestamp: string;\n}\n\nexport const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData, timestamp }: ExtractionMessageModalProps) => {\n const [formattedExtractionMessage, setFormattedExtractionMessage] = useState<ExtractionMessageData[] | undefined>(undefined);\n const groupingMappingApiConfig = useGroupingMappingApiConfig();\n const { iModelId, getAccessToken } = groupingMappingApiConfig;\n const mappingClient = useMappingClient();\n const groupsClient = useGroupsClient();\n const { data: mappings, isLoading: isMappingsLoading } = useFetchMappings(iModelId, getAccessToken, mappingClient);\n const [formattedTimestamp, setFormattedTimestamp] = useState<string>(\"\");\n\n const getMappingName = useCallback((mappingId: string, mappings: Mapping[]) => {\n return mappings.find((mapping) => mapping.id === mappingId)?.mappingName ?? \"\";\n }, []);\n\n const extractionInfo = useMemo(() => {\n const infoMap = new Map<string, { mappingId: string; groupId: string }>();\n\n extractionMessageData.forEach((message) => {\n const splittedMessage = message.message.split(\" \");\n const mappingId = splittedMessage[splittedMessage.indexOf(\"MappingId:\") + 1]?.match(/^([^,]+),$/)?.[1];\n const groupId = splittedMessage[splittedMessage.indexOf(\"GroupId:\") + 1]?.match(/^([^,]+).$/)?.[1];\n\n if (mappingId && groupId) {\n infoMap.set(message.message, { mappingId, groupId });\n }\n });\n\n return infoMap;\n }, [extractionMessageData]);\n\n // useQueries to fetch all group names\n const groupQueriesResults = useQueries({\n queries: Array.from(extractionInfo.values()).map(({ mappingId }) => ({\n queryKey: [\"mapping\", \"groups\", mappingId],\n queryFn: async () => {\n const groups = await fetchGroups(mappingId, groupingMappingApiConfig.getAccessToken, groupsClient);\n // Return both mappingId and groups in the result\n return { mappingId, groups };\n },\n })),\n });\n\n // Workaround to get data from useQueries with more stability\n const pickedResult = useMemoizedCollectionPick(groupQueriesResults, [\"data\", \"error\", \"isLoading\", \"isSuccess\"]);\n\n useEffect(() => {\n if (pickedResult.every((query) => query.isSuccess) && mappings) {\n const formattedMessages = extractionMessageData.map((extractionMessage) => {\n let replacedMessage: string = extractionMessage.message;\n\n const info = extractionInfo.get(extractionMessage.message);\n if (info) {\n const { mappingId, groupId } = info;\n\n const queryResult = pickedResult.find((result) => result.data?.mappingId === mappingId);\n const groupName = queryResult?.data?.groups?.find((group: GroupMinimal) => group.id === groupId)?.groupName;\n\n if (replacedMessage.includes(\"MappingId:\")) {\n const mappingName = getMappingName(mappingId, mappings);\n replacedMessage = replacedMessage.replace(/MappingId: [\\w-]+/, GroupingMappingWidget.translate(\"extraction.mappingLabel\", { mappingName }));\n }\n\n if (replacedMessage.includes(\"GroupId:\")) {\n replacedMessage = replacedMessage.replace(/GroupId: [\\w-]+/, GroupingMappingWidget.translate(\"extraction.groupLabel\", { groupName: groupName ?? GroupingMappingWidget.translate(\"extraction.notFound\") }));\n }\n }\n\n return { ...extractionMessage, message: replacedMessage };\n });\n\n setFormattedExtractionMessage(formattedMessages);\n }\n }, [extractionMessageData, mappings, extractionInfo, getMappingName, pickedResult]);\n\n useEffect(() => {\n const newDateTime: Date = new Date(timestamp);\n const options: Intl.DateTimeFormatOptions = {\n day: \"numeric\",\n month: \"numeric\",\n year: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n };\n setFormattedTimestamp(newDateTime.toLocaleString(undefined, options));\n }, [timestamp]);\n\n const translatedLabels = useMemo(\n () => ({\n filter: GroupingMappingWidget.translate(\"extraction.filter\"),\n clear: GroupingMappingWidget.translate(\"common.clear\"),\n }),\n [],\n );\n\n const columns = useMemo(\n (): Column<CreateTypeFromInterface<ExtractionMessageData>>[] => [\n {\n id: \"category\",\n Header: GroupingMappingWidget.translate(\"extraction.category\"),\n accessor: \"category\",\n fieldType: \"text\",\n Filter: ExtractionLogCustomFilter,\n filter: \"equals\",\n },\n {\n id: \"level\",\n Header: GroupingMappingWidget.translate(\"extraction.level\"),\n accessor: \"level\",\n cellRenderer: ({ cellElementProps, cellProps }: CellRendererProps<CreateTypeFromInterface<ExtractionMessageData>>) => {\n const level = cellProps.row.original.level;\n return (\n <DefaultCell\n cellElementProps={cellElementProps}\n cellProps={cellProps}\n startIcon={\n level === \"Error\" ? (\n <StatusIcon status=\"error\" />\n ) : level === \"Warning\" ? (\n <StatusIcon status=\"warning\" />\n ) : level === \"Info\" ? (\n <StatusIcon status=\"informational\" />\n ) : (\n <StatusIcon status=\"trace\" />\n )\n }\n >\n {level}\n </DefaultCell>\n );\n },\n Filter: ExtractionLogCustomFilter,\n filter: \"equals\",\n },\n {\n id: \"message\",\n Header: GroupingMappingWidget.translate(\"extraction.message\"),\n accessor: \"message\",\n width: \"25vw\",\n fieldType: \"text\",\n Filter: tableFilters.TextFilter(translatedLabels),\n },\n ],\n [translatedLabels],\n );\n const isLoading = pickedResult.some((query) => query.isLoading) || isMappingsLoading;\n\n return (\n <Modal className=\"gmw-message-modal-container\" title={GroupingMappingWidget.translate(\"extraction.extractionLogs\")} isOpen={isOpen} onClose={onClose} closeOnExternalClick={false}>\n <ModalContent>\n <div className=\"gmw-timestamp-icon\">\n <Icon title={GroupingMappingWidget.translate(\"extraction.extractionTimestamp\")} size=\"medium\">\n <SvgClock />\n </Icon>\n <Text>{formattedTimestamp}</Text>\n </div>\n <Table<CreateTypeFromInterface<ExtractionMessageData>>\n columns={columns}\n data={formattedExtractionMessage ?? []}\n emptyTableContent={\"\"}\n emptyFilteredTableContent={GroupingMappingWidget.translate(\"extraction.noResults\")}\n className=\"gmw-extraction-message-table-container\"\n isLoading={isLoading}\n />\n </ModalContent>\n <ModalButtonBar>\n <Button onClick={onClose} styleType=\"high-visibility\">\n {GroupingMappingWidget.translate(\"common.close\")}\n </Button>\n </ModalButtonBar>\n </Modal>\n );\n};\n"]}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import React from "react";
|
|
6
6
|
import { SvgStatusPending } from "@itwin/itwinui-icons-react";
|
|
7
|
-
|
|
7
|
+
import { GroupingMappingWidget } from "../../../../GroupingMappingWidget";
|
|
8
|
+
export const QueuedExtractionState = () => (React.createElement("div", { title: GroupingMappingWidget.translate("extraction.queued"), className: "gmw-extraction-status" },
|
|
8
9
|
React.createElement("div", { className: "gmw-status-icon" },
|
|
9
10
|
React.createElement(SvgStatusPending, null))));
|
|
10
11
|
//# sourceMappingURL=QueuedExtractionState.js.map
|
package/lib/esm/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueuedExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"QueuedExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,CACzC,6BAAK,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAC,uBAAuB;IACjG,6BAAK,SAAS,EAAC,iBAAiB;QAC9B,oBAAC,gBAAgB,OAAG,CAChB,CACF,CACP,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { SvgStatusPending } from \"@itwin/itwinui-icons-react\";\nimport { GroupingMappingWidget } from \"../../../../GroupingMappingWidget\";\n\nexport const QueuedExtractionState = () => (\n <div title={GroupingMappingWidget.translate(\"extraction.queued\")} className=\"gmw-extraction-status\">\n <div className=\"gmw-status-icon\">\n <SvgStatusPending />\n </div>\n </div>\n);\n"]}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import React from "react";
|
|
6
6
|
import { ProgressRadial } from "@itwin/itwinui-react";
|
|
7
|
-
|
|
7
|
+
import { GroupingMappingWidget } from "../../../../GroupingMappingWidget";
|
|
8
|
+
export const RunningExtractionState = () => (React.createElement("div", { title: GroupingMappingWidget.translate("extraction.running"), className: "gmw-extraction-status-running" },
|
|
8
9
|
React.createElement(ProgressRadial, { size: "x-small", indeterminate: true })));
|
|
9
10
|
//# sourceMappingURL=RunningExtractionState.js.map
|
package/lib/esm/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunningExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"RunningExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAAC,CAC1C,6BAAK,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAC,+BAA+B;IAC1G,oBAAC,cAAc,IAAC,IAAI,EAAC,SAAS,EAAC,aAAa,SAAG,CAC3C,CACP,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { ProgressRadial } from \"@itwin/itwinui-react\";\nimport { GroupingMappingWidget } from \"../../../../GroupingMappingWidget\";\n\nexport const RunningExtractionState = () => (\n <div title={GroupingMappingWidget.translate(\"extraction.running\")} className=\"gmw-extraction-status-running\">\n <ProgressRadial size=\"x-small\" indeterminate />\n </div>\n);\n"]}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import React from "react";
|
|
6
6
|
import { SvgStatusPendingHollow } from "@itwin/itwinui-icons-color-react";
|
|
7
|
-
|
|
7
|
+
import { GroupingMappingWidget } from "../../../../GroupingMappingWidget";
|
|
8
|
+
export const StartingExtractionState = () => (React.createElement("div", { title: GroupingMappingWidget.translate("extraction.starting"), className: "gmw-extraction-status" },
|
|
8
9
|
React.createElement("div", { className: "gmw-status-icon" },
|
|
9
10
|
React.createElement(SvgStatusPendingHollow, null))));
|
|
10
11
|
//# sourceMappingURL=StartingExtractionState.js.map
|
package/lib/esm/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartingExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,CAC3C,6BAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"StartingExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,CAC3C,6BAAK,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,SAAS,EAAC,uBAAuB;IACnG,6BAAK,SAAS,EAAC,iBAAiB;QAC9B,oBAAC,sBAAsB,OAAG,CACtB,CACF,CACP,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { SvgStatusPendingHollow } from \"@itwin/itwinui-icons-color-react\";\nimport { GroupingMappingWidget } from \"../../../../GroupingMappingWidget\";\n\nexport const StartingExtractionState = () => (\n <div title={GroupingMappingWidget.translate(\"extraction.starting\")} className=\"gmw-extraction-status\">\n <div className=\"gmw-status-icon\">\n <SvgStatusPendingHollow />\n </div>\n </div>\n);\n"]}
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
import React from "react";
|
|
6
6
|
import { SvgStatusError, SvgStatusSuccess } from "@itwin/itwinui-icons-color-react";
|
|
7
7
|
import { ANIMATION_DELAY, ANIMATION_DURATION } from "../../../Constants";
|
|
8
|
-
|
|
8
|
+
import { GroupingMappingWidget } from "../../../../GroupingMappingWidget";
|
|
9
|
+
export const TerminalExtractionState = ({ status, animation, onAnimationEnd }) => (React.createElement("div", { title: status === "Succeeded" ? GroupingMappingWidget.translate("extraction.succeeded") : GroupingMappingWidget.translate("extraction.failed"), className: "gmw-extraction-status" },
|
|
9
10
|
React.createElement("div", { className: `gmw-status-icon`, style: {
|
|
10
11
|
animationName: animation ? "gmw-fade-out" : "",
|
|
11
12
|
animationDelay: ANIMATION_DELAY,
|
package/lib/esm/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerminalExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"TerminalExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAQ1E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAwB,EAAE,EAAE,CAAC,CACtG,6BAAK,KAAK,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAC,uBAAuB;IACpL,6BACE,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE;YACL,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;YAC9C,cAAc,EAAE,eAAe;YAC/B,iBAAiB,EAAE,kBAAkB;SACtC,EACD,cAAc,EAAE,cAAc,IAE7B,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,oBAAC,gBAAgB,OAAG,CAAC,CAAC,CAAC,oBAAC,cAAc,OAAG,CAC/D,CACF,CACP,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { SvgStatusError, SvgStatusSuccess } from \"@itwin/itwinui-icons-color-react\";\nimport { ANIMATION_DELAY, ANIMATION_DURATION } from \"../../../Constants\";\nimport { GroupingMappingWidget } from \"../../../../GroupingMappingWidget\";\n\ninterface ExtractionStateProps {\n status: string;\n animation: boolean;\n onAnimationEnd: () => void;\n}\n\nexport const TerminalExtractionState = ({ status, animation, onAnimationEnd }: ExtractionStateProps) => (\n <div title={status === \"Succeeded\" ? GroupingMappingWidget.translate(\"extraction.succeeded\") : GroupingMappingWidget.translate(\"extraction.failed\")} className=\"gmw-extraction-status\">\n <div\n className={`gmw-status-icon`}\n style={{\n animationName: animation ? \"gmw-fade-out\" : \"\",\n animationDelay: ANIMATION_DELAY,\n animationDuration: ANIMATION_DURATION,\n }}\n onAnimationEnd={onAnimationEnd}\n >\n {status === \"Succeeded\" ? <SvgStatusSuccess /> : <SvgStatusError />}\n </div>\n </div>\n);\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { IMappingTyped } from "../Mappings";
|
|
3
3
|
import "./ConfirmMappingsImport.scss";
|
|
4
|
-
declare const
|
|
4
|
+
declare const getDefaultDisplayStrings: () => {
|
|
5
5
|
mappings: string;
|
|
6
6
|
};
|
|
7
7
|
interface ConfirmMappingImportProps {
|
|
@@ -12,7 +12,7 @@ interface ConfirmMappingImportProps {
|
|
|
12
12
|
backFn: () => void;
|
|
13
13
|
onCancel: () => void;
|
|
14
14
|
onFinish: () => void;
|
|
15
|
-
displayStrings?: Partial<typeof
|
|
15
|
+
displayStrings?: Partial<ReturnType<typeof getDefaultDisplayStrings>>;
|
|
16
16
|
}
|
|
17
17
|
declare const ConfirmMappingImport: ({ selectedMappings, importing, setImporting, setSelectedMappings, backFn, onCancel, onFinish, displayStrings: userDisplayStrings, }: ConfirmMappingImportProps) => JSX.Element;
|
|
18
18
|
export default ConfirmMappingImport;
|