@itwin/grouping-mapping-widget 0.25.2 → 0.26.1
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/LICENSE.md +9 -9
- package/README.md +115 -115
- package/lib/cjs/WidgetShell/GroupingMapping.d.ts +5 -5
- package/lib/cjs/WidgetShell/GroupingMapping.js +2 -4
- package/lib/cjs/WidgetShell/GroupingMapping.js.map +1 -1
- package/lib/cjs/WidgetShell/GroupingMappingContent.js +4 -4
- package/lib/cjs/WidgetShell/GroupingMappingContent.js.map +1 -1
- package/lib/cjs/WidgetShell/GroupingMappingHeader.d.ts +1 -1
- package/lib/cjs/WidgetShell/GroupingMappingHeader.js +5 -5
- package/lib/cjs/WidgetShell/GroupingMappingHeader.js.map +1 -1
- package/lib/cjs/WidgetShell/GroupingMappingWidget.d.ts +4 -0
- package/lib/cjs/WidgetShell/GroupingMappingWidget.js +5 -3
- package/lib/cjs/WidgetShell/GroupingMappingWidget.js.map +1 -1
- package/lib/cjs/WidgetShell/Router/GroupingMappingRouter.js +28 -8
- package/lib/cjs/WidgetShell/Router/GroupingMappingRouter.js.map +1 -1
- package/lib/cjs/WidgetShell/WidgetHeader/WidgetHeader.d.ts +1 -1
- package/lib/cjs/WidgetShell/WidgetHeader/WidgetHeader.js +7 -7
- package/lib/cjs/WidgetShell/WidgetHeader/WidgetHeader.js.map +1 -1
- package/lib/cjs/common/hooks/useIsMounted.js +3 -3
- package/lib/cjs/common/hooks/useIsMounted.js.map +1 -1
- package/lib/cjs/common/hooks/useMemoizedCollectionPick.js +3 -3
- package/lib/cjs/common/hooks/useMemoizedCollectionPick.js.map +1 -1
- package/lib/cjs/common/utils.js +3 -3
- package/lib/cjs/common/utils.js.map +1 -1
- package/lib/cjs/common/viewerUtils.js +2 -2
- package/lib/cjs/common/viewerUtils.js.map +1 -1
- package/lib/cjs/components/Constants.js +4 -4
- package/lib/cjs/components/Constants.js.map +1 -1
- package/lib/cjs/components/GroupingMappingContext.d.ts +19 -3
- package/lib/cjs/components/GroupingMappingContext.js +40 -13
- package/lib/cjs/components/GroupingMappingContext.js.map +1 -1
- package/lib/cjs/components/Groups/Editing/GroupAction.d.ts +10 -2
- package/lib/cjs/components/Groups/Editing/GroupAction.js +16 -14
- package/lib/cjs/components/Groups/Editing/GroupAction.js.map +1 -1
- package/lib/cjs/components/Groups/Editing/GroupDetails.d.ts +1 -1
- package/lib/cjs/components/Groups/Editing/GroupDetails.js +5 -7
- package/lib/cjs/components/Groups/Editing/GroupDetails.js.map +1 -1
- package/lib/cjs/components/Groups/Editing/GroupDetailsActionPanel.d.ts +1 -1
- package/lib/cjs/components/Groups/Editing/GroupDetailsActionPanel.js +4 -4
- package/lib/cjs/components/Groups/Editing/GroupDetailsActionPanel.js.map +1 -1
- package/lib/cjs/components/Groups/Editing/GroupDetailsStep.js +4 -4
- package/lib/cjs/components/Groups/Editing/GroupDetailsStep.js.map +1 -1
- package/lib/cjs/components/Groups/GroupColorLegend.d.ts +3 -3
- package/lib/cjs/components/Groups/GroupColorLegend.js +3 -3
- package/lib/cjs/components/Groups/GroupColorLegend.js.map +1 -1
- package/lib/cjs/components/Groups/GroupListItem.d.ts +4 -4
- package/lib/cjs/components/Groups/GroupListItem.js +6 -4
- package/lib/cjs/components/Groups/GroupListItem.js.map +1 -1
- package/lib/cjs/components/Groups/GroupListItem.scss +14 -0
- package/lib/cjs/components/Groups/GroupMenuActions.d.ts +4 -4
- package/lib/cjs/components/Groups/GroupMenuActions.js +17 -6
- package/lib/cjs/components/Groups/GroupMenuActions.js.map +1 -1
- package/lib/cjs/components/Groups/GroupMenuActions.scss +2 -0
- package/lib/cjs/components/Groups/GroupOverlapProgressBar.d.ts +2 -2
- package/lib/cjs/components/Groups/GroupOverlapProgressBar.js.map +1 -1
- package/lib/cjs/components/Groups/Groups.d.ts +12 -4
- package/lib/cjs/components/Groups/Groups.js +7 -3
- package/lib/cjs/components/Groups/Groups.js.map +1 -1
- package/lib/cjs/components/Groups/GroupsAddButton.d.ts +1 -1
- package/lib/cjs/components/Groups/GroupsAddButton.js +4 -4
- package/lib/cjs/components/Groups/GroupsAddButton.js.map +1 -1
- package/lib/cjs/components/Groups/GroupsAddButton.scss +1 -1
- package/lib/cjs/components/Groups/GroupsShowHideButtons.d.ts +5 -5
- package/lib/cjs/components/Groups/GroupsShowHideButtons.js +2 -2
- package/lib/cjs/components/Groups/GroupsShowHideButtons.js.map +1 -1
- package/lib/cjs/components/Groups/GroupsView.d.ts +19 -11
- package/lib/cjs/components/Groups/GroupsView.js +12 -10
- package/lib/cjs/components/Groups/GroupsView.js.map +1 -1
- package/lib/cjs/components/Groups/GroupsView.scss +1 -1
- package/lib/cjs/components/Groups/GroupsVisualization.d.ts +8 -0
- package/lib/cjs/components/Groups/GroupsVisualization.js +27 -24
- package/lib/cjs/components/Groups/GroupsVisualization.js.map +1 -1
- package/lib/cjs/components/Groups/GroupsVisualizationActions.js +4 -4
- package/lib/cjs/components/Groups/GroupsVisualizationActions.js.map +1 -1
- package/lib/cjs/components/Groups/OverlappedElementsInformationPanel.d.ts +4 -4
- package/lib/cjs/components/Groups/OverlappedElementsInformationPanel.js +4 -4
- package/lib/cjs/components/Groups/OverlappedElementsInformationPanel.js.map +1 -1
- package/lib/cjs/components/Groups/OverlappedElementsInformationPanel.scss +7 -7
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilder.js +13 -35
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilder.js.map +1 -1
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderActionPanel.js +4 -4
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderActionPanel.js.map +1 -1
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderCustomUI.d.ts +3 -3
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderCustomUI.js +4 -4
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderCustomUI.js.map +1 -1
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderStep.js +4 -4
- package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderStep.js.map +1 -1
- package/lib/cjs/components/Groups/ToggleGroupVisibility.js +3 -3
- package/lib/cjs/components/Groups/ToggleGroupVisibility.js.map +1 -1
- package/lib/cjs/components/Groups/groupsHelpers.d.ts +2 -2
- package/lib/cjs/components/Groups/groupsHelpers.js +8 -4
- package/lib/cjs/components/Groups/groupsHelpers.js.map +1 -1
- package/lib/cjs/components/Groups/hooks/useFetchGroups.d.ts +3 -3
- package/lib/cjs/components/Groups/hooks/useFetchGroups.js +6 -5
- package/lib/cjs/components/Groups/hooks/useFetchGroups.js.map +1 -1
- package/lib/cjs/components/Groups/hooks/useGroupsOperations.d.ts +16 -8
- package/lib/cjs/components/Groups/hooks/useGroupsOperations.js +14 -10
- package/lib/cjs/components/Groups/hooks/useGroupsOperations.js.map +1 -1
- package/lib/cjs/components/Groups/hooks/useKeySetHiliteQueries.d.ts +4 -4
- package/lib/cjs/components/Groups/hooks/useKeySetHiliteQueries.js.map +1 -1
- package/lib/cjs/components/Groups/hooks/useVisualization.js +2 -4
- package/lib/cjs/components/Groups/hooks/useVisualization.js.map +1 -1
- package/lib/cjs/components/Mappings/BlockingOverlay.js +3 -3
- package/lib/cjs/components/Mappings/BlockingOverlay.js.map +1 -1
- package/lib/cjs/components/Mappings/Editing/MappingAction.d.ts +8 -0
- package/lib/cjs/components/Mappings/Editing/MappingAction.js +16 -15
- package/lib/cjs/components/Mappings/Editing/MappingAction.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionLogCustomFilter.d.ts +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionLogCustomFilter.js +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionLogCustomFilter.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionMessageModal.js +12 -7
- package/lib/cjs/components/Mappings/Extraction/ExtractionMessageModal.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js +3 -3
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js +3 -3
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js +3 -3
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js +3 -3
- package/lib/cjs/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStatus.d.ts +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStatus.js +9 -9
- package/lib/cjs/components/Mappings/Extraction/ExtractionStatus.js.map +1 -1
- package/lib/cjs/components/Mappings/Extraction/ExtractionStatusIcon.js +4 -4
- package/lib/cjs/components/Mappings/Extraction/ExtractionStatusIcon.js.map +1 -1
- package/lib/cjs/components/Mappings/Import/ConfirmMappingsImport.d.ts +1 -2
- package/lib/cjs/components/Mappings/Import/ConfirmMappingsImport.js +30 -33
- package/lib/cjs/components/Mappings/Import/ConfirmMappingsImport.js.map +1 -1
- package/lib/cjs/components/Mappings/Import/MappingImportWizardModal.d.ts +1 -1
- package/lib/cjs/components/Mappings/Import/MappingImportWizardModal.js +4 -4
- package/lib/cjs/components/Mappings/Import/MappingImportWizardModal.js.map +1 -1
- package/lib/cjs/components/Mappings/Import/SelectIModel.d.ts +1 -1
- package/lib/cjs/components/Mappings/Import/SelectIModel.js +5 -5
- package/lib/cjs/components/Mappings/Import/SelectIModel.js.map +1 -1
- package/lib/cjs/components/Mappings/Import/SelectITwin.js +2 -2
- package/lib/cjs/components/Mappings/Import/SelectITwin.js.map +1 -1
- package/lib/cjs/components/Mappings/Import/SelectITwin.scss +1 -1
- package/lib/cjs/components/Mappings/Import/SelectMappings.d.ts +1 -1
- package/lib/cjs/components/Mappings/Import/SelectMappings.js +7 -7
- package/lib/cjs/components/Mappings/Import/SelectMappings.js.map +1 -1
- package/lib/cjs/components/Mappings/MappingListItem.js.map +1 -1
- package/lib/cjs/components/Mappings/MappingViewActionGroup.d.ts +1 -1
- package/lib/cjs/components/Mappings/MappingViewActionGroup.js +6 -6
- package/lib/cjs/components/Mappings/MappingViewActionGroup.js.map +1 -1
- package/lib/cjs/components/Mappings/Mappings.d.ts +8 -0
- package/lib/cjs/components/Mappings/Mappings.js +7 -3
- package/lib/cjs/components/Mappings/Mappings.js.map +1 -1
- package/lib/cjs/components/Mappings/MappingsView.d.ts +7 -0
- 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.d.ts +1 -2
- package/lib/cjs/components/Mappings/hooks/useFetchExtractionStatus.js +11 -8
- package/lib/cjs/components/Mappings/hooks/useFetchExtractionStatus.js.map +1 -1
- package/lib/cjs/components/Mappings/hooks/useFetchMappingExtractionStatus.d.ts +1 -1
- package/lib/cjs/components/Mappings/hooks/useFetchMappingExtractionStatus.js +8 -7
- package/lib/cjs/components/Mappings/hooks/useFetchMappingExtractionStatus.js.map +1 -1
- package/lib/cjs/components/Mappings/hooks/useFetchMappings.js +2 -2
- package/lib/cjs/components/Mappings/hooks/useFetchMappings.js.map +1 -1
- package/lib/cjs/components/Mappings/hooks/useMappingsOperations.d.ts +9 -2
- package/lib/cjs/components/Mappings/hooks/useMappingsOperations.js +44 -22
- package/lib/cjs/components/Mappings/hooks/useMappingsOperations.js.map +1 -1
- package/lib/cjs/components/Mappings/hooks/useRunExtraction.d.ts +2 -2
- package/lib/cjs/components/Mappings/hooks/useRunExtraction.js +27 -19
- package/lib/cjs/components/Mappings/hooks/useRunExtraction.js.map +1 -1
- package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyAction.d.ts +11 -3
- package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyAction.js +28 -15
- package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyAction.js.map +1 -1
- package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.d.ts +11 -3
- package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js +30 -20
- package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js.map +1 -1
- package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyTable.d.ts +3 -3
- package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyTable.js +7 -5
- package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyTable.js.map +1 -1
- package/lib/cjs/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js +4 -6
- package/lib/cjs/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js.map +1 -1
- package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.d.ts +11 -3
- package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.js +74 -50
- package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.js.map +1 -1
- package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.scss +1 -1
- package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationTable.d.ts +3 -3
- package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationTable.js +21 -15
- package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationTable.js.map +1 -1
- package/lib/cjs/components/Properties/GroupColorToggle.d.ts +2 -2
- package/lib/cjs/components/Properties/GroupColorToggle.js +4 -4
- package/lib/cjs/components/Properties/GroupColorToggle.js.map +1 -1
- package/lib/cjs/components/Properties/GroupInformationPanel.js +3 -3
- package/lib/cjs/components/Properties/GroupInformationPanel.js.map +1 -1
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.d.ts +13 -5
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.js +41 -42
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.js.map +1 -1
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyListItem.d.ts +1 -1
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyListItem.js +5 -5
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyListItem.js.map +1 -1
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyTable.d.ts +4 -4
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyTable.js +20 -16
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyTable.js.map +1 -1
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyUtils.d.ts +3 -5
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyUtils.js +20 -65
- package/lib/cjs/components/Properties/GroupProperties/GroupPropertyUtils.js.map +1 -1
- package/lib/cjs/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js +20 -29
- package/lib/cjs/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js.map +1 -1
- package/lib/cjs/components/Properties/GroupProperties/SaveModal.d.ts +1 -1
- package/lib/cjs/components/Properties/GroupProperties/SaveModal.js +7 -7
- package/lib/cjs/components/Properties/GroupProperties/SaveModal.js.map +1 -1
- package/lib/cjs/components/Properties/GroupProperties/SortableHorizontalTile.js +4 -4
- package/lib/cjs/components/Properties/GroupProperties/SortableHorizontalTile.js.map +1 -1
- package/lib/cjs/components/Properties/PropertyAction.js +9 -21
- package/lib/cjs/components/Properties/PropertyAction.js.map +1 -1
- package/lib/cjs/components/Properties/PropertyMenu.d.ts +13 -5
- package/lib/cjs/components/Properties/PropertyMenu.js +16 -18
- package/lib/cjs/components/Properties/PropertyMenu.js.map +1 -1
- package/lib/cjs/components/Properties/PropertyMenuWithVisualization.d.ts +8 -0
- package/lib/cjs/components/Properties/PropertyMenuWithVisualization.js +9 -5
- package/lib/cjs/components/Properties/PropertyMenuWithVisualization.js.map +1 -1
- package/lib/cjs/components/Properties/PropertyNameCell.d.ts +1 -1
- package/lib/cjs/components/Properties/PropertyNameCell.js +4 -4
- package/lib/cjs/components/Properties/PropertyNameCell.js.map +1 -1
- package/lib/cjs/components/Properties/PropertyTable.js +5 -6
- package/lib/cjs/components/Properties/PropertyTable.js.map +1 -1
- package/lib/cjs/components/Properties/PropertyTableToolbar.d.ts +1 -1
- package/lib/cjs/components/Properties/PropertyTableToolbar.js +4 -4
- package/lib/cjs/components/Properties/PropertyTableToolbar.js.map +1 -1
- package/lib/cjs/components/Properties/hooks/useFormulaValidation.d.ts +2 -1
- package/lib/cjs/components/Properties/hooks/useFormulaValidation.js +11 -7
- package/lib/cjs/components/Properties/hooks/useFormulaValidation.js.map +1 -1
- package/lib/cjs/components/Properties/hooks/usePropertiesQuery.d.ts +4 -0
- package/lib/cjs/components/Properties/hooks/usePropertiesQuery.js +12 -0
- package/lib/cjs/components/Properties/hooks/usePropertiesQuery.js.map +1 -0
- package/lib/cjs/components/Properties/hooks/useValidator.js +4 -4
- package/lib/cjs/components/Properties/hooks/useValidator.js.map +1 -1
- package/lib/cjs/components/SharedComponents/ActionPanel.d.ts +1 -1
- package/lib/cjs/components/SharedComponents/ActionPanel.js +9 -10
- package/lib/cjs/components/SharedComponents/ActionPanel.js.map +1 -1
- package/lib/cjs/components/SharedComponents/DeleteModal.d.ts +1 -1
- package/lib/cjs/components/SharedComponents/DeleteModal.js +9 -10
- package/lib/cjs/components/SharedComponents/DeleteModal.js.map +1 -1
- package/lib/cjs/components/SharedComponents/EmptyMessage.js +4 -4
- package/lib/cjs/components/SharedComponents/EmptyMessage.js.map +1 -1
- package/lib/cjs/components/SharedComponents/LoadingOverlay.js +4 -4
- package/lib/cjs/components/SharedComponents/LoadingOverlay.js.map +1 -1
- package/lib/cjs/components/SharedComponents/LoadingSpinner.js +3 -3
- package/lib/cjs/components/SharedComponents/LoadingSpinner.js.map +1 -1
- package/lib/cjs/components/SharedComponents/StatusIcon.js +3 -3
- package/lib/cjs/components/SharedComponents/StatusIcon.js.map +1 -1
- package/lib/cjs/components/context/ExtractionClientContext.js +3 -3
- package/lib/cjs/components/context/ExtractionClientContext.js.map +1 -1
- package/lib/cjs/components/context/ExtractionStateJobContext.js +3 -3
- package/lib/cjs/components/context/ExtractionStateJobContext.js.map +1 -1
- package/lib/cjs/components/context/GroupHilitedElementsContext.js +3 -3
- package/lib/cjs/components/context/GroupHilitedElementsContext.js.map +1 -1
- package/lib/cjs/components/context/GroupingApiConfigContext.d.ts +16 -0
- package/lib/cjs/components/context/GroupingApiConfigContext.js +7 -0
- package/lib/cjs/components/context/GroupingApiConfigContext.js.map +1 -1
- package/lib/cjs/components/context/GroupingMappingCustomUIContext.js +3 -3
- package/lib/cjs/components/context/GroupingMappingCustomUIContext.js.map +1 -1
- package/lib/cjs/components/context/GroupsClientContext.d.ts +20 -0
- package/lib/cjs/components/context/GroupsClientContext.js +45 -0
- package/lib/cjs/components/context/GroupsClientContext.js.map +1 -0
- package/lib/cjs/components/context/IModelsClientContext.js.map +1 -1
- package/lib/cjs/components/context/ITwinsClientContext.js +3 -3
- package/lib/cjs/components/context/ITwinsClientContext.js.map +1 -1
- package/lib/cjs/components/context/MappingClientContext.d.ts +12 -0
- package/lib/cjs/components/context/MappingClientContext.js +14 -2
- package/lib/cjs/components/context/MappingClientContext.js.map +1 -1
- package/lib/cjs/components/context/PropertiesClientContext.d.ts +20 -0
- package/lib/cjs/components/context/PropertiesClientContext.js +45 -0
- package/lib/cjs/components/context/PropertiesClientContext.js.map +1 -0
- package/lib/cjs/components/context/PropertiesGroupColorContext.js +3 -3
- package/lib/cjs/components/context/PropertiesGroupColorContext.js.map +1 -1
- package/lib/cjs/components/context/PropertyGridWrapperContext.js +3 -3
- package/lib/cjs/components/context/PropertyGridWrapperContext.js.map +1 -1
- package/lib/cjs/components/customUI/DefaultGroupingUI.js +3 -3
- package/lib/cjs/components/customUI/DefaultGroupingUI.js.map +1 -1
- package/lib/cjs/components/customUI/GroupQueryBuilderCustomUI.d.ts +5 -1
- package/lib/cjs/components/customUI/GroupQueryBuilderCustomUI.js +17 -18
- package/lib/cjs/components/customUI/GroupQueryBuilderCustomUI.js.map +1 -1
- package/lib/cjs/components/customUI/GroupingMappingCustomUI.d.ts +15 -3
- package/lib/cjs/components/customUI/GroupingMappingCustomUI.js +3 -0
- package/lib/cjs/components/customUI/GroupingMappingCustomUI.js.map +1 -1
- package/lib/cjs/components/customUI/ManualGroupingCustomUI.d.ts +5 -1
- package/lib/cjs/components/customUI/ManualGroupingCustomUI.js +12 -8
- package/lib/cjs/components/customUI/ManualGroupingCustomUI.js.map +1 -1
- package/lib/cjs/components/customUI/SearchGroupingCustomUI.d.ts +5 -1
- package/lib/cjs/components/customUI/SearchGroupingCustomUI.js +20 -45
- package/lib/cjs/components/customUI/SearchGroupingCustomUI.js.map +1 -1
- package/lib/cjs/decorators/BboxDimensionsDecorator.js +3 -10
- package/lib/cjs/decorators/BboxDimensionsDecorator.js.map +1 -1
- package/lib/cjs/formula/FormulaDataTypeResolver.d.ts +1 -0
- package/lib/cjs/formula/FormulaDataTypeResolver.js +4 -3
- package/lib/cjs/formula/FormulaDataTypeResolver.js.map +1 -1
- package/lib/cjs/formula/FormulaFunctionProvider.js +146 -65
- package/lib/cjs/formula/FormulaFunctionProvider.js.map +1 -1
- package/lib/cjs/formula/FormulaOperatorsProvider.js +139 -45
- package/lib/cjs/formula/FormulaOperatorsProvider.js.map +1 -1
- package/lib/cjs/formula/FormulaSplitter.js +63 -13
- package/lib/cjs/formula/FormulaSplitter.js.map +1 -1
- package/lib/cjs/formula/FormulaTokensDataTypeResolver.js +9 -16
- package/lib/cjs/formula/FormulaTokensDataTypeResolver.js.map +1 -1
- package/lib/cjs/formula/IResult.d.ts +3 -0
- package/lib/cjs/formula/IResult.js.map +1 -1
- package/lib/cjs/formula/InfixToPostfixConverter.js +4 -4
- package/lib/cjs/formula/InfixToPostfixConverter.js.map +1 -1
- package/lib/cjs/formula/InputStream.js +3 -3
- package/lib/cjs/formula/InputStream.js.map +1 -1
- package/lib/cjs/formula/ParenthesisValidator.js +3 -3
- package/lib/cjs/formula/ParenthesisValidator.js.map +1 -1
- package/lib/cjs/formula/Queue.js +3 -3
- package/lib/cjs/formula/Queue.js.map +1 -1
- package/lib/cjs/formula/Stack.js +3 -3
- package/lib/cjs/formula/Stack.js.map +1 -1
- package/lib/cjs/formula/StringBuilder.js +3 -3
- package/lib/cjs/formula/StringBuilder.js.map +1 -1
- package/lib/cjs/formula/Types.d.ts +16 -1
- package/lib/cjs/formula/Types.js.map +1 -1
- package/lib/cjs/formula/Utils.js +4 -4
- package/lib/cjs/formula/Utils.js.map +1 -1
- package/lib/cjs/grouping-mapping-widget.d.ts +5 -3
- package/lib/cjs/grouping-mapping-widget.js +14 -4
- package/lib/cjs/grouping-mapping-widget.js.map +1 -1
- package/lib/cjs/test/GroupPropertyUtils.test.js +27 -65
- package/lib/cjs/test/GroupPropertyUtils.test.js.map +1 -1
- package/lib/cjs/test/GroupingMappingCustomUI.test.js +21 -12
- package/lib/cjs/test/GroupingMappingCustomUI.test.js.map +1 -1
- package/lib/cjs/test/MockFactory.js +3 -3
- package/lib/cjs/test/MockFactory.js.map +1 -1
- package/lib/cjs/test/PropertyFieldsHelpers.js +3 -3
- package/lib/cjs/test/PropertyFieldsHelpers.js.map +1 -1
- package/lib/cjs/test/QueryBuilder.test.js +3 -3
- package/lib/cjs/test/QueryBuilder.test.js.map +1 -1
- package/lib/cjs/test/QueryBuilder.testdata.js +3 -3
- package/lib/cjs/test/QueryBuilder.testdata.js.map +1 -1
- package/lib/cjs/test/QueryBuilderTestData.js.map +1 -1
- package/lib/cjs/test/WidgetHeader.test.js +3 -3
- package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
- package/lib/cjs/test/test-utils.js +4 -4
- package/lib/cjs/test/test-utils.js.map +1 -1
- package/lib/esm/WidgetShell/GroupingMapping.d.ts +5 -5
- package/lib/esm/WidgetShell/GroupingMapping.js +3 -5
- package/lib/esm/WidgetShell/GroupingMapping.js.map +1 -1
- package/lib/esm/WidgetShell/GroupingMappingContent.js +4 -4
- package/lib/esm/WidgetShell/GroupingMappingContent.js.map +1 -1
- package/lib/esm/WidgetShell/GroupingMappingHeader.d.ts +1 -1
- package/lib/esm/WidgetShell/GroupingMappingHeader.js +5 -5
- package/lib/esm/WidgetShell/GroupingMappingHeader.js.map +1 -1
- package/lib/esm/WidgetShell/GroupingMappingWidget.d.ts +4 -0
- package/lib/esm/WidgetShell/GroupingMappingWidget.js +6 -4
- package/lib/esm/WidgetShell/GroupingMappingWidget.js.map +1 -1
- package/lib/esm/WidgetShell/Router/GroupingMappingRouter.js +28 -8
- package/lib/esm/WidgetShell/Router/GroupingMappingRouter.js.map +1 -1
- package/lib/esm/WidgetShell/WidgetHeader/WidgetHeader.d.ts +1 -1
- package/lib/esm/WidgetShell/WidgetHeader/WidgetHeader.js +7 -7
- package/lib/esm/WidgetShell/WidgetHeader/WidgetHeader.js.map +1 -1
- package/lib/esm/common/hooks/useIsMounted.js +3 -3
- package/lib/esm/common/hooks/useIsMounted.js.map +1 -1
- package/lib/esm/common/hooks/useMemoizedCollectionPick.js +3 -3
- package/lib/esm/common/hooks/useMemoizedCollectionPick.js.map +1 -1
- package/lib/esm/common/utils.js +3 -3
- package/lib/esm/common/utils.js.map +1 -1
- package/lib/esm/common/viewerUtils.js +2 -2
- package/lib/esm/common/viewerUtils.js.map +1 -1
- package/lib/esm/components/Constants.js +4 -4
- package/lib/esm/components/Constants.js.map +1 -1
- package/lib/esm/components/GroupingMappingContext.d.ts +19 -3
- package/lib/esm/components/GroupingMappingContext.js +41 -14
- package/lib/esm/components/GroupingMappingContext.js.map +1 -1
- package/lib/esm/components/Groups/Editing/GroupAction.d.ts +10 -2
- package/lib/esm/components/Groups/Editing/GroupAction.js +17 -15
- package/lib/esm/components/Groups/Editing/GroupAction.js.map +1 -1
- package/lib/esm/components/Groups/Editing/GroupDetails.d.ts +1 -1
- package/lib/esm/components/Groups/Editing/GroupDetails.js +5 -7
- package/lib/esm/components/Groups/Editing/GroupDetails.js.map +1 -1
- package/lib/esm/components/Groups/Editing/GroupDetailsActionPanel.d.ts +1 -1
- package/lib/esm/components/Groups/Editing/GroupDetailsActionPanel.js +4 -4
- package/lib/esm/components/Groups/Editing/GroupDetailsActionPanel.js.map +1 -1
- package/lib/esm/components/Groups/Editing/GroupDetailsStep.js +4 -4
- package/lib/esm/components/Groups/Editing/GroupDetailsStep.js.map +1 -1
- package/lib/esm/components/Groups/GroupColorLegend.d.ts +3 -3
- package/lib/esm/components/Groups/GroupColorLegend.js +3 -3
- package/lib/esm/components/Groups/GroupColorLegend.js.map +1 -1
- package/lib/esm/components/Groups/GroupListItem.d.ts +4 -4
- package/lib/esm/components/Groups/GroupListItem.js +6 -4
- package/lib/esm/components/Groups/GroupListItem.js.map +1 -1
- package/lib/esm/components/Groups/GroupListItem.scss +14 -0
- package/lib/esm/components/Groups/GroupMenuActions.d.ts +4 -4
- package/lib/esm/components/Groups/GroupMenuActions.js +17 -6
- package/lib/esm/components/Groups/GroupMenuActions.js.map +1 -1
- package/lib/esm/components/Groups/GroupMenuActions.scss +2 -0
- package/lib/esm/components/Groups/GroupOverlapProgressBar.d.ts +2 -2
- package/lib/esm/components/Groups/GroupOverlapProgressBar.js.map +1 -1
- package/lib/esm/components/Groups/Groups.d.ts +12 -4
- package/lib/esm/components/Groups/Groups.js +7 -3
- package/lib/esm/components/Groups/Groups.js.map +1 -1
- package/lib/esm/components/Groups/GroupsAddButton.d.ts +1 -1
- package/lib/esm/components/Groups/GroupsAddButton.js +4 -4
- package/lib/esm/components/Groups/GroupsAddButton.js.map +1 -1
- package/lib/esm/components/Groups/GroupsAddButton.scss +1 -1
- package/lib/esm/components/Groups/GroupsShowHideButtons.d.ts +5 -5
- package/lib/esm/components/Groups/GroupsShowHideButtons.js +2 -2
- package/lib/esm/components/Groups/GroupsShowHideButtons.js.map +1 -1
- package/lib/esm/components/Groups/GroupsView.d.ts +19 -11
- package/lib/esm/components/Groups/GroupsView.js +14 -12
- package/lib/esm/components/Groups/GroupsView.js.map +1 -1
- package/lib/esm/components/Groups/GroupsView.scss +1 -1
- package/lib/esm/components/Groups/GroupsVisualization.d.ts +8 -0
- package/lib/esm/components/Groups/GroupsVisualization.js +29 -26
- package/lib/esm/components/Groups/GroupsVisualization.js.map +1 -1
- package/lib/esm/components/Groups/GroupsVisualizationActions.js +4 -4
- package/lib/esm/components/Groups/GroupsVisualizationActions.js.map +1 -1
- package/lib/esm/components/Groups/OverlappedElementsInformationPanel.d.ts +4 -4
- package/lib/esm/components/Groups/OverlappedElementsInformationPanel.js +5 -5
- package/lib/esm/components/Groups/OverlappedElementsInformationPanel.js.map +1 -1
- package/lib/esm/components/Groups/OverlappedElementsInformationPanel.scss +7 -7
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilder.js +13 -35
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilder.js.map +1 -1
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderActionPanel.js +4 -4
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderActionPanel.js.map +1 -1
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderCustomUI.d.ts +3 -3
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderCustomUI.js +4 -4
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderCustomUI.js.map +1 -1
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderStep.js +4 -4
- package/lib/esm/components/Groups/QueryBuilder/QueryBuilderStep.js.map +1 -1
- package/lib/esm/components/Groups/ToggleGroupVisibility.js +3 -3
- package/lib/esm/components/Groups/ToggleGroupVisibility.js.map +1 -1
- package/lib/esm/components/Groups/groupsHelpers.d.ts +2 -2
- package/lib/esm/components/Groups/groupsHelpers.js +9 -5
- package/lib/esm/components/Groups/groupsHelpers.js.map +1 -1
- package/lib/esm/components/Groups/hooks/useFetchGroups.d.ts +3 -3
- package/lib/esm/components/Groups/hooks/useFetchGroups.js +6 -5
- package/lib/esm/components/Groups/hooks/useFetchGroups.js.map +1 -1
- package/lib/esm/components/Groups/hooks/useGroupsOperations.d.ts +16 -8
- package/lib/esm/components/Groups/hooks/useGroupsOperations.js +14 -10
- package/lib/esm/components/Groups/hooks/useGroupsOperations.js.map +1 -1
- package/lib/esm/components/Groups/hooks/useKeySetHiliteQueries.d.ts +4 -4
- package/lib/esm/components/Groups/hooks/useKeySetHiliteQueries.js.map +1 -1
- package/lib/esm/components/Groups/hooks/useVisualization.js +3 -5
- package/lib/esm/components/Groups/hooks/useVisualization.js.map +1 -1
- package/lib/esm/components/Mappings/BlockingOverlay.js +3 -3
- package/lib/esm/components/Mappings/BlockingOverlay.js.map +1 -1
- package/lib/esm/components/Mappings/Editing/MappingAction.d.ts +8 -0
- package/lib/esm/components/Mappings/Editing/MappingAction.js +16 -15
- package/lib/esm/components/Mappings/Editing/MappingAction.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionLogCustomFilter.d.ts +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionLogCustomFilter.js +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionLogCustomFilter.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionMessageModal.js +12 -7
- package/lib/esm/components/Mappings/Extraction/ExtractionMessageModal.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js +3 -3
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js +3 -3
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js +3 -3
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js +3 -3
- package/lib/esm/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStatus.d.ts +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStatus.js +9 -9
- package/lib/esm/components/Mappings/Extraction/ExtractionStatus.js.map +1 -1
- package/lib/esm/components/Mappings/Extraction/ExtractionStatusIcon.js +4 -4
- package/lib/esm/components/Mappings/Extraction/ExtractionStatusIcon.js.map +1 -1
- package/lib/esm/components/Mappings/Import/ConfirmMappingsImport.d.ts +1 -2
- package/lib/esm/components/Mappings/Import/ConfirmMappingsImport.js +31 -34
- package/lib/esm/components/Mappings/Import/ConfirmMappingsImport.js.map +1 -1
- package/lib/esm/components/Mappings/Import/MappingImportWizardModal.d.ts +1 -1
- package/lib/esm/components/Mappings/Import/MappingImportWizardModal.js +4 -4
- package/lib/esm/components/Mappings/Import/MappingImportWizardModal.js.map +1 -1
- package/lib/esm/components/Mappings/Import/SelectIModel.d.ts +1 -1
- package/lib/esm/components/Mappings/Import/SelectIModel.js +5 -5
- package/lib/esm/components/Mappings/Import/SelectIModel.js.map +1 -1
- package/lib/esm/components/Mappings/Import/SelectITwin.js +2 -2
- package/lib/esm/components/Mappings/Import/SelectITwin.js.map +1 -1
- package/lib/esm/components/Mappings/Import/SelectITwin.scss +1 -1
- package/lib/esm/components/Mappings/Import/SelectMappings.d.ts +1 -1
- package/lib/esm/components/Mappings/Import/SelectMappings.js +8 -8
- package/lib/esm/components/Mappings/Import/SelectMappings.js.map +1 -1
- package/lib/esm/components/Mappings/MappingListItem.js.map +1 -1
- package/lib/esm/components/Mappings/MappingViewActionGroup.d.ts +1 -1
- package/lib/esm/components/Mappings/MappingViewActionGroup.js +8 -8
- package/lib/esm/components/Mappings/MappingViewActionGroup.js.map +1 -1
- package/lib/esm/components/Mappings/Mappings.d.ts +8 -0
- package/lib/esm/components/Mappings/Mappings.js +7 -3
- package/lib/esm/components/Mappings/Mappings.js.map +1 -1
- package/lib/esm/components/Mappings/MappingsView.d.ts +7 -0
- package/lib/esm/components/Mappings/MappingsView.js +19 -17
- package/lib/esm/components/Mappings/MappingsView.js.map +1 -1
- package/lib/esm/components/Mappings/hooks/useFetchExtractionStatus.d.ts +1 -2
- package/lib/esm/components/Mappings/hooks/useFetchExtractionStatus.js +11 -8
- package/lib/esm/components/Mappings/hooks/useFetchExtractionStatus.js.map +1 -1
- package/lib/esm/components/Mappings/hooks/useFetchMappingExtractionStatus.d.ts +1 -1
- package/lib/esm/components/Mappings/hooks/useFetchMappingExtractionStatus.js +9 -8
- package/lib/esm/components/Mappings/hooks/useFetchMappingExtractionStatus.js.map +1 -1
- package/lib/esm/components/Mappings/hooks/useFetchMappings.js +2 -2
- package/lib/esm/components/Mappings/hooks/useFetchMappings.js.map +1 -1
- package/lib/esm/components/Mappings/hooks/useMappingsOperations.d.ts +9 -2
- package/lib/esm/components/Mappings/hooks/useMappingsOperations.js +45 -23
- package/lib/esm/components/Mappings/hooks/useMappingsOperations.js.map +1 -1
- package/lib/esm/components/Mappings/hooks/useRunExtraction.d.ts +2 -2
- package/lib/esm/components/Mappings/hooks/useRunExtraction.js +27 -19
- package/lib/esm/components/Mappings/hooks/useRunExtraction.js.map +1 -1
- package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyAction.d.ts +11 -3
- package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyAction.js +30 -17
- package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyAction.js.map +1 -1
- package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.d.ts +11 -3
- package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js +33 -23
- package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js.map +1 -1
- package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyTable.d.ts +3 -3
- package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyTable.js +8 -6
- package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyTable.js.map +1 -1
- package/lib/esm/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js +5 -7
- package/lib/esm/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js.map +1 -1
- package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.d.ts +11 -3
- package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.js +76 -52
- package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.js.map +1 -1
- package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.scss +1 -1
- package/lib/esm/components/Properties/CustomCalculations/CustomCalculationTable.d.ts +3 -3
- package/lib/esm/components/Properties/CustomCalculations/CustomCalculationTable.js +23 -17
- package/lib/esm/components/Properties/CustomCalculations/CustomCalculationTable.js.map +1 -1
- package/lib/esm/components/Properties/GroupColorToggle.d.ts +2 -2
- package/lib/esm/components/Properties/GroupColorToggle.js +4 -4
- package/lib/esm/components/Properties/GroupColorToggle.js.map +1 -1
- package/lib/esm/components/Properties/GroupInformationPanel.js +3 -3
- package/lib/esm/components/Properties/GroupInformationPanel.js.map +1 -1
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.d.ts +13 -5
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.js +43 -44
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.js.map +1 -1
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyListItem.d.ts +1 -1
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyListItem.js +5 -5
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyListItem.js.map +1 -1
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyTable.d.ts +4 -4
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyTable.js +22 -18
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyTable.js.map +1 -1
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyUtils.d.ts +3 -5
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyUtils.js +21 -66
- package/lib/esm/components/Properties/GroupProperties/GroupPropertyUtils.js.map +1 -1
- package/lib/esm/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js +26 -35
- package/lib/esm/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js.map +1 -1
- package/lib/esm/components/Properties/GroupProperties/SaveModal.d.ts +1 -1
- package/lib/esm/components/Properties/GroupProperties/SaveModal.js +8 -8
- package/lib/esm/components/Properties/GroupProperties/SaveModal.js.map +1 -1
- package/lib/esm/components/Properties/GroupProperties/SortableHorizontalTile.js +4 -4
- package/lib/esm/components/Properties/GroupProperties/SortableHorizontalTile.js.map +1 -1
- package/lib/esm/components/Properties/PropertyAction.js +9 -21
- package/lib/esm/components/Properties/PropertyAction.js.map +1 -1
- package/lib/esm/components/Properties/PropertyMenu.d.ts +13 -5
- package/lib/esm/components/Properties/PropertyMenu.js +16 -18
- package/lib/esm/components/Properties/PropertyMenu.js.map +1 -1
- package/lib/esm/components/Properties/PropertyMenuWithVisualization.d.ts +8 -0
- package/lib/esm/components/Properties/PropertyMenuWithVisualization.js +9 -5
- package/lib/esm/components/Properties/PropertyMenuWithVisualization.js.map +1 -1
- package/lib/esm/components/Properties/PropertyNameCell.d.ts +1 -1
- package/lib/esm/components/Properties/PropertyNameCell.js +4 -4
- package/lib/esm/components/Properties/PropertyNameCell.js.map +1 -1
- package/lib/esm/components/Properties/PropertyTable.js +5 -6
- package/lib/esm/components/Properties/PropertyTable.js.map +1 -1
- package/lib/esm/components/Properties/PropertyTableToolbar.d.ts +1 -1
- package/lib/esm/components/Properties/PropertyTableToolbar.js +4 -4
- package/lib/esm/components/Properties/PropertyTableToolbar.js.map +1 -1
- package/lib/esm/components/Properties/hooks/useFormulaValidation.d.ts +2 -1
- package/lib/esm/components/Properties/hooks/useFormulaValidation.js +11 -7
- package/lib/esm/components/Properties/hooks/useFormulaValidation.js.map +1 -1
- package/lib/esm/components/Properties/hooks/usePropertiesQuery.d.ts +4 -0
- package/lib/esm/components/Properties/hooks/usePropertiesQuery.js +8 -0
- package/lib/esm/components/Properties/hooks/usePropertiesQuery.js.map +1 -0
- package/lib/esm/components/Properties/hooks/useValidator.js +4 -4
- package/lib/esm/components/Properties/hooks/useValidator.js.map +1 -1
- package/lib/esm/components/SharedComponents/ActionPanel.d.ts +1 -1
- package/lib/esm/components/SharedComponents/ActionPanel.js +9 -10
- package/lib/esm/components/SharedComponents/ActionPanel.js.map +1 -1
- package/lib/esm/components/SharedComponents/DeleteModal.d.ts +1 -1
- package/lib/esm/components/SharedComponents/DeleteModal.js +10 -11
- package/lib/esm/components/SharedComponents/DeleteModal.js.map +1 -1
- package/lib/esm/components/SharedComponents/EmptyMessage.js +4 -4
- package/lib/esm/components/SharedComponents/EmptyMessage.js.map +1 -1
- package/lib/esm/components/SharedComponents/LoadingOverlay.js +4 -4
- package/lib/esm/components/SharedComponents/LoadingOverlay.js.map +1 -1
- package/lib/esm/components/SharedComponents/LoadingSpinner.js +3 -3
- package/lib/esm/components/SharedComponents/LoadingSpinner.js.map +1 -1
- package/lib/esm/components/SharedComponents/StatusIcon.js +3 -3
- package/lib/esm/components/SharedComponents/StatusIcon.js.map +1 -1
- package/lib/esm/components/context/ExtractionClientContext.js +3 -3
- package/lib/esm/components/context/ExtractionClientContext.js.map +1 -1
- package/lib/esm/components/context/ExtractionStateJobContext.js +3 -3
- package/lib/esm/components/context/ExtractionStateJobContext.js.map +1 -1
- package/lib/esm/components/context/GroupHilitedElementsContext.js +3 -3
- package/lib/esm/components/context/GroupHilitedElementsContext.js.map +1 -1
- package/lib/esm/components/context/GroupingApiConfigContext.d.ts +16 -0
- package/lib/esm/components/context/GroupingApiConfigContext.js +7 -0
- package/lib/esm/components/context/GroupingApiConfigContext.js.map +1 -1
- package/lib/esm/components/context/GroupingMappingCustomUIContext.js +3 -3
- package/lib/esm/components/context/GroupingMappingCustomUIContext.js.map +1 -1
- package/lib/esm/components/context/GroupsClientContext.d.ts +20 -0
- package/lib/esm/components/context/GroupsClientContext.js +39 -0
- package/lib/esm/components/context/GroupsClientContext.js.map +1 -0
- package/lib/esm/components/context/IModelsClientContext.js.map +1 -1
- package/lib/esm/components/context/ITwinsClientContext.js +3 -3
- package/lib/esm/components/context/ITwinsClientContext.js.map +1 -1
- package/lib/esm/components/context/MappingClientContext.d.ts +12 -0
- package/lib/esm/components/context/MappingClientContext.js +15 -3
- package/lib/esm/components/context/MappingClientContext.js.map +1 -1
- package/lib/esm/components/context/PropertiesClientContext.d.ts +20 -0
- package/lib/esm/components/context/PropertiesClientContext.js +39 -0
- package/lib/esm/components/context/PropertiesClientContext.js.map +1 -0
- package/lib/esm/components/context/PropertiesGroupColorContext.js +3 -3
- package/lib/esm/components/context/PropertiesGroupColorContext.js.map +1 -1
- package/lib/esm/components/context/PropertyGridWrapperContext.js +3 -3
- package/lib/esm/components/context/PropertyGridWrapperContext.js.map +1 -1
- package/lib/esm/components/customUI/DefaultGroupingUI.js +3 -3
- package/lib/esm/components/customUI/DefaultGroupingUI.js.map +1 -1
- package/lib/esm/components/customUI/GroupQueryBuilderCustomUI.d.ts +5 -1
- package/lib/esm/components/customUI/GroupQueryBuilderCustomUI.js +18 -19
- package/lib/esm/components/customUI/GroupQueryBuilderCustomUI.js.map +1 -1
- package/lib/esm/components/customUI/GroupingMappingCustomUI.d.ts +15 -3
- package/lib/esm/components/customUI/GroupingMappingCustomUI.js +3 -0
- package/lib/esm/components/customUI/GroupingMappingCustomUI.js.map +1 -1
- package/lib/esm/components/customUI/ManualGroupingCustomUI.d.ts +5 -1
- package/lib/esm/components/customUI/ManualGroupingCustomUI.js +12 -8
- package/lib/esm/components/customUI/ManualGroupingCustomUI.js.map +1 -1
- package/lib/esm/components/customUI/SearchGroupingCustomUI.d.ts +5 -1
- package/lib/esm/components/customUI/SearchGroupingCustomUI.js +20 -45
- package/lib/esm/components/customUI/SearchGroupingCustomUI.js.map +1 -1
- package/lib/esm/decorators/BboxDimensionsDecorator.js +5 -12
- package/lib/esm/decorators/BboxDimensionsDecorator.js.map +1 -1
- package/lib/esm/formula/FormulaDataTypeResolver.d.ts +1 -0
- package/lib/esm/formula/FormulaDataTypeResolver.js +4 -3
- package/lib/esm/formula/FormulaDataTypeResolver.js.map +1 -1
- package/lib/esm/formula/FormulaFunctionProvider.js +146 -65
- package/lib/esm/formula/FormulaFunctionProvider.js.map +1 -1
- package/lib/esm/formula/FormulaOperatorsProvider.js +139 -45
- package/lib/esm/formula/FormulaOperatorsProvider.js.map +1 -1
- package/lib/esm/formula/FormulaSplitter.js +63 -13
- package/lib/esm/formula/FormulaSplitter.js.map +1 -1
- package/lib/esm/formula/FormulaTokensDataTypeResolver.js +9 -16
- package/lib/esm/formula/FormulaTokensDataTypeResolver.js.map +1 -1
- package/lib/esm/formula/IResult.d.ts +3 -0
- package/lib/esm/formula/IResult.js.map +1 -1
- package/lib/esm/formula/InfixToPostfixConverter.js +5 -5
- package/lib/esm/formula/InfixToPostfixConverter.js.map +1 -1
- package/lib/esm/formula/InputStream.js +3 -3
- package/lib/esm/formula/InputStream.js.map +1 -1
- package/lib/esm/formula/ParenthesisValidator.js +3 -3
- package/lib/esm/formula/ParenthesisValidator.js.map +1 -1
- package/lib/esm/formula/Queue.js +3 -3
- package/lib/esm/formula/Queue.js.map +1 -1
- package/lib/esm/formula/Stack.js +3 -3
- package/lib/esm/formula/Stack.js.map +1 -1
- package/lib/esm/formula/StringBuilder.js +3 -3
- package/lib/esm/formula/StringBuilder.js.map +1 -1
- package/lib/esm/formula/Types.d.ts +16 -1
- package/lib/esm/formula/Types.js.map +1 -1
- package/lib/esm/formula/Utils.js +4 -4
- package/lib/esm/formula/Utils.js.map +1 -1
- package/lib/esm/grouping-mapping-widget.d.ts +5 -3
- package/lib/esm/grouping-mapping-widget.js +8 -6
- package/lib/esm/grouping-mapping-widget.js.map +1 -1
- package/lib/esm/test/GroupPropertyUtils.test.js +28 -66
- package/lib/esm/test/GroupPropertyUtils.test.js.map +1 -1
- package/lib/esm/test/GroupingMappingCustomUI.test.js +21 -12
- package/lib/esm/test/GroupingMappingCustomUI.test.js.map +1 -1
- package/lib/esm/test/MockFactory.js +3 -3
- package/lib/esm/test/MockFactory.js.map +1 -1
- package/lib/esm/test/PropertyFieldsHelpers.js +3 -3
- package/lib/esm/test/PropertyFieldsHelpers.js.map +1 -1
- package/lib/esm/test/QueryBuilder.test.js +3 -3
- package/lib/esm/test/QueryBuilder.test.js.map +1 -1
- package/lib/esm/test/QueryBuilder.testdata.js +3 -3
- package/lib/esm/test/QueryBuilder.testdata.js.map +1 -1
- package/lib/esm/test/QueryBuilderTestData.js.map +1 -1
- package/lib/esm/test/WidgetHeader.test.js +3 -3
- package/lib/esm/test/WidgetHeader.test.js.map +1 -1
- package/lib/esm/test/test-utils.js +4 -4
- package/lib/esm/test/test-utils.js.map +1 -1
- package/package.json +10 -5
- package/lib/cjs/components/Properties/hooks/useCalculatedPropertiesQuery.d.ts +0 -4
- package/lib/cjs/components/Properties/hooks/useCalculatedPropertiesQuery.js +0 -12
- package/lib/cjs/components/Properties/hooks/useCalculatedPropertiesQuery.js.map +0 -1
- package/lib/cjs/components/Properties/hooks/useCustomCalculationsQuery.d.ts +0 -4
- package/lib/cjs/components/Properties/hooks/useCustomCalculationsQuery.js +0 -12
- package/lib/cjs/components/Properties/hooks/useCustomCalculationsQuery.js.map +0 -1
- package/lib/cjs/components/Properties/hooks/useGroupPropertiesQuery.d.ts +0 -4
- package/lib/cjs/components/Properties/hooks/useGroupPropertiesQuery.js +0 -12
- package/lib/cjs/components/Properties/hooks/useGroupPropertiesQuery.js.map +0 -1
- package/lib/esm/components/Properties/hooks/useCalculatedPropertiesQuery.d.ts +0 -4
- package/lib/esm/components/Properties/hooks/useCalculatedPropertiesQuery.js +0 -8
- package/lib/esm/components/Properties/hooks/useCalculatedPropertiesQuery.js.map +0 -1
- package/lib/esm/components/Properties/hooks/useCustomCalculationsQuery.d.ts +0 -4
- package/lib/esm/components/Properties/hooks/useCustomCalculationsQuery.js +0 -8
- package/lib/esm/components/Properties/hooks/useCustomCalculationsQuery.js.map +0 -1
- package/lib/esm/components/Properties/hooks/useGroupPropertiesQuery.d.ts +0 -4
- package/lib/esm/components/Properties/hooks/useGroupPropertiesQuery.js +0 -8
- package/lib/esm/components/Properties/hooks/useGroupPropertiesQuery.js.map +0 -1
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import type { IModelConnection } from "@itwin/core-frontend";
|
|
2
|
-
import type {
|
|
3
|
-
import { DataType } from "@itwin/insights-client";
|
|
2
|
+
import type { ECPropertyReference } from "@itwin/insights-client";
|
|
4
3
|
import type { Field, KeySet } from "@itwin/presentation-common";
|
|
5
4
|
export interface PropertyMetaData {
|
|
6
5
|
displayLabel: string;
|
|
7
6
|
sourceSchema: string;
|
|
8
7
|
sourceClassName: string;
|
|
9
8
|
categoryLabel: string;
|
|
10
|
-
propertyType: DataType;
|
|
11
9
|
actualECClassName: string;
|
|
12
10
|
parentPropertyClassName: string | undefined;
|
|
13
11
|
ecPropertyTraversal: string[];
|
|
@@ -15,7 +13,7 @@ export interface PropertyMetaData {
|
|
|
15
13
|
key: string;
|
|
16
14
|
}
|
|
17
15
|
export declare const convertPresentationFields: (propertyFields: Field[]) => PropertyMetaData[];
|
|
18
|
-
export declare const convertToECProperties: (property: PropertyMetaData) =>
|
|
19
|
-
export declare const findProperties: (ecProperties:
|
|
16
|
+
export declare const convertToECProperties: (property: PropertyMetaData) => ECPropertyReference[];
|
|
17
|
+
export declare const findProperties: (ecProperties: ECPropertyReference[], propertiesMetaData: PropertyMetaData[]) => PropertyMetaData[];
|
|
20
18
|
export declare const fetchPresentationDescriptor: (iModelConnection: IModelConnection, keySet: KeySet) => Promise<import("@itwin/presentation-common").Descriptor | undefined>;
|
|
21
19
|
//# sourceMappingURL=GroupPropertyUtils.d.ts.map
|
|
@@ -1,23 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ContentSpecificationTypes, DefaultContentDisplayTypes, PropertyValueFormat, RelationshipMeaning, RuleTypes, } from "@itwin/presentation-common";
|
|
1
|
+
import { ContentSpecificationTypes, DefaultContentDisplayTypes, PropertyValueFormat, RelationshipMeaning, RuleTypes } from "@itwin/presentation-common";
|
|
3
2
|
import { Presentation } from "@itwin/presentation-frontend";
|
|
4
3
|
import { deepEqual } from "fast-equals";
|
|
5
|
-
const convertType = (type) => {
|
|
6
|
-
switch (type) {
|
|
7
|
-
case "int":
|
|
8
|
-
case "enum":
|
|
9
|
-
case "long":
|
|
10
|
-
return DataType.Integer;
|
|
11
|
-
case "boolean":
|
|
12
|
-
return DataType.Boolean;
|
|
13
|
-
case "double":
|
|
14
|
-
return DataType.Double;
|
|
15
|
-
case "number":
|
|
16
|
-
return DataType.Number;
|
|
17
|
-
default:
|
|
18
|
-
return DataType.String;
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
4
|
const generateKey = (parentPropertyClassName, actualECClassName, propertyTraversal) => {
|
|
22
5
|
return `${parentPropertyClassName}|${actualECClassName}|${propertyTraversal.join("|")}`;
|
|
23
6
|
};
|
|
@@ -27,44 +10,36 @@ const extractPrimitives = (propertyTraversal, propertyField) => propertyField.pr
|
|
|
27
10
|
// It belongs to this parent class
|
|
28
11
|
const parentPropertyClassName = propertyField.parent?.contentClassInfo.name;
|
|
29
12
|
const primitiveNavigationClass = property.property.navigationPropertyInfo?.classInfo.name ?? "";
|
|
30
|
-
/* Presentation assigns primitive navigations properties as a long type due to how it stores the
|
|
31
|
-
ECInstanceId of the class in the meta.ECClassDef table on the C++ layer.
|
|
32
|
-
We are handling this special case.
|
|
33
|
-
*/
|
|
34
|
-
const propertyType = primitiveNavigationClass ? DataType.String : convertType(property.property.type);
|
|
35
13
|
const actualECClassName = property.property.classInfo.name;
|
|
36
14
|
const newPropertyTraversal = [...propertyTraversal, propertyName];
|
|
37
|
-
return
|
|
15
|
+
return {
|
|
38
16
|
displayLabel,
|
|
39
17
|
sourceSchema: "*",
|
|
40
18
|
sourceClassName: "*",
|
|
41
19
|
ecPropertyTraversal: newPropertyTraversal,
|
|
42
|
-
propertyType,
|
|
43
20
|
primitiveNavigationClass,
|
|
44
21
|
actualECClassName,
|
|
45
22
|
parentPropertyClassName,
|
|
46
23
|
key: generateKey(parentPropertyClassName, actualECClassName, newPropertyTraversal),
|
|
47
24
|
categoryLabel: propertyField.category.label,
|
|
48
|
-
}
|
|
25
|
+
};
|
|
49
26
|
});
|
|
50
27
|
const extractPrimitiveStructProperties = (propertyTraversal, members, categoryLabel, actualECClassName, parentPropertyClassName) => members.flatMap((member) => {
|
|
51
28
|
if (member.type.valueFormat === PropertyValueFormat.Primitive) {
|
|
52
29
|
const propertyName = member.name;
|
|
53
30
|
const displayLabel = member.label;
|
|
54
|
-
const propertyType = convertType(member.type.typeName);
|
|
55
31
|
const newPropertyTraversal = [...propertyTraversal, propertyName];
|
|
56
|
-
return
|
|
32
|
+
return {
|
|
57
33
|
displayLabel,
|
|
58
34
|
sourceSchema: "*",
|
|
59
35
|
sourceClassName: "*",
|
|
60
36
|
ecPropertyTraversal: newPropertyTraversal,
|
|
61
|
-
propertyType,
|
|
62
37
|
primitiveNavigationClass: "",
|
|
63
38
|
actualECClassName,
|
|
64
39
|
parentPropertyClassName,
|
|
65
40
|
key: generateKey(parentPropertyClassName, actualECClassName, newPropertyTraversal),
|
|
66
41
|
categoryLabel,
|
|
67
|
-
}
|
|
42
|
+
};
|
|
68
43
|
}
|
|
69
44
|
else if (member.type.valueFormat === PropertyValueFormat.Struct) {
|
|
70
45
|
const structName = member.name;
|
|
@@ -76,8 +51,7 @@ const extractStruct = (property) => {
|
|
|
76
51
|
if (property.type.valueFormat !== PropertyValueFormat.Struct) {
|
|
77
52
|
return [];
|
|
78
53
|
}
|
|
79
|
-
const columnName = property.properties[0]
|
|
80
|
-
.property.name;
|
|
54
|
+
const columnName = property.properties[0].property.name;
|
|
81
55
|
const actualECClassName = property.properties[0].property.classInfo.name;
|
|
82
56
|
return extractPrimitiveStructProperties([columnName], property.type.members, property.category.label, actualECClassName);
|
|
83
57
|
};
|
|
@@ -91,8 +65,7 @@ const extractNested = (propertyTraversal, propertyFields) => propertyFields.flat
|
|
|
91
65
|
case PropertyValueFormat.Struct: {
|
|
92
66
|
const nestedContentField = property;
|
|
93
67
|
// Only handling single path and not handling nested content fields within navigations
|
|
94
|
-
if (nestedContentField.pathToPrimaryClass &&
|
|
95
|
-
nestedContentField.pathToPrimaryClass.length > 1) {
|
|
68
|
+
if (nestedContentField.pathToPrimaryClass && nestedContentField.pathToPrimaryClass.length > 1) {
|
|
96
69
|
// Hardcoded navigation to external source repository metadata.
|
|
97
70
|
if (nestedContentField.contentClassInfo.name === "BisCore:RepositoryLink") {
|
|
98
71
|
return extractNested([...propertyTraversal, "Source", "Repository"], nestedContentField.nestedFields);
|
|
@@ -105,8 +78,7 @@ const extractNested = (propertyTraversal, propertyFields) => propertyFields.flat
|
|
|
105
78
|
case RelationshipMeaning.RelatedInstance: {
|
|
106
79
|
if (
|
|
107
80
|
// Deal with a TypeDefinition
|
|
108
|
-
nestedContentField.pathToPrimaryClass[0].relationshipInfo.name ===
|
|
109
|
-
"BisCore:GeometricElement3dHasTypeDefinition") {
|
|
81
|
+
nestedContentField.pathToPrimaryClass[0].relationshipInfo.name === "BisCore:GeometricElement3dHasTypeDefinition") {
|
|
110
82
|
return extractNested([...propertyTraversal, "TypeDefinition"], nestedContentField.nestedFields);
|
|
111
83
|
}
|
|
112
84
|
break;
|
|
@@ -141,17 +113,14 @@ export const convertPresentationFields = (propertyFields) => {
|
|
|
141
113
|
// Get structs
|
|
142
114
|
const nestedContentField = property;
|
|
143
115
|
// Only handling single path and not handling nested content fields within navigations
|
|
144
|
-
if (nestedContentField.pathToPrimaryClass &&
|
|
145
|
-
nestedContentField.pathToPrimaryClass.length > 1) {
|
|
116
|
+
if (nestedContentField.pathToPrimaryClass && nestedContentField.pathToPrimaryClass.length > 1) {
|
|
146
117
|
break;
|
|
147
118
|
}
|
|
148
119
|
switch (nestedContentField.relationshipMeaning) {
|
|
149
120
|
case RelationshipMeaning.SameInstance: {
|
|
150
121
|
// Check for aspects.
|
|
151
|
-
if (
|
|
152
|
-
.name === "BisCore:
|
|
153
|
-
nestedContentField.pathToPrimaryClass[0].relationshipInfo
|
|
154
|
-
.name === "BisCore:ElementOwnsMultiAspects")) {
|
|
122
|
+
if (nestedContentField.pathToPrimaryClass[0].relationshipInfo.name === "BisCore:ElementOwnsUniqueAspect" ||
|
|
123
|
+
nestedContentField.pathToPrimaryClass[0].relationshipInfo.name === "BisCore:ElementOwnsMultiAspects") {
|
|
155
124
|
const fullClassName = nestedContentField.contentClassInfo.name;
|
|
156
125
|
const sourceSchema = fullClassName.split(":")[0];
|
|
157
126
|
const sourceClassName = fullClassName.split(":")[1];
|
|
@@ -167,8 +136,7 @@ export const convertPresentationFields = (propertyFields) => {
|
|
|
167
136
|
// Navigation properties
|
|
168
137
|
if (
|
|
169
138
|
// Deal with a TypeDefinition
|
|
170
|
-
nestedContentField.pathToPrimaryClass[0].relationshipInfo.name ===
|
|
171
|
-
"BisCore:GeometricElement3dHasTypeDefinition") {
|
|
139
|
+
nestedContentField.pathToPrimaryClass[0].relationshipInfo.name === "BisCore:GeometricElement3dHasTypeDefinition") {
|
|
172
140
|
const extractedNested = extractNested(["TypeDefinition"], nestedContentField.nestedFields);
|
|
173
141
|
extractedNested.forEach((ecProperty) => {
|
|
174
142
|
uniquePropertiesMap.set(ecProperty.key, ecProperty);
|
|
@@ -196,7 +164,6 @@ export const convertToECProperties = (property) => {
|
|
|
196
164
|
const ecProperty = {
|
|
197
165
|
ecSchemaName: property.sourceSchema,
|
|
198
166
|
ecClassName: property.sourceClassName,
|
|
199
|
-
ecPropertyType: property.propertyType,
|
|
200
167
|
ecPropertyName: "",
|
|
201
168
|
};
|
|
202
169
|
switch (property.primitiveNavigationClass) {
|
|
@@ -205,19 +172,11 @@ export const convertToECProperties = (property) => {
|
|
|
205
172
|
return [
|
|
206
173
|
{
|
|
207
174
|
...ecProperty,
|
|
208
|
-
ecPropertyName: [
|
|
209
|
-
...property.ecPropertyTraversal,
|
|
210
|
-
"ModeledElement",
|
|
211
|
-
"UserLabel",
|
|
212
|
-
].join("."),
|
|
175
|
+
ecPropertyName: [...property.ecPropertyTraversal, "ModeledElement", "UserLabel"].join("."),
|
|
213
176
|
},
|
|
214
177
|
{
|
|
215
178
|
...ecProperty,
|
|
216
|
-
ecPropertyName: [
|
|
217
|
-
...property.ecPropertyTraversal,
|
|
218
|
-
"ModeledElement",
|
|
219
|
-
"CodeValue",
|
|
220
|
-
].join("."),
|
|
179
|
+
ecPropertyName: [...property.ecPropertyTraversal, "ModeledElement", "CodeValue"].join("."),
|
|
221
180
|
},
|
|
222
181
|
];
|
|
223
182
|
}
|
|
@@ -227,17 +186,11 @@ export const convertToECProperties = (property) => {
|
|
|
227
186
|
return [
|
|
228
187
|
{
|
|
229
188
|
...ecProperty,
|
|
230
|
-
ecPropertyName: [
|
|
231
|
-
...property.ecPropertyTraversal,
|
|
232
|
-
"UserLabel",
|
|
233
|
-
].join("."),
|
|
189
|
+
ecPropertyName: [...property.ecPropertyTraversal, "UserLabel"].join("."),
|
|
234
190
|
},
|
|
235
191
|
{
|
|
236
192
|
...ecProperty,
|
|
237
|
-
ecPropertyName: [
|
|
238
|
-
...property.ecPropertyTraversal,
|
|
239
|
-
"CodeValue",
|
|
240
|
-
].join("."),
|
|
193
|
+
ecPropertyName: [...property.ecPropertyTraversal, "CodeValue"].join("."),
|
|
241
194
|
},
|
|
242
195
|
];
|
|
243
196
|
default: {
|
|
@@ -281,13 +234,15 @@ export const fetchPresentationDescriptor = async (iModelConnection, keySet) => {
|
|
|
281
234
|
specifications: [
|
|
282
235
|
{
|
|
283
236
|
specType: ContentSpecificationTypes.SelectedNodeInstances,
|
|
284
|
-
propertyOverrides: [
|
|
237
|
+
propertyOverrides: [
|
|
238
|
+
{
|
|
285
239
|
name: "*",
|
|
286
240
|
isDisplayed: true,
|
|
287
|
-
}
|
|
241
|
+
},
|
|
242
|
+
],
|
|
288
243
|
},
|
|
289
244
|
],
|
|
290
|
-
}
|
|
245
|
+
},
|
|
291
246
|
],
|
|
292
247
|
};
|
|
293
248
|
const requestOptions = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupPropertyUtils.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/GroupPropertyUtils.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 type { ECProperty } from \"@itwin/insights-client\";\nimport { DataType } from \"@itwin/insights-client\";\nimport type {\n ContentDescriptorRequestOptions,\n Field,\n KeySet,\n NestedContentField,\n PropertiesField,\n Ruleset,\n RulesetVariable,\n StructFieldMemberDescription,\n} from \"@itwin/presentation-common\";\nimport {\n ContentSpecificationTypes,\n DefaultContentDisplayTypes,\n PropertyValueFormat,\n RelationshipMeaning,\n RuleTypes,\n} from \"@itwin/presentation-common\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport { deepEqual } from \"fast-equals\";\n\nexport interface PropertyMetaData {\n displayLabel: string;\n sourceSchema: string;\n sourceClassName: string;\n categoryLabel: string;\n propertyType: DataType;\n actualECClassName: string;\n parentPropertyClassName: string | undefined;\n ecPropertyTraversal: string[];\n primitiveNavigationClass: string;\n key: string;\n}\n\nconst convertType = (type: string): DataType => {\n switch (type) {\n case \"int\":\n case \"enum\":\n case \"long\":\n return DataType.Integer;\n case \"boolean\":\n return DataType.Boolean;\n case \"double\":\n return DataType.Double;\n case \"number\":\n return DataType.Number;\n default:\n return DataType.String;\n }\n};\n\nconst generateKey = (\n parentPropertyClassName: string | undefined,\n actualECClassName: string,\n propertyTraversal: string[]\n): string => {\n return `${parentPropertyClassName}|${actualECClassName}|${propertyTraversal.join(\"|\")}`;\n};\n\nconst extractPrimitives = (\n propertyTraversal: string[],\n propertyField: PropertiesField\n): PropertyMetaData[] => propertyField.properties.map((property) => {\n const propertyName = property.property.name;\n const displayLabel = propertyField.label;\n // It belongs to this parent class\n const parentPropertyClassName = propertyField.parent?.contentClassInfo.name;\n const primitiveNavigationClass = property.property.navigationPropertyInfo?.classInfo.name ?? \"\";\n /* Presentation assigns primitive navigations properties as a long type due to how it stores the\n ECInstanceId of the class in the meta.ECClassDef table on the C++ layer.\n We are handling this special case.\n */\n const propertyType = primitiveNavigationClass ? DataType.String : convertType(property.property.type);\n const actualECClassName = property.property.classInfo.name;\n const newPropertyTraversal = [...propertyTraversal, propertyName];\n\n return (\n {\n displayLabel,\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: newPropertyTraversal,\n propertyType,\n primitiveNavigationClass,\n actualECClassName,\n parentPropertyClassName,\n key: generateKey(parentPropertyClassName, actualECClassName, newPropertyTraversal),\n categoryLabel: propertyField.category.label,\n }\n );\n});\n\nconst extractPrimitiveStructProperties = (\n propertyTraversal: string[],\n members: StructFieldMemberDescription[],\n categoryLabel: string,\n actualECClassName: string,\n parentPropertyClassName?: string,\n): PropertyMetaData[] => members.flatMap((member) => {\n if (member.type.valueFormat === PropertyValueFormat.Primitive) {\n const propertyName = member.name;\n const displayLabel = member.label;\n const propertyType = convertType(member.type.typeName);\n const newPropertyTraversal = [...propertyTraversal, propertyName];\n\n return ({\n displayLabel,\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: newPropertyTraversal,\n propertyType,\n primitiveNavigationClass: \"\",\n actualECClassName,\n parentPropertyClassName,\n key: generateKey(parentPropertyClassName, actualECClassName, newPropertyTraversal),\n categoryLabel,\n });\n\n } else if (member.type.valueFormat === PropertyValueFormat.Struct) {\n const structName = member.name;\n return extractPrimitiveStructProperties(\n [...propertyTraversal, structName],\n member.type.members,\n categoryLabel,\n actualECClassName,\n parentPropertyClassName\n );\n }\n\n return [];\n});\n\nconst extractStruct = (property: Field) => {\n if (property.type.valueFormat !== PropertyValueFormat.Struct) {\n return [];\n }\n\n const columnName = (property as PropertiesField).properties[0]\n .property.name;\n const actualECClassName = (property as PropertiesField).properties[0].property.classInfo.name;\n return extractPrimitiveStructProperties(\n [columnName],\n property.type.members,\n property.category.label,\n actualECClassName\n );\n};\n\nconst extractNested = (propertyTraversal: string[], propertyFields: Field[]): PropertyMetaData[] =>\n propertyFields.flatMap((property) => {\n // Generate base ECProperty\n switch (property.type.valueFormat) {\n case PropertyValueFormat.Primitive: {\n return extractPrimitives([...propertyTraversal], property as PropertiesField);\n }\n // Get structs\n case PropertyValueFormat.Struct: {\n const nestedContentField = property as NestedContentField;\n // Only handling single path and not handling nested content fields within navigations\n if (\n nestedContentField.pathToPrimaryClass &&\n nestedContentField.pathToPrimaryClass.length > 1\n ) {\n // Hardcoded navigation to external source repository metadata.\n if (nestedContentField.contentClassInfo.name === \"BisCore:RepositoryLink\") {\n return extractNested([...propertyTraversal, \"Source\", \"Repository\"], nestedContentField.nestedFields);\n }\n break;\n }\n\n switch (nestedContentField.relationshipMeaning) {\n // Aspects are not looked at again. Extraction does not support aspects within navigations.\n // Navigation properties\n case RelationshipMeaning.RelatedInstance: {\n if (\n // Deal with a TypeDefinition\n nestedContentField.pathToPrimaryClass[0].relationshipInfo.name ===\n \"BisCore:GeometricElement3dHasTypeDefinition\"\n ) {\n return extractNested([...propertyTraversal, \"TypeDefinition\"], nestedContentField.nestedFields);\n }\n break;\n }\n default: {\n // Some elements don't have a path to primary class or relationship meaning..\n // Most likely a simple struct property\n if (!nestedContentField.pathToPrimaryClass) {\n return extractStruct(property);\n }\n }\n }\n }\n }\n return [];\n });\n\nexport const convertPresentationFields = (propertyFields: Field[]): PropertyMetaData[] => {\n const uniquePropertiesMap = new Map<string, PropertyMetaData>();\n\n propertyFields.forEach((property) => {\n switch (property.type.valueFormat) {\n case PropertyValueFormat.Primitive: {\n // Generate base ECProperty\n const extractedPrimitives = extractPrimitives([], property as PropertiesField);\n extractedPrimitives.forEach((extractedPrimitive) => {\n extractedPrimitive.sourceSchema = \"*\";\n extractedPrimitive.sourceClassName = \"*\";\n uniquePropertiesMap.set(extractedPrimitive.key, extractedPrimitive);\n });\n break;\n }\n case PropertyValueFormat.Struct: {\n // Get structs\n const nestedContentField = property as NestedContentField;\n // Only handling single path and not handling nested content fields within navigations\n if (\n nestedContentField.pathToPrimaryClass &&\n nestedContentField.pathToPrimaryClass.length > 1\n ) {\n break;\n }\n switch (nestedContentField.relationshipMeaning) {\n case RelationshipMeaning.SameInstance: {\n // Check for aspects.\n if (\n (nestedContentField.pathToPrimaryClass[0].relationshipInfo\n .name === \"BisCore:ElementOwnsUniqueAspect\" ||\n nestedContentField.pathToPrimaryClass[0].relationshipInfo\n .name === \"BisCore:ElementOwnsMultiAspects\")\n ) {\n const fullClassName = nestedContentField.contentClassInfo.name;\n const sourceSchema = fullClassName.split(\":\")[0];\n const sourceClassName = fullClassName.split(\":\")[1];\n const extractedNested = extractNested([], nestedContentField.nestedFields);\n extractedNested.forEach((ecProperty) => {\n const propertyWithSchema = { ...ecProperty, sourceSchema, sourceClassName };\n uniquePropertiesMap.set(propertyWithSchema.key, propertyWithSchema);\n });\n }\n break;\n }\n case RelationshipMeaning.RelatedInstance: {\n // Navigation properties\n if (\n // Deal with a TypeDefinition\n nestedContentField.pathToPrimaryClass[0].relationshipInfo.name ===\n \"BisCore:GeometricElement3dHasTypeDefinition\"\n ) {\n const extractedNested = extractNested([\"TypeDefinition\"], nestedContentField.nestedFields);\n extractedNested.forEach((ecProperty) => {\n uniquePropertiesMap.set(ecProperty.key, ecProperty);\n });\n }\n break;\n }\n default: {\n // Some elements don't have a path to primary class or relationship meaning..\n // Most likely a simple struct property\n if (!nestedContentField.pathToPrimaryClass) {\n const extractedStruct = extractStruct(property);\n extractedStruct.forEach((ecProperty) => {\n uniquePropertiesMap.set(ecProperty.key, ecProperty);\n });\n }\n }\n }\n }\n }\n });\n\n return Array.from(uniquePropertiesMap.values());\n};\n\nexport const convertToECProperties = (property: PropertyMetaData): ECProperty[] => {\n const ecProperty: ECProperty = {\n ecSchemaName: property.sourceSchema,\n ecClassName: property.sourceClassName,\n ecPropertyType: property.propertyType,\n ecPropertyName: \"\",\n };\n switch (property.primitiveNavigationClass) {\n // Hardcode Models navigation path and label behavior\n case \"BisCore:ModelContainsElements\": {\n return [\n {\n ...ecProperty,\n ecPropertyName: [\n ...property.ecPropertyTraversal,\n \"ModeledElement\",\n \"UserLabel\",\n ].join(\".\"),\n },\n {\n ...ecProperty,\n ecPropertyName: [\n ...property.ecPropertyTraversal,\n \"ModeledElement\",\n \"CodeValue\",\n ].join(\".\"),\n },\n ];\n }\n // Hardcode Category and Physical Material navigation path and label behavior\n case \"BisCore:GeometricElement3dIsInCategory\":\n case \"BisCore:PhysicalElementIsOfPhysicalMaterial\":\n return [\n {\n ...ecProperty,\n ecPropertyName: [\n ...property.ecPropertyTraversal,\n \"UserLabel\",\n ].join(\".\"),\n },\n {\n ...ecProperty,\n ecPropertyName: [\n ...property.ecPropertyTraversal,\n \"CodeValue\",\n ].join(\".\"),\n },\n ];\n default: {\n return [\n {\n ...ecProperty,\n ecPropertyName: property.ecPropertyTraversal.join(\".\"),\n },\n ];\n }\n }\n};\n\nexport const findProperties = (ecProperties: ECProperty[], propertiesMetaData: PropertyMetaData[]) => {\n let ecPropertiesCopy = [...ecProperties];\n const propertiesMetaDataResult: PropertyMetaData[] = new Array<PropertyMetaData>();\n let notFound = false;\n while (ecPropertiesCopy.length !== 0) {\n for (let i = 0; i < propertiesMetaData.length; i++) {\n const generatedProperty = convertToECProperties(propertiesMetaData[i]);\n const slicedEcProperties = ecPropertiesCopy.slice(0, generatedProperty.length);\n if (deepEqual(generatedProperty, slicedEcProperties)) {\n propertiesMetaDataResult.push(propertiesMetaData[i]);\n ecPropertiesCopy = ecPropertiesCopy.slice(generatedProperty.length);\n break;\n }\n if (i === propertiesMetaData.length - 1) {\n notFound = true;\n }\n }\n if (notFound)\n break;\n }\n return notFound ? [] : propertiesMetaDataResult;\n};\n\nexport const fetchPresentationDescriptor = async (iModelConnection: IModelConnection, keySet: KeySet) => {\n const ruleSet: Ruleset = {\n id: \"gmw-element-properties\",\n rules: [\n {\n ruleType: RuleTypes.Content,\n specifications: [\n {\n specType: ContentSpecificationTypes.SelectedNodeInstances,\n propertyOverrides: [{\n name: \"*\",\n isDisplayed: true,\n }],\n },\n ],\n }],\n };\n const requestOptions: ContentDescriptorRequestOptions<IModelConnection, KeySet, RulesetVariable> = {\n imodel: iModelConnection,\n keys: keySet,\n rulesetOrId: ruleSet,\n displayType: DefaultContentDisplayTypes.PropertyPane,\n };\n const descriptor = await Presentation.presentation.getContentDescriptor(\n requestOptions\n );\n return descriptor;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"GroupPropertyUtils.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/GroupPropertyUtils.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 type { ECPropertyReference } from \"@itwin/insights-client\";\nimport type {\n ContentDescriptorRequestOptions,\n Field,\n KeySet,\n NestedContentField,\n PropertiesField,\n Ruleset,\n RulesetVariable,\n StructFieldMemberDescription,\n} from \"@itwin/presentation-common\";\nimport { ContentSpecificationTypes, DefaultContentDisplayTypes, PropertyValueFormat, RelationshipMeaning, RuleTypes } from \"@itwin/presentation-common\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport { deepEqual } from \"fast-equals\";\n\nexport interface PropertyMetaData {\n displayLabel: string;\n sourceSchema: string;\n sourceClassName: string;\n categoryLabel: string;\n actualECClassName: string;\n parentPropertyClassName: string | undefined;\n ecPropertyTraversal: string[];\n primitiveNavigationClass: string;\n key: string;\n}\n\nconst generateKey = (parentPropertyClassName: string | undefined, actualECClassName: string, propertyTraversal: string[]): string => {\n return `${parentPropertyClassName}|${actualECClassName}|${propertyTraversal.join(\"|\")}`;\n};\n\nconst extractPrimitives = (propertyTraversal: string[], propertyField: PropertiesField): PropertyMetaData[] =>\n propertyField.properties.map((property) => {\n const propertyName = property.property.name;\n const displayLabel = propertyField.label;\n // It belongs to this parent class\n const parentPropertyClassName = propertyField.parent?.contentClassInfo.name;\n const primitiveNavigationClass = property.property.navigationPropertyInfo?.classInfo.name ?? \"\";\n const actualECClassName = property.property.classInfo.name;\n const newPropertyTraversal = [...propertyTraversal, propertyName];\n\n return {\n displayLabel,\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: newPropertyTraversal,\n primitiveNavigationClass,\n actualECClassName,\n parentPropertyClassName,\n key: generateKey(parentPropertyClassName, actualECClassName, newPropertyTraversal),\n categoryLabel: propertyField.category.label,\n };\n });\n\nconst extractPrimitiveStructProperties = (\n propertyTraversal: string[],\n members: StructFieldMemberDescription[],\n categoryLabel: string,\n actualECClassName: string,\n parentPropertyClassName?: string,\n): PropertyMetaData[] =>\n members.flatMap((member) => {\n if (member.type.valueFormat === PropertyValueFormat.Primitive) {\n const propertyName = member.name;\n const displayLabel = member.label;\n const newPropertyTraversal = [...propertyTraversal, propertyName];\n\n return {\n displayLabel,\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: newPropertyTraversal,\n primitiveNavigationClass: \"\",\n actualECClassName,\n parentPropertyClassName,\n key: generateKey(parentPropertyClassName, actualECClassName, newPropertyTraversal),\n categoryLabel,\n };\n } else if (member.type.valueFormat === PropertyValueFormat.Struct) {\n const structName = member.name;\n return extractPrimitiveStructProperties(\n [...propertyTraversal, structName],\n member.type.members,\n categoryLabel,\n actualECClassName,\n parentPropertyClassName,\n );\n }\n\n return [];\n });\n\nconst extractStruct = (property: Field) => {\n if (property.type.valueFormat !== PropertyValueFormat.Struct) {\n return [];\n }\n\n const columnName = (property as PropertiesField).properties[0].property.name;\n const actualECClassName = (property as PropertiesField).properties[0].property.classInfo.name;\n return extractPrimitiveStructProperties([columnName], property.type.members, property.category.label, actualECClassName);\n};\n\nconst extractNested = (propertyTraversal: string[], propertyFields: Field[]): PropertyMetaData[] =>\n propertyFields.flatMap((property) => {\n // Generate base ECProperty\n switch (property.type.valueFormat) {\n case PropertyValueFormat.Primitive: {\n return extractPrimitives([...propertyTraversal], property as PropertiesField);\n }\n // Get structs\n case PropertyValueFormat.Struct: {\n const nestedContentField = property as NestedContentField;\n // Only handling single path and not handling nested content fields within navigations\n if (nestedContentField.pathToPrimaryClass && nestedContentField.pathToPrimaryClass.length > 1) {\n // Hardcoded navigation to external source repository metadata.\n if (nestedContentField.contentClassInfo.name === \"BisCore:RepositoryLink\") {\n return extractNested([...propertyTraversal, \"Source\", \"Repository\"], nestedContentField.nestedFields);\n }\n break;\n }\n\n switch (nestedContentField.relationshipMeaning) {\n // Aspects are not looked at again. Extraction does not support aspects within navigations.\n // Navigation properties\n case RelationshipMeaning.RelatedInstance: {\n if (\n // Deal with a TypeDefinition\n nestedContentField.pathToPrimaryClass[0].relationshipInfo.name === \"BisCore:GeometricElement3dHasTypeDefinition\"\n ) {\n return extractNested([...propertyTraversal, \"TypeDefinition\"], nestedContentField.nestedFields);\n }\n break;\n }\n default: {\n // Some elements don't have a path to primary class or relationship meaning..\n // Most likely a simple struct property\n if (!nestedContentField.pathToPrimaryClass) {\n return extractStruct(property);\n }\n }\n }\n }\n }\n return [];\n });\n\nexport const convertPresentationFields = (propertyFields: Field[]): PropertyMetaData[] => {\n const uniquePropertiesMap = new Map<string, PropertyMetaData>();\n\n propertyFields.forEach((property) => {\n switch (property.type.valueFormat) {\n case PropertyValueFormat.Primitive: {\n // Generate base ECProperty\n const extractedPrimitives = extractPrimitives([], property as PropertiesField);\n extractedPrimitives.forEach((extractedPrimitive) => {\n extractedPrimitive.sourceSchema = \"*\";\n extractedPrimitive.sourceClassName = \"*\";\n uniquePropertiesMap.set(extractedPrimitive.key, extractedPrimitive);\n });\n break;\n }\n case PropertyValueFormat.Struct: {\n // Get structs\n const nestedContentField = property as NestedContentField;\n // Only handling single path and not handling nested content fields within navigations\n if (nestedContentField.pathToPrimaryClass && nestedContentField.pathToPrimaryClass.length > 1) {\n break;\n }\n switch (nestedContentField.relationshipMeaning) {\n case RelationshipMeaning.SameInstance: {\n // Check for aspects.\n if (\n nestedContentField.pathToPrimaryClass[0].relationshipInfo.name === \"BisCore:ElementOwnsUniqueAspect\" ||\n nestedContentField.pathToPrimaryClass[0].relationshipInfo.name === \"BisCore:ElementOwnsMultiAspects\"\n ) {\n const fullClassName = nestedContentField.contentClassInfo.name;\n const sourceSchema = fullClassName.split(\":\")[0];\n const sourceClassName = fullClassName.split(\":\")[1];\n const extractedNested = extractNested([], nestedContentField.nestedFields);\n extractedNested.forEach((ecProperty) => {\n const propertyWithSchema = { ...ecProperty, sourceSchema, sourceClassName };\n uniquePropertiesMap.set(propertyWithSchema.key, propertyWithSchema);\n });\n }\n break;\n }\n case RelationshipMeaning.RelatedInstance: {\n // Navigation properties\n if (\n // Deal with a TypeDefinition\n nestedContentField.pathToPrimaryClass[0].relationshipInfo.name === \"BisCore:GeometricElement3dHasTypeDefinition\"\n ) {\n const extractedNested = extractNested([\"TypeDefinition\"], nestedContentField.nestedFields);\n extractedNested.forEach((ecProperty) => {\n uniquePropertiesMap.set(ecProperty.key, ecProperty);\n });\n }\n break;\n }\n default: {\n // Some elements don't have a path to primary class or relationship meaning..\n // Most likely a simple struct property\n if (!nestedContentField.pathToPrimaryClass) {\n const extractedStruct = extractStruct(property);\n extractedStruct.forEach((ecProperty) => {\n uniquePropertiesMap.set(ecProperty.key, ecProperty);\n });\n }\n }\n }\n }\n }\n });\n\n return Array.from(uniquePropertiesMap.values());\n};\n\nexport const convertToECProperties = (property: PropertyMetaData): ECPropertyReference[] => {\n const ecProperty: ECPropertyReference = {\n ecSchemaName: property.sourceSchema,\n ecClassName: property.sourceClassName,\n ecPropertyName: \"\",\n };\n switch (property.primitiveNavigationClass) {\n // Hardcode Models navigation path and label behavior\n case \"BisCore:ModelContainsElements\": {\n return [\n {\n ...ecProperty,\n ecPropertyName: [...property.ecPropertyTraversal, \"ModeledElement\", \"UserLabel\"].join(\".\"),\n },\n {\n ...ecProperty,\n ecPropertyName: [...property.ecPropertyTraversal, \"ModeledElement\", \"CodeValue\"].join(\".\"),\n },\n ];\n }\n // Hardcode Category and Physical Material navigation path and label behavior\n case \"BisCore:GeometricElement3dIsInCategory\":\n case \"BisCore:PhysicalElementIsOfPhysicalMaterial\":\n return [\n {\n ...ecProperty,\n ecPropertyName: [...property.ecPropertyTraversal, \"UserLabel\"].join(\".\"),\n },\n {\n ...ecProperty,\n ecPropertyName: [...property.ecPropertyTraversal, \"CodeValue\"].join(\".\"),\n },\n ];\n default: {\n return [\n {\n ...ecProperty,\n ecPropertyName: property.ecPropertyTraversal.join(\".\"),\n },\n ];\n }\n }\n};\n\nexport const findProperties = (ecProperties: ECPropertyReference[], propertiesMetaData: PropertyMetaData[]) => {\n let ecPropertiesCopy = [...ecProperties];\n const propertiesMetaDataResult: PropertyMetaData[] = new Array<PropertyMetaData>();\n let notFound = false;\n while (ecPropertiesCopy.length !== 0) {\n for (let i = 0; i < propertiesMetaData.length; i++) {\n const generatedProperty = convertToECProperties(propertiesMetaData[i]);\n const slicedEcProperties = ecPropertiesCopy.slice(0, generatedProperty.length);\n if (deepEqual(generatedProperty, slicedEcProperties)) {\n propertiesMetaDataResult.push(propertiesMetaData[i]);\n ecPropertiesCopy = ecPropertiesCopy.slice(generatedProperty.length);\n break;\n }\n if (i === propertiesMetaData.length - 1) {\n notFound = true;\n }\n }\n if (notFound) break;\n }\n return notFound ? [] : propertiesMetaDataResult;\n};\n\nexport const fetchPresentationDescriptor = async (iModelConnection: IModelConnection, keySet: KeySet) => {\n const ruleSet: Ruleset = {\n id: \"gmw-element-properties\",\n rules: [\n {\n ruleType: RuleTypes.Content,\n specifications: [\n {\n specType: ContentSpecificationTypes.SelectedNodeInstances,\n propertyOverrides: [\n {\n name: \"*\",\n isDisplayed: true,\n },\n ],\n },\n ],\n },\n ],\n };\n const requestOptions: ContentDescriptorRequestOptions<IModelConnection, KeySet, RulesetVariable> = {\n imodel: iModelConnection,\n keys: keySet,\n rulesetOrId: ruleSet,\n displayType: DefaultContentDisplayTypes.PropertyPane,\n };\n const descriptor = await Presentation.presentation.getContentDescriptor(requestOptions);\n return descriptor;\n};\n"]}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
import { renderToStaticMarkup } from "react-dom/server";
|
|
6
|
-
import { Button, Icon, IconButton, Label, LabeledInput, Modal, ModalButtonBar, Surface, Text
|
|
6
|
+
import { Button, Icon, IconButton, Label, LabeledInput, Modal, ModalButtonBar, Surface, Text } from "@itwin/itwinui-react";
|
|
7
7
|
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
8
|
-
import { SvgClose, SvgDragHandleVertical, SvgMoreVerticalSmall, SvgRemove, SvgSearch
|
|
9
|
-
import { DragOverlay
|
|
10
|
-
import { SortableContext, verticalListSortingStrategy
|
|
8
|
+
import { SvgClose, SvgDragHandleVertical, SvgMoreVerticalSmall, SvgRemove, SvgSearch } from "@itwin/itwinui-icons-react";
|
|
9
|
+
import { DragOverlay } from "@dnd-kit/core";
|
|
10
|
+
import { SortableContext, verticalListSortingStrategy } from "@dnd-kit/sortable";
|
|
11
11
|
import { SortableHorizontalTile } from "./SortableHorizontalTile";
|
|
12
12
|
import Split from "react-split";
|
|
13
13
|
import "./GroupsPropertiesSelectionModal.scss";
|
|
14
14
|
import { getLocalizedStringPresentation } from "../../../common/utils";
|
|
15
|
-
import { closestCenter, DndContext, KeyboardSensor, PointerSensor, useSensor, useSensors
|
|
16
|
-
import { arrayMove, sortableKeyboardCoordinates
|
|
15
|
+
import { closestCenter, DndContext, KeyboardSensor, PointerSensor, useSensor, useSensors } from "@dnd-kit/core";
|
|
16
|
+
import { arrayMove, sortableKeyboardCoordinates } from "@dnd-kit/sortable";
|
|
17
17
|
import { GroupPropertyListItem } from "./GroupPropertyListItem";
|
|
18
18
|
export const GroupsPropertiesSelectionModal = ({ showModal, setShowModal, selectedProperties, setSelectedProperties, propertiesMetaData, }) => {
|
|
19
19
|
const [searchInput, setSearchInput] = useState("");
|
|
@@ -30,7 +30,7 @@ export const GroupsPropertiesSelectionModal = ({ showModal, setShowModal, select
|
|
|
30
30
|
}, [selectedProperties]);
|
|
31
31
|
const handleDragEnd = useCallback((event) => {
|
|
32
32
|
const { active, over } = event;
|
|
33
|
-
if (over &&
|
|
33
|
+
if (over && active.id !== over.id) {
|
|
34
34
|
setSelectedProperties((items) => {
|
|
35
35
|
const oldIndex = selectedProperties.findIndex((p) => active.id === p.key);
|
|
36
36
|
const newIndex = selectedProperties.findIndex((p) => over.id === p.key);
|
|
@@ -50,9 +50,7 @@ export const GroupsPropertiesSelectionModal = ({ showModal, setShowModal, select
|
|
|
50
50
|
setActiveSearchInput(searchInput);
|
|
51
51
|
setSearched(true);
|
|
52
52
|
}, [searchInput]);
|
|
53
|
-
const filteredProperties = useMemo(() => propertiesMetaData.filter((p) => [p.displayLabel, p.categoryLabel, p.actualECClassName]
|
|
54
|
-
.map((l) => l.toLowerCase())
|
|
55
|
-
.some((l) => l.includes(activeSearchInput.toLowerCase()))), [activeSearchInput, propertiesMetaData]);
|
|
53
|
+
const filteredProperties = useMemo(() => propertiesMetaData.filter((p) => [p.displayLabel, p.categoryLabel, p.actualECClassName].map((l) => l.toLowerCase()).some((l) => l.includes(activeSearchInput.toLowerCase()))), [activeSearchInput, propertiesMetaData]);
|
|
56
54
|
useEffect(() => {
|
|
57
55
|
if (searchInput.length === 0) {
|
|
58
56
|
setSearched(false);
|
|
@@ -83,35 +81,28 @@ export const GroupsPropertiesSelectionModal = ({ showModal, setShowModal, select
|
|
|
83
81
|
if (event.key === "Enter") {
|
|
84
82
|
startSearch();
|
|
85
83
|
}
|
|
86
|
-
}, svgIcon: searched ? (React.createElement(IconButton, { onClick: clearSearch, styleType: "borderless", title:
|
|
87
|
-
React.createElement(SvgClose, null))) : (React.createElement(IconButton, { onClick: startSearch, styleType: "borderless", title:
|
|
84
|
+
}, svgIcon: searched ? (React.createElement(IconButton, { onClick: clearSearch, styleType: "borderless", title: "Clear Search" },
|
|
85
|
+
React.createElement(SvgClose, null))) : (React.createElement(IconButton, { onClick: startSearch, styleType: "borderless", title: "Search" },
|
|
88
86
|
React.createElement(SvgSearch, null))) })),
|
|
89
|
-
filteredProperties.length === 0 ?
|
|
90
|
-
React.createElement("div", { className: "gmw-
|
|
91
|
-
React.createElement(Text, null, "No properties available. ")) :
|
|
92
|
-
React.createElement("div", { className: "gmw-properties-list" }, filteredProperties.map((property) => (React.createElement(GroupPropertyListItem, { key: property.key, content: `${property.displayLabel} (${property.propertyType})`, title: `${property.actualECClassName}`, description: getLocalizedStringPresentation(property.categoryLabel), selected: selectedProperties.some((p) => property.key === p.key), onClick: () => setSelectedProperties((sp) => sp.some((p) => property.key === p.key)
|
|
93
|
-
? sp.filter((p) => property.key !== p.key)
|
|
94
|
-
: [...sp, property]) }))))),
|
|
87
|
+
filteredProperties.length === 0 ? (React.createElement("div", { className: "gmw-empty-selection" },
|
|
88
|
+
React.createElement(Text, null, "No properties available. "))) : (React.createElement("div", { className: "gmw-properties-list" }, filteredProperties.map((property) => (React.createElement(GroupPropertyListItem, { key: property.key, content: `${property.displayLabel}`, title: `${property.actualECClassName}`, description: getLocalizedStringPresentation(property.categoryLabel), selected: selectedProperties.some((p) => property.key === p.key), onClick: () => setSelectedProperties((sp) => (sp.some((p) => property.key === p.key) ? sp.filter((p) => property.key !== p.key) : [...sp, property])) })))))),
|
|
95
89
|
React.createElement(Surface, { className: "gmw-selected-properties", elevation: 1 },
|
|
96
90
|
React.createElement(Label, { as: "span" }, "Selected Properties"),
|
|
97
|
-
selectedProperties.length === 0 ?
|
|
98
|
-
React.createElement(
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
} },
|
|
106
|
-
React.createElement(SvgRemove, null))) })))))),
|
|
91
|
+
selectedProperties.length === 0 ? (React.createElement("div", { className: "gmw-empty-selection" },
|
|
92
|
+
React.createElement(Text, null, "No properties selected."),
|
|
93
|
+
React.createElement(Text, null, "Add some by clicking on the properties shown left."))) : (React.createElement("div", { className: "gmw-properties-list" },
|
|
94
|
+
React.createElement(SortableContext, { items: selectedProperties.map((p) => p.key), strategy: verticalListSortingStrategy }, selectedProperties.map((property) => (React.createElement(SortableHorizontalTile, { key: property.key, id: property.key, content: `${property.displayLabel}`, title: `${property.actualECClassName}`, description: getLocalizedStringPresentation(property.categoryLabel), action: React.createElement("div", null,
|
|
95
|
+
React.createElement(IconButton, { styleType: "borderless", title: "Remove", onClick: () => {
|
|
96
|
+
setSelectedProperties((sp) => sp.filter((p) => property.key !== p.key));
|
|
97
|
+
} },
|
|
98
|
+
React.createElement(SvgRemove, null))) })))))))),
|
|
107
99
|
React.createElement(ModalButtonBar, null,
|
|
108
100
|
React.createElement(Button, { onClick: () => {
|
|
109
101
|
setShowModal(false);
|
|
110
102
|
clearSearch();
|
|
111
103
|
}, styleType: "high-visibility" }, "Close"))),
|
|
112
|
-
React.createElement(DragOverlay, { zIndex: 9999 }, activeDragProperty ?
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
React.createElement(SvgDragHandleVertical, null)) }) : null)));
|
|
104
|
+
React.createElement(DragOverlay, { zIndex: 9999 }, activeDragProperty ? (React.createElement(GroupPropertyListItem, { content: `${activeDragProperty.displayLabel}`, title: `${activeDragProperty.actualECClassName}`, description: getLocalizedStringPresentation(activeDragProperty.categoryLabel), action: React.createElement(IconButton, { styleType: "borderless" },
|
|
105
|
+
React.createElement(SvgRemove, null)), dragHandle: React.createElement(Icon, { className: "gmw-drag-icon", size: "large" },
|
|
106
|
+
React.createElement(SvgDragHandleVertical, null)) })) : null)));
|
|
116
107
|
};
|
|
117
108
|
//# sourceMappingURL=GroupsPropertiesSelectionModal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupsPropertiesSelectionModal.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.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 { renderToStaticMarkup } from \"react-dom/server\";\nimport {\n Button,\n Icon,\n IconButton,\n Label,\n LabeledInput,\n Modal,\n ModalButtonBar,\n Surface,\n Text,\n} from \"@itwin/itwinui-react\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n SvgClose,\n SvgDragHandleVertical,\n SvgMoreVerticalSmall,\n SvgRemove,\n SvgSearch,\n} from \"@itwin/itwinui-icons-react\";\nimport {\n DragOverlay,\n} from \"@dnd-kit/core\";\nimport {\n SortableContext,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport { SortableHorizontalTile } from \"./SortableHorizontalTile\";\nimport Split from \"react-split\";\nimport \"./GroupsPropertiesSelectionModal.scss\";\nimport type { PropertyMetaData } from \"./GroupPropertyUtils\";\nimport { getLocalizedStringPresentation } from \"../../../common/utils\";\nimport {\n closestCenter,\n DndContext,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport {\n arrayMove,\n sortableKeyboardCoordinates,\n} from \"@dnd-kit/sortable\";\nimport type { DragEndEvent, DragStartEvent } from \"@dnd-kit/core\";\nimport { GroupPropertyListItem } from \"./GroupPropertyListItem\";\n\nexport interface GroupPropertiesSelectionModalProps {\n showModal: boolean;\n setShowModal: (showModal: boolean) => void;\n selectedProperties: PropertyMetaData[];\n setSelectedProperties: (selectedProperties: (selectedProperties: PropertyMetaData[]) => PropertyMetaData[]) => void;\n propertiesMetaData: PropertyMetaData[];\n}\n\nexport const GroupsPropertiesSelectionModal = (\n {\n showModal,\n setShowModal,\n selectedProperties,\n setSelectedProperties,\n propertiesMetaData,\n }: GroupPropertiesSelectionModalProps\n) => {\n const [searchInput, setSearchInput] = useState<string>(\"\");\n const [activeSearchInput, setActiveSearchInput] = useState<string>(\"\");\n const [searched, setSearched] = useState<boolean>(false);\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n );\n const [activeDragProperty, setActiveDragProperty] = useState<PropertyMetaData | undefined>();\n\n const handleDragStart = useCallback((event: DragStartEvent) => {\n const { active } = event;\n const activeProperty = selectedProperties.find((p) => active.id === p.key);\n setActiveDragProperty(activeProperty);\n }, [selectedProperties]);\n\n const handleDragEnd = useCallback((event: DragEndEvent) => {\n const { active, over } = event;\n\n if (over && (active.id !== over.id)) {\n setSelectedProperties((items) => {\n const oldIndex = selectedProperties.findIndex((p) => active.id === p.key);\n const newIndex = selectedProperties.findIndex((p) => over.id === p.key);\n\n return arrayMove(items, oldIndex, newIndex);\n });\n }\n\n setActiveDragProperty(undefined);\n }, [selectedProperties, setSelectedProperties]);\n\n const clearSearch = useCallback(() => {\n setSearchInput(\"\");\n setActiveSearchInput(\"\");\n setSearched(false);\n }, []);\n\n const startSearch = useCallback(() => {\n if (!searchInput) return;\n setActiveSearchInput(searchInput);\n setSearched(true);\n }, [searchInput]);\n\n const filteredProperties = useMemo(\n () =>\n propertiesMetaData.filter((p) =>\n [p.displayLabel, p.categoryLabel, p.actualECClassName]\n .map((l) => l.toLowerCase())\n .some((l) => l.includes(activeSearchInput.toLowerCase()))\n ),\n [activeSearchInput, propertiesMetaData]\n );\n\n useEffect(() => {\n if (searchInput.length === 0) {\n setSearched(false);\n clearSearch();\n }\n }, [searchInput, setSearched, clearSearch]);\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n >\n <Modal\n title=\"Properties Selection\"\n isOpen={showModal}\n onClose={() => {\n setShowModal(false);\n clearSearch();\n }}\n closeOnExternalClick={false}\n >\n <Split\n expandToMin={false}\n className=\"gmw-property-selection-container\"\n gutterAlign=\"center\"\n gutterSize={2}\n gutter={() => {\n // Expects HTMLElement\n const dragHangle = renderToStaticMarkup(\n <Icon className=\"gmw-gutter-drag-icon\" size=\"large\">\n <SvgMoreVerticalSmall />\n </Icon>\n );\n const gutter = document.createElement(\"div\");\n gutter.className = `gmw-gutter`;\n gutter.innerHTML = dragHangle;\n return gutter;\n }}\n direction=\"horizontal\">\n <Surface className=\"gmw-available-properties\" elevation={1}>\n <div className=\"gmw-available-properties-header\">\n <Label as=\"span\">Available Properties</Label>\n <LabeledInput\n displayStyle=\"inline\"\n iconDisplayStyle=\"inline\"\n className=\"gmw-available-prop-search\"\n value={searchInput}\n size=\"small\"\n placeholder=\"Search....\"\n onChange={(event) => {\n const {\n target: { value },\n } = event;\n setSearchInput(value);\n }}\n onKeyDown={(event) => {\n if (event.key === \"Enter\") {\n startSearch();\n }\n }}\n svgIcon={\n searched ? (\n <IconButton onClick={clearSearch} styleType=\"borderless\" title='Clear Search'>\n <SvgClose />\n </IconButton>\n ) : (\n <IconButton onClick={startSearch} styleType=\"borderless\" title='Search'>\n <SvgSearch />\n </IconButton>\n )\n }\n />\n </div>\n {filteredProperties.length === 0 ?\n <div className=\"gmw-empty-selection\">\n <Text>No properties available. </Text>\n </div> :\n <div className=\"gmw-properties-list\">\n {\n filteredProperties.map((property) => (\n <GroupPropertyListItem\n key={property.key}\n content={`${property.displayLabel} (${property.propertyType})`}\n title={`${property.actualECClassName}`}\n description={getLocalizedStringPresentation(property.categoryLabel)}\n selected={selectedProperties.some((p) => property.key === p.key)}\n onClick={() =>\n setSelectedProperties((sp) =>\n sp.some((p) => property.key === p.key)\n ? sp.filter(\n (p) => property.key !== p.key\n )\n : [...sp, property]\n )\n }\n />\n ))}\n </div>}\n </Surface>\n <Surface className=\"gmw-selected-properties\" elevation={1}>\n <Label as=\"span\">Selected Properties</Label>\n {selectedProperties.length === 0 ?\n <div className=\"gmw-empty-selection\">\n <Text>No properties selected.</Text>\n <Text>Add some by clicking on the properties shown left.</Text>\n </div> :\n <div className=\"gmw-properties-list\" >\n <SortableContext\n items={selectedProperties.map((p) => p.key)}\n strategy={verticalListSortingStrategy}\n >\n {selectedProperties.map((property) =>\n <SortableHorizontalTile\n key={property.key}\n id={property.key}\n content={`${property.displayLabel} (${property.propertyType})`}\n title={`${property.actualECClassName}`}\n description={getLocalizedStringPresentation(property.categoryLabel)}\n action={\n <div>\n <IconButton\n styleType=\"borderless\"\n title=\"Remove\"\n onClick={() => {\n setSelectedProperties((sp) => sp.filter(\n (p) => property.key !== p.key\n ));\n }\n }>\n <SvgRemove />\n </IconButton>\n </div>\n }\n />)}\n </SortableContext>\n </div>}\n </Surface>\n </Split>\n <ModalButtonBar>\n <Button\n onClick={() => {\n setShowModal(false);\n clearSearch();\n }}\n styleType=\"high-visibility\"\n >\n Close\n </Button>\n </ModalButtonBar>\n </Modal>\n <DragOverlay zIndex={9999}>\n {activeDragProperty ?\n <GroupPropertyListItem\n content={`${activeDragProperty.displayLabel} (${activeDragProperty.propertyType})`}\n title={`${activeDragProperty.actualECClassName}`}\n description={getLocalizedStringPresentation(activeDragProperty.categoryLabel)}\n action={\n <IconButton\n styleType=\"borderless\">\n <SvgRemove />\n </IconButton>}\n dragHandle={\n <Icon className=\"gmw-drag-icon\" size=\"large\">\n <SvgDragHandleVertical />\n </Icon>\n }\n /> : null}\n </DragOverlay>\n </DndContext>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"GroupsPropertiesSelectionModal.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.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 { renderToStaticMarkup } from \"react-dom/server\";\nimport { Button, Icon, IconButton, Label, LabeledInput, Modal, ModalButtonBar, Surface, Text } from \"@itwin/itwinui-react\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { SvgClose, SvgDragHandleVertical, SvgMoreVerticalSmall, SvgRemove, SvgSearch } from \"@itwin/itwinui-icons-react\";\nimport { DragOverlay } from \"@dnd-kit/core\";\nimport { SortableContext, verticalListSortingStrategy } from \"@dnd-kit/sortable\";\nimport { SortableHorizontalTile } from \"./SortableHorizontalTile\";\nimport Split from \"react-split\";\nimport \"./GroupsPropertiesSelectionModal.scss\";\nimport type { PropertyMetaData } from \"./GroupPropertyUtils\";\nimport { getLocalizedStringPresentation } from \"../../../common/utils\";\nimport { closestCenter, DndContext, KeyboardSensor, PointerSensor, useSensor, useSensors } from \"@dnd-kit/core\";\nimport { arrayMove, sortableKeyboardCoordinates } from \"@dnd-kit/sortable\";\nimport type { DragEndEvent, DragStartEvent } from \"@dnd-kit/core\";\nimport { GroupPropertyListItem } from \"./GroupPropertyListItem\";\n\nexport interface GroupPropertiesSelectionModalProps {\n showModal: boolean;\n setShowModal: (showModal: boolean) => void;\n selectedProperties: PropertyMetaData[];\n setSelectedProperties: (selectedProperties: (selectedProperties: PropertyMetaData[]) => PropertyMetaData[]) => void;\n propertiesMetaData: PropertyMetaData[];\n}\n\nexport const GroupsPropertiesSelectionModal = ({\n showModal,\n setShowModal,\n selectedProperties,\n setSelectedProperties,\n propertiesMetaData,\n}: GroupPropertiesSelectionModalProps) => {\n const [searchInput, setSearchInput] = useState<string>(\"\");\n const [activeSearchInput, setActiveSearchInput] = useState<string>(\"\");\n const [searched, setSearched] = useState<boolean>(false);\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n const [activeDragProperty, setActiveDragProperty] = useState<PropertyMetaData | undefined>();\n\n const handleDragStart = useCallback(\n (event: DragStartEvent) => {\n const { active } = event;\n const activeProperty = selectedProperties.find((p) => active.id === p.key);\n setActiveDragProperty(activeProperty);\n },\n [selectedProperties],\n );\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event;\n\n if (over && active.id !== over.id) {\n setSelectedProperties((items) => {\n const oldIndex = selectedProperties.findIndex((p) => active.id === p.key);\n const newIndex = selectedProperties.findIndex((p) => over.id === p.key);\n\n return arrayMove(items, oldIndex, newIndex);\n });\n }\n\n setActiveDragProperty(undefined);\n },\n [selectedProperties, setSelectedProperties],\n );\n\n const clearSearch = useCallback(() => {\n setSearchInput(\"\");\n setActiveSearchInput(\"\");\n setSearched(false);\n }, []);\n\n const startSearch = useCallback(() => {\n if (!searchInput) return;\n setActiveSearchInput(searchInput);\n setSearched(true);\n }, [searchInput]);\n\n const filteredProperties = useMemo(\n () =>\n propertiesMetaData.filter((p) =>\n [p.displayLabel, p.categoryLabel, p.actualECClassName].map((l) => l.toLowerCase()).some((l) => l.includes(activeSearchInput.toLowerCase())),\n ),\n [activeSearchInput, propertiesMetaData],\n );\n\n useEffect(() => {\n if (searchInput.length === 0) {\n setSearched(false);\n clearSearch();\n }\n }, [searchInput, setSearched, clearSearch]);\n\n return (\n <DndContext sensors={sensors} collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <Modal\n title=\"Properties Selection\"\n isOpen={showModal}\n onClose={() => {\n setShowModal(false);\n clearSearch();\n }}\n closeOnExternalClick={false}\n >\n <Split\n expandToMin={false}\n className=\"gmw-property-selection-container\"\n gutterAlign=\"center\"\n gutterSize={2}\n gutter={() => {\n // Expects HTMLElement\n const dragHangle = renderToStaticMarkup(\n <Icon className=\"gmw-gutter-drag-icon\" size=\"large\">\n <SvgMoreVerticalSmall />\n </Icon>,\n );\n const gutter = document.createElement(\"div\");\n gutter.className = `gmw-gutter`;\n gutter.innerHTML = dragHangle;\n return gutter;\n }}\n direction=\"horizontal\"\n >\n <Surface className=\"gmw-available-properties\" elevation={1}>\n <div className=\"gmw-available-properties-header\">\n <Label as=\"span\">Available Properties</Label>\n <LabeledInput\n displayStyle=\"inline\"\n iconDisplayStyle=\"inline\"\n className=\"gmw-available-prop-search\"\n value={searchInput}\n size=\"small\"\n placeholder=\"Search....\"\n onChange={(event) => {\n const {\n target: { value },\n } = event;\n setSearchInput(value);\n }}\n onKeyDown={(event) => {\n if (event.key === \"Enter\") {\n startSearch();\n }\n }}\n svgIcon={\n searched ? (\n <IconButton onClick={clearSearch} styleType=\"borderless\" title=\"Clear Search\">\n <SvgClose />\n </IconButton>\n ) : (\n <IconButton onClick={startSearch} styleType=\"borderless\" title=\"Search\">\n <SvgSearch />\n </IconButton>\n )\n }\n />\n </div>\n {filteredProperties.length === 0 ? (\n <div className=\"gmw-empty-selection\">\n <Text>No properties available. </Text>\n </div>\n ) : (\n <div className=\"gmw-properties-list\">\n {filteredProperties.map((property) => (\n <GroupPropertyListItem\n key={property.key}\n content={`${property.displayLabel}`}\n title={`${property.actualECClassName}`}\n description={getLocalizedStringPresentation(property.categoryLabel)}\n selected={selectedProperties.some((p) => property.key === p.key)}\n onClick={() =>\n setSelectedProperties((sp) => (sp.some((p) => property.key === p.key) ? sp.filter((p) => property.key !== p.key) : [...sp, property]))\n }\n />\n ))}\n </div>\n )}\n </Surface>\n <Surface className=\"gmw-selected-properties\" elevation={1}>\n <Label as=\"span\">Selected Properties</Label>\n {selectedProperties.length === 0 ? (\n <div className=\"gmw-empty-selection\">\n <Text>No properties selected.</Text>\n <Text>Add some by clicking on the properties shown left.</Text>\n </div>\n ) : (\n <div className=\"gmw-properties-list\">\n <SortableContext items={selectedProperties.map((p) => p.key)} strategy={verticalListSortingStrategy}>\n {selectedProperties.map((property) => (\n <SortableHorizontalTile\n key={property.key}\n id={property.key}\n content={`${property.displayLabel}`}\n title={`${property.actualECClassName}`}\n description={getLocalizedStringPresentation(property.categoryLabel)}\n action={\n <div>\n <IconButton\n styleType=\"borderless\"\n title=\"Remove\"\n onClick={() => {\n setSelectedProperties((sp) => sp.filter((p) => property.key !== p.key));\n }}\n >\n <SvgRemove />\n </IconButton>\n </div>\n }\n />\n ))}\n </SortableContext>\n </div>\n )}\n </Surface>\n </Split>\n <ModalButtonBar>\n <Button\n onClick={() => {\n setShowModal(false);\n clearSearch();\n }}\n styleType=\"high-visibility\"\n >\n Close\n </Button>\n </ModalButtonBar>\n </Modal>\n <DragOverlay zIndex={9999}>\n {activeDragProperty ? (\n <GroupPropertyListItem\n content={`${activeDragProperty.displayLabel}`}\n title={`${activeDragProperty.actualECClassName}`}\n description={getLocalizedStringPresentation(activeDragProperty.categoryLabel)}\n action={\n <IconButton styleType=\"borderless\">\n <SvgRemove />\n </IconButton>\n }\n dragHandle={\n <Icon className=\"gmw-drag-icon\" size=\"large\">\n <SvgDragHandleVertical />\n </Icon>\n }\n />\n ) : null}\n </DragOverlay>\n </DndContext>\n );\n};\n"]}
|
|
@@ -4,5 +4,5 @@ export interface SaveModalProps {
|
|
|
4
4
|
onClose: () => void;
|
|
5
5
|
showSaveModal: boolean;
|
|
6
6
|
}
|
|
7
|
-
export declare const SaveModal: ({ onSave, onClose, showSaveModal
|
|
7
|
+
export declare const SaveModal: ({ onSave, onClose, showSaveModal }: SaveModalProps) => JSX.Element;
|
|
8
8
|
//# sourceMappingURL=SaveModal.d.ts.map
|
|
@@ -1,15 +1,15 @@
|
|
|
1
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 { Button, Modal, ModalButtonBar, Text
|
|
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 { Button, Modal, ModalButtonBar, Text } from "@itwin/itwinui-react";
|
|
6
6
|
import React from "react";
|
|
7
|
-
export const SaveModal = ({ onSave, onClose, showSaveModal
|
|
7
|
+
export const SaveModal = ({ onSave, onClose, showSaveModal }) => {
|
|
8
8
|
return (React.createElement(React.Fragment, null,
|
|
9
|
-
React.createElement(Modal, { title:
|
|
9
|
+
React.createElement(Modal, { title: "Confirm", modalRootId: "grouping-mapping-widget", isOpen: showSaveModal, onClose: onClose },
|
|
10
10
|
React.createElement(Text, { variant: "leading", as: "h3" }, "Are you sure you want to save this property with a new name? You may need to update this name in Custom Calculation formulas."),
|
|
11
11
|
React.createElement(ModalButtonBar, null,
|
|
12
|
-
React.createElement(Button, { styleType:
|
|
13
|
-
React.createElement(Button, { onClick: onClose, styleType:
|
|
12
|
+
React.createElement(Button, { styleType: "high-visibility", onClick: onSave }, "Save"),
|
|
13
|
+
React.createElement(Button, { onClick: onClose, styleType: "default" }, "Cancel")))));
|
|
14
14
|
};
|
|
15
15
|
//# sourceMappingURL=SaveModal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveModal.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/SaveModal.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SaveModal.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/SaveModal.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAkB,EAAE,EAAE;IAC9E,OAAO,CACL;QACE,oBAAC,KAAK,IAAC,KAAK,EAAC,SAAS,EAAC,WAAW,EAAC,yBAAyB,EAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO;YAClG,oBAAC,IAAI,IAAC,OAAO,EAAC,SAAS,EAAC,EAAE,EAAC,IAAI,oIAExB;YACP,oBAAC,cAAc;gBACb,oBAAC,MAAM,IAAC,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,MAAM,WAE1C;gBACT,oBAAC,MAAM,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,SAAS,aAEpC,CACM,CACX,CACP,CACJ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport { Button, Modal, ModalButtonBar, Text } from \"@itwin/itwinui-react\";\nimport React from \"react\";\n\nexport interface SaveModalProps {\n onSave: () => void;\n onClose: () => void;\n showSaveModal: boolean;\n}\n\nexport const SaveModal = ({ onSave, onClose, showSaveModal }: SaveModalProps) => {\n return (\n <>\n <Modal title=\"Confirm\" modalRootId=\"grouping-mapping-widget\" isOpen={showSaveModal} onClose={onClose}>\n <Text variant=\"leading\" as=\"h3\">\n Are you sure you want to save this property with a new name? You may need to update this name in Custom Calculation formulas.\n </Text>\n <ModalButtonBar>\n <Button styleType=\"high-visibility\" onClick={onSave}>\n Save\n </Button>\n <Button onClick={onClose} styleType=\"default\">\n Cancel\n </Button>\n </ModalButtonBar>\n </Modal>\n </>\n );\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
import React, { useEffect } from "react";
|
|
6
6
|
import { useSortable } from "@dnd-kit/sortable";
|
|
7
7
|
import { CSS } from "@dnd-kit/utilities";
|
|
@@ -9,7 +9,7 @@ import { SvgDragHandleVertical } from "@itwin/itwinui-icons-react";
|
|
|
9
9
|
import { Icon } from "@itwin/itwinui-react";
|
|
10
10
|
import { GroupPropertyListItem } from "./GroupPropertyListItem";
|
|
11
11
|
export const SortableHorizontalTile = ({ id, ...props }) => {
|
|
12
|
-
const { attributes, listeners, isDragging, setNodeRef, transform, transition
|
|
12
|
+
const { attributes, listeners, isDragging, setNodeRef, transform, transition } = useSortable({ id });
|
|
13
13
|
const style = {
|
|
14
14
|
transform: CSS.Transform.toString(transform),
|
|
15
15
|
transition,
|