@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchGroupingCustomUI.js","sourceRoot":"","sources":["../../../../src/components/customUI/SearchGroupingCustomUI.tsx"],"names":[],"mappings":";;;;;;AAAA
|
|
1
|
+
{"version":3,"file":"SearchGroupingCustomUI.js","sourceRoot":"","sources":["../../../../src/components/customUI/SearchGroupingCustomUI.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 React from \"react\";\nimport { Alert, Button, LabeledTextarea } from \"@itwin/itwinui-react\";\nimport type { GroupingCustomUIProps } from \"./GroupingMappingCustomUI\";\nimport { LoadingSpinner } from \"../SharedComponents/LoadingSpinner\";\nimport \"./SearchGroupingCustomUI.scss\";\n\n/**\n * A default group query builder for the Grouping Mapping Widget that uses a generic query template to search for elements.\n * @public\n */\nexport const SearchGroupingCustomUI = ({ updateQuery, isUpdating, resetView }: GroupingCustomUIProps) => {\n const [searchInput, setSearchInput] = React.useState(\"\");\n const isWrappedInQuotes = (text: string) => {\n return text.startsWith(`\"`) && text.endsWith(`\"`);\n };\n\n const needsAndOperator = (token: string, index: number, searchQuery: string[]) =>\n isWrappedInQuotes(token) || (index === 1 && isWrappedInQuotes(searchQuery[0]));\n\n const generateSearchQuery = (searchQuery: string[]) => {\n if (searchQuery.length === 0) {\n updateQuery(\"\");\n return;\n }\n\n let generatedSearchQuery = `SELECT be.ECInstanceId, be.ECClassId FROM bis.geometricelement3d be `;\n generatedSearchQuery += `LEFT JOIN bis.SpatialCategory cat ON be.Category.Id = cat.ECInstanceID LEFT JOIN ecdbmeta.ECClassDef ecc ON be.ECClassId = ecc.ECInstanceId `;\n generatedSearchQuery += `LEFT JOIN bis.PhysicalType pt ON be.TypeDefinition.Id = pt.ECInstanceID`;\n generatedSearchQuery += ` WHERE `;\n generatedSearchQuery += `((${searchQuery\n .map(\n (token, index) =>\n `${index === 0 ? \"\" : needsAndOperator(token, index, searchQuery) ? \"AND\" : \"OR\"} be.codevalue LIKE '%${\n isWrappedInQuotes(token) ? token.slice(1, -1) : token\n }%'`,\n )\n .join(\" \")}) OR (${searchQuery\n .map(\n (token, index) =>\n `${index === 0 ? \"\" : needsAndOperator(token, index, searchQuery) ? \"AND\" : \"OR\"} be.userlabel LIKE '%${\n isWrappedInQuotes(token) ? token.slice(1, -1) : token\n }%'`,\n )\n .join(\" \")})) OR ((${searchQuery\n .map(\n (token, index) =>\n `${index === 0 ? \"\" : needsAndOperator(token, index, searchQuery) ? \"AND\" : \"OR\"} cat.codevalue LIKE '%${\n isWrappedInQuotes(token) ? token.slice(1, -1) : token\n }%'`,\n )\n .join(\" \")}) OR (${searchQuery\n .map(\n (token, index) =>\n `${index === 0 ? \"\" : needsAndOperator(token, index, searchQuery) ? \"AND\" : \"OR\"} cat.userlabel LIKE '%${\n isWrappedInQuotes(token) ? token.slice(1, -1) : token\n }%'`,\n )\n .join(\" \")})) OR (${searchQuery\n .map(\n (token, index) =>\n `${index === 0 ? \"\" : needsAndOperator(token, index, searchQuery) ? \"AND\" : \"OR\"} ecc.name LIKE '%${\n isWrappedInQuotes(token) ? token.slice(1, -1) : token\n }%'`,\n )\n .join(\" \")})`;\n // Physical Types\n generatedSearchQuery += ` OR ((${searchQuery\n .map(\n (token, index) =>\n `${index === 0 ? \"\" : needsAndOperator(token, index, searchQuery) ? \"AND\" : \"OR\"} pt.codevalue LIKE '%${\n isWrappedInQuotes(token) ? token.slice(1, -1) : token\n }%'`,\n )\n .join(\" \")}) OR (${searchQuery\n .map(\n (token, index) =>\n `${index === 0 ? \"\" : needsAndOperator(token, index, searchQuery) ? \"AND\" : \"OR\"} pt.userlabel LIKE '%${\n isWrappedInQuotes(token) ? token.slice(1, -1) : token\n }%'`,\n )\n .join(\" \")})) `;\n\n updateQuery(generatedSearchQuery);\n };\n\n return (\n <div className=\"gmw-search-form\">\n <Alert type=\"informational\">Generate a query by keywords. Keywords wrapped in double quotes will be considered a required criteria.</Alert>\n <LabeledTextarea\n label=\"Query Keywords\"\n required\n value={searchInput}\n onChange={(event) => setSearchInput(event.target.value)}\n disabled={isUpdating}\n placeholder={`E.g. \"red\" chair`}\n />\n <div className=\"gmw-search-actions\">\n {isUpdating && <LoadingSpinner />}\n <Button\n disabled={isUpdating}\n onClick={() =>\n generateSearchQuery(\n searchInput\n ? searchInput\n .replace(/(\\r\\n|\\n|\\r)/gm, \"\")\n .trim()\n .split(\" \")\n : [],\n )\n }\n >\n Apply\n </Button>\n <Button\n disabled={isUpdating}\n onClick={async () => {\n updateQuery(\"\");\n setSearchInput(\"\");\n if (resetView) {\n await resetView();\n }\n }}\n >\n Clear\n </Button>\n </div>\n </div>\n );\n};\n"]}
|
|
@@ -47,8 +47,7 @@ class BboxDimensionsDecorator {
|
|
|
47
47
|
async setContext(instanceId) {
|
|
48
48
|
// get locating info on the requested instance
|
|
49
49
|
const query = `SELECT bBoxHigh,bBoxLow,yaw,pitch,roll,origin FROM BisCore.SpatialElement WHERE ECInstanceId = ?`;
|
|
50
|
-
if (!core_frontend_1.IModelApp.viewManager.selectedView ||
|
|
51
|
-
!core_frontend_1.IModelApp.viewManager.selectedView.iModel) {
|
|
50
|
+
if (!core_frontend_1.IModelApp.viewManager.selectedView || !core_frontend_1.IModelApp.viewManager.selectedView.iModel) {
|
|
52
51
|
return false;
|
|
53
52
|
}
|
|
54
53
|
const params = new core_common_1.QueryBinder().bindId(1, instanceId);
|
|
@@ -243,10 +242,7 @@ class BboxDimensionsDecorator {
|
|
|
243
242
|
*/
|
|
244
243
|
buildLine(bbox, dim, tf) {
|
|
245
244
|
// fallback scenario
|
|
246
|
-
const fallback = [
|
|
247
|
-
core_geometry_1.LineSegment3d.create(bbox.low, bbox.high).cloneTransformed(tf),
|
|
248
|
-
[bbox.low, bbox.high],
|
|
249
|
-
];
|
|
245
|
+
const fallback = [core_geometry_1.LineSegment3d.create(bbox.low, bbox.high).cloneTransformed(tf), [bbox.low, bbox.high]];
|
|
250
246
|
if (!this.instance) {
|
|
251
247
|
// TODO: probably should have some warning here...
|
|
252
248
|
return fallback;
|
|
@@ -255,10 +251,7 @@ class BboxDimensionsDecorator {
|
|
|
255
251
|
const corners = this.instance.placement.getWorldCorners().points;
|
|
256
252
|
const targets = this.instance.pointMappings.get(dim);
|
|
257
253
|
if (targets) {
|
|
258
|
-
return [
|
|
259
|
-
core_geometry_1.LineSegment3d.create(corners[targets[0]], corners[targets[1]]),
|
|
260
|
-
[corners[targets[0]], corners[targets[1]]],
|
|
261
|
-
];
|
|
254
|
+
return [core_geometry_1.LineSegment3d.create(corners[targets[0]], corners[targets[1]]), [corners[targets[0]], corners[targets[1]]]];
|
|
262
255
|
}
|
|
263
256
|
else {
|
|
264
257
|
// TODO: probably should have some warning here...
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BboxDimensionsDecorator.js","sourceRoot":"","sources":["../../../src/decorators/BboxDimensionsDecorator.ts"],"names":[],"mappings":";;;AAOA,wDAiB8B;AAC9B,oDAO4B;AAM5B,wDAK8B;AAE9B,IAAY,aAYX;AAZD,WAAY,aAAa;IACvB,uEAAsD,CAAA;IACtD,+EAA8D,CAAA;IAC9D,qEAAoD,CAAA;IACpD,wFAAuE,CAAA;IACvE,gGAA+E,CAAA;IAC/E,sFAAqE,CAAA;IACrE,8DAA6C,CAAA;IAC7C,2CAA2C;IAC3C,mDAAmD;IACnD,yCAAyC;IACzC,oBAAoB;AACtB,CAAC,EAZW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAYxB;AAiCD,MAAa,uBAAuB;IAApC;QAGU,WAAM,GAAkB,EAAE,CAAC;QAC3B,WAAM,GAA0B,EAAE,CAAC;QACnC,YAAO,GAAa,EAAE,CAAC;QAEvB,SAAI,GAAG,KAAK,CAAC;QACb,eAAU,GAAa,sBAAQ,CAAC,QAAQ,CAC9C,sBAAQ,CAAC,gBAAgB,CAAC,sBAAQ,CAAC,MAAM,CAAC,yBAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CACvE,CAAC;QACM,eAAU,GAAa,sBAAQ,CAAC,KAAK,CAAC;QACtC,cAAS,GAAa,sBAAQ,CAAC,GAAG,CAAC;QACnC,cAAS,GAAa,sBAAQ,CAAC,KAAK,CAAC;QACrC,mBAAc,GAAG,CAAC,CAAC;QACnB,mBAAc,GAAG,CAAC,CAAC;QACnB,kBAAa,GAAG,CAAC,CAAC;QAClB,UAAK,GAAG,IAAI,CAAC;QACb,eAAU,GAAG,wBAAU,CAAC,KAAK,CAAC;QA+ftC,aAAa;IACf,CAAC;IA9fC,iCAAiC;IAC1B,YAAY;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,yBAAS,CAAC,WAAW,CAAC,6BAA6B,EAAE,CAAC;IACxD,CAAC;IAED,qDAAqD;IAC9C,KAAK,CAAC,UAAU,CAAC,UAAkB;QACxC,8CAA8C;QAC9C,MAAM,KAAK,GAAG,kGAAkG,CAAC;QAEjH,IACE,CAAC,yBAAS,CAAC,WAAW,CAAC,YAAY;YACnC,CAAC,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAC1C;YACA,OAAO,KAAK,CAAC;SACd;QAED,MAAM,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CACpE,KAAK,EACL,MAAM,EACN,EAAE,SAAS,EAAE,4BAAc,CAAC,kBAAkB,EAAE,CACjD,CAAC;QAEF,MAAM,OAAO,GAAgC,EAAE,CAAC;QAChD,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,aAAa,EAAE;YACrC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACnB;QACD,uCAAuC;QACvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,4CAA4C;YAC5C,OAAO,KAAK,CAAC;SACd;QAED,kBAAkB;QAClB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;YACnC,OAAO,KAAK,CAAC;SACd;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,sEAAsE;IAC/D,sBAAsB;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;SACR;QAED,2BAA2B;QAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC7C,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;gBAC9D,SAAS;YACX,MAAM,GAAG,GAAG,aAAa,CAAC,MAAoC,CAAC,CAAC;YAChE,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,MAAM,EAAE;oBACV,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChE;aACF;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gCAAgC;IACzB,WAAW,CAAC,GAAkB;QACnC,8BAA8B;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CACjC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAC5B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAClC,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAC5B,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAClC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oEAAoE;IAC7D,QAAQ,CAAC,OAAwB;QACtC,6CAA6C;QAC7C,uCAAuC;QACvC,oCAAoC;QACpC,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC,KAAK,CAAC,CAAC;QAExC,gDAAgD;QAEhD,yCAAyC;QACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAC9C;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC3B;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,yBAAS,CAAC,QAAQ,CAAC,CAAC;QACjE,OAAO,CAAC,aAAa,CAAC,2BAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEzD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAE3B,6DAA6D;IACrD,gBAAgB,CACtB,IAA+B;QAE/B,8BAA8B;QAC9B,MAAM,MAAM,GAAG,IAAI,uBAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,IAAI,uBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,uBAAO,CAC1B,IAAI,CAAC,QAAQ,CAAC,CAAC,EACf,IAAI,CAAC,QAAQ,CAAC,CAAC,EACf,IAAI,CAAC,QAAQ,CAAC,CAAC,CAChB,CAAC;QACF,MAAM,KAAK,GAAG,uBAAO,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,kCAAkB,CACjC,qBAAK,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAC7B,qBAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAC/B,qBAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/B,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,yBAAW,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvD,oCAAoC;QACpC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAmC,CAAC;QACjE,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE;YAC5B,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,iCAAiC,EAC/C,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,6BAA6B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvE,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,oCAAoC,EAClD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,yCAAyC,EACvD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,qCAAqC,EACnD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;SACH;aAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE;YACnC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,iCAAiC,EAC/C,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,6BAA6B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvE,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,oCAAoC,EAClD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,yCAAyC,EACvD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,qCAAqC,EACnD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;SACH;aAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE;YACnC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,iCAAiC,EAC/C,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,6BAA6B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvE,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,oCAAoC,EAClD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,yCAAyC,EACvD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,qCAAqC,EACnD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;SACH;aAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE;YACnC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,iCAAiC,EAC/C,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,6BAA6B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvE,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,oCAAoC,EAClD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,yCAAyC,EACvD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,qCAAqC,EACnD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;SACH;aAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE;YACnC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,iCAAiC,EAC/C,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,6BAA6B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvE,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,oCAAoC,EAClD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,yCAAyC,EACvD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,qCAAqC,EACnD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;SACH;aAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE;YACnC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,iCAAiC,EAC/C,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,6BAA6B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvE,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,oCAAoC,EAClD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,yCAAyC,EACvD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;YACF,aAAa,CAAC,GAAG,CACf,aAAa,CAAC,qCAAqC,EACnD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;SACH;aAAM;YACL,mBAAmB;SACpB;QAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IACtC,CAAC;IAED,yDAAyD;IACjD,mBAAmB,CAAC,MAAiC;QAC3D,IACE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,SAAS;YACjC,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,SAAS;YAChC,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,SAAS;YAChC,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,SAAS;YAChC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,SAAS;YAC/B,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,SAAS;YAC/B,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,SAAS;YAC/B,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,SAAS;YAC9B,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,SAAS;YAC9B,MAAM,EAAE,GAAG,KAAK,SAAS;YACzB,MAAM,EAAE,KAAK,KAAK,SAAS;YAC3B,MAAM,EAAE,IAAI,KAAK,SAAS,EAC1B;YACA,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,IAAa,EAAE,EAAa;QAChD,MAAM,OAAO,GAAG,6BAAa,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;QAC3B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QAC3B,MAAM,OAAO,GAAG,+BAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,mBAAG,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,GAAG,EAAE;YACP,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACrB;QACD,OAAO,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACK,SAAS,CACf,IAAa,EACb,GAAkB,EAClB,EAAa;QAEb,oBAAoB;QACpB,MAAM,QAAQ,GAAgC;YAC5C,6BAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC9D,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;SACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,kDAAkD;YAClD,OAAO,QAAQ,CAAC;SACjB;QAED,0CAA0C;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,OAAO,EAAE;YACX,OAAO;gBACL,6BAAa,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9D,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3C,CAAC;SACH;aAAM;YACL,kDAAkD;YAClD,OAAO,QAAQ,CAAC;SACjB;IACH,CAAC;IAED;;;OAGG;IACI,SAAS,CAAC,MAAiB;QAChC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,WAAW,GAAgB;gBAC/B,KAAK;gBACL,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,aAAa,EAAE,IAAI,CAAC,cAAc;aACnC,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC/B;IACH,CAAC;IAED;;;;OAIG;IACK,OAAO,CAAC,IAAoC;QAClD,MAAM,cAAc,GAAwB;YAC1C,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,IAAI,sBAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,MAAM,KAAK,GAAmB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5D,KAAK,CAAC,WAAW,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QACxD,KAAK,CAAC,KAAK,CAAC,eAAe,GAAG,qBAAqB,CAAC;QACpD,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;QAC5B,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;QAChC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,QAAuB;QACzC,MAAM,cAAc,GAAwB;YAC1C,QAAQ;YACR,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,OAAwB;QAC7C,uLAAuL;QACvL,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAC1C,2BAAW,CAAC,KAAK,EACjB,SAAS,EACT,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAC1C,CAAC;QACF,gBAAgB;QAChB,8BAA8B;QAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YAClC,OAAO,CAAC,YAAY,CAClB,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAQ,CAAC,KAAK,EACrD,WAAW,CAAC,aAAa,CAC1B,CAAC;YACF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;YACzC,OAAO,CAAC,YAAY,CAClB,cAAc,CAAC,KAAK,EACpB,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EACrE,cAAc,CAAC,aAAa,EAC5B,cAAc,CAAC,UAAU,CAC1B,CAAC;YACF,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IACO,yBAAyB,CAC/B,QAAuB,EACvB,SAAkB,EAClB,OAAuB;QAEvB,IAAI,QAAQ,YAAY,4BAAY,EAAE;YACpC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACxC;aAAM,IAAI,QAAQ,YAAY,oBAAI,EAAE;YACnC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC1B,IAAI,SAAS,EAAE;gBACb,wDAAwD;gBACxD,0DAA0D;gBAC1D,OAAO,CAAC,YAAY,CAAC,sBAAQ,CAAC,KAAK,EAAE,sBAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBACjC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACvB,IAAI,KAAK,YAAY,4BAAY,EAAE;wBACjC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;wBACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAClC,IAAI,QAAQ,EAAE;4BACZ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;yBAClC;wBACD,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;qBAC9B;yBAAM,IAAI,KAAK,YAAY,qBAAK,EAAE;wBACjC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;qBACrC;gBACH,CAAC,CAAC,CAAC;aACJ;SACF;aAAM,IAAI,QAAQ,YAAY,oBAAI,EAAE;YACnC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC3B;aAAM,IAAI,QAAQ,YAAY,+BAAe,EAAE;YAC9C,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrC,IAAI,SAAS,EAAE;gBACb,wDAAwD;gBACxD,uDAAuD;gBACvD,OAAO,CAAC,YAAY,CAAC,sBAAQ,CAAC,KAAK,EAAE,sBAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,sCAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC3D,IAAI,IAAI,GAAG,IAAI,CAAC;gBAChB,OAAO,IAAI,EAAE;oBACX,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;oBACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;wBACvC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACnC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACvC,IAAI,MAAM,IAAI,MAAM,EAAE;4BACpB,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;yBACzC;qBACF;oBACD,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;iBAClC;aACF;SACF;aAAM,IAAI,QAAQ,YAAY,6BAAa,EAAE;YAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;YAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;YAClC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SACnC;aAAM,IAAI,QAAQ,YAAY,qBAAK,EAAE;YACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SACxC;aAAM,IAAI,QAAQ,YAAY,2CAA2B,EAAE;YAC1D,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;SACnE;IACH,CAAC;CAGF;AAlhBD,0DAkhBC","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 {\n CurvePrimitive,\n GeometryQuery} from \"@itwin/core-geometry\";\nimport {\n Angle,\n Arc3d,\n Box,\n CurveChainWithDistanceIndex,\n IndexedPolyface,\n IndexedPolyfaceVisitor,\n LineSegment3d,\n LineString3d,\n Loop,\n Path,\n Point3d,\n PolyfaceBuilder,\n Range3d,\n StrokeOptions,\n Transform,\n YawPitchRollAngles,\n} from \"@itwin/core-geometry\";\nimport {\n ColorByName,\n ColorDef,\n LinePixels,\n Placement3d,\n QueryBinder,\n QueryRowFormat,\n} from \"@itwin/core-common\";\nimport type {\n DecorateContext,\n Decorator,\n GraphicBuilder,\n RenderGraphic} from \"@itwin/core-frontend\";\nimport {\n GraphicBranch,\n GraphicType,\n IModelApp,\n Marker,\n} from \"@itwin/core-frontend\";\n\nexport enum BboxDimension {\n BoundingBoxShortestEdgeLength = \"Shortest Edge Length\",\n BoundingBoxIntermediateEdgeLength = \"Intermediate Edge Length\",\n BoundingBoxLongestEdgeLength = \"Longest Edge Length\",\n BoundingBoxShortestFaceDiagonalLength = \"Shortest Face Diagonal Length\",\n BoundingBoxIntermediateFaceDiagonalLength = \"Intermediate Face Diagonal Length\",\n BoundingBoxLongestFaceDiagonalLength = \"Longest Face Diagonal Length\",\n BoundingBoxDiagonalLength = \"Diagonal Length\",\n // SmallestFaceArea = \"Smallest Face Area\",\n // IntermediateFaceArea = \"Intermediate Face Area\",\n // LargestFaceArea = \"Largest Face Area\",\n // Volume = \"Volume\"\n}\n\ninterface CustomGeometryQuery {\n geometry: GeometryQuery;\n color: ColorDef;\n fill: boolean;\n fillColor: ColorDef;\n lineThickness: number;\n edges: boolean;\n linePixels: LinePixels;\n}\n\ninterface CustomPoint {\n point: Point3d;\n color: ColorDef;\n fill: boolean;\n lineThickness: number;\n}\n\ninterface SpatialElementQueryResult {\n bBoxHigh: Point3d;\n bBoxLow: Point3d;\n yaw: number;\n pitch: number;\n roll: number;\n origin: Point3d;\n}\n\ninterface InferredSpatialData {\n pointMappings: Map<BboxDimension, [number, number]>;\n placement: Placement3d;\n}\n\nexport class BboxDimensionsDecorator implements Decorator {\n private instance: InferredSpatialData | undefined;\n private graphics: RenderGraphic | undefined;\n private points: CustomPoint[] = [];\n private shapes: CustomGeometryQuery[] = [];\n private markers: Marker[] = [];\n\n private fill = false;\n private shapeColor: ColorDef = ColorDef.fromTbgr(\n ColorDef.withTransparency(ColorDef.create(ColorByName.cyan).tbgr, 200)\n );\n private pointColor: ColorDef = ColorDef.white;\n private lineColor: ColorDef = ColorDef.red;\n private fillColor: ColorDef = ColorDef.white;\n private shapeThickness = 1;\n private pointThickness = 8;\n private lineThickness = 4;\n private edges = true;\n private linePixels = LinePixels.Solid;\n\n /** Clear the current context. */\n public clearContext(): void {\n this.points = [];\n this.shapes = [];\n this.markers = [];\n this.graphics = undefined;\n IModelApp.viewManager.invalidateDecorationsAllViews();\n }\n\n /** Set the active instance used by the decorator. */\n public async setContext(instanceId: string): Promise<boolean> {\n // get locating info on the requested instance\n const query = `SELECT bBoxHigh,bBoxLow,yaw,pitch,roll,origin FROM BisCore.SpatialElement WHERE ECInstanceId = ?`;\n\n if (\n !IModelApp.viewManager.selectedView ||\n !IModelApp.viewManager.selectedView.iModel\n ) {\n return false;\n }\n\n const params = new QueryBinder().bindId(1, instanceId);\n const queryIterable = IModelApp.viewManager.selectedView?.iModel.query(\n query,\n params,\n { rowFormat: QueryRowFormat.UseJsPropertyNames }\n );\n\n const results: SpatialElementQueryResult[] = [];\n for await (const row of queryIterable) {\n results.push(row);\n }\n // if no results or more than one abort\n if (results.length !== 1) {\n // TODO: maybe report a warning or something\n return false;\n }\n\n // validate result\n const elem = results[0];\n if (!this.validateQueryResult(elem)) {\n return false;\n } else {\n this.instance = this.inferSpatialData(elem);\n return true;\n }\n }\n\n /** Get the calculated spatial lengths for all possible dimensions. */\n public getInferredSpatialData(): Map<BboxDimension, number> | undefined {\n if (!this.instance) {\n return;\n }\n\n // calculate each dimension\n const data = new Map<BboxDimension, number>();\n const corners = this.instance.placement.getWorldCorners().points;\n const mappings = this.instance.pointMappings;\n for (const dimKey in BboxDimension) {\n if (!Object.prototype.hasOwnProperty.call(BboxDimension, dimKey))\n continue;\n const dim = BboxDimension[dimKey as keyof typeof BboxDimension];\n if (mappings.has(dim)) {\n const points = mappings.get(dim);\n if (points) {\n data.set(dim, corners[points[0]].distance(corners[points[1]]));\n }\n }\n }\n\n return data;\n }\n\n /** Command to draw the BBox. */\n public drawContext(dim: BboxDimension): boolean {\n // check if valid instance set\n if (!this.instance) {\n return false;\n }\n this.clearContext();\n\n // add geometry to decorator\n const polyface = this.buildPolyface(\n this.instance.placement.bbox,\n this.instance.placement.transform\n );\n this.addGeometry(polyface);\n const [line, points] = this.buildLine(\n this.instance.placement.bbox,\n dim,\n this.instance.placement.transform\n );\n this.addLine(line);\n this.addPoints(points);\n\n return true;\n }\n\n /** Generates new graphics if needed, and adds them to the scene. */\n public decorate(context: DecorateContext): void {\n // const overrides = new ViewFlagOverrides();\n // overrides.setShowVisibleEdges(true);\n // overrides.setApplyLighting(true);\n const branch = new GraphicBranch(false);\n\n // branch.viewFlagOverrides.copyFrom(overrides);\n\n // context.viewFlags.visibleEdges = true;\n if (!this.graphics) {\n this.graphics = this.createGraphics(context);\n }\n\n if (this.graphics) {\n branch.add(this.graphics);\n }\n\n const graphic = context.createBranch(branch, Transform.identity);\n context.addDecoration(GraphicType.WorldOverlay, graphic);\n\n this.markers.forEach((marker) => {\n marker.addDecoration(context);\n });\n }\n\n // #region Helper Functions\n\n /** Calculate all BBox dimensions and properties and save. */\n private inferSpatialData(\n elem: SpatialElementQueryResult\n ): InferredSpatialData {\n // build placement from result\n const origin = new Point3d(elem.origin.x, elem.origin.y, elem.origin.z);\n const bBoxLow = new Point3d(elem.bBoxLow.x, elem.bBoxLow.y, elem.bBoxLow.z);\n const bBoxHigh = new Point3d(\n elem.bBoxHigh.x,\n elem.bBoxHigh.y,\n elem.bBoxHigh.z\n );\n const range = Range3d.create(bBoxLow, bBoxHigh);\n const ypra = new YawPitchRollAngles(\n Angle.createDegrees(elem.yaw),\n Angle.createDegrees(elem.pitch),\n Angle.createDegrees(elem.roll)\n );\n const placement = new Placement3d(origin, ypra, range);\n\n // determine dimension size ordering\n const pointMappings = new Map<BboxDimension, [number, number]>();\n pointMappings.set(BboxDimension.BoundingBoxDiagonalLength, [0, 7]);\n const corners = placement.getWorldCorners();\n const d01 = corners.distance(0, 1);\n const d02 = corners.distance(0, 2);\n const d04 = corners.distance(0, 4);\n if (d01 >= d02 && d02 >= d04) {\n pointMappings.set(BboxDimension.BoundingBoxLongestEdgeLength, [0, 1]);\n pointMappings.set(\n BboxDimension.BoundingBoxIntermediateEdgeLength,\n [0, 2]\n );\n pointMappings.set(BboxDimension.BoundingBoxShortestEdgeLength, [0, 4]);\n pointMappings.set(\n BboxDimension.BoundingBoxLongestFaceDiagonalLength,\n [0, 3]\n );\n pointMappings.set(\n BboxDimension.BoundingBoxIntermediateFaceDiagonalLength,\n [0, 5]\n );\n pointMappings.set(\n BboxDimension.BoundingBoxShortestFaceDiagonalLength,\n [0, 6]\n );\n } else if (d01 >= d04 && d04 >= d02) {\n pointMappings.set(BboxDimension.BoundingBoxLongestEdgeLength, [0, 1]);\n pointMappings.set(\n BboxDimension.BoundingBoxIntermediateEdgeLength,\n [0, 4]\n );\n pointMappings.set(BboxDimension.BoundingBoxShortestEdgeLength, [0, 2]);\n pointMappings.set(\n BboxDimension.BoundingBoxLongestFaceDiagonalLength,\n [0, 5]\n );\n pointMappings.set(\n BboxDimension.BoundingBoxIntermediateFaceDiagonalLength,\n [0, 3]\n );\n pointMappings.set(\n BboxDimension.BoundingBoxShortestFaceDiagonalLength,\n [0, 6]\n );\n } else if (d04 >= d02 && d02 >= d01) {\n pointMappings.set(BboxDimension.BoundingBoxLongestEdgeLength, [0, 4]);\n pointMappings.set(\n BboxDimension.BoundingBoxIntermediateEdgeLength,\n [0, 2]\n );\n pointMappings.set(BboxDimension.BoundingBoxShortestEdgeLength, [0, 1]);\n pointMappings.set(\n BboxDimension.BoundingBoxLongestFaceDiagonalLength,\n [0, 6]\n );\n pointMappings.set(\n BboxDimension.BoundingBoxIntermediateFaceDiagonalLength,\n [0, 5]\n );\n pointMappings.set(\n BboxDimension.BoundingBoxShortestFaceDiagonalLength,\n [0, 3]\n );\n } else if (d04 >= d01 && d01 >= d02) {\n pointMappings.set(BboxDimension.BoundingBoxLongestEdgeLength, [0, 4]);\n pointMappings.set(\n BboxDimension.BoundingBoxIntermediateEdgeLength,\n [0, 1]\n );\n pointMappings.set(BboxDimension.BoundingBoxShortestEdgeLength, [0, 2]);\n pointMappings.set(\n BboxDimension.BoundingBoxLongestFaceDiagonalLength,\n [0, 5]\n );\n pointMappings.set(\n BboxDimension.BoundingBoxIntermediateFaceDiagonalLength,\n [0, 6]\n );\n pointMappings.set(\n BboxDimension.BoundingBoxShortestFaceDiagonalLength,\n [0, 3]\n );\n } else if (d02 >= d01 && d01 >= d04) {\n pointMappings.set(BboxDimension.BoundingBoxLongestEdgeLength, [0, 2]);\n pointMappings.set(\n BboxDimension.BoundingBoxIntermediateEdgeLength,\n [0, 1]\n );\n pointMappings.set(BboxDimension.BoundingBoxShortestEdgeLength, [0, 4]);\n pointMappings.set(\n BboxDimension.BoundingBoxLongestFaceDiagonalLength,\n [0, 3]\n );\n pointMappings.set(\n BboxDimension.BoundingBoxIntermediateFaceDiagonalLength,\n [0, 6]\n );\n pointMappings.set(\n BboxDimension.BoundingBoxShortestFaceDiagonalLength,\n [0, 5]\n );\n } else if (d02 >= d04 && d04 >= d01) {\n pointMappings.set(BboxDimension.BoundingBoxLongestEdgeLength, [0, 2]);\n pointMappings.set(\n BboxDimension.BoundingBoxIntermediateEdgeLength,\n [0, 4]\n );\n pointMappings.set(BboxDimension.BoundingBoxShortestEdgeLength, [0, 1]);\n pointMappings.set(\n BboxDimension.BoundingBoxLongestFaceDiagonalLength,\n [0, 6]\n );\n pointMappings.set(\n BboxDimension.BoundingBoxIntermediateFaceDiagonalLength,\n [0, 3]\n );\n pointMappings.set(\n BboxDimension.BoundingBoxShortestFaceDiagonalLength,\n [0, 5]\n );\n } else {\n // Unreachable case\n }\n\n return { placement, pointMappings };\n }\n\n /** Validate if instance has all necessary properties. */\n private validateQueryResult(result: SpatialElementQueryResult): boolean {\n if (\n result?.bBoxHigh?.x !== undefined &&\n result?.bBoxHigh.y !== undefined &&\n result?.bBoxHigh.z !== undefined &&\n result?.bBoxLow?.x !== undefined &&\n result?.bBoxLow.y !== undefined &&\n result?.bBoxLow.z !== undefined &&\n result?.origin?.x !== undefined &&\n result?.origin.y !== undefined &&\n result?.origin.z !== undefined &&\n result?.yaw !== undefined &&\n result?.pitch !== undefined &&\n result?.roll !== undefined\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Takes a Bounding Box and builds a rectangular polyface.\n * @param bbox The desired Bounding Box.\n * @param tf Transformation on the Bounding Box if applicable.\n * @returns The bounding box geometry.\n */\n private buildPolyface(bbox: Range3d, tf: Transform): IndexedPolyface {\n const options = StrokeOptions.createForCurves();\n options.needParams = false;\n options.needNormals = true;\n const builder = PolyfaceBuilder.create(options);\n const box = Box.createRange(bbox, true)?.cloneTransformed(tf);\n if (box) {\n builder.addBox(box);\n }\n return builder.claimPolyface(false);\n }\n\n /**\n * Build a Lone geometry based on specified dimension.\n * @param bbox The desired Bounding Box.\n * @param dim The desired dimension to draw.\n * @param tf Transformation on the Bounding Box if applicable.\n * @returns The line geometry.\n */\n private buildLine(\n bbox: Range3d,\n dim: BboxDimension,\n tf: Transform\n ): [CurvePrimitive, Point3d[]] {\n // fallback scenario\n const fallback: [CurvePrimitive, Point3d[]] = [\n LineSegment3d.create(bbox.low, bbox.high).cloneTransformed(tf),\n [bbox.low, bbox.high],\n ];\n if (!this.instance) {\n // TODO: probably should have some warning here...\n return fallback;\n }\n\n // otherwise return appropriate dimensions\n const corners = this.instance.placement.getWorldCorners().points;\n const targets = this.instance.pointMappings.get(dim);\n if (targets) {\n return [\n LineSegment3d.create(corners[targets[0]], corners[targets[1]]),\n [corners[targets[0]], corners[targets[1]]],\n ];\n } else {\n // TODO: probably should have some warning here...\n return fallback;\n }\n }\n\n /**\n * Configure and add points to the dectorator.\n * @param point Definition of the points.\n */\n public addPoints(points: Point3d[]) {\n for (const point of points) {\n const styledPoint: CustomPoint = {\n point,\n color: this.pointColor,\n fill: this.fill,\n lineThickness: this.pointThickness,\n };\n this.points.push(styledPoint);\n }\n }\n\n /**\n * Configure and add a line to the decorator.\n * Length of the line is displayed as a label in the center.\n * @param line Definition of the line.\n */\n private addLine(line: LineSegment3d | CurvePrimitive) {\n const styledGeometry: CustomGeometryQuery = {\n geometry: line,\n color: this.lineColor,\n fill: true,\n fillColor: this.fillColor,\n lineThickness: this.lineThickness,\n edges: this.edges,\n linePixels: this.linePixels,\n };\n this.shapes.push(styledGeometry);\n\n const marker = new Marker(line.fractionToPoint(0.5), { x: 25, y: 25 });\n const label: HTMLDivElement = document.createElement(\"div\");\n label.textContent = `${line.quickLength().toFixed(3)}m`;\n label.style.backgroundColor = \"rgba(17,17,17,0.75)\";\n label.style.borderRadius = \"4px\";\n label.style.color = \"white\";\n label.style.padding = \"4px 8px\";\n marker.htmlElement = label;\n marker.visible = true;\n this.markers.push(marker);\n }\n\n /**\n * Configure and add a mesh to the decorator.\n * @param geometry Definition of the mesh.\n */\n private addGeometry(geometry: GeometryQuery) {\n const styledGeometry: CustomGeometryQuery = {\n geometry,\n color: this.shapeColor,\n fill: this.fill,\n fillColor: this.fillColor,\n lineThickness: this.shapeThickness,\n edges: this.edges,\n linePixels: this.linePixels,\n };\n this.shapes.push(styledGeometry);\n }\n\n /**\n * Iterate through the geometry and point lists, extracting each geometry and point, along with their styles\n * Adding them to the graphic builder which then creates new graphics\n * @param context\n * @returns\n */\n private createGraphics(context: DecorateContext): RenderGraphic | undefined {\n // Specifying an Id for the graphics tells the display system that all of the geometry belongs to the same entity, so that it knows to make sure the edges draw on top of the surfaces.\n const builder = context.createGraphicBuilder(\n GraphicType.Scene,\n undefined,\n context.viewport.iModel.transientIds.next\n );\n // Read-only now\n // builder.wantNormals = true;\n this.points.forEach((styledPoint) => {\n builder.setSymbology(\n styledPoint.color,\n styledPoint.fill ? styledPoint.color : ColorDef.white,\n styledPoint.lineThickness\n );\n const point = styledPoint.point;\n builder.addPointString([point]);\n });\n this.shapes.forEach((styledGeometry) => {\n const geometry = styledGeometry.geometry;\n builder.setSymbology(\n styledGeometry.color,\n styledGeometry.fill ? styledGeometry.fillColor : styledGeometry.color,\n styledGeometry.lineThickness,\n styledGeometry.linePixels\n );\n this.createGraphicsForGeometry(geometry, styledGeometry.edges, builder);\n });\n const graphic = builder.finish();\n return graphic;\n }\n private createGraphicsForGeometry(\n geometry: GeometryQuery,\n wantEdges: boolean,\n builder: GraphicBuilder\n ) {\n if (geometry instanceof LineString3d) {\n builder.addLineString(geometry.points);\n } else if (geometry instanceof Loop) {\n builder.addLoop(geometry);\n if (wantEdges) {\n // Since decorators don't natively support visual edges,\n // We draw them manually as lines along each loop edge/arc\n builder.setSymbology(ColorDef.black, ColorDef.black, 2);\n const curves = geometry.children;\n curves.forEach((value) => {\n if (value instanceof LineString3d) {\n let edges = value.points;\n const endPoint = value.pointAt(0);\n if (endPoint) {\n edges = edges.concat([endPoint]);\n }\n builder.addLineString(edges);\n } else if (value instanceof Arc3d) {\n builder.addArc(value, false, false);\n }\n });\n }\n } else if (geometry instanceof Path) {\n builder.addPath(geometry);\n } else if (geometry instanceof IndexedPolyface) {\n builder.addPolyface(geometry, false);\n if (wantEdges) {\n // Since decorators don't natively support visual edges,\n // We draw them manually as lines along each facet edge\n builder.setSymbology(ColorDef.black, ColorDef.black, 2);\n const visitor = IndexedPolyfaceVisitor.create(geometry, 1);\n let flag = true;\n while (flag) {\n const numIndices = visitor.pointCount;\n for (let i = 0; i < numIndices - 1; i++) {\n const point1 = visitor.getPoint(i);\n const point2 = visitor.getPoint(i + 1);\n if (point1 && point2) {\n builder.addLineString([point1, point2]);\n }\n }\n flag = visitor.moveToNextFacet();\n }\n }\n } else if (geometry instanceof LineSegment3d) {\n const pointA = geometry.point0Ref;\n const pointB = geometry.point1Ref;\n const lineString = [pointA, pointB];\n builder.addLineString(lineString);\n } else if (geometry instanceof Arc3d) {\n builder.addArc(geometry, false, false);\n } else if (geometry instanceof CurveChainWithDistanceIndex) {\n this.createGraphicsForGeometry(geometry.path, wantEdges, builder);\n }\n }\n\n // #endregion\n}\n"]}
|
|
1
|
+
{"version":3,"file":"BboxDimensionsDecorator.js","sourceRoot":"","sources":["../../../src/decorators/BboxDimensionsDecorator.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 { CurvePrimitive, GeometryQuery } from \"@itwin/core-geometry\";\nimport {\n Angle,\n Arc3d,\n Box,\n CurveChainWithDistanceIndex,\n IndexedPolyface,\n IndexedPolyfaceVisitor,\n LineSegment3d,\n LineString3d,\n Loop,\n Path,\n Point3d,\n PolyfaceBuilder,\n Range3d,\n StrokeOptions,\n Transform,\n YawPitchRollAngles,\n} from \"@itwin/core-geometry\";\nimport { ColorByName, ColorDef, LinePixels, Placement3d, QueryBinder, QueryRowFormat } from \"@itwin/core-common\";\nimport type { DecorateContext, Decorator, GraphicBuilder, RenderGraphic } from \"@itwin/core-frontend\";\nimport { GraphicBranch, GraphicType, IModelApp, Marker } from \"@itwin/core-frontend\";\n\nexport enum BboxDimension {\n BoundingBoxShortestEdgeLength = \"Shortest Edge Length\",\n BoundingBoxIntermediateEdgeLength = \"Intermediate Edge Length\",\n BoundingBoxLongestEdgeLength = \"Longest Edge Length\",\n BoundingBoxShortestFaceDiagonalLength = \"Shortest Face Diagonal Length\",\n BoundingBoxIntermediateFaceDiagonalLength = \"Intermediate Face Diagonal Length\",\n BoundingBoxLongestFaceDiagonalLength = \"Longest Face Diagonal Length\",\n BoundingBoxDiagonalLength = \"Diagonal Length\",\n // SmallestFaceArea = \"Smallest Face Area\",\n // IntermediateFaceArea = \"Intermediate Face Area\",\n // LargestFaceArea = \"Largest Face Area\",\n // Volume = \"Volume\"\n}\n\ninterface CustomGeometryQuery {\n geometry: GeometryQuery;\n color: ColorDef;\n fill: boolean;\n fillColor: ColorDef;\n lineThickness: number;\n edges: boolean;\n linePixels: LinePixels;\n}\n\ninterface CustomPoint {\n point: Point3d;\n color: ColorDef;\n fill: boolean;\n lineThickness: number;\n}\n\ninterface SpatialElementQueryResult {\n bBoxHigh: Point3d;\n bBoxLow: Point3d;\n yaw: number;\n pitch: number;\n roll: number;\n origin: Point3d;\n}\n\ninterface InferredSpatialData {\n pointMappings: Map<BboxDimension, [number, number]>;\n placement: Placement3d;\n}\n\nexport class BboxDimensionsDecorator implements Decorator {\n private instance: InferredSpatialData | undefined;\n private graphics: RenderGraphic | undefined;\n private points: CustomPoint[] = [];\n private shapes: CustomGeometryQuery[] = [];\n private markers: Marker[] = [];\n\n private fill = false;\n private shapeColor: ColorDef = ColorDef.fromTbgr(ColorDef.withTransparency(ColorDef.create(ColorByName.cyan).tbgr, 200));\n private pointColor: ColorDef = ColorDef.white;\n private lineColor: ColorDef = ColorDef.red;\n private fillColor: ColorDef = ColorDef.white;\n private shapeThickness = 1;\n private pointThickness = 8;\n private lineThickness = 4;\n private edges = true;\n private linePixels = LinePixels.Solid;\n\n /** Clear the current context. */\n public clearContext(): void {\n this.points = [];\n this.shapes = [];\n this.markers = [];\n this.graphics = undefined;\n IModelApp.viewManager.invalidateDecorationsAllViews();\n }\n\n /** Set the active instance used by the decorator. */\n public async setContext(instanceId: string): Promise<boolean> {\n // get locating info on the requested instance\n const query = `SELECT bBoxHigh,bBoxLow,yaw,pitch,roll,origin FROM BisCore.SpatialElement WHERE ECInstanceId = ?`;\n\n if (!IModelApp.viewManager.selectedView || !IModelApp.viewManager.selectedView.iModel) {\n return false;\n }\n\n const params = new QueryBinder().bindId(1, instanceId);\n const queryIterable = IModelApp.viewManager.selectedView?.iModel.query(query, params, { rowFormat: QueryRowFormat.UseJsPropertyNames });\n\n const results: SpatialElementQueryResult[] = [];\n for await (const row of queryIterable) {\n results.push(row);\n }\n // if no results or more than one abort\n if (results.length !== 1) {\n // TODO: maybe report a warning or something\n return false;\n }\n\n // validate result\n const elem = results[0];\n if (!this.validateQueryResult(elem)) {\n return false;\n } else {\n this.instance = this.inferSpatialData(elem);\n return true;\n }\n }\n\n /** Get the calculated spatial lengths for all possible dimensions. */\n public getInferredSpatialData(): Map<BboxDimension, number> | undefined {\n if (!this.instance) {\n return;\n }\n\n // calculate each dimension\n const data = new Map<BboxDimension, number>();\n const corners = this.instance.placement.getWorldCorners().points;\n const mappings = this.instance.pointMappings;\n for (const dimKey in BboxDimension) {\n if (!Object.prototype.hasOwnProperty.call(BboxDimension, dimKey)) continue;\n const dim = BboxDimension[dimKey as keyof typeof BboxDimension];\n if (mappings.has(dim)) {\n const points = mappings.get(dim);\n if (points) {\n data.set(dim, corners[points[0]].distance(corners[points[1]]));\n }\n }\n }\n\n return data;\n }\n\n /** Command to draw the BBox. */\n public drawContext(dim: BboxDimension): boolean {\n // check if valid instance set\n if (!this.instance) {\n return false;\n }\n this.clearContext();\n\n // add geometry to decorator\n const polyface = this.buildPolyface(this.instance.placement.bbox, this.instance.placement.transform);\n this.addGeometry(polyface);\n const [line, points] = this.buildLine(this.instance.placement.bbox, dim, this.instance.placement.transform);\n this.addLine(line);\n this.addPoints(points);\n\n return true;\n }\n\n /** Generates new graphics if needed, and adds them to the scene. */\n public decorate(context: DecorateContext): void {\n // const overrides = new ViewFlagOverrides();\n // overrides.setShowVisibleEdges(true);\n // overrides.setApplyLighting(true);\n const branch = new GraphicBranch(false);\n\n // branch.viewFlagOverrides.copyFrom(overrides);\n\n // context.viewFlags.visibleEdges = true;\n if (!this.graphics) {\n this.graphics = this.createGraphics(context);\n }\n\n if (this.graphics) {\n branch.add(this.graphics);\n }\n\n const graphic = context.createBranch(branch, Transform.identity);\n context.addDecoration(GraphicType.WorldOverlay, graphic);\n\n this.markers.forEach((marker) => {\n marker.addDecoration(context);\n });\n }\n\n // #region Helper Functions\n\n /** Calculate all BBox dimensions and properties and save. */\n private inferSpatialData(elem: SpatialElementQueryResult): InferredSpatialData {\n // build placement from result\n const origin = new Point3d(elem.origin.x, elem.origin.y, elem.origin.z);\n const bBoxLow = new Point3d(elem.bBoxLow.x, elem.bBoxLow.y, elem.bBoxLow.z);\n const bBoxHigh = new Point3d(elem.bBoxHigh.x, elem.bBoxHigh.y, elem.bBoxHigh.z);\n const range = Range3d.create(bBoxLow, bBoxHigh);\n const ypra = new YawPitchRollAngles(Angle.createDegrees(elem.yaw), Angle.createDegrees(elem.pitch), Angle.createDegrees(elem.roll));\n const placement = new Placement3d(origin, ypra, range);\n\n // determine dimension size ordering\n const pointMappings = new Map<BboxDimension, [number, number]>();\n pointMappings.set(BboxDimension.BoundingBoxDiagonalLength, [0, 7]);\n const corners = placement.getWorldCorners();\n const d01 = corners.distance(0, 1);\n const d02 = corners.distance(0, 2);\n const d04 = corners.distance(0, 4);\n if (d01 >= d02 && d02 >= d04) {\n pointMappings.set(BboxDimension.BoundingBoxLongestEdgeLength, [0, 1]);\n pointMappings.set(BboxDimension.BoundingBoxIntermediateEdgeLength, [0, 2]);\n pointMappings.set(BboxDimension.BoundingBoxShortestEdgeLength, [0, 4]);\n pointMappings.set(BboxDimension.BoundingBoxLongestFaceDiagonalLength, [0, 3]);\n pointMappings.set(BboxDimension.BoundingBoxIntermediateFaceDiagonalLength, [0, 5]);\n pointMappings.set(BboxDimension.BoundingBoxShortestFaceDiagonalLength, [0, 6]);\n } else if (d01 >= d04 && d04 >= d02) {\n pointMappings.set(BboxDimension.BoundingBoxLongestEdgeLength, [0, 1]);\n pointMappings.set(BboxDimension.BoundingBoxIntermediateEdgeLength, [0, 4]);\n pointMappings.set(BboxDimension.BoundingBoxShortestEdgeLength, [0, 2]);\n pointMappings.set(BboxDimension.BoundingBoxLongestFaceDiagonalLength, [0, 5]);\n pointMappings.set(BboxDimension.BoundingBoxIntermediateFaceDiagonalLength, [0, 3]);\n pointMappings.set(BboxDimension.BoundingBoxShortestFaceDiagonalLength, [0, 6]);\n } else if (d04 >= d02 && d02 >= d01) {\n pointMappings.set(BboxDimension.BoundingBoxLongestEdgeLength, [0, 4]);\n pointMappings.set(BboxDimension.BoundingBoxIntermediateEdgeLength, [0, 2]);\n pointMappings.set(BboxDimension.BoundingBoxShortestEdgeLength, [0, 1]);\n pointMappings.set(BboxDimension.BoundingBoxLongestFaceDiagonalLength, [0, 6]);\n pointMappings.set(BboxDimension.BoundingBoxIntermediateFaceDiagonalLength, [0, 5]);\n pointMappings.set(BboxDimension.BoundingBoxShortestFaceDiagonalLength, [0, 3]);\n } else if (d04 >= d01 && d01 >= d02) {\n pointMappings.set(BboxDimension.BoundingBoxLongestEdgeLength, [0, 4]);\n pointMappings.set(BboxDimension.BoundingBoxIntermediateEdgeLength, [0, 1]);\n pointMappings.set(BboxDimension.BoundingBoxShortestEdgeLength, [0, 2]);\n pointMappings.set(BboxDimension.BoundingBoxLongestFaceDiagonalLength, [0, 5]);\n pointMappings.set(BboxDimension.BoundingBoxIntermediateFaceDiagonalLength, [0, 6]);\n pointMappings.set(BboxDimension.BoundingBoxShortestFaceDiagonalLength, [0, 3]);\n } else if (d02 >= d01 && d01 >= d04) {\n pointMappings.set(BboxDimension.BoundingBoxLongestEdgeLength, [0, 2]);\n pointMappings.set(BboxDimension.BoundingBoxIntermediateEdgeLength, [0, 1]);\n pointMappings.set(BboxDimension.BoundingBoxShortestEdgeLength, [0, 4]);\n pointMappings.set(BboxDimension.BoundingBoxLongestFaceDiagonalLength, [0, 3]);\n pointMappings.set(BboxDimension.BoundingBoxIntermediateFaceDiagonalLength, [0, 6]);\n pointMappings.set(BboxDimension.BoundingBoxShortestFaceDiagonalLength, [0, 5]);\n } else if (d02 >= d04 && d04 >= d01) {\n pointMappings.set(BboxDimension.BoundingBoxLongestEdgeLength, [0, 2]);\n pointMappings.set(BboxDimension.BoundingBoxIntermediateEdgeLength, [0, 4]);\n pointMappings.set(BboxDimension.BoundingBoxShortestEdgeLength, [0, 1]);\n pointMappings.set(BboxDimension.BoundingBoxLongestFaceDiagonalLength, [0, 6]);\n pointMappings.set(BboxDimension.BoundingBoxIntermediateFaceDiagonalLength, [0, 3]);\n pointMappings.set(BboxDimension.BoundingBoxShortestFaceDiagonalLength, [0, 5]);\n } else {\n // Unreachable case\n }\n\n return { placement, pointMappings };\n }\n\n /** Validate if instance has all necessary properties. */\n private validateQueryResult(result: SpatialElementQueryResult): boolean {\n if (\n result?.bBoxHigh?.x !== undefined &&\n result?.bBoxHigh.y !== undefined &&\n result?.bBoxHigh.z !== undefined &&\n result?.bBoxLow?.x !== undefined &&\n result?.bBoxLow.y !== undefined &&\n result?.bBoxLow.z !== undefined &&\n result?.origin?.x !== undefined &&\n result?.origin.y !== undefined &&\n result?.origin.z !== undefined &&\n result?.yaw !== undefined &&\n result?.pitch !== undefined &&\n result?.roll !== undefined\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Takes a Bounding Box and builds a rectangular polyface.\n * @param bbox The desired Bounding Box.\n * @param tf Transformation on the Bounding Box if applicable.\n * @returns The bounding box geometry.\n */\n private buildPolyface(bbox: Range3d, tf: Transform): IndexedPolyface {\n const options = StrokeOptions.createForCurves();\n options.needParams = false;\n options.needNormals = true;\n const builder = PolyfaceBuilder.create(options);\n const box = Box.createRange(bbox, true)?.cloneTransformed(tf);\n if (box) {\n builder.addBox(box);\n }\n return builder.claimPolyface(false);\n }\n\n /**\n * Build a Lone geometry based on specified dimension.\n * @param bbox The desired Bounding Box.\n * @param dim The desired dimension to draw.\n * @param tf Transformation on the Bounding Box if applicable.\n * @returns The line geometry.\n */\n private buildLine(bbox: Range3d, dim: BboxDimension, tf: Transform): [CurvePrimitive, Point3d[]] {\n // fallback scenario\n const fallback: [CurvePrimitive, Point3d[]] = [LineSegment3d.create(bbox.low, bbox.high).cloneTransformed(tf), [bbox.low, bbox.high]];\n if (!this.instance) {\n // TODO: probably should have some warning here...\n return fallback;\n }\n\n // otherwise return appropriate dimensions\n const corners = this.instance.placement.getWorldCorners().points;\n const targets = this.instance.pointMappings.get(dim);\n if (targets) {\n return [LineSegment3d.create(corners[targets[0]], corners[targets[1]]), [corners[targets[0]], corners[targets[1]]]];\n } else {\n // TODO: probably should have some warning here...\n return fallback;\n }\n }\n\n /**\n * Configure and add points to the dectorator.\n * @param point Definition of the points.\n */\n public addPoints(points: Point3d[]) {\n for (const point of points) {\n const styledPoint: CustomPoint = {\n point,\n color: this.pointColor,\n fill: this.fill,\n lineThickness: this.pointThickness,\n };\n this.points.push(styledPoint);\n }\n }\n\n /**\n * Configure and add a line to the decorator.\n * Length of the line is displayed as a label in the center.\n * @param line Definition of the line.\n */\n private addLine(line: LineSegment3d | CurvePrimitive) {\n const styledGeometry: CustomGeometryQuery = {\n geometry: line,\n color: this.lineColor,\n fill: true,\n fillColor: this.fillColor,\n lineThickness: this.lineThickness,\n edges: this.edges,\n linePixels: this.linePixels,\n };\n this.shapes.push(styledGeometry);\n\n const marker = new Marker(line.fractionToPoint(0.5), { x: 25, y: 25 });\n const label: HTMLDivElement = document.createElement(\"div\");\n label.textContent = `${line.quickLength().toFixed(3)}m`;\n label.style.backgroundColor = \"rgba(17,17,17,0.75)\";\n label.style.borderRadius = \"4px\";\n label.style.color = \"white\";\n label.style.padding = \"4px 8px\";\n marker.htmlElement = label;\n marker.visible = true;\n this.markers.push(marker);\n }\n\n /**\n * Configure and add a mesh to the decorator.\n * @param geometry Definition of the mesh.\n */\n private addGeometry(geometry: GeometryQuery) {\n const styledGeometry: CustomGeometryQuery = {\n geometry,\n color: this.shapeColor,\n fill: this.fill,\n fillColor: this.fillColor,\n lineThickness: this.shapeThickness,\n edges: this.edges,\n linePixels: this.linePixels,\n };\n this.shapes.push(styledGeometry);\n }\n\n /**\n * Iterate through the geometry and point lists, extracting each geometry and point, along with their styles\n * Adding them to the graphic builder which then creates new graphics\n * @param context\n * @returns\n */\n private createGraphics(context: DecorateContext): RenderGraphic | undefined {\n // Specifying an Id for the graphics tells the display system that all of the geometry belongs to the same entity, so that it knows to make sure the edges draw on top of the surfaces.\n const builder = context.createGraphicBuilder(GraphicType.Scene, undefined, context.viewport.iModel.transientIds.next);\n // Read-only now\n // builder.wantNormals = true;\n this.points.forEach((styledPoint) => {\n builder.setSymbology(styledPoint.color, styledPoint.fill ? styledPoint.color : ColorDef.white, styledPoint.lineThickness);\n const point = styledPoint.point;\n builder.addPointString([point]);\n });\n this.shapes.forEach((styledGeometry) => {\n const geometry = styledGeometry.geometry;\n builder.setSymbology(\n styledGeometry.color,\n styledGeometry.fill ? styledGeometry.fillColor : styledGeometry.color,\n styledGeometry.lineThickness,\n styledGeometry.linePixels,\n );\n this.createGraphicsForGeometry(geometry, styledGeometry.edges, builder);\n });\n const graphic = builder.finish();\n return graphic;\n }\n private createGraphicsForGeometry(geometry: GeometryQuery, wantEdges: boolean, builder: GraphicBuilder) {\n if (geometry instanceof LineString3d) {\n builder.addLineString(geometry.points);\n } else if (geometry instanceof Loop) {\n builder.addLoop(geometry);\n if (wantEdges) {\n // Since decorators don't natively support visual edges,\n // We draw them manually as lines along each loop edge/arc\n builder.setSymbology(ColorDef.black, ColorDef.black, 2);\n const curves = geometry.children;\n curves.forEach((value) => {\n if (value instanceof LineString3d) {\n let edges = value.points;\n const endPoint = value.pointAt(0);\n if (endPoint) {\n edges = edges.concat([endPoint]);\n }\n builder.addLineString(edges);\n } else if (value instanceof Arc3d) {\n builder.addArc(value, false, false);\n }\n });\n }\n } else if (geometry instanceof Path) {\n builder.addPath(geometry);\n } else if (geometry instanceof IndexedPolyface) {\n builder.addPolyface(geometry, false);\n if (wantEdges) {\n // Since decorators don't natively support visual edges,\n // We draw them manually as lines along each facet edge\n builder.setSymbology(ColorDef.black, ColorDef.black, 2);\n const visitor = IndexedPolyfaceVisitor.create(geometry, 1);\n let flag = true;\n while (flag) {\n const numIndices = visitor.pointCount;\n for (let i = 0; i < numIndices - 1; i++) {\n const point1 = visitor.getPoint(i);\n const point2 = visitor.getPoint(i + 1);\n if (point1 && point2) {\n builder.addLineString([point1, point2]);\n }\n }\n flag = visitor.moveToNextFacet();\n }\n }\n } else if (geometry instanceof LineSegment3d) {\n const pointA = geometry.point0Ref;\n const pointB = geometry.point1Ref;\n const lineString = [pointA, pointB];\n builder.addLineString(lineString);\n } else if (geometry instanceof Arc3d) {\n builder.addArc(geometry, false, false);\n } else if (geometry instanceof CurveChainWithDistanceIndex) {\n this.createGraphicsForGeometry(geometry.path, wantEdges, builder);\n }\n }\n\n // #endregion\n}\n"]}
|
|
@@ -7,6 +7,7 @@ import type { DataType, PropertyMap } from "./Types";
|
|
|
7
7
|
* @param properties All available properties or variables with their data types
|
|
8
8
|
* that could be used in formula. Names are expected to be lowercase.
|
|
9
9
|
* @returns `dataType` if formula is valid. `errorMessage` otherwise.
|
|
10
|
+
* @public
|
|
10
11
|
*/
|
|
11
12
|
export declare function resolveFormulaDataType(formulaName: string, formula: string, properties: PropertyMap): IResult<DataType>;
|
|
12
13
|
//# sourceMappingURL=FormulaDataTypeResolver.d.ts.map
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveFormulaDataType = void 0;
|
|
4
4
|
/*---------------------------------------------------------------------------------------------
|
|
5
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
6
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
7
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
6
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
7
|
+
*--------------------------------------------------------------------------------------------*/
|
|
8
8
|
const FormulaSplitter_1 = require("./FormulaSplitter");
|
|
9
9
|
const FormulaTokensDataTypeResolver_1 = require("./FormulaTokensDataTypeResolver");
|
|
10
10
|
const InfixToPostfixConverter_1 = require("./InfixToPostfixConverter");
|
|
@@ -16,6 +16,7 @@ const ParenthesisValidator_1 = require("./ParenthesisValidator");
|
|
|
16
16
|
* @param properties All available properties or variables with their data types
|
|
17
17
|
* that could be used in formula. Names are expected to be lowercase.
|
|
18
18
|
* @returns `dataType` if formula is valid. `errorMessage` otherwise.
|
|
19
|
+
* @public
|
|
19
20
|
*/
|
|
20
21
|
function resolveFormulaDataType(formulaName, formula, properties) {
|
|
21
22
|
const parenthesisState = (0, ParenthesisValidator_1.validateParenthesis)(formula);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormulaDataTypeResolver.js","sourceRoot":"","sources":["../../../src/formula/FormulaDataTypeResolver.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"FormulaDataTypeResolver.js","sourceRoot":"","sources":["../../../src/formula/FormulaDataTypeResolver.ts"],"names":[],"mappings":";;;AAAA;;;gGAGgG;AAChG,uDAAiD;AACjD,mFAAwE;AACxE,uEAAkE;AAElE,iEAA+E;AAG/E;;;;;;;;GAQG;AACH,SAAgB,sBAAsB,CAAC,WAAmB,EAAE,OAAe,EAAE,UAAuB;IAClG,MAAM,gBAAgB,GAAG,IAAA,0CAAmB,EAAC,OAAO,CAAC,CAAC;IACtD,IAAI,uCAAgB,CAAC,SAAS,KAAK,gBAAgB,EAAE;QACnD,OAAO,EAAE,YAAY,EAAE,0CAA0C,EAAE,CAAC;KACrE;SAAM,IAAI,uCAAgB,CAAC,SAAS,KAAK,gBAAgB,EAAE;QAC1D,OAAO,EAAE,YAAY,EAAE,0CAA0C,EAAE,CAAC;KACrE;IAED,IAAI,kBAAkB,CAAC;IACvB,IAAI;QACF,kBAAkB,GAAG,IAAA,8BAAY,EAAC,OAAO,CAAC,CAAC;KAC5C;IAAC,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,YAAY,KAAK,EAAE;YACvB,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;SACrC;aAAM;YACL,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACpC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;SAC3C;KACF;IAED,MAAM,oBAAoB,GAAG,IAAA,+CAAqB,EAAC,kBAAkB,CAAC,CAAC;IAEvE,IAAI,SAAS,KAAK,oBAAoB,CAAC,KAAK,EAAE;QAC5C,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC,YAAY,IAAI,gBAAgB,EAAE,CAAC;KAChF;IAED,OAAO,IAAA,qDAAqB,EAAC,WAAW,EAAE,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACpF,CAAC;AA5BD,wDA4BC","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 { splitFormula } from \"./FormulaSplitter\";\nimport { resolveTokensDataType } from \"./FormulaTokensDataTypeResolver\";\nimport { convertInfixToPostfix } from \"./InfixToPostfixConverter\";\nimport type { IResult } from \"./IResult\";\nimport { ParenthesisState, validateParenthesis } from \"./ParenthesisValidator\";\nimport type { DataType, PropertyMap } from \"./Types\";\n\n/**\n * Resolves DataType of the given formula.\n * @param formulaName Name of the current formula. Expected to be lowercase.\n * @param formula The formula itself.\n * @param properties All available properties or variables with their data types\n * that could be used in formula. Names are expected to be lowercase.\n * @returns `dataType` if formula is valid. `errorMessage` otherwise.\n * @public\n */\nexport function resolveFormulaDataType(formulaName: string, formula: string, properties: PropertyMap): IResult<DataType> {\n const parenthesisState = validateParenthesis(formula);\n if (ParenthesisState.NotClosed === parenthesisState) {\n return { errorMessage: \"Opened but not closed parenthesis found.\" };\n } else if (ParenthesisState.NotOpened === parenthesisState) {\n return { errorMessage: \"Closed but not opened parenthesis found.\" };\n }\n\n let infixFormulaTokens;\n try {\n infixFormulaTokens = splitFormula(formula);\n } catch (ex) {\n if (ex instanceof Error) {\n return { errorMessage: ex.message };\n } else {\n // eslint-disable-next-line no-console\n console.error(\"Unknown error.\", ex);\n return { errorMessage: \"Unknown error.\" };\n }\n }\n\n const postfixFormulaTokens = convertInfixToPostfix(infixFormulaTokens);\n\n if (undefined === postfixFormulaTokens.value) {\n return { errorMessage: postfixFormulaTokens.errorMessage ?? \"Unknown error.\" };\n }\n\n return resolveTokensDataType(formulaName, postfixFormulaTokens.value, properties);\n}\n"]}
|
|
@@ -9,7 +9,10 @@ function isValidArgument(arg, argPos, expectedArg) {
|
|
|
9
9
|
return { isValid, invalidReason: isValid ? undefined : `Expected ${(0, Utils_1.formatNumericalPositionString)(argPos + 1)} argument to not be null.` };
|
|
10
10
|
}
|
|
11
11
|
isValid = expectedArg.canBeAny || arg === expectedArg.dataType;
|
|
12
|
-
return {
|
|
12
|
+
return {
|
|
13
|
+
isValid,
|
|
14
|
+
invalidReason: isValid ? undefined : `Expected ${(0, Utils_1.formatNumericalPositionString)(argPos + 1)} argument to be of type ${expectedArg.dataType}.`,
|
|
15
|
+
};
|
|
13
16
|
}
|
|
14
17
|
function validateArgumentsWithTypeMatching() {
|
|
15
18
|
let matchType = "Undefined";
|
|
@@ -19,7 +22,7 @@ function validateArgumentsWithTypeMatching() {
|
|
|
19
22
|
const validation = isValidArgument(arg, argPos, expectedArg);
|
|
20
23
|
if (!validation.isValid)
|
|
21
24
|
return validation;
|
|
22
|
-
const isValid =
|
|
25
|
+
const isValid = matchType === "Undefined" || arg === matchType || (arg === "Undefined" && !!expectedArg.canBeUndefined);
|
|
23
26
|
if (matchType !== "Undefined" && !isValid)
|
|
24
27
|
return {
|
|
25
28
|
isValid,
|
|
@@ -56,81 +59,159 @@ function getFormulaFunctionReturnType(func, args) {
|
|
|
56
59
|
exports.getFormulaFunctionReturnType = getFormulaFunctionReturnType;
|
|
57
60
|
function getNumericalFunction(name) {
|
|
58
61
|
switch (name) {
|
|
59
|
-
case "abs":
|
|
60
|
-
|
|
61
|
-
case "
|
|
62
|
-
|
|
63
|
-
case "
|
|
64
|
-
|
|
65
|
-
case "
|
|
66
|
-
|
|
67
|
-
case "
|
|
68
|
-
|
|
69
|
-
case "
|
|
70
|
-
|
|
71
|
-
case "
|
|
72
|
-
|
|
73
|
-
case "
|
|
74
|
-
|
|
75
|
-
case "
|
|
76
|
-
|
|
77
|
-
case "
|
|
78
|
-
|
|
79
|
-
case "
|
|
80
|
-
|
|
81
|
-
case "
|
|
82
|
-
|
|
83
|
-
case "
|
|
84
|
-
|
|
85
|
-
case "
|
|
86
|
-
|
|
87
|
-
case "
|
|
88
|
-
|
|
89
|
-
case "
|
|
90
|
-
|
|
91
|
-
case "
|
|
92
|
-
|
|
93
|
-
case "
|
|
94
|
-
|
|
95
|
-
|
|
62
|
+
case "abs":
|
|
63
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
64
|
+
case "acos":
|
|
65
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
66
|
+
case "acosh":
|
|
67
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
68
|
+
case "asin":
|
|
69
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
70
|
+
case "asinh":
|
|
71
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
72
|
+
case "atan":
|
|
73
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
74
|
+
case "atanh":
|
|
75
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
76
|
+
case "atan2":
|
|
77
|
+
return { argumentCountBounds: [2, 2], expectedArguments: [{ dataType: "Double" }, { dataType: "Double" }], returnType: "Double" };
|
|
78
|
+
case "cbrt":
|
|
79
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
80
|
+
case "ceil":
|
|
81
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
82
|
+
case "clz32":
|
|
83
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
84
|
+
case "cos":
|
|
85
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
86
|
+
case "cosh":
|
|
87
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
88
|
+
case "exp":
|
|
89
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
90
|
+
case "expm1":
|
|
91
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
92
|
+
case "floor":
|
|
93
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
94
|
+
case "fround":
|
|
95
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
96
|
+
case "hypot":
|
|
97
|
+
return { argumentCountBounds: [2, -1], expectedArguments: [{ dataType: "Double" }, { dataType: "Double" }], returnType: "Double" };
|
|
98
|
+
case "imul":
|
|
99
|
+
return { argumentCountBounds: [2, 2], expectedArguments: [{ dataType: "Double" }, { dataType: "Double" }], returnType: "Double" };
|
|
100
|
+
case "log":
|
|
101
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
102
|
+
case "log1p":
|
|
103
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
104
|
+
case "log10":
|
|
105
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
106
|
+
case "log2":
|
|
107
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
108
|
+
case "max":
|
|
109
|
+
return { argumentCountBounds: [2, -1], expectedArguments: [{ dataType: "Double" }, { dataType: "Double" }], returnType: "Double" };
|
|
110
|
+
case "min":
|
|
111
|
+
return { argumentCountBounds: [2, -1], expectedArguments: [{ dataType: "Double" }, { dataType: "Double" }], returnType: "Double" };
|
|
112
|
+
case "pow":
|
|
113
|
+
return { argumentCountBounds: [2, 2], expectedArguments: [{ dataType: "Double" }, { dataType: "Double" }], returnType: "Double" };
|
|
114
|
+
case "random":
|
|
115
|
+
return { argumentCountBounds: [0, 0], expectedArguments: [], returnType: "Double" };
|
|
116
|
+
case "round":
|
|
117
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
118
|
+
case "sign":
|
|
119
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
120
|
+
case "sin":
|
|
121
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
122
|
+
case "sinh":
|
|
123
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
124
|
+
case "sqrt":
|
|
125
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
126
|
+
case "tan":
|
|
127
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
128
|
+
case "tanh":
|
|
129
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
130
|
+
case "trunc":
|
|
131
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "Double" }], returnType: "Double" };
|
|
132
|
+
case "tonumber":
|
|
133
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ canBeAny: true }], returnType: "Double" };
|
|
134
|
+
default:
|
|
135
|
+
return undefined;
|
|
96
136
|
}
|
|
97
137
|
}
|
|
98
138
|
function getStringFunction(name) {
|
|
99
139
|
switch (name) {
|
|
100
|
-
case "charat":
|
|
101
|
-
|
|
102
|
-
case "
|
|
103
|
-
|
|
104
|
-
case "
|
|
105
|
-
|
|
106
|
-
case "
|
|
107
|
-
|
|
108
|
-
case "
|
|
109
|
-
|
|
110
|
-
case "
|
|
111
|
-
|
|
112
|
-
|
|
140
|
+
case "charat":
|
|
141
|
+
return { argumentCountBounds: [2, 2], expectedArguments: [{ dataType: "String" }, { dataType: "Double" }], returnType: "String" };
|
|
142
|
+
case "concat":
|
|
143
|
+
return { argumentCountBounds: [2, -1], expectedArguments: [{ dataType: "String" }, { dataType: "String" }], returnType: "String" };
|
|
144
|
+
case "padend":
|
|
145
|
+
return { argumentCountBounds: [2, 3], expectedArguments: [{ dataType: "String" }, { dataType: "Double" }, { dataType: "String" }], returnType: "String" };
|
|
146
|
+
case "padstart":
|
|
147
|
+
return { argumentCountBounds: [2, 3], expectedArguments: [{ dataType: "String" }, { dataType: "Double" }, { dataType: "String" }], returnType: "String" };
|
|
148
|
+
case "substring":
|
|
149
|
+
return { argumentCountBounds: [2, 3], expectedArguments: [{ dataType: "String" }, { dataType: "Double" }, { dataType: "Double" }], returnType: "String" };
|
|
150
|
+
case "indexof":
|
|
151
|
+
return { argumentCountBounds: [2, 3], expectedArguments: [{ dataType: "String" }, { dataType: "String" }, { dataType: "Double" }], returnType: "Double" };
|
|
152
|
+
case "tolowercase":
|
|
153
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "String" }], returnType: "String" };
|
|
154
|
+
case "touppercase":
|
|
155
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "String" }], returnType: "String" };
|
|
156
|
+
case "trim":
|
|
157
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "String" }], returnType: "String" };
|
|
158
|
+
case "trimend":
|
|
159
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "String" }], returnType: "String" };
|
|
160
|
+
case "trimstart":
|
|
161
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ dataType: "String" }], returnType: "String" };
|
|
162
|
+
case "tostring":
|
|
163
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ canBeAny: true }], returnType: "String" };
|
|
164
|
+
default:
|
|
165
|
+
return undefined;
|
|
113
166
|
}
|
|
114
167
|
}
|
|
115
168
|
function getConditionalFunction(name) {
|
|
116
169
|
switch (name) {
|
|
117
|
-
case "if":
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
case "
|
|
125
|
-
|
|
126
|
-
|
|
170
|
+
case "if":
|
|
171
|
+
return {
|
|
172
|
+
argumentCountBounds: [3, 3],
|
|
173
|
+
expectedArguments: [{ dataType: "Boolean" }, { canBeAny: true, canBeUndefined: true }, { canBeAny: true, canBeUndefined: true }],
|
|
174
|
+
typesMatchFromIndex: 1,
|
|
175
|
+
isreturnTypeFromTypeMatch: true,
|
|
176
|
+
};
|
|
177
|
+
case "ifnull":
|
|
178
|
+
return {
|
|
179
|
+
argumentCountBounds: [2, 2],
|
|
180
|
+
expectedArguments: [{ canBeAny: true, canBeUndefined: true }, { canBeAny: true }],
|
|
181
|
+
typesMatchFromIndex: 0,
|
|
182
|
+
isreturnTypeFromTypeMatch: true,
|
|
183
|
+
};
|
|
184
|
+
case "ifnotnull":
|
|
185
|
+
return {
|
|
186
|
+
argumentCountBounds: [2, 2],
|
|
187
|
+
expectedArguments: [{ canBeAny: true, canBeUndefined: true }, { canBeAny: true }],
|
|
188
|
+
typesMatchFromIndex: 0,
|
|
189
|
+
isreturnTypeFromTypeMatch: true,
|
|
190
|
+
};
|
|
191
|
+
case "ifempty":
|
|
192
|
+
return { argumentCountBounds: [2, 2], expectedArguments: [{ dataType: "String" }, { dataType: "String" }], returnType: "String" };
|
|
193
|
+
case "ifnotempty":
|
|
194
|
+
return { argumentCountBounds: [2, 2], expectedArguments: [{ dataType: "String" }, { dataType: "String" }], returnType: "String" };
|
|
195
|
+
case "ifnullorempty":
|
|
196
|
+
return { argumentCountBounds: [2, 2], expectedArguments: [{ dataType: "String", canBeUndefined: true }, { dataType: "String" }], returnType: "String" };
|
|
197
|
+
case "ifnotnullorempty":
|
|
198
|
+
return { argumentCountBounds: [2, 2], expectedArguments: [{ dataType: "String", canBeUndefined: true }, { dataType: "String" }], returnType: "String" };
|
|
199
|
+
case "ifnullorwhitespace":
|
|
200
|
+
return { argumentCountBounds: [2, 2], expectedArguments: [{ dataType: "String", canBeUndefined: true }, { dataType: "String" }], returnType: "String" };
|
|
201
|
+
case "ifnotnullorwhitespace":
|
|
202
|
+
return { argumentCountBounds: [2, 2], expectedArguments: [{ dataType: "String", canBeUndefined: true }, { dataType: "String" }], returnType: "String" };
|
|
203
|
+
default:
|
|
204
|
+
return undefined;
|
|
127
205
|
}
|
|
128
206
|
}
|
|
129
207
|
function getBooleanFunction(name) {
|
|
130
208
|
switch (name) {
|
|
131
|
-
case "isin":
|
|
132
|
-
|
|
133
|
-
|
|
209
|
+
case "isin":
|
|
210
|
+
return { argumentCountBounds: [2, -1], expectedArguments: [{ canBeAny: true }, { canBeAny: true }], typesMatchFromIndex: 0, returnType: "Boolean" };
|
|
211
|
+
case "toboolean":
|
|
212
|
+
return { argumentCountBounds: [1, 1], expectedArguments: [{ canBeAny: true }], returnType: "Boolean" };
|
|
213
|
+
default:
|
|
214
|
+
return undefined;
|
|
134
215
|
}
|
|
135
216
|
}
|
|
136
217
|
function getFunction(name) {
|