udp-react-enterprise-component-library 26.5.0-beta.2 → 26.5.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/UI/AlertContainer.mjs +1 -1
- package/dist/UI/Box.mjs +1 -1
- package/dist/UI/Grid.mjs +1 -1
- package/dist/UI/accordion/Accordion.mjs +1 -1
- package/dist/UI/advancedSearchBuilder/UdpAdvancedSearchBuilder.mjs +1 -1
- package/dist/UI/charts/ag/UdpAgAreaChart.mjs +1 -1
- package/dist/UI/charts/ag/UdpAgBarChart.mjs +1 -1
- package/dist/UI/charts/ag/UdpAgBubbleChart.mjs +1 -1
- package/dist/UI/charts/ag/UdpAgComboChart.mjs +1 -1
- package/dist/UI/charts/ag/UdpAgDonutChart.mjs +1 -1
- package/dist/UI/charts/ag/UdpAgLineChart.mjs +1 -1
- package/dist/UI/charts/ag/UdpAgPieChart.mjs +1 -1
- package/dist/UI/charts/ag/UdpAgScatterChart.mjs +1 -1
- package/dist/UI/charts/amcharts/UdpBarChart.mjs +1 -1
- package/dist/UI/charts/amcharts/UdpDistributionChart.mjs +1 -1
- package/dist/UI/charts/amcharts/UdpDonutChart.mjs +1 -1
- package/dist/UI/charts/amcharts/UdpLineChart.mjs +1 -1
- package/dist/UI/charts/amcharts/UdpSankeyChart.mjs +1 -1
- package/dist/UI/charts/amcharts/UdpXYMultiSeriesChart.mjs +1 -1
- package/dist/UI/components/dataDisplay/Ellipse.mjs +1 -1
- package/dist/UI/components/dataDisplay/EmailDisplay.mjs +1 -1
- package/dist/UI/components/dataDisplay/SmsDisplay.mjs +1 -1
- package/dist/UI/components/dataDisplay/Sticky.mjs +1 -1
- package/dist/UI/components/dataDisplay/Token.mjs +1 -1
- package/dist/UI/components/feedback/Adornment.mjs +1 -1
- package/dist/UI/dataDisplay/AmbientList.mjs +1 -1
- package/dist/UI/dataDisplay/AvatarAlphabet.mjs +1 -1
- package/dist/UI/dataDisplay/ChipAlphabet.mjs +1 -1
- package/dist/UI/dataDisplay/CompactDataList.mjs +1 -1
- package/dist/UI/dataDisplay/CompactDataListItem.mjs +1 -1
- package/dist/UI/dataDisplay/EmptyStateDisplay.mjs +1 -1
- package/dist/UI/dataDisplay/FluentActivity/FluentActivity.mjs +1 -1
- package/dist/UI/dataDisplay/FluentActivity/FluentActivityRow.mjs +1 -1
- package/dist/UI/dataDisplay/FluentDataTable/FluentBody/index.mjs +1 -1
- package/dist/UI/dataDisplay/FluentDataTable/FluentCell/index.mjs +1 -1
- package/dist/UI/dataDisplay/FluentDataTable/FluentHead/index.mjs +1 -1
- package/dist/UI/dataDisplay/FluentDataTable/FluentRow/index.mjs +1 -1
- package/dist/UI/dataDisplay/FluentListElement.mjs +1 -1
- package/dist/UI/dataDisplay/FluentListItem.mjs +1 -1
- package/dist/UI/dataDisplay/GraphCard/GraphCard.mjs +1 -1
- package/dist/UI/dataDisplay/HeaderExpander.mjs +1 -1
- package/dist/UI/dataDisplay/SummaryBlock.mjs +1 -1
- package/dist/UI/dataDisplay/UdpDetailList.mjs +1 -1
- package/dist/UI/dataDisplay/UdpDetailListItem.mjs +1 -1
- package/dist/UI/dataDisplay/address/AddressListItem.mjs +1 -1
- package/dist/UI/dataDisplay/calendar/TimelineCalendar.mjs +1 -1
- package/dist/UI/dataDisplay/cardList/CardList.mjs +1 -1
- package/dist/UI/dataDisplay/directory/Directory.mjs +1 -1
- package/dist/UI/dataDisplay/directory/DirectoryListItem.mjs +1 -1
- package/dist/UI/dataDisplay/entityHeader/EntityHeader.mjs +1 -1
- package/dist/UI/dataDisplay/entityHeader/functions/useElementWidth.mjs +1 -1
- package/dist/UI/dataDisplay/entityHeader/ui/AlertPill.mjs +1 -1
- package/dist/UI/dataDisplay/entityHeader/ui/EntityHeaderContainer.mjs +1 -1
- package/dist/UI/dataDisplay/entityHeader/ui/EntityHeaderFlags.mjs +1 -1
- package/dist/UI/dataDisplay/entityHeader/ui/EntityHeaderList.mjs +1 -1
- package/dist/UI/dataDisplay/entityHeader/ui/EntityHeaderListItem.mjs +1 -1
- package/dist/UI/dataDisplay/entityHeader/ui/EntityHeaderSection.mjs +1 -1
- package/dist/UI/dataDisplay/entityHeader/ui/EntityHeaderStatList.mjs +1 -1
- package/dist/UI/dataDisplay/entityHeader/ui/EntityHeaderStatListItem.mjs +1 -1
- package/dist/UI/dataDisplay/map/ColorKey.mjs +1 -1
- package/dist/UI/dataDisplay/map/FluentIconKey.mjs +1 -1
- package/dist/UI/dataDisplay/map/IconKey.mjs +1 -1
- package/dist/UI/dataDisplay/notes/Note.mjs +1 -1
- package/dist/UI/dataDisplay/notes/Notes.mjs +1 -1
- package/dist/UI/dataDisplay/status/StatusChip.mjs +1 -1
- package/dist/UI/dataDisplay/status/StatusFlags.mjs +1 -1
- package/dist/UI/dataDisplay/ticketCard/NotificationElement.mjs +1 -1
- package/dist/UI/dataDisplay/ticketCard/StatusLineItem.mjs +1 -1
- package/dist/UI/dataDisplay/ticketCard/TicketCard.mjs +1 -1
- package/dist/UI/dataDisplay/typography/FormHeaders.mjs +1 -1
- package/dist/UI/dataDisplay/typography/SideSheetHeader.mjs +1 -1
- package/dist/UI/dataDisplay/typography/SidebarHeader.mjs +1 -1
- package/dist/UI/dataDisplay/typography/StandardTitle.mjs +1 -1
- package/dist/UI/dataDisplay/typography/StylizedTitle.mjs +1 -1
- package/dist/UI/dataDisplay/typography/Typography.mjs +1 -1
- package/dist/UI/dataDisplay/visualization/AmbientVisualizer.mjs +1 -1
- package/dist/UI/dataDisplay/visualization/GaugeGraph.mjs +1 -1
- package/dist/UI/dataDisplay/visualization/RatioVisulization.mjs +1 -1
- package/dist/UI/dataDisplay/visualization/amCharts/AmChart.mjs +1 -1
- package/dist/UI/feedback/AmbientAlert.mjs +1 -1
- package/dist/UI/feedback/AmbientToast.mjs +1 -1
- package/dist/UI/feedback/FluentDialog.mjs +1 -1
- package/dist/UI/feedback/MenuLoader.mjs +1 -1
- package/dist/UI/feedback/NodeLoader.mjs +1 -1
- package/dist/UI/feedback/PageLoading.mjs +1 -1
- package/dist/UI/fileViewer/imageSlider/Image.mjs +1 -1
- package/dist/UI/fileViewer/imageSlider/ImageFooter.mjs +1 -1
- package/dist/UI/fileViewer/imageSlider/ImageSlider.mjs +1 -1
- package/dist/UI/fileViewer/imageSlider/ImageViewerSideSheet.mjs +1 -1
- package/dist/UI/fileViewer/pdfViewer/ControlPanel.mjs +1 -1
- package/dist/UI/fileViewer/pdfViewer/PDFViewer.d.ts +2 -0
- package/dist/UI/fileViewer/pdfViewer/PDFViewer.d.ts.map +1 -1
- package/dist/UI/fileViewer/pdfViewer/PDFViewer.js +2 -0
- package/dist/UI/fileViewer/pdfViewer/PDFViewer.js.map +1 -1
- package/dist/UI/fileViewer/pdfViewer/PDFViewer.mjs +3 -1
- package/dist/UI/fileViewer/pdfViewer/PDFViewer.mjs.map +1 -1
- package/dist/UI/floorplans/CoreLayoutFloorplan.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpAccordion.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpAutocomplete.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpAvatar.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpBadge.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpButton.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpCard.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpCheckbox.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpChip.d.ts +4 -0
- package/dist/UI/fluent-web-components/UdpChip.d.ts.map +1 -1
- package/dist/UI/fluent-web-components/UdpChip.js +4 -0
- package/dist/UI/fluent-web-components/UdpChip.js.map +1 -1
- package/dist/UI/fluent-web-components/UdpChip.mjs +5 -1
- package/dist/UI/fluent-web-components/UdpChip.mjs.map +1 -1
- package/dist/UI/fluent-web-components/UdpCompoundButton.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpContainerQuery.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpContainerQueryGrid.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpCounterBadge.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpDateInput.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpDatePicker.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpDateTimeInput.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpDialog.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpDivider.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpDrawer.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpDropdown.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpDurationInput.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpEmptyState.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpFileInput.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpFlexbox.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpIcon.mjs +3 -3
- package/dist/UI/fluent-web-components/UdpIcon.mjs.map +1 -1
- package/dist/UI/fluent-web-components/UdpIconButton.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpIconGrid.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpImage.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpLink.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpList.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpListItem.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpLocationInput.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpMenu.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpMessageBar.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpNumberInput.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpPopover.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpPrimaryActionHeader.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpProgressBar.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpRadioGroup.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpSearchInput.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpSignatureInput.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpSlider.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpSpinner.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpSwatchPicker.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpSwitch.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpTablist.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpText.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpTextInput.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpTextarea.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpTimeInput.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpToggleButton.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpTooltip.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpTree.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpTreeItem.mjs +1 -1
- package/dist/UI/fluent-web-components/UdpVerticalSpacer.mjs +1 -1
- package/dist/UI/forms/LoginForm.mjs +1 -1
- package/dist/UI/forms/UdpTransactionEmailForm.mjs +1 -1
- package/dist/UI/forms/VirtualForm.mjs +1 -1
- package/dist/UI/iframe/Iframe.mjs +1 -1
- package/dist/UI/inputs/buttons/AmbientCardButton.mjs +1 -1
- package/dist/UI/inputs/buttons/AmbientChipButton.mjs +1 -1
- package/dist/UI/inputs/buttons/AmbientPopoverMenuItem.mjs +1 -1
- package/dist/UI/inputs/buttons/AmbientToggleButton.mjs +1 -1
- package/dist/UI/inputs/buttons/AmbientToggleButtonGroup.mjs +1 -1
- package/dist/UI/inputs/buttons/AmbientToggleButtonGroupDefault.mjs +1 -1
- package/dist/UI/inputs/buttons/AmbientTokenButton.mjs +1 -1
- package/dist/UI/inputs/buttons/FUISquareIconButton.mjs +1 -1
- package/dist/UI/inputs/buttons/FluentButton.mjs +1 -1
- package/dist/UI/inputs/buttons/FluentCompoundButton.mjs +1 -1
- package/dist/UI/inputs/buttons/FluentIconButton.mjs +1 -1
- package/dist/UI/inputs/buttons/FluentMenuListButton.mjs +1 -1
- package/dist/UI/inputs/buttons/FluentUploadButton.mjs +1 -1
- package/dist/UI/inputs/buttons/FluentUploadIconButton.mjs +1 -1
- package/dist/UI/inputs/buttons/IconButtonWithToolTip.mjs +1 -1
- package/dist/UI/inputs/buttons/PrimaryActionButton.mjs +1 -1
- package/dist/UI/inputs/buttons/ToolBarButton.mjs +1 -1
- package/dist/UI/inputs/buttons/UdpActionCard/UdpActionCard.mjs +1 -1
- package/dist/UI/inputs/calendar/AmbientDateRangeSelector.mjs +1 -1
- package/dist/UI/inputs/checkbox/FluentCheckbox.mjs +1 -1
- package/dist/UI/inputs/dateRangeSelector/UdpDateRangeSelector.mjs +1 -1
- package/dist/UI/inputs/datetimes/DateField.mjs +1 -1
- package/dist/UI/inputs/datetimes/DateTimeField.mjs +1 -1
- package/dist/UI/inputs/datetimes/TimeField.mjs +1 -1
- package/dist/UI/inputs/fieldArrayCard/AutocompleteFinalField.mjs +1 -1
- package/dist/UI/inputs/fieldArrayCard/DateRangeField.mjs +1 -1
- package/dist/UI/inputs/fieldArrayCard/FieldArrayCard.mjs +1 -1
- package/dist/UI/inputs/fieldArrayCard/SearchSideSheet.mjs +1 -1
- package/dist/UI/inputs/link/BreadCrumbMenu.mjs +1 -1
- package/dist/UI/inputs/link/FluentLink.mjs +1 -1
- package/dist/UI/inputs/menus/AmbientStepper/AmbientStepper.mjs +1 -1
- package/dist/UI/inputs/menus/AmbientStepper/StepLabel.mjs +1 -1
- package/dist/UI/inputs/menus/FluentSelectDirectoryMenu.mjs +1 -1
- package/dist/UI/inputs/menus/FluentSelectGroupMenu.mjs +1 -1
- package/dist/UI/inputs/menus/FluentSelectMenu.mjs +1 -1
- package/dist/UI/inputs/menus/FluentSimpleSelect.mjs +1 -1
- package/dist/UI/inputs/pickers/FluentColorPicker.mjs +1 -1
- package/dist/UI/inputs/pickers/FluentDatePicker.mjs +1 -1
- package/dist/UI/inputs/pickers/FluentDateTimePicker.mjs +1 -1
- package/dist/UI/inputs/pickers/FluentTimePicker.mjs +1 -1
- package/dist/UI/inputs/pickers/UdpDateSelector.mjs +1 -1
- package/dist/UI/inputs/pickers/UdpTimeSelector.mjs +1 -1
- package/dist/UI/inputs/radio/FluentRadio.mjs +1 -1
- package/dist/UI/inputs/radio/FluentRadioGroup.mjs +1 -1
- package/dist/UI/inputs/richEditors/CkRichEditor.mjs +1 -1
- package/dist/UI/inputs/sliders/FluentInputSlider.mjs +1 -1
- package/dist/UI/inputs/textField/AmbientAutoComplete.mjs +1 -1
- package/dist/UI/inputs/textField/AmbientTextField.mjs +1 -1
- package/dist/UI/inputs/textField/FluentSearchField.mjs +1 -1
- package/dist/UI/inputs/textField/FluentTagField.mjs +1 -1
- package/dist/UI/inputs/textField/FluentTextField.mjs +1 -1
- package/dist/UI/inputs/textField/FluentTextFieldAutoComplete.mjs +1 -1
- package/dist/UI/inputs/textField/KeyValueTextField.mjs +1 -1
- package/dist/UI/inputs/toggle/FluentToggle.mjs +1 -1
- package/dist/UI/loading/CircularProgress.mjs +1 -1
- package/dist/UI/loading/LinearProgress.mjs +1 -1
- package/dist/UI/loading/LoadingIndicator/LoadingIndicator.mjs +1 -1
- package/dist/UI/loading/LoadingOverlay.mjs +1 -1
- package/dist/UI/mapLayout/ui/ActionsRenderer.mjs +1 -1
- package/dist/UI/mapLayout/ui/CheckboxList.mjs +1 -1
- package/dist/UI/mapLayout/ui/CompactCard.mjs +1 -1
- package/dist/UI/mapLayout/ui/ListCard.mjs +1 -1
- package/dist/UI/mapLayout/ui/PopoverCard.mjs +1 -1
- package/dist/UI/mapLayout/ui/Statistic.mjs +1 -1
- package/dist/UI/maps/UdpMap.mjs +1 -1
- package/dist/UI/maps/UdpMapComponent.mjs +1 -1
- package/dist/UI/maps/UdpMapToolbar.mjs +1 -1
- package/dist/UI/navigation/FluentSideNav.mjs +1 -1
- package/dist/UI/navigation/menus/AppMenu.mjs +1 -1
- package/dist/UI/navigation/menus/AppMenuItem.mjs +1 -1
- package/dist/UI/navigation/menus/AppMenuItemComponent.mjs +1 -1
- package/dist/UI/navigation/menus/Expander.mjs +1 -1
- package/dist/UI/navigation/menus/ExpanderItem.mjs +1 -1
- package/dist/UI/navigation/menus/FluentMenuListItem.mjs +1 -1
- package/dist/UI/navigation/tabs/UdpTabPanel.mjs +1 -1
- package/dist/UI/navigation/tabs/UdpTabUtility.mjs +1 -1
- package/dist/UI/navigation/tabs/defaultTabs/FluentSimpleTab.mjs +1 -1
- package/dist/UI/navigation/tabs/defaultTabs/FluentSimpleTabs.mjs +1 -1
- package/dist/UI/navigation/tabs/defaultTabs/FluentTabPanel.mjs +1 -1
- package/dist/UI/property/PropertyFields.mjs +1 -1
- package/dist/UI/property/widgets/AutoCompletePropertyWidget.mjs +1 -1
- package/dist/UI/property/widgets/BooleanPropertyWidget.mjs +1 -1
- package/dist/UI/property/widgets/DatePropertyWidget.mjs +1 -1
- package/dist/UI/property/widgets/DateTimePropertyWidget.mjs +1 -1
- package/dist/UI/property/widgets/FloatPropertyWidget.mjs +1 -1
- package/dist/UI/property/widgets/IntegerPropertyWidget.mjs +1 -1
- package/dist/UI/property/widgets/MultilineTextPropertyWidget.mjs +1 -1
- package/dist/UI/property/widgets/NumericPropertyWidget.mjs +1 -1
- package/dist/UI/property/widgets/SelectPropertyWidget.mjs +1 -1
- package/dist/UI/property/widgets/TextPropertyWidget.mjs +1 -1
- package/dist/UI/property/widgets/TimePropertyWidget.mjs +1 -1
- package/dist/UI/stepper/udp-stepper-actions.mjs +1 -1
- package/dist/UI/stepper/udp-stepper-content.mjs +1 -1
- package/dist/UI/stepper/udp-stepper-nav.mjs +1 -1
- package/dist/UI/stepper/udp-stepper.mjs +1 -1
- package/dist/UI/support/SupportCaseSideSheet.mjs +1 -1
- package/dist/UI/surfaces/NestedGrid/NestedGrid.mjs +1 -1
- package/dist/UI/surfaces/NestedGrid/ui/ExpandRenderer.mjs +1 -1
- package/dist/UI/surfaces/SideSheet.mjs +1 -1
- package/dist/UI/surfaces/cards/AmbientCard/AmbientCard.mjs +1 -1
- package/dist/UI/surfaces/cards/BioCard.mjs +1 -1
- package/dist/UI/surfaces/cards/InfoCard.mjs +1 -1
- package/dist/UI/surfaces/cards/QuickViewCard.mjs +1 -1
- package/dist/UI/surfaces/cards/chartDisplayCards/AmbientSplitStatCard.mjs +1 -1
- package/dist/UI/surfaces/cards/chartDisplayCards/AmbientVisualizationCard.mjs +1 -1
- package/dist/UI/surfaces/cards/fluentCards/FUICard.mjs +1 -1
- package/dist/UI/surfaces/cards/fluentCards/FUICardHeader.mjs +1 -1
- package/dist/UI/surfaces/cards/fluentCards/FluentCard.mjs +1 -1
- package/dist/UI/surfaces/cards/fluentCards/FluentCardActions.mjs +1 -1
- package/dist/UI/surfaces/cards/fluentCards/FluentCardContent.mjs +1 -1
- package/dist/UI/surfaces/cards/fluentCards/FluentCardHeader.mjs +1 -1
- package/dist/UI/surfaces/cards/fluentCards/FluentCardText.mjs +1 -1
- package/dist/UI/surfaces/cards/newsCard/NewsCard.mjs +1 -1
- package/dist/UI/surfaces/cards/workOrderCard/WorkOrderCard.mjs +1 -1
- package/dist/UI/surfaces/cards/workOrderCard/WorkOrderHeader.mjs +1 -1
- package/dist/UI/templates/DraggableSidebarTemplate.mjs +1 -1
- package/dist/UI/templates/OpenPage.mjs +1 -1
- package/dist/UI/templates/ToggleSection.mjs +1 -1
- package/dist/UI/templates/calendar/UdpCalendar.mjs +1 -1
- package/dist/UI/templates/calendar/UdpCalendarDayView.mjs +1 -1
- package/dist/UI/templates/calendar/UdpCalendarMonthView.mjs +1 -1
- package/dist/UI/templates/calendar/UdpCalendarWeekView.mjs +1 -1
- package/dist/UI/templates/calendar/UdpCalendarYearView.mjs +1 -1
- package/dist/UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate.mjs +1 -1
- package/dist/UI/templates/deprecated/UdpGridTemplate/UdpGridTemplate.mjs +1 -1
- package/dist/UI/templates/newGrid/ApiMethodInstanceUdpGrid.mjs +1 -1
- package/dist/UI/templates/newGrid/BackwardsCompatibleGrid.mjs +1 -1
- package/dist/UI/templates/newGrid/ClientSideUdpGrid.mjs +1 -1
- package/dist/UI/templates/newGrid/SearchMethodUdpGrid.mjs +1 -1
- package/dist/UI/templates/newGrid/ServerSideUdpGrid.mjs +1 -1
- package/dist/UI/templates/ui/ExtenderToggle.mjs +1 -1
- package/dist/UI/templates/ui/GridGroupingHeader.mjs +1 -1
- package/dist/UI/templates/ui/GridGroupingSidebar.mjs +1 -1
- package/dist/UI/templates/ui/GridSidebarContainer.mjs +1 -1
- package/dist/UI/templates/ui/TokenGroupItem.mjs +1 -1
- package/dist/UI/templates/ui/renderers/ActionsRenderer.mjs +1 -1
- package/dist/UI/templates/ui/renderers/IconRenderer.mjs +1 -1
- package/dist/UI/templates/ui/renderers/StatusCellRenderer.mjs +1 -1
- package/dist/UI/timeline/ExtendActions.mjs +1 -1
- package/dist/UI/timeline/TimeEntryStates.mjs +1 -1
- package/dist/UI/timeline/TimeLine.mjs +1 -1
- package/dist/UI/timeline/TimelineElement.mjs +1 -1
- package/dist/UI/timeline/UdpTimeline.mjs +1 -1
- package/dist/UI/timeline/UdpTimelineContent.mjs +1 -1
- package/dist/UI/timeline/UdpTimelineDot.mjs +1 -1
- package/dist/UI/timeline/UdpTimelineItem.mjs +1 -1
- package/dist/UI/timeline/UdpTimelineItemConnector.mjs +1 -1
- package/dist/UI/timeline/UdpTimelineItemSeparator.mjs +1 -1
- package/dist/UI/timeline/fluentTimeline/FluentTimeline.mjs +1 -1
- package/dist/UI/timeline/fluentTimeline/FluentTimelineContent.mjs +1 -1
- package/dist/UI/timeline/fluentTimeline/FluentTimelineHeader.mjs +1 -1
- package/dist/UI/utilityDisplay/BulkActionsGridButton.mjs +1 -1
- package/dist/UI/utilityDisplay/ChipSection.mjs +1 -1
- package/dist/UI/utilityDisplay/Divider.mjs +1 -1
- package/dist/UI/utilityDisplay/FormControl.mjs +1 -1
- package/dist/UI/utilityDisplay/FormControlLabel.mjs +1 -1
- package/dist/UI/utilityDisplay/IndicatorChip.mjs +1 -1
- package/dist/UI/utilityDisplay/InputAdornment.mjs +1 -1
- package/dist/UI/utilityDisplay/SaveViewFormDialog.mjs +1 -1
- package/dist/UI/utilityDisplay/UtilityBar.mjs +1 -1
- package/dist/UI/utilityDisplay/UtilitySideBar.mjs +1 -1
- package/dist/UI/utilityDisplay/alerts/UdpAlert.mjs +1 -1
- package/dist/UI/utilityDisplay/alerts/UdpAlertsContainer.mjs +1 -1
- package/dist/UI/utilityDisplay/deprecated/grid/GridActionBar.mjs +1 -1
- package/dist/UI/utilityDisplay/utilityHeader/PrimaryActionHeader.mjs +1 -1
- package/dist/UI/utilityDisplay/utilityHeader/UtilityTabHeader.mjs +1 -1
- package/dist/UI/utilityDisplay/utilityHeader/ui/PAHAdditionalRightComponent.mjs +1 -1
- package/dist/UI/utilityDisplay/utilityHeader/ui/PAHAdditionalTitleComponent.mjs +1 -1
- package/dist/UI/utilityDisplay/utilityHeader/ui/PAHExport.mjs +1 -1
- package/dist/UI/utilityDisplay/utilityHeader/ui/TeleporterSource.mjs +1 -1
- package/dist/UI/utilityDisplay/utilityHeader/ui/teleporter.mjs +1 -1
- package/dist/UI/widgets/FluentComponents/ChartSummaryToggle.mjs +1 -1
- package/dist/UI/widgets/FluentComponents/FUIMenuItem.mjs +1 -1
- package/dist/UI/widgets/FluentComponents/atoms/FluentDisplayNumbers.mjs +1 -1
- package/dist/UI/widgets/FluentComponents/atoms/FluentStatsSnippet.mjs +1 -1
- package/dist/UI/widgets/FluentComponents/atoms/FluentTrendArrow.mjs +1 -1
- package/dist/UI/widgets/FluentComponents/molecules/FluentPrimaryStatNumber.mjs +1 -1
- package/dist/UI/widgets/FluentComponents/molecules/FluentSecondaryStatNumber.mjs +1 -1
- package/dist/UI/widgets/FluentComponents/molecules/FluentStatNumber.mjs +1 -1
- package/dist/UI/widgets/FluentComponents/molecules/FluentTimeline.mjs +1 -1
- package/dist/UI/widgets/ItemsWidgetCard.mjs +1 -1
- package/dist/UI/widgets/library/BarChartWidget/BarChartWidget.mjs +1 -1
- package/dist/UI/widgets/library/BubbleWidget/BubbleWidget.mjs +1 -1
- package/dist/UI/widgets/library/CircleGaugeWidget/CircleGaugeWidget.mjs +1 -1
- package/dist/UI/widgets/library/DateTrendWidget/DateTrendWidget.mjs +1 -1
- package/dist/UI/widgets/library/DensePlotWidget/DensePlotWidget.mjs +1 -1
- package/dist/UI/widgets/library/DonutChartWidget/DonutChartWidget.mjs +1 -1
- package/dist/UI/widgets/library/GaugeWidget/GaugeWidget.mjs +1 -1
- package/dist/UI/widgets/library/LineAndSparklinesWidget/LineAndSparklinesWidget.mjs +1 -1
- package/dist/UI/widgets/library/LineGraphWidget/LineGraphWidget.mjs +1 -1
- package/dist/UI/widgets/library/ProgressBarWidget/ProgressBarWidget.mjs +1 -1
- package/dist/UI/widgets/library/RecentlyLoadedNodesWidget/RecentlyLoadedNodesWidget.mjs +1 -1
- package/dist/UI/widgets/library/SparklineWidget/SparklineWidget.mjs +1 -1
- package/dist/UI/widgets/library/SparsePlotWidget/SparsePlotWidget.mjs +1 -1
- package/dist/UI/widgets/utils/NumberVisualization.mjs +1 -1
- package/dist/actions/ActionForm.mjs +1 -1
- package/dist/actions/ActionModal.mjs +1 -1
- package/dist/actions/ActionPanelPlacement.mjs +1 -1
- package/dist/actions/ActionSideSheet.mjs +1 -1
- package/dist/actions/ActionSpeedDial.mjs +1 -1
- package/dist/actions/ActionSplitScreen.mjs +1 -1
- package/dist/actions/ActionWrapper.mjs +1 -1
- package/dist/actions/PageActionWrapper.mjs +1 -1
- package/dist/actions/actionSummary/ActionSummaryCard.mjs +1 -1
- package/dist/actions/actionSummary/ActionSummaryHeader.mjs +1 -1
- package/dist/actions/actionSummary/ActionSummaryPopover.mjs +1 -1
- package/dist/actions/sidebar/EntitySideBarContent.mjs +1 -1
- package/dist/actions/utils/actionUtils.mjs +1 -1
- package/dist/chatBot/ChatMessage.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/HeightAdjust.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/MttMainTimeline.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/CircleButton.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/DateWrapper.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/DynamicRangeSlider.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/MttYearTag.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/MultiDot.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/SummaryToken.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/TimelineDateBar.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/TimelineDot.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/TimelineHoverCard.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/TimelineNode.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/TimelinePreloaderNode.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/TimelineStatus.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/TimelineToggleButton.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/TimelineTokenSummary.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/TimelineTopRowFilter.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/TimelineWrapper.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/VisualizationDot.mjs +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/modified/TimelineToken.mjs +1 -1
- package/dist/componentSystems/pageRenderer/PageRenderer.mjs +1 -1
- package/dist/componentSystems/pageRenderer/hocs/withEngineComponent.mjs +1 -1
- package/dist/componentSystems/pageRenderer/wrappers/AgGridSimpleWrapper.mjs +1 -1
- package/dist/componentSystems/pageRenderer/wrappers/BarChartWrapper.mjs +1 -1
- package/dist/componentSystems/pageRenderer/wrappers/BioCardWrapper.mjs +1 -1
- package/dist/componentSystems/pageRenderer/wrappers/DisplayCardWrapper.mjs +1 -1
- package/dist/componentSystems/pageRenderer/wrappers/DonutWrapper.mjs +1 -1
- package/dist/componentSystems/pageRenderer/wrappers/HistogramWrapper.mjs +1 -1
- package/dist/componentSystems/pageRenderer/wrappers/LineGraphWrapper.mjs +1 -1
- package/dist/componentSystems/pageRenderer/wrappers/PrimaryActionHeaderWrapper.mjs +1 -1
- package/dist/containers/IframeContainer.mjs +1 -1
- package/dist/contexts/PageContext.mjs +1 -1
- package/dist/dashboard/DashboardWidget.mjs +1 -1
- package/dist/dataBrowser/forms/ParamsMappingFields.mjs +1 -1
- package/dist/dataBrowser/forms/RequiredFieldsMappingField.mjs +1 -1
- package/dist/dataBrowser/forms/RequiredFieldsMappingForm.mjs +1 -1
- package/dist/diffChecker/DiffChecker.mjs +1 -1
- package/dist/hooks/crudForeignKeyData.mjs +1 -1
- package/dist/hooks/useActions.mjs +1 -1
- package/dist/hooks/useApiCatalog.mjs +1 -1
- package/dist/hooks/useDateLocale.mjs +1 -1
- package/dist/hooks/useDynamicListCalculation.mjs +1 -1
- package/dist/hooks/useFluentIcon.mjs +1 -1
- package/dist/hooks/useItemSubCard.mjs +1 -1
- package/dist/hooks/useProductVersion.mjs +1 -1
- package/dist/hooks/usePromotedLookupMethods.mjs +1 -1
- package/dist/hooks/usePromotedMethodEntities.mjs +1 -1
- package/dist/hooks/usePromotedMethodEntity.mjs +1 -1
- package/dist/hooks/useSetLocationState.mjs +1 -1
- package/dist/hooks/useSplitDecimal.mjs +1 -1
- package/dist/hooks/useTransactionType.mjs +1 -1
- package/dist/hooks/useUdpGridFilterModel.mjs +1 -1
- package/dist/hooks/useUpdateSearchParams.mjs +1 -1
- package/dist/hooks/virtualActions.mjs +1 -1
- package/dist/index.d.ts +17 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -3
- package/dist/inquiry/AlertFlag.mjs +1 -1
- package/dist/inquiry/AmbientListItem.mjs +1 -1
- package/dist/inquiry/AmbientSummaryListHeader.mjs +1 -1
- package/dist/inquiry/ExecuteApiDialog.mjs +1 -1
- package/dist/inquiry/FilterSearch.mjs +1 -1
- package/dist/inquiry/FlagBlock.mjs +1 -1
- package/dist/inquiry/Inquiry.mjs +1 -1
- package/dist/inquiry/InquiryContainer.d.ts.map +1 -1
- package/dist/inquiry/InquiryContainer.js +7 -2
- package/dist/inquiry/InquiryContainer.js.map +1 -1
- package/dist/inquiry/InquiryContainer.mjs +5 -2
- package/dist/inquiry/InquiryContainer.mjs.map +1 -1
- package/dist/inquiry/InquiryTreeMenu.mjs +1 -1
- package/dist/inquiry/InquiryWrapper.mjs +1 -1
- package/dist/inquiry/ItemDescription.mjs +1 -1
- package/dist/inquiry/NodeColumnHeader.mjs +1 -1
- package/dist/inquiry/NodeDetails.mjs +1 -1
- package/dist/inquiry/NodeList.mjs +1 -1
- package/dist/inquiry/dashboard/InquiryDashboard.mjs +1 -1
- package/dist/inquiry/dashboard/RecentlyLoadedNodesTable.mjs +1 -1
- package/dist/inquiry/inquiryBar/InquiryControlList.mjs +1 -1
- package/dist/inquiry/inquiryBar/InquiryNodeControls.mjs +1 -1
- package/dist/inquiry/search/InquiryAdvancedSearch.mjs +1 -1
- package/dist/inquiry/search/InquiryAdvancedSearchForm.mjs +1 -1
- package/dist/inquiry/search/InquirySearchContainer.mjs +1 -1
- package/dist/inquiry/search/InquirySearchTable.mjs +1 -1
- package/dist/integrations/outlook/OutlookIntegrationBanner.mjs +1 -1
- package/dist/integrations/outlook/OutlookIntegrationCallbackPage.mjs +1 -1
- package/dist/kpi/UdpKpiCard.mjs +1 -1
- package/dist/kpi/UdpKpiCards.mjs +1 -1
- package/dist/layout/GridGroup.mjs +1 -1
- package/dist/layout/GridRow.mjs +1 -1
- package/dist/layout/GridUnit.mjs +1 -1
- package/dist/layout/HeaderLayout.mjs +1 -1
- package/dist/layout/LayoutUnit.mjs +1 -1
- package/dist/layout/UdpContainer.mjs +1 -1
- package/dist/layout/templates/SideBarTemplate.mjs +1 -1
- package/dist/maintenanceEngine/crudBrowser/CrudBrowserContainer.mjs +1 -1
- package/dist/maintenanceEngine/crudBrowser/CrudTableColumnDefs.d.ts.map +1 -1
- package/dist/maintenanceEngine/crudBrowser/CrudTableColumnDefs.js +3 -3
- package/dist/maintenanceEngine/crudBrowser/CrudTableColumnDefs.js.map +1 -1
- package/dist/maintenanceEngine/crudBrowser/CrudTableColumnDefs.mjs +2 -1
- package/dist/maintenanceEngine/crudBrowser/CrudTableColumnDefs.mjs.map +1 -1
- package/dist/maintenanceEngine/crudBrowser/CrudTableSidePanel.d.ts.map +1 -1
- package/dist/maintenanceEngine/crudBrowser/CrudTableSidePanel.js +2 -2
- package/dist/maintenanceEngine/crudBrowser/CrudTableSidePanel.js.map +1 -1
- package/dist/maintenanceEngine/crudBrowser/CrudTableSidePanel.mjs +3 -2
- package/dist/maintenanceEngine/crudBrowser/CrudTableSidePanel.mjs.map +1 -1
- package/dist/maintenanceEngine/entityAttributeActions.d.ts.map +1 -1
- package/dist/maintenanceEngine/entityAttributeActions.js +2 -1
- package/dist/maintenanceEngine/entityAttributeActions.js.map +1 -1
- package/dist/maintenanceEngine/entityAttributeActions.mjs +2 -1
- package/dist/maintenanceEngine/entityAttributeActions.mjs.map +1 -1
- package/dist/maintenanceEngine/tableBrowser/TableColumnDefs.mjs +1 -1
- package/dist/maintenanceEngine/tableBrowser/TableContainer.mjs +1 -1
- package/dist/maintenanceEngine/virtualBrowser/VirtualBrowser.mjs +1 -1
- package/dist/maintenanceEngine/virtualBrowser/VirtualTableSidePanel.mjs +1 -1
- package/dist/map-library/Controls/Controls.mjs +1 -1
- package/dist/map-library/Controls/FullScreenControl.mjs +1 -1
- package/dist/map-library/Controls/ZoomControl.mjs +1 -1
- package/dist/map-library/Layers/ImageLayer.mjs +1 -1
- package/dist/map-library/Layers/Layers.mjs +1 -1
- package/dist/map-library/Layers/TileLayer.mjs +1 -1
- package/dist/map-library/Layers/VectorLayer.mjs +1 -1
- package/dist/map-library/Map/Map.mjs +1 -1
- package/dist/map-library/functions/mapFunctions.mjs +1 -1
- package/dist/map-library/geoLocation/FreeFormField.mjs +1 -1
- package/dist/map-library/ui/ControlZoom.mjs +1 -1
- package/dist/map-library/ui/FilterOptions.mjs +1 -1
- package/dist/map-library/ui/MapFilterBar.mjs +1 -1
- package/dist/map-library/ui/MapSheet.mjs +1 -1
- package/dist/map-library/ui/TileDisplay.mjs +1 -1
- package/dist/maps/GeoMap.mjs +1 -1
- package/dist/maps/leafletMaps/FluentImageMap.mjs +1 -1
- package/dist/maps/leafletMaps/FluentMap.mjs +1 -1
- package/dist/maps/leafletMaps/ui/MapMarker.mjs +1 -1
- package/dist/maps/openLayerMaps/Controls/Controls.mjs +1 -1
- package/dist/maps/openLayerMaps/Controls/FullScreenControl.mjs +1 -1
- package/dist/maps/openLayerMaps/Layers/Layers.mjs +1 -1
- package/dist/maps/openLayerMaps/Layers/TileLayer.mjs +1 -1
- package/dist/maps/openLayerMaps/Map/Map.mjs +1 -1
- package/dist/maps/openLayerMaps/ui/ControlZoom.mjs +1 -1
- package/dist/maps/openLayerMaps/ui/LocationPin.mjs +1 -1
- package/dist/maps/openLayerMaps/ui/MapControlsStandard.mjs +1 -1
- package/dist/maps/openLayerMaps/ui/Position.mjs +1 -1
- package/dist/menuPage/CustomMenuPage.mjs +1 -1
- package/dist/menuPage/MenuPage.mjs +1 -1
- package/dist/notes/NotesScreen.mjs +1 -1
- package/dist/page/Page.mjs +1 -1
- package/dist/page/PageContainer/PageContainer.mjs +1 -1
- package/dist/page/PageContent.mjs +1 -1
- package/dist/page/PageHeader.mjs +1 -1
- package/dist/page/PageSectionHeader.mjs +1 -1
- package/dist/page/PageSectionSpacer.mjs +1 -1
- package/dist/page/StaticPageRenderer.mjs +1 -1
- package/dist/providers/QueryProvider.d.ts +16 -0
- package/dist/providers/QueryProvider.d.ts.map +1 -1
- package/dist/providers/QueryProvider.js +16 -1
- package/dist/providers/QueryProvider.js.map +1 -1
- package/dist/providers/QueryProvider.mjs +20 -3
- package/dist/providers/QueryProvider.mjs.map +1 -1
- package/dist/providers/UdpAppProvider.mjs +2 -2
- package/dist/reactCompilerRuntime.d.ts +2 -0
- package/dist/reactCompilerRuntime.d.ts.map +1 -0
- package/dist/reactCompilerRuntime.js +42 -0
- package/dist/reactCompilerRuntime.js.map +1 -0
- package/dist/reactCompilerRuntime.mjs +37 -0
- package/dist/reactCompilerRuntime.mjs.map +1 -0
- package/dist/reminders/CompleteReminderSwitch.mjs +1 -1
- package/dist/reminders/RemindersCard.mjs +1 -1
- package/dist/reminders/RemindersScreen.mjs +1 -1
- package/dist/reports/PowerBIReport.mjs +1 -1
- package/dist/reports/Reports.mjs +1 -1
- package/dist/routes/PublicRoute.mjs +1 -1
- package/dist/routes/UdpRoutes.d.ts.map +1 -1
- package/dist/routes/UdpRoutes.js +4 -1
- package/dist/routes/UdpRoutes.js.map +1 -1
- package/dist/routes/UdpRoutes.mjs +108 -32
- package/dist/routes/UdpRoutes.mjs.map +1 -1
- package/dist/routes/components/PageForbiddenRoute.mjs +1 -1
- package/dist/routes/components/PageNotFoundRoute.mjs +1 -1
- package/dist/routes/components/PageStatus.mjs +1 -1
- package/dist/routes/index.mjs +2 -2
- package/dist/routes/useRegisterRoute.mjs +1 -1
- package/dist/shell/ui/AmbientProjectSwitcher.mjs +1 -1
- package/dist/shell/ui/MiniCollapsibleSidebar.mjs +1 -1
- package/dist/shell/ui/NavigationSidebar.mjs +1 -1
- package/dist/shell/ui/ShellDropdown.mjs +1 -1
- package/dist/shell/ui/SidebarCollapseButton.mjs +1 -1
- package/dist/shell/ui/SiteHeader.mjs +1 -1
- package/dist/shell/ui/SiteHeaderRightComponent.mjs +1 -1
- package/dist/shell/ui/appSwitcher/FUIAppHeader.mjs +1 -1
- package/dist/shell/ui/appSwitcher/FUIAppList.mjs +1 -1
- package/dist/shell/ui/appSwitcher/FUIAppListItem.mjs +1 -1
- package/dist/shell/ui/appSwitcher/FUIAppSwitcher.mjs +1 -1
- package/dist/shell/ui/appSwitcher/ProductAppList.mjs +1 -1
- package/dist/shell/ui/appSwitcher/ProductAppListItem.mjs +1 -1
- package/dist/shell/ui/appSwitcher/UnityApps.mjs +1 -1
- package/dist/shell/ui/profile/FluentProfileMenuCard.mjs +1 -1
- package/dist/shell/ui/profile/MenuOpener.mjs +1 -1
- package/dist/shell/ui/profile/UserAvatar.mjs +1 -1
- package/dist/shell/ui/profile/UserProfileMenuWrapper.mjs +1 -1
- package/dist/shell/ui/useBuildEnvironment.mjs +1 -1
- package/dist/shell/ui/user/PasswordValidator.mjs +1 -1
- package/dist/shell/ui/user/form/UserForm.mjs +1 -1
- package/dist/shell/ui/user/form/UserFormFields.mjs +1 -1
- package/dist/shell/ui/user/form/UserRoleAutoComplete.mjs +1 -1
- package/dist/shell/useShellVisibility.mjs +1 -1
- package/dist/shell/useWidgetRegistry.mjs +1 -1
- package/dist/stores/inquiryStore.mjs +1 -1
- package/dist/test/TestFullStencilPage.mjs +1 -1
- package/dist/udp/ShortcutContent/ListSearch.mjs +1 -1
- package/dist/udp/ShortcutContent/ShortcutContentFinder.mjs +1 -1
- package/dist/udp/export/ExportSidesheet.mjs +1 -1
- package/dist/udp/export/MyExportsPage.mjs +1 -1
- package/dist/udp/fileImportMapping/FileImportMappingWizard.mjs +1 -1
- package/dist/udp/fileImportMapping/ImportDataFromFileMapping.mjs +1 -1
- package/dist/udp/pages/ChatUDP/ChatUDP.mjs +1 -1
- package/dist/udp/pages/MyFormSubmissions/MyFormSubmissions.d.ts +4 -0
- package/dist/udp/pages/MyFormSubmissions/MyFormSubmissions.d.ts.map +1 -0
- package/dist/udp/pages/MyFormSubmissions/MyFormSubmissions.js +158 -0
- package/dist/udp/pages/MyFormSubmissions/MyFormSubmissions.js.map +1 -0
- package/dist/udp/pages/MyFormSubmissions/MyFormSubmissions.mjs +251 -0
- package/dist/udp/pages/MyFormSubmissions/MyFormSubmissions.mjs.map +1 -0
- package/dist/udp/pages/MyFormSubmissions/index.d.ts +3 -0
- package/dist/udp/pages/MyFormSubmissions/index.d.ts.map +1 -0
- package/dist/udp/pages/MyFormSubmissions/index.js +3 -0
- package/dist/udp/pages/MyFormSubmissions/index.js.map +1 -0
- package/dist/udp/pages/MyFormSubmissions/index.mjs +2 -0
- package/dist/udp/pages/UdpDataBrowserPage/UdpDataBrowserPage.mjs +1 -1
- package/dist/udp/pages/UdpFormManager/UdpFormManager.d.ts +6 -0
- package/dist/udp/pages/UdpFormManager/UdpFormManager.d.ts.map +1 -0
- package/dist/udp/pages/UdpFormManager/UdpFormManager.js +128 -0
- package/dist/udp/pages/UdpFormManager/UdpFormManager.js.map +1 -0
- package/dist/udp/pages/UdpFormManager/UdpFormManager.mjs +258 -0
- package/dist/udp/pages/UdpFormManager/UdpFormManager.mjs.map +1 -0
- package/dist/udp/pages/UdpFormManager/index.d.ts +3 -0
- package/dist/udp/pages/UdpFormManager/index.d.ts.map +1 -0
- package/dist/udp/pages/UdpFormManager/index.js +3 -0
- package/dist/udp/pages/UdpFormManager/index.js.map +1 -0
- package/dist/udp/pages/UdpFormManager/index.mjs +2 -0
- package/dist/udp/pages/UdpFormsBuilderPage/UdpFormsBuilderPage.mjs +1 -1
- package/dist/udp/pages/UdpFormsListPage/UdpFormsListPage.mjs +1 -1
- package/dist/udp/pages/UdpFormsPrivateForm/UdpFormRenderer.mjs +1 -1
- package/dist/udp/pages/UdpFormsPrivateForm/UdpPrivateForm.mjs +1 -1
- package/dist/udp/pages/UdpFormsPublicForm/UdpPublicForm.mjs +1 -1
- package/dist/udp/pages/UdpFormsSubmissionGridManagerPage/UdpFormsSubmissionGridManagerPage.mjs +1 -1
- package/dist/udp/pages/UdpFormsSubmissionGridResponderPage/UdpFormsSubmissionGridResponderPage.mjs +1 -1
- package/dist/udp/pages/UdpFormsUtils/Utils.d.ts +4 -0
- package/dist/udp/pages/UdpFormsUtils/Utils.d.ts.map +1 -1
- package/dist/udp/pages/UdpFormsUtils/Utils.js +16 -3
- package/dist/udp/pages/UdpFormsUtils/Utils.js.map +1 -1
- package/dist/udp/pages/UdpFormsUtils/Utils.mjs +18 -10
- package/dist/udp/pages/UdpFormsUtils/Utils.mjs.map +1 -1
- package/dist/udp/pages/UdpGridPanelManagementSidesheet/UdpGridPanelManagementSidesheet.mjs +1 -1
- package/dist/udp/pages/UdpImportFromFileMappingPage/UdpImportFromFileMappingPage.mjs +1 -1
- package/dist/udp/pages/UdpInquiryMaintenanceEnginePage/UdpInquiryMaintenanceEnginePage.mjs +1 -1
- package/dist/udp/pages/UdpMaintenanceConfigPage/UdpMaintenanceConfigPage.mjs +1 -1
- package/dist/udp/pages/UdpMaintenanceEnginePage/UdpMaintenanceEnginePage.mjs +1 -1
- package/dist/udp/pages/UdpPagesLazy/index.d.ts +3 -0
- package/dist/udp/pages/UdpPagesLazy/index.d.ts.map +1 -1
- package/dist/udp/pages/UdpPagesLazy/index.js +3 -0
- package/dist/udp/pages/UdpPagesLazy/index.js.map +1 -1
- package/dist/udp/pages/UdpPagesLazy/index.mjs +3 -0
- package/dist/udp/pages/UdpPagesLazy/index.mjs.map +1 -1
- package/dist/udp/pages/UdpQuestionFormBuilderPage/UdpQuestionFormBuilderPage.d.ts +6 -0
- package/dist/udp/pages/UdpQuestionFormBuilderPage/UdpQuestionFormBuilderPage.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormBuilderPage/UdpQuestionFormBuilderPage.js +32 -0
- package/dist/udp/pages/UdpQuestionFormBuilderPage/UdpQuestionFormBuilderPage.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormBuilderPage/UdpQuestionFormBuilderPage.mjs +73 -0
- package/dist/udp/pages/UdpQuestionFormBuilderPage/UdpQuestionFormBuilderPage.mjs.map +1 -0
- package/dist/udp/pages/UdpQuestionFormBuilderPage/index.d.ts +3 -0
- package/dist/udp/pages/UdpQuestionFormBuilderPage/index.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormBuilderPage/index.js +3 -0
- package/dist/udp/pages/UdpQuestionFormBuilderPage/index.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormBuilderPage/index.mjs +2 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/FormStructureTree.d.ts +7 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/FormStructureTree.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/FormStructureTree.js +52 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/FormStructureTree.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/FormStructureTree.mjs +109 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/FormStructureTree.mjs.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/OverviewTab.d.ts +10 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/OverviewTab.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/OverviewTab.js +373 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/OverviewTab.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/OverviewTab.mjs +943 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/OverviewTab.mjs.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionCard.d.ts +9 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionCard.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionCard.js +62 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionCard.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionCard.mjs +187 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionCard.mjs.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionViz.d.ts +6 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionViz.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionViz.js +158 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionViz.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionViz.mjs +319 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionViz.mjs.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionsTab.d.ts +9 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionsTab.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionsTab.js +255 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionsTab.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionsTab.mjs +617 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/QuestionsTab.mjs.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/SubmissionAttachmentsDrawer.d.ts +8 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/SubmissionAttachmentsDrawer.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/SubmissionAttachmentsDrawer.js +121 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/SubmissionAttachmentsDrawer.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/SubmissionAttachmentsDrawer.mjs +200 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/SubmissionAttachmentsDrawer.mjs.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/UdpQuestionFormOverviewPage.d.ts +7 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/UdpQuestionFormOverviewPage.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/UdpQuestionFormOverviewPage.js +401 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/UdpQuestionFormOverviewPage.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/UdpQuestionFormOverviewPage.mjs +452 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/UdpQuestionFormOverviewPage.mjs.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/index.d.ts +3 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/index.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/index.js +3 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/index.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/questionInsights.d.ts +120 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/questionInsights.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/questionInsights.js +461 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/questionInsights.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/questionInsights.mjs +421 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/questionInsights.mjs.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/submissionReportDownload.d.ts +4 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/submissionReportDownload.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/submissionReportDownload.js +93 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/submissionReportDownload.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/submissionReportDownload.mjs +70 -0
- package/dist/udp/pages/UdpQuestionFormOverviewPage/submissionReportDownload.mjs.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/UdpQuestionFormRenderer.d.ts +19 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/UdpQuestionFormRenderer.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/UdpQuestionFormRenderer.js +45 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/UdpQuestionFormRenderer.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/UdpQuestionFormRenderer.mjs +104 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/UdpQuestionFormRenderer.mjs.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/UdpQuestionPrivateForm.d.ts +7 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/UdpQuestionPrivateForm.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/UdpQuestionPrivateForm.js +33 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/UdpQuestionPrivateForm.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/UdpQuestionPrivateForm.mjs +95 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/UdpQuestionPrivateForm.mjs.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/index.d.ts +5 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/index.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/index.js +5 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/index.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPrivateForm/index.mjs +3 -0
- package/dist/udp/pages/UdpQuestionFormPublicForm/UdpQuestionPublicForm.d.ts +20 -0
- package/dist/udp/pages/UdpQuestionFormPublicForm/UdpQuestionPublicForm.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPublicForm/UdpQuestionPublicForm.js +43 -0
- package/dist/udp/pages/UdpQuestionFormPublicForm/UdpQuestionPublicForm.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPublicForm/UdpQuestionPublicForm.mjs +86 -0
- package/dist/udp/pages/UdpQuestionFormPublicForm/UdpQuestionPublicForm.mjs.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPublicForm/index.d.ts +3 -0
- package/dist/udp/pages/UdpQuestionFormPublicForm/index.d.ts.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPublicForm/index.js +3 -0
- package/dist/udp/pages/UdpQuestionFormPublicForm/index.js.map +1 -0
- package/dist/udp/pages/UdpQuestionFormPublicForm/index.mjs +2 -0
- package/dist/udp/pages/UdpReportsPage/UdpReportsPage.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.d.ts.map +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.js +30 -28
- package/dist/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.js.map +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.mjs +25 -24
- package/dist/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.mjs.map +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionAttachmentTypeForm.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeConfigurationForm.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeConfigurationTransactionActionForm.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeForm.js +9 -9
- package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeForm.js.map +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeForm.mjs +7 -7
- package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeForm.mjs.map +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeStatusForm.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeTransactionActionForm.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeTransactionActionFormFields.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionUiActionForm.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionAttachmentTypeCreateAndEditSidesheet.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionAttachmentTypeSidesheet.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeCalendarViewConfigurationSidesheet.js +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeCalendarViewConfigurationSidesheet.js.map +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeCalendarViewConfigurationSidesheet.mjs +7 -7
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeCalendarViewConfigurationSidesheet.mjs.map +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationCreateAndEditSidesheet.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationSidesheet.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationTransactionActionCreateAndEditSidesheet.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationTransactionActionSidesheet.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypePageConfigurationSidesheet.d.ts.map +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypePageConfigurationSidesheet.js +2 -2
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypePageConfigurationSidesheet.js.map +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypePageConfigurationSidesheet.mjs +20 -11
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypePageConfigurationSidesheet.mjs.map +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeStatusCreateAndEditSidesheet.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeStatusSidesheet.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeTransactionActionCreateAndEditSidesheet.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeTransactionActionSidesheet.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionUiActionCreateAndEditSidesheet.mjs +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionUiActionSidesheet.mjs +1 -1
- package/dist/udp/pages/UdpTransactionsPage/UdpTransactionsPage.d.ts.map +1 -1
- package/dist/udp/pages/UdpTransactionsPage/UdpTransactionsPage.js +20 -14
- package/dist/udp/pages/UdpTransactionsPage/UdpTransactionsPage.js.map +1 -1
- package/dist/udp/pages/UdpTransactionsPage/UdpTransactionsPage.mjs +83 -71
- package/dist/udp/pages/UdpTransactionsPage/UdpTransactionsPage.mjs.map +1 -1
- package/dist/udp/pages/UdpTransactionsPage/components/AttachmentTransactionAttachmentList.mjs +1 -1
- package/dist/udp/pages/UdpTransactionsPage/components/EditTransactionDetailsFooterItem.mjs +1 -1
- package/dist/udp/pages/UdpTransactionsPage/components/transactionAttachment/TransactionAttachment.mjs +1 -1
- package/dist/udp/pages/UdpTransactionsPage/components/transactionAttachment/TransactionAttachments.mjs +1 -1
- package/dist/udp/pages/UdpTransactionsPage/components/transactionHistory/TransactionChangeLog.d.ts.map +1 -1
- package/dist/udp/pages/UdpTransactionsPage/components/transactionHistory/TransactionChangeLog.js +2 -1
- package/dist/udp/pages/UdpTransactionsPage/components/transactionHistory/TransactionChangeLog.js.map +1 -1
- package/dist/udp/pages/UdpTransactionsPage/components/transactionHistory/TransactionChangeLog.mjs +3 -2
- package/dist/udp/pages/UdpTransactionsPage/components/transactionHistory/TransactionChangeLog.mjs.map +1 -1
- package/dist/udp/pages/UdpTransactionsPage/components/transactionHistory/TransactionTimelineItem.mjs +1 -1
- package/dist/udp/pages/UdpTransactionsPage/components/transactionNote/TransactionNote.mjs +1 -1
- package/dist/udp/pages/UdpTransactionsPage/components/transactionNote/TransactionNoteForm.mjs +1 -1
- package/dist/udp/pages/UdpTransactionsPage/components/transactionNote/TransactionNotes.mjs +1 -1
- package/dist/udp/pages/UdpTransactionsPage/sidesheets/EditTransactionHeaderItem.mjs +1 -1
- package/dist/udp/pages/UdpTransactionsPage/sidesheets/ViewTransaction.mjs +1 -1
- package/dist/udp/pages/UdpTransactionsPage/sidesheets/WorkflowActions.mjs +1 -1
- package/dist/udp/tags/useTags.mjs +1 -1
- package/dist/udp/utilities/dateLocalizationHooks.mjs +1 -1
- package/dist/udp/utilities/useDateStringColumnDef.d.ts +1 -1
- package/dist/udp/utilities/useDateStringColumnDef.mjs +1 -1
- package/dist/utilities/aggrid/AgTable.mjs +1 -1
- package/dist/utilities/aggrid/aggridHelpers.mjs +1 -1
- package/dist/utilities/auth/AadCallback.mjs +1 -1
- package/dist/utilities/auth/AuthProviderWrapper.mjs +1 -1
- package/dist/utilities/auth/UserErrorModal.mjs +1 -1
- package/dist/utilities/auth/UserProvider.mjs +1 -1
- package/dist/utilities/auth/signInAuthProvider.d.ts.map +1 -1
- package/dist/utilities/auth/signInAuthProvider.js +24 -15
- package/dist/utilities/auth/signInAuthProvider.js.map +1 -1
- package/dist/utilities/auth/signInAuthProvider.mjs +14 -13
- package/dist/utilities/auth/signInAuthProvider.mjs.map +1 -1
- package/dist/utilities/auth/useAuthedUser.mjs +1 -1
- package/dist/utilities/auth/useSingleLogout.mjs +1 -1
- package/dist/utilities/auth/users.mjs +1 -1
- package/dist/utilities/chatBot/ChatBotProvider.mjs +1 -1
- package/dist/utilities/customIcons/ApprovalIcon.mjs +1 -1
- package/dist/utilities/customIcons/RejectIcon.mjs +1 -1
- package/dist/utilities/entities/entityUtilities.d.ts +5 -0
- package/dist/utilities/entities/entityUtilities.d.ts.map +1 -1
- package/dist/utilities/entities/entityUtilities.js +11 -0
- package/dist/utilities/entities/entityUtilities.js.map +1 -1
- package/dist/utilities/entities/entityUtilities.mjs +3 -1
- package/dist/utilities/entities/entityUtilities.mjs.map +1 -1
- package/dist/utilities/floorplanFunctions/gridVisualizationFunctions.mjs +1 -1
- package/dist/utilities/form/Field.mjs +1 -1
- package/dist/utilities/form/Form.mjs +1 -1
- package/dist/utilities/form/FormButtons.mjs +1 -1
- package/dist/utilities/form/FormError.mjs +1 -1
- package/dist/utilities/form/FormSpy.mjs +1 -1
- package/dist/utilities/form/SubmitButton.mjs +1 -1
- package/dist/utilities/form/paymentForm/AccountPayment.model.d.ts +5 -0
- package/dist/utilities/form/paymentForm/AccountPayment.model.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/BankAccountForm.d.ts +16 -29
- package/dist/utilities/form/paymentForm/BankAccountForm.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/BankAccountForm.js +64 -78
- package/dist/utilities/form/paymentForm/BankAccountForm.js.map +1 -1
- package/dist/utilities/form/paymentForm/BankAccountForm.mjs +77 -196
- package/dist/utilities/form/paymentForm/BankAccountForm.mjs.map +1 -1
- package/dist/utilities/form/paymentForm/CashForm.d.ts +1 -1
- package/dist/utilities/form/paymentForm/CashForm.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/CashForm.js +19 -51
- package/dist/utilities/form/paymentForm/CashForm.js.map +1 -1
- package/dist/utilities/form/paymentForm/CashForm.mjs +81 -120
- package/dist/utilities/form/paymentForm/CashForm.mjs.map +1 -1
- package/dist/utilities/form/paymentForm/CreditCardAdornment.mjs +1 -1
- package/dist/utilities/form/paymentForm/CreditCardForm.d.ts +14 -21
- package/dist/utilities/form/paymentForm/CreditCardForm.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/CreditCardForm.js +81 -87
- package/dist/utilities/form/paymentForm/CreditCardForm.js.map +1 -1
- package/dist/utilities/form/paymentForm/CreditCardForm.mjs +84 -195
- package/dist/utilities/form/paymentForm/CreditCardForm.mjs.map +1 -1
- package/dist/utilities/form/paymentForm/CreditCardUtils.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/CreditCardUtils.js +5 -0
- package/dist/utilities/form/paymentForm/CreditCardUtils.js.map +1 -1
- package/dist/utilities/form/paymentForm/CreditCardUtils.mjs +1 -0
- package/dist/utilities/form/paymentForm/CreditCardUtils.mjs.map +1 -1
- package/dist/utilities/form/paymentForm/HostedPaymentError.d.ts +5 -16
- package/dist/utilities/form/paymentForm/HostedPaymentError.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/HostedPaymentError.js +6 -18
- package/dist/utilities/form/paymentForm/HostedPaymentError.js.map +1 -1
- package/dist/utilities/form/paymentForm/HostedPaymentError.mjs +19 -56
- package/dist/utilities/form/paymentForm/HostedPaymentError.mjs.map +1 -1
- package/dist/utilities/form/paymentForm/NewCreditCardForm.d.ts +12 -14
- package/dist/utilities/form/paymentForm/NewCreditCardForm.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/NewCreditCardForm.js +45 -58
- package/dist/utilities/form/paymentForm/NewCreditCardForm.js.map +1 -1
- package/dist/utilities/form/paymentForm/NewCreditCardForm.mjs +186 -263
- package/dist/utilities/form/paymentForm/NewCreditCardForm.mjs.map +1 -1
- package/dist/utilities/form/paymentForm/NewECheckForm.d.ts +9 -14
- package/dist/utilities/form/paymentForm/NewECheckForm.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/NewECheckForm.js +28 -68
- package/dist/utilities/form/paymentForm/NewECheckForm.js.map +1 -1
- package/dist/utilities/form/paymentForm/NewECheckForm.mjs +185 -228
- package/dist/utilities/form/paymentForm/NewECheckForm.mjs.map +1 -1
- package/dist/utilities/form/paymentForm/PaymentBankDetails.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/PaymentBankDetails.js +4 -2
- package/dist/utilities/form/paymentForm/PaymentBankDetails.js.map +1 -1
- package/dist/utilities/form/paymentForm/PaymentCardDetail.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/PaymentCardDetail.js +4 -2
- package/dist/utilities/form/paymentForm/PaymentCardDetail.js.map +1 -1
- package/dist/utilities/form/paymentForm/PaymentForm.d.ts +67 -3
- package/dist/utilities/form/paymentForm/PaymentForm.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/PaymentForm.js +281 -246
- package/dist/utilities/form/paymentForm/PaymentForm.js.map +1 -1
- package/dist/utilities/form/paymentForm/PaymentForm.mjs +296 -296
- package/dist/utilities/form/paymentForm/PaymentForm.mjs.map +1 -1
- package/dist/utilities/form/paymentForm/usePaymentContext.d.ts +22 -0
- package/dist/utilities/form/paymentForm/usePaymentContext.d.ts.map +1 -0
- package/dist/utilities/form/paymentForm/usePaymentContext.js +117 -0
- package/dist/utilities/form/paymentForm/usePaymentContext.js.map +1 -0
- package/dist/utilities/form/paymentForm/usePaymentContext.mjs +119 -0
- package/dist/utilities/form/paymentForm/usePaymentContext.mjs.map +1 -0
- package/dist/utilities/form/paymentForm/usePaymentProviderForm.d.ts +1 -1
- package/dist/utilities/form/paymentForm/usePaymentProviderForm.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/usePaymentProviderForm.js +2 -2
- package/dist/utilities/form/paymentForm/usePaymentProviderForm.js.map +1 -1
- package/dist/utilities/form/paymentForm/usePaymentProviderForm.mjs +16 -12
- package/dist/utilities/form/paymentForm/usePaymentProviderForm.mjs.map +1 -1
- package/dist/utilities/form/paymentForm/vendorsForms/FiservForm.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/vendorsForms/FiservForm.js +22 -28
- package/dist/utilities/form/paymentForm/vendorsForms/FiservForm.js.map +1 -1
- package/dist/utilities/form/paymentForm/vendorsForms/FiservForm.mjs +37 -32
- package/dist/utilities/form/paymentForm/vendorsForms/FiservForm.mjs.map +1 -1
- package/dist/utilities/form/paymentForm/vendorsForms/ICheckForm.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/vendorsForms/ICheckForm.js +25 -27
- package/dist/utilities/form/paymentForm/vendorsForms/ICheckForm.js.map +1 -1
- package/dist/utilities/form/paymentForm/vendorsForms/ICheckForm.mjs +40 -38
- package/dist/utilities/form/paymentForm/vendorsForms/ICheckForm.mjs.map +1 -1
- package/dist/utilities/form/paymentForm/vendorsForms/PaymentusForm.d.ts +4 -0
- package/dist/utilities/form/paymentForm/vendorsForms/PaymentusForm.d.ts.map +1 -1
- package/dist/utilities/form/paymentForm/vendorsForms/PaymentusForm.js +69 -48
- package/dist/utilities/form/paymentForm/vendorsForms/PaymentusForm.js.map +1 -1
- package/dist/utilities/form/paymentForm/vendorsForms/PaymentusForm.mjs +85 -61
- package/dist/utilities/form/paymentForm/vendorsForms/PaymentusForm.mjs.map +1 -1
- package/dist/utilities/form/useFieldChangeListener.mjs +1 -1
- package/dist/utilities/iconLibrary/FluentIcon.mjs +1 -1
- package/dist/utilities/iconLibrary/IconLibrary.mjs +1 -1
- package/dist/utilities/iconLibrary/SelectedLibraryItem.mjs +1 -1
- package/dist/utilities/iconLibrary/SvgIcon.mjs +1 -1
- package/dist/utilities/iconLibrary/UnityFluentIcon.mjs +1 -1
- package/dist/utilities/iconLibrary/UnityIcon.mjs +1 -1
- package/dist/utilities/menus/MenuProvider.mjs +1 -1
- package/dist/utilities/page/PageSubHeaderAction.mjs +1 -1
- package/dist/utilities/search/SearchUtilities.d.ts +10 -1
- package/dist/utilities/search/SearchUtilities.d.ts.map +1 -1
- package/dist/utilities/search/SearchUtilities.js +8 -0
- package/dist/utilities/search/SearchUtilities.js.map +1 -1
- package/dist/utilities/search/SearchUtilities.mjs +5 -2
- package/dist/utilities/search/SearchUtilities.mjs.map +1 -1
- package/dist/utilities/style/ContentContainer.mjs +1 -1
- package/dist/utilities/style/verticalStyles.mjs +1 -1
- package/dist/utilities/tenant/TenantAccessDialog.mjs +1 -1
- package/dist/utilities/tenant/TenantProvider.mjs +1 -1
- package/dist/utilities/tenant/TenantSelect.mjs +1 -1
- package/dist/utilities/tenant/UdpTenantSelect.mjs +1 -1
- package/dist/utilities/theme/systemColors.mjs +1 -1
- package/dist/utilities/theme/theme.mjs +1 -1
- package/dist/utilities/transactions/useTransactionEngine.mjs +1 -1
- package/dist/utilities/uploader/FileProfile.mjs +1 -1
- package/dist/utilities/uploader/FileType.mjs +1 -1
- package/dist/utilities/uploader/FileUpload.mjs +1 -1
- package/dist/utilities/uploader/ImagePreview.mjs +1 -1
- package/dist/utilities/useApiMutation.mjs +1 -1
- package/dist/utilities/useApiQuery.mjs +90 -2
- package/dist/utilities/useApiQuery.mjs.map +1 -1
- package/dist/utilities/useDevicePixelRatio.mjs +1 -1
- package/dist/utilities/useGravatar.mjs +1 -1
- package/dist/utilities/utilityBar/InquiryHeaderControl.mjs +1 -1
- package/dist/utilities/utilityBar/InquiryHeaderSecondary.mjs +1 -1
- package/dist/utilities/utilityBar/InquiryHeaderSecondaryAlert.mjs +1 -1
- package/dist/utilities/utilityBar/InquiryHeaderTitle.mjs +1 -1
- package/dist/utilities/utilityBar/SubHeaderAction.mjs +1 -1
- package/dist/utilities/utilityBar/UtilityBarInport.mjs +1 -1
- package/dist/workflow/WorkflowContainer.mjs +1 -1
- package/dist/workflow/components/WorkflowTaskFlow.mjs +1 -1
- package/package.json +90 -46
- package/dist/test/TestStencilWrappedComponentsPage.d.ts +0 -3
- package/dist/test/TestStencilWrappedComponentsPage.d.ts.map +0 -1
- package/dist/test/TestStencilWrappedComponentsPage.js +0 -131
- package/dist/test/TestStencilWrappedComponentsPage.js.map +0 -1
- package/dist/test/TestStencilWrappedComponentsPage.mjs +0 -463
- package/dist/test/TestStencilWrappedComponentsPage.mjs.map +0 -1
- package/dist/utilities/form/paymentForm/BankIcon.mjs +0 -56
- package/dist/utilities/form/paymentForm/BankIcon.mjs.map +0 -1
- package/dist/utilities/form/paymentForm/CashIcon.mjs +0 -55
- package/dist/utilities/form/paymentForm/CashIcon.mjs.map +0 -1
- package/dist/utilities/form/paymentForm/CheckIcon.mjs +0 -62
- package/dist/utilities/form/paymentForm/CheckIcon.mjs.map +0 -1
- package/dist/utilities/form/paymentForm/CreditCardIcon.mjs +0 -85
- package/dist/utilities/form/paymentForm/CreditCardIcon.mjs.map +0 -1
- package/dist/utilities/form/paymentForm/DisableOverlay.mjs +0 -44
- package/dist/utilities/form/paymentForm/DisableOverlay.mjs.map +0 -1
- package/dist/utilities/form/paymentForm/PaymentBankDetails.mjs +0 -161
- package/dist/utilities/form/paymentForm/PaymentBankDetails.mjs.map +0 -1
- package/dist/utilities/form/paymentForm/PaymentCard.d.ts +0 -13
- package/dist/utilities/form/paymentForm/PaymentCard.d.ts.map +0 -1
- package/dist/utilities/form/paymentForm/PaymentCard.js +0 -54
- package/dist/utilities/form/paymentForm/PaymentCard.js.map +0 -1
- package/dist/utilities/form/paymentForm/PaymentCard.mjs +0 -96
- package/dist/utilities/form/paymentForm/PaymentCard.mjs.map +0 -1
- package/dist/utilities/form/paymentForm/PaymentCardDetail.mjs +0 -284
- package/dist/utilities/form/paymentForm/PaymentCardDetail.mjs.map +0 -1
- package/dist/utilities/form/paymentForm/PaymentDropdown.mjs +0 -142
- package/dist/utilities/form/paymentForm/PaymentDropdown.mjs.map +0 -1
- package/dist/utilities/form/paymentForm/TabPanel.mjs +0 -74
- package/dist/utilities/form/paymentForm/TabPanel.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InquiryContainer.mjs","names":["ChevronDownIcon","ChevronUpIcon","ClearIcon","LinearProgress","makeStyles","Typography","Card","Collapse","Divider","cloneDeep","orderBy","PropTypes","React","useCallback","useEffect","useMemo","useRef","useState","DndProvider","HTML5Backend","useTranslation","collapseAllNodes","constructPreloadedTree","getSearchValueString","expandAllNodes","fetchLazyChildren","collectChildVaryingKeysByType","keysByTypeToFilterArray","fetchCountsByType","findNodeByBusinessObjectKey","Form","formatTreeMenuItem","getSearchIdentifiers","getSearchObject","InquiryAdvancedSearch","InquiryDashboard","InquiryHeaderSecondary","InquiryHeaderSecondaryTarget","InquiryNodeControls","InquirySearchContainer","InquiryWrapper","LayoutUnit","makeTreeStructure","NodeDetails","NodeList","OpenPage","PageContainer","pluralize","PrimaryActionHeader","useActions","v4","uuid","NodeActionEnums","NodeActionTriggerEnums","TreeViewModeEnums","RecentlyLoadedNodesTable","ExecuteApiDialog","useSnackbar","executeQueryInstance","useInquiryStore","useSetInitialInquiryMenuVisibility","evaluateRule","mapRule","GroupNode","getSanitizedName","useShellStore","useActionStore","useAxiosGet","UdpTablist","UtilitySideBar","InquiryHeaderSecondaryAlertTarget","FluentIconButton","clsx","PageActionWrapper","WorkflowTreeMenu","NodeLoader","apiMutate","transformWorkflowPlayTree","updateWorkflowPlayNodeState","APP_RIBBON_SPACE","useBuildEnvironment","WorkflowContent","LoadingOverlay","UnitStateType","useSetLocationState","ConfigService","useStyles","theme","root","display","height","appRibbonSpace","mainWrapper","padding","spacing","children","searchContainerRoot","nodeListRoot","props","shellHidden","overflowX","nodeListRootLoaded","tree","isPreloaded","tabRoot","width","minWidth","workflowTablist","nodeListRootLoading","chevronButtons","justifyContent","zIndex","appBar","chevronButtonClosed","position","left","top","marginLeft","entityHeader","boxShadow","nodeHeader","content","overflowY","workflowMenuContent","marginTop","paddingTop","workflowTreeLoader","marginRight","WORKFLOW_MAX_NETWORK_CALLS","getKeyIdentifier","n","isGroupNode","properties","label","nodeObj","businessObjectKey","InquiryContainer","catalogObjects","executeQueryAdHoc","executeQueryWithParameters","executeGetDetailedTree","executeAddRecentlyLoadedNodes","initialSearchValue","litnHistory","litnHistoryLoading","pageId","pageData","pageLoading","pageError","productId","promotedEntities","apiCatalogId","setPageId","treeId","treeLoading","treeError","user","autoCollapseNav","containerId","state","buildEnv","classes","t","enqueueSnackbar","refreshing","setRefreshing","nodeLoaded","setNodeLoaded","searchValue","setSearchValue","clearSearchStr","setClearSearchStr","inSearch","setInSearch","selectedSearchRows","setSelectedSearchRows","menuList","setMenuList","menuLoading","setMenuLoading","selectedNode","setSelectedNode","selectedMenuIndex","setSelectedMenuIndex","disableMoveToTop","setDisableMoveToTop","nodeHistory","setNodeHistory","expandAllClicked","setExpandAllClicked","tabValue","setTabValue","selectedPageId","setSelectedPageId","nodesRequested","setNodesRequested","sidebarTabValue","setSidebarTabValue","advancedSearchItems","setAdvancedSearchItems","isAdvancedSearch","setIsAdvancedSearch","entityValue","setEntityValue","treeViewMode","setTreeViewMode","Classic","advancedSearchEntityValue","setAdvancedSearchEntityValue","moveToTopLoading","setMoveToTopLoading","promotedMethodsToExecute","setPromotedMethodsToExecute","executeApiDialogOpen","setExecuteApiDialogOpen","executeApiData","setExecuteApiData","executeApiProgress","setExecuteApiProgress","setIsPreloaded","headerTitle","setHeaderTitle","sidebarExpanded","setSidebarExpanded","primaryExpanded","setPrimaryExpanded","secondaryExpanded","setSecondaryExpanded","showToggle1","setShowToggle1","showToggle2","setShowToggle2","utilitySideBarWidth","setUtilitySideBarWidth","refreshNodeHeaderPageData","setRefreshNodeHeaderPageData","refreshPageHeaderPageData","setRefreshPageHeaderPageData","dragAndDropLoading","setDragAndDropLoading","inquiryWorkflowTabValue","setInquiryWorkflowTabValue","workflowMenuItemsList","setWorkflowMenuItemsList","selectedWorkflowNode","setSelectedWorkflowNode","reloadWorkflowFromPage","setReloadWorkflowFromPage","getWorkflowPlayErrorCount","setGetWorkflowPlayErrorCount","getWorkflowInitializedCount","setGetWorkflowInitializedCount","workflowInitialized","setWorkflowInitialized","workflow","setWorkflow","inquiryMenuHidden","setActionPanels","setShowInquiryHeaderActions","setMenuListState","setInquiryParams","closeAllSplitScreens","setSelectedNodeForStore","setHideActions","setInquiryTitleHeader","setInquiryToolbarTitle","setNavigationExpanded","setSubHeaderActionHasChildren","inquiryTitle","title","workflowMap","setWorkflowMap","workflowStarting","setLocationState","data","explorePageData","loading","explorePageLoading","tenantV1ApiUrl","explorePageId","orderBySequence","list","selectedTree","inquiryWorkflow","nodeHeaderPageIdToLoad","nodeHeaderPages","orderedNodeHeaderPages","nodeHeaderPageId","i","length","nodeHeaderPage","propertyMapping","jsonLogic","rule","page","pageHeaderPageIdToLoad","matchingTab","tabs","find","tab","pageHeaderPages","orderedPageHeaderPages","pageHeaderPageId","pageHeaderPage","nodeHeaderPageData","nodeHeaderPageLoading","pageHeaderPageData","pageHeaderPageLoading","workflowPlay","workflowPlayLoading","error","workflowPlayError","reloadWorkflow","builderV1ApiUrl","currentWorkflowPlayId","users","securityV1ApiUrl","currentTenantId","inWorkflowMode","groups","config","UNITY_PRODUCT_ID","handleReloadWorkflow","handleSelectedWorkflowNode","node","menuIndex","isSelectable","searchItems","result","treeStructure","reduce","items","item","matchingCatalogObject","co","catalogObjectName","catalogReturnObject","entityAttributes","searchFilterElements","forEach","element","parentId","apiMethodInstance","apiMethodId","columns","searchTableColumns","id","associatedInquiryTree","isPrimarySearch","push","entitySearchItems","value","filter","getLoadedNodeObject","queryPayload","nodeLabel","treeStructureId","loadedNode","inquiryTreeId","userId","nodeDetails","setAppNavigationExpanded","loadNodes","searchRows","Object","keys","catalogObjectKeys","promises","searchObjList","loadedNodesList","nodesRequestedArr","key","searchObj","currentSearchTree","lazyLoad","rows","searchIdentifier","row","filterElements","searchIdentifiers","split","si","formattedPropertyName","charAt","toUpperCase","slice","searchField","searchOperator","searchObject","wasLazyLoaded","menuTree","Promise","all","then","responses","updatedMenuList","response","index","status","pageList","displayTree","Array","isArray","updatedNodeHistory","map","panels","handleCloseWorkflow","handleRemoveMenuItem","menus","splice","newSelectedNode","handleRecentlyLoadedNodeClick","additionalAction","currentTreeStructureArr","currentTree","foundTreeStructure","associatedTreeStructure","associatedTree","eagerLoad","catch","e","console","matchingNode","nodeTreeStructure","variant","anchorOrigin","vertical","horizontal","handleLoadNodes","handleSingleNodeLoad","searchRow","handleRowDoubleClick","rowData","searchItem","identifiers","toString","clearNodes","handlePrimaryAction","handleSearch","event","target","clearSearch","handleSelectedSearchRows","objectName","handleSelectedNode","associatedTreeId","constructMenuItemForDroppedNode","loadPageNodeActions","targetNodeObj","sourceNodeObj","targetNodeEntityName","sourceNodeEntityName","menuItem","isExpanded","nodeSubLabel","defaultPageHeaderExpanded","defaultNodeHeaderExpanded","defaultIcon","color","name","type","nodeActions","isDroppedLoadedPageNode","existingPageLoadEntities","inquiryParams","nodeAction","dragEntityName","tabObj","inquiryTreeRuleId","propertyIsCustomMapping","sequence","requiredFieldMapping","parameters","loadPageForDroppedNode","sourceNode","targetNode","targetNodeCatalogReturnObject","sourceNodeCatalogReturnObject","orderedLoadPageNodeActions","pageMenuItem","unshift","targetMenuItem","includes","handleDroppedNodeForExecuteApi","executeApiNodeActions","sourceNodeType","targetNodeType","sourceNodeMenuIndex","targetNodeMenuIndex","apiMethodIds","eana","actionValue","promotedMethods","integrationV2ApiUrl","method","pmte","source","handleCloseExecuteApiDialog","handleMenuTreesRefresh","menuIndexes","workingTree","assocInquiryTreeMap","p","currentSelectedTree","selectedNodeSearchIdentifier","expandedStateRef","handleExpandedChange","stateMap","current","restoreExpandedState","getStableKey","walk","has","get","treeNodeIds","idMap","stack","pop","child","getCriticalPath","selectedTreeNode","path","treeNodes","hasLazyLevelInStructure","some","level","fetchAndBuildDisplayTree","pageSize","isPreloadedGroupQuery","apiMethodInstanceId","responseObj","fetchAndMergeLazyNode","currentNode","context","currentCriticalPathNode","criticalPathBroken","survivingAncestor","criticalPathList","keysByType","inclusionFilter","res","totalsByType","treeStructureArr","pageNumber","currentBok","criticalPathNodeBok","isCriticalPathNode","nextAncestorBok","present","c","existingChildrenMap","Map","oldChild","bok","set","mergedChildren","freshChild","existingChild","groupNodes","localPhysicalCounts","hasMore","entries","total","freshSeenByType","completedLoadingChildren","hasMoreChildren","seenChildKeysByType","errorRetrievingChildren","doesRootExist","isPreloadedRoot","rootEntityType","rootApiMethodId","rootPkFields","rootPk","rootPkValue","pkSearchField","rootCheckResponse","buildLazyDisplayTree","expandedKeys","rootExists","rootDeleted","queue","pathContext","shift","wasExpanded","criticalPathNode","handleMenuTreesRefreshFromPage","updateAllPreloadedTreesOrMutationInfo","updateAllPreloadedTrees","selectedNodeIndex","indexOf","prevState","updated","childNode","parentGroupId","parentGroupName","newGroupId","executeApiForDroppedNode","apiData","requestBody","apiMethod","handleDroppedNode","targetNodeActions","triggerType","On_Node_Drop","actionTypeId","Load_Inquiry_Page","Execute_Api","workflowNodeActions","Start_Workflow","tna","handleMoveToTop","detailedTreeResponse","handleExpandAll","currentMenuList","rootTree","lazyLoadChildrenArr","searchMethod","childTree","ts","currentChildPage","handleCollapseAll","inquiryTabList","tabList","orderedTabs","displayName","trim","icon","trees","queryId","queryParamMapping","inquiryFluentTabList","String","inquiryWorkflowFluentTabList","handlePageChange","Number","isNaN","handleFluentInquiryTabChange","detail","handleLoadingSpecificNode","obj","currentTabValue","errorMessage","fullyQualifiedName","sanitizedName","matchingCtlgFullyQualifiedNameComponent","domain","catObjName","matchingTabValueTree","tabTree","nodeTree","searchValues","searchResponse","handleSideBarValueChange","handleAdvancedSearchClick","values","selectedSearchOperators","entity","lookupPropertyNames","foundSearchItem","searchFields","field","startsWith","filterElement","configuredSearchField","replace","fromValue","Date","toISOString","toValue","entityList","entities","secondaryButtons","component","click","pageHeightOffSet","offset","onTreeViewModeChange","Compact","selectedNodeChildren","udpPageWidgetParams","entityName","contentId","nodeId","manytoManyNodeObjKey","joiningEntityCatalogObjectKey","parentNodeObj","parentNode","inquiryNodeProperties","refreshTree","loadInquiryNode","requiredFieldsMap","displayLoadNodeButton","nodeChildren","refreshNodeHeaderData","refreshPageHeaderData","inquiryContainerId","pageWidgetParams","heightOffset","pageContainer","isUdpPage","handleSidebarExpandClick","expanded","pageTabs","selectedNodeParent","getPreloadedTree","clonedTree","preloadedList","topNode","prevNode","foundNode","workflowPlayNode","updatedNode","initialized","firstWorkflowNode","Initial","timer","setTimeout","prevCount","clearTimeout","updatedMenu","menu","firstSelectableMenuItem","marginBottom","workflowMenuItems","nodeContainer","inquiryHeader","actions","recentlyLoadedNodes","onLoadedNodeClick","tableHeight","information","summaryCard","propTypes","object","array","bool","string","func","isValidWidget"],"sources":["../../src/inquiry/InquiryContainer.jsx"],"sourcesContent":["import {\n ChevronDownIcon,\n ChevronUpIcon,\n ClearIcon\n} from '@fluentui/react-icons';\nimport {\n LinearProgress,\n makeStyles,\n Typography,\n Card,\n Collapse,\n Divider\n} from '@material-ui/core';\nimport { cloneDeep, orderBy } from 'lodash-es';\nimport PropTypes from 'prop-types';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useTranslation } from 'react-i18next';\nimport {\n collapseAllNodes,\n constructPreloadedTree,\n getSearchValueString\n} from '../utilities/tree/TreeUtilities';\nimport { expandAllNodes } from '../utilities/tree/TreeUtilities';\nimport { fetchLazyChildren } from '../utilities/tree/TreeUtilities';\nimport {\n collectChildVaryingKeysByType,\n keysByTypeToFilterArray,\n fetchCountsByType,\n findNodeByBusinessObjectKey\n} from '../utilities/tree/TreeUtilities';\nimport { Form } from '../utilities/form';\nimport { formatTreeMenuItem } from '../utilities/tree/TreeUtilities';\nimport { getSearchIdentifiers } from '../utilities/search/SearchUtilities';\nimport { getSearchObject } from '../utilities/search/SearchUtilities';\nimport { InquiryAdvancedSearch } from './search/InquiryAdvancedSearch';\nimport { InquiryDashboard } from './dashboard/InquiryDashboard';\nimport {\n InquiryHeaderSecondary,\n InquiryHeaderSecondaryTarget\n} from '../utilities/utilityBar/InquiryHeaderSecondary';\nimport { InquiryNodeControls } from './inquiryBar/InquiryNodeControls';\nimport { InquirySearchContainer } from './search/InquirySearchContainer';\nimport { InquiryWrapper } from './InquiryWrapper';\nimport { LayoutUnit } from '../layout/LayoutUnit';\nimport { makeTreeStructure } from '../utilities/tree/TreeUtilities';\nimport { NodeDetails } from './NodeDetails';\nimport { NodeList } from './NodeList';\nimport { OpenPage } from '../UI/templates/OpenPage';\nimport { PageContainer } from '../page/PageContainer';\nimport { pluralize } from '../utilities/input/StringUtilities';\nimport { PrimaryActionHeader } from '../UI/utilityDisplay/utilityHeader/PrimaryActionHeader';\nimport { useActions } from '../hooks/useActions';\nimport { v4 as uuid } from 'uuid';\nimport {\n NodeActionEnums,\n NodeActionTriggerEnums,\n TreeViewModeEnums\n} from '../enums/unitySystemEnums.ts';\nimport { RecentlyLoadedNodesTable } from './dashboard/RecentlyLoadedNodesTable';\nimport { ExecuteApiDialog } from './ExecuteApiDialog';\nimport { useSnackbar } from 'notistack';\nimport { executeQueryInstance } from '../udp/utilities/methodUtils';\nimport {\n useInquiryStore,\n useSetInitialInquiryMenuVisibility\n} from '../stores/inquiryStore';\nimport { evaluateRule, mapRule } from '../utilities/rules/RuleUtilities';\nimport GroupNode from '../models/GroupNode';\nimport { getSanitizedName } from '../utilities/entities/entityUtilities';\nimport { useShellStore } from '../stores/shellStore';\nimport { useActionStore } from '../stores/actionStore';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UdpTablist } from '../UI/fluent-web-components/UdpTablist';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { InquiryHeaderSecondaryAlertTarget } from '../utilities/utilityBar/InquiryHeaderSecondaryAlert';\nimport { FluentIconButton } from '../UI/inputs/buttons/FluentIconButton';\nimport clsx from 'clsx';\nimport { PageActionWrapper } from '../actions/PageActionWrapper';\nimport { WorkflowTreeMenu } from '../workflow/menus/WorkflowTreeMenu';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport {\n transformWorkflowPlayTree,\n updateWorkflowPlayNodeState\n} from '../utilities/workflow/workflowUtilities';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/useBuildEnvironment';\nimport { WorkflowContent } from '../workflow/WorkflowContent';\nimport LoadingOverlay from '../UI/loading/LoadingOverlay';\nimport { UnitStateType } from '../enums/workflowEnums';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { ConfigService } from '../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`\n },\n mainWrapper: {\n padding: theme.spacing(2)\n },\n children: {\n height: 'calc(100vh - 150px)'\n },\n searchContainerRoot: {\n height: 'calc(100vh - 140px)'\n },\n nodeListRoot: {\n height: (props) => `calc(100vh - ${props.shellHidden ? '120px' : '176px'})`,\n overflowX: 'hidden'\n },\n nodeListRootLoaded: {\n height: (props) =>\n props.tree?.isPreloaded\n ? 'calc(100vh - 140px)'\n : `calc(100vh - ${props.shellHidden ? '130px' : '184px'})`,\n overflowX: 'hidden'\n },\n tabRoot: {\n width: '100%',\n minWidth: 0\n },\n workflowTablist: {\n width: '100%',\n display: 'block',\n '& udp-fluent-tablist': {\n width: '100%'\n }\n },\n nodeListRootLoading: {\n height: 'calc(100vh - 108px)'\n },\n chevronButtons: {\n display: 'flex',\n justifyContent: 'center',\n zIndex: theme.zIndex.appBar\n },\n chevronButtonClosed: {\n position: 'absolute',\n left: '50%',\n top: 14,\n marginLeft: -13,\n zIndex: theme.zIndex.appBar\n },\n entityHeader: {\n position: 'relative',\n zIndex: theme.zIndex.appBar,\n boxShadow:\n '0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 3px 3px 0px rgba(0, 0, 0, 0.12)'\n },\n nodeHeader: {\n boxShadow:\n '0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 3px 3px 0px rgba(0, 0, 0, 0.12)'\n },\n content: {\n overflowY: 'auto',\n height: 'calc(100vh - 50px)'\n },\n workflowMenuContent: {\n marginTop: theme.spacing(1),\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 120}px)`,\n overflowX: 'hidden',\n paddingTop: theme.spacing(1)\n },\n workflowTreeLoader: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n }\n}));\n\nconst WORKFLOW_MAX_NETWORK_CALLS = 50;\n\nconst getKeyIdentifier = (n) =>\n n.isGroupNode ? n.properties?.label : n.nodeObj?.businessObjectKey;\n\nexport const InquiryContainer = (props) => {\n const {\n catalogObjects,\n executeQueryAdHoc,\n executeQueryWithParameters,\n executeGetDetailedTree,\n executeAddRecentlyLoadedNodes,\n initialSearchValue,\n litnHistory,\n litnHistoryLoading,\n pageId,\n pageData,\n pageLoading,\n pageError,\n productId,\n promotedEntities,\n apiCatalogId,\n setPageId,\n tree,\n treeId,\n treeLoading,\n treeError,\n user,\n autoCollapseNav = true,\n containerId = ''\n } = props;\n const shellHidden = useShellStore((state) => state.shellHidden);\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n shellHidden,\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const { t } = useTranslation();\n const { enqueueSnackbar } = useSnackbar();\n\n const [refreshing, setRefreshing] = useState(false);\n const [nodeLoaded, setNodeLoaded] = useState(false);\n const [searchValue, setSearchValue] = useState(initialSearchValue || '');\n const [clearSearchStr, setClearSearchStr] = useState(false);\n const [inSearch, setInSearch] = useState(false);\n const [selectedSearchRows, setSelectedSearchRows] = useState(null);\n const [menuList, setMenuList] = useState([]);\n const [menuLoading, setMenuLoading] = useState(false);\n const [selectedNode, setSelectedNode] = useState(null);\n const [selectedMenuIndex, setSelectedMenuIndex] = useState(null);\n const [disableMoveToTop, setDisableMoveToTop] = useState(true);\n const [nodeHistory, setNodeHistory] = useState([]);\n const [expandAllClicked, setExpandAllClicked] = useState(false);\n const [tabValue, setTabValue] = useState(0);\n const [selectedPageId, setSelectedPageId] = useState(null);\n const [nodesRequested, setNodesRequested] = useState([]);\n const [sidebarTabValue, setSidebarTabValue] = useState(0);\n const [advancedSearchItems, setAdvancedSearchItems] = useState([]);\n const [isAdvancedSearch, setIsAdvancedSearch] = useState(false);\n const [entityValue, setEntityValue] = useState('');\n const [treeViewMode, setTreeViewMode] = useState(TreeViewModeEnums.Classic);\n const [advancedSearchEntityValue, setAdvancedSearchEntityValue] =\n useState('');\n const [moveToTopLoading, setMoveToTopLoading] = useState(false);\n const [promotedMethodsToExecute, setPromotedMethodsToExecute] = useState([]);\n const [executeApiDialogOpen, setExecuteApiDialogOpen] = useState(false);\n const [executeApiData, setExecuteApiData] = useState(null);\n const [executeApiProgress, setExecuteApiProgress] = useState(false);\n const [isPreloaded, setIsPreloaded] = useState(false);\n const [headerTitle, setHeaderTitle] = useState('');\n const [sidebarExpanded, setSidebarExpanded] = useState(true);\n const [primaryExpanded, setPrimaryExpanded] = useState(false);\n const [secondaryExpanded, setSecondaryExpanded] = useState(false);\n const [showToggle1, setShowToggle1] = useState(false);\n const [showToggle2, setShowToggle2] = useState(false);\n const [utilitySideBarWidth, setUtilitySideBarWidth] = useState(288);\n const [refreshNodeHeaderPageData, setRefreshNodeHeaderPageData] =\n useState(null);\n const [refreshPageHeaderPageData, setRefreshPageHeaderPageData] =\n useState(null);\n const [dragAndDropLoading, setDragAndDropLoading] = useState(false);\n\n /* States for Workflow */\n const [inquiryWorkflowTabValue, setInquiryWorkflowTabValue] = useState(1);\n const [workflowMenuItemsList, setWorkflowMenuItemsList] = useState([]); // holds a list of workflow trees\n const [selectedWorkflowNode, setSelectedWorkflowNode] = useState(null);\n const [reloadWorkflowFromPage, setReloadWorkflowFromPage] = useState(false);\n const [getWorkflowPlayErrorCount, setGetWorkflowPlayErrorCount] = useState(0);\n const [getWorkflowInitializedCount, setGetWorkflowInitializedCount] =\n useState(0);\n const [workflowInitialized, setWorkflowInitialized] = useState(false);\n const [workflow, setWorkflow] = useState(null);\n // Checks if we should be hiding the Inquiry Left Menu\n useSetInitialInquiryMenuVisibility();\n const inquiryMenuHidden = useInquiryStore((state) => state.inquiryMenuHidden);\n\n const {\n setActionPanels,\n setShowInquiryHeaderActions,\n setMenuListState,\n setInquiryParams,\n closeAllSplitScreens\n } = useActions();\n\n const setSelectedNodeForStore = useActionStore(\n (state) => state.setSelectedNode\n );\n\n const setHideActions = useActionStore((state) => state.setHideActions);\n\n const setInquiryTitleHeader = useInquiryStore(\n (state) => state.setInquiryToolbarTitle\n );\n\n const setNavigationExpanded = useShellStore(\n (state) => state.setNavigationExpanded\n );\n\n const setSubHeaderActionHasChildren = useShellStore(\n (state) => state.setSubHeaderActionHasChildren\n );\n\n const inquiryTitle = useInquiryStore((state) => state.title);\n const workflowMap = useInquiryStore((state) => state.workflowMap);\n const setWorkflowMap = useInquiryStore((state) => state.setWorkflowMap);\n const workflowStarting = useInquiryStore((state) => state.workflowStarting);\n const setLocationState = useSetLocationState();\n\n const [{ data: explorePageData, loading: explorePageLoading }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${tree?.explorePageId}`,\n {},\n !!!tree?.explorePageId,\n false\n );\n\n const orderBySequence = (list) => {\n return orderBy(list, ['sequenceNo'], ['asc']);\n };\n\n const selectedTree = useMemo(\n () => menuList[selectedMenuIndex] ?? null,\n [menuList, selectedMenuIndex]\n );\n\n const inquiryWorkflow = useMemo(() => {\n if (workflowMap) {\n return workflowMap[containerId || 0];\n }\n }, [workflowMap, containerId]);\n\n const nodeHeaderPageIdToLoad = useMemo(() => {\n const nodeHeaderPages = selectedNode?.properties?.nodeHeaderPages;\n if (!nodeHeaderPages) {\n return null;\n }\n const orderedNodeHeaderPages = orderBySequence(nodeHeaderPages);\n let nodeHeaderPageId = null;\n for (let i = 0; i < orderedNodeHeaderPages.length; i++) {\n const nodeHeaderPage = orderedNodeHeaderPages[i];\n if (nodeHeaderPage?.propertyMapping && nodeHeaderPage?.jsonLogic) {\n const rule = mapRule(\n nodeHeaderPage?.propertyMapping,\n nodeHeaderPage?.jsonLogic\n );\n\n if (evaluateRule(rule, selectedNode.nodeObj, null, false)) {\n nodeHeaderPageId = nodeHeaderPage.page?.pageId;\n break;\n } else {\n continue;\n }\n } else {\n nodeHeaderPageId = nodeHeaderPage.page?.pageId;\n break;\n }\n }\n return nodeHeaderPageId;\n }, [selectedNode]);\n\n const pageHeaderPageIdToLoad = useMemo(() => {\n if (!selectedPageId) {\n return null;\n }\n const matchingTab = selectedNode?.properties?.tabs?.find(\n (tab) => tab.page?.pageId === selectedPageId\n );\n if (!matchingTab) {\n return null;\n }\n const pageHeaderPages = matchingTab?.pageHeaderPages;\n if (!pageHeaderPages) {\n return null;\n }\n const orderedPageHeaderPages = orderBySequence(pageHeaderPages);\n let pageHeaderPageId = null;\n for (let i = 0; i < orderedPageHeaderPages.length; i++) {\n const pageHeaderPage = orderedPageHeaderPages[i];\n if (pageHeaderPage?.propertyMapping && pageHeaderPage?.jsonLogic) {\n const rule = mapRule(\n pageHeaderPage?.propertyMapping,\n pageHeaderPage?.jsonLogic\n );\n\n if (evaluateRule(rule, selectedNode.nodeObj, null, false)) {\n pageHeaderPageId = pageHeaderPage.page?.pageId;\n break;\n } else {\n continue;\n }\n } else {\n pageHeaderPageId = pageHeaderPage.page?.pageId;\n break;\n }\n }\n return pageHeaderPageId;\n }, [selectedNode, selectedPageId]);\n\n const [{ data: nodeHeaderPageData, loading: nodeHeaderPageLoading }] =\n useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${nodeHeaderPageIdToLoad}`,\n {},\n !!!nodeHeaderPageIdToLoad,\n false\n );\n\n const [{ data: pageHeaderPageData, loading: pageHeaderPageLoading }] =\n useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${pageHeaderPageIdToLoad}`,\n {},\n !!!pageHeaderPageIdToLoad,\n false\n );\n\n /* Workflow Api calls */\n const [\n {\n data: workflowPlay,\n loading: workflowPlayLoading,\n error: workflowPlayError\n },\n reloadWorkflow\n ] = useAxiosGet(\n ConfigService.builderV1ApiUrl,\n `workflow/play/${inquiryWorkflow?.currentWorkflowPlayId}`,\n {},\n !!!inquiryWorkflow?.currentWorkflowPlayId,\n false\n );\n\n const [{ data: users }] = useAxiosGet(\n ConfigService.securityV1ApiUrl,\n `users?tenantId=${user?.currentTenantId || ''}`,\n {},\n !!!inquiryWorkflow?.inWorkflowMode && !!!user?.currentTenantId\n );\n\n const [{ data: groups }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `groups?tenantId=${user?.currentTenantId || ''}&productId=${\n ConfigService.config.UNITY_PRODUCT_ID\n }`,\n {},\n !!!inquiryWorkflow?.inWorkflowMode && !!!user?.currentTenantId\n );\n\n const handleReloadWorkflow = useCallback(async () => {\n setReloadWorkflowFromPage(true);\n if (inquiryWorkflow?.currentWorkflowPlayId) {\n await reloadWorkflow();\n }\n setReloadWorkflowFromPage(false);\n }, [reloadWorkflow, inquiryWorkflow]);\n\n const handleSelectedWorkflowNode = useCallback(\n async (node, menuIndex) => {\n if (node.isSelectable) {\n setSelectedWorkflowNode(node);\n await handleReloadWorkflow();\n }\n },\n [handleReloadWorkflow]\n );\n\n const searchItems = useMemo(() => {\n if (!tree) return [];\n\n const result = tree.treeStructure.reduce((items, node) => {\n let item = null;\n const matchingCatalogObject = catalogObjects?.find(\n (co) => co.catalogObjectName === node.properties.catalogReturnObject\n );\n const entityAttributes = matchingCatalogObject?.properties || null;\n const searchFilterElements = node.properties?.searchFilterElements;\n if (searchFilterElements) {\n searchFilterElements.forEach(\n (element) => (element.searchValue = searchValue)\n );\n }\n if (!node.parentId) {\n item = {\n apiMethodInstance: tree.apiMethodInstance,\n apiMethodId: tree.apiMethodInstance.apiMethodId,\n columns: entityAttributes || node.properties.searchTableColumns,\n searchFilterElements: searchFilterElements,\n id: `${uuid()}-${searchValue}`,\n catalogReturnObject: node.properties.catalogReturnObject,\n treeStructure: tree.treeStructure,\n associatedInquiryTree: null\n };\n } else {\n const associatedInquiryTree = node.properties?.associatedInquiryTree;\n if (associatedInquiryTree && node.properties?.isPrimarySearch) {\n item = {\n apiMethodInstance: associatedInquiryTree.apiMethodInstance,\n apiMethodId: associatedInquiryTree.apiMethodInstance?.apiMethodId,\n columns: entityAttributes || node.properties.searchTableColumns,\n searchFilterElements: searchFilterElements,\n id: `${uuid()}-${searchValue}`,\n catalogReturnObject: node.properties.catalogReturnObject,\n treeStructure: associatedInquiryTree.treeStructure,\n associatedInquiryTree: associatedInquiryTree\n };\n }\n }\n if (item) {\n items.push(item);\n }\n return items;\n }, []);\n return result;\n }, [tree, searchValue, catalogObjects]);\n\n const entitySearchItems = useMemo(() => {\n if (!searchItems) {\n return [];\n }\n if (!entityValue?.value) {\n return searchItems;\n } else {\n return searchItems.filter(\n (item) => item.catalogReturnObject === entityValue.value\n );\n }\n }, [searchItems, entityValue]);\n\n const getLoadedNodeObject = useCallback(\n (\n apiMethodId,\n queryPayload,\n nodeLabel,\n catalogReturnObject,\n treeStructureId\n ) => {\n const loadedNode = {\n productId: productId,\n inquiryTreeId: treeId,\n userId: user.id,\n apiMethodId: apiMethodId,\n nodeDetails: {},\n queryPayload: {}\n };\n loadedNode.nodeDetails = {\n nodeLabel: nodeLabel,\n catalogReturnObject: catalogReturnObject,\n treeStructureId: treeStructureId\n };\n loadedNode.queryPayload = queryPayload;\n return loadedNode;\n },\n [treeId, user, productId]\n );\n\n const setAppNavigationExpanded = useCallback(\n (value) => {\n if (autoCollapseNav) {\n setNavigationExpanded(value);\n }\n },\n [autoCollapseNav, setNavigationExpanded]\n );\n\n const loadNodes = useCallback(\n (searchRows) => {\n if (searchRows && Object.keys(searchRows).length) {\n setSidebarTabValue(0);\n setNodeLoaded(true);\n setInSearch(false);\n setMenuLoading(true);\n const catalogObjectKeys = Object.keys(searchRows);\n const promises = [];\n const searchObjList = [];\n const loadedNodesList = [];\n const nodesRequestedArr = [];\n catalogObjectKeys.forEach((key) => {\n const searchObj = searchRows[key];\n const currentSearchTree = searchObj?.treeStructure.find(\n (tree) => tree?.properties?.catalogReturnObject === key\n );\n\n const lazyLoad = !!currentSearchTree?.properties?.lazyLoad;\n\n const rows = searchObj.rows;\n const searchIdentifier = searchObj.searchIdentifier;\n const apiMethodId = searchObj.apiMethodId;\n const associatedInquiryTree = searchObj?.associatedInquiryTree;\n\n rows.forEach((row) => {\n const filterElements = [];\n const searchIdentifiers = searchIdentifier.split(',');\n searchIdentifiers.forEach((si) => {\n const formattedPropertyName =\n si.charAt(0).toUpperCase() + si.slice(1);\n filterElements.push({\n searchField: formattedPropertyName,\n searchValue: row[si] ?? '',\n searchOperator: '='\n });\n });\n const searchObject = getSearchObject(\n filterElements,\n 1,\n 50,\n !lazyLoad\n );\n const data = { data: searchObject };\n promises.push(executeQueryAdHoc(data, apiMethodId));\n nodesRequestedArr.push(nodesRequestedArr.length + 1);\n searchObjList.push({\n searchObject,\n apiMethodId,\n treeStructure: searchObj.treeStructure,\n catalogReturnObject: key,\n associatedInquiryTree,\n wasLazyLoaded: lazyLoad,\n menuTree: currentSearchTree\n });\n });\n });\n setNodesRequested(nodesRequestedArr);\n Promise.all(promises).then((responses) => {\n const updatedMenuList = menuList.slice();\n responses.forEach((response, index) => {\n if (response.status === 200) {\n if (response?.data?.pageList?.length) {\n const treeStructure = makeTreeStructure(\n searchObjList[index].treeStructure,\n 'id',\n 'parentId'\n );\n const displayTree = formatTreeMenuItem(\n response.data.pageList[0],\n treeStructure,\n catalogObjects,\n promotedEntities,\n searchObjList[index].associatedInquiryTree,\n searchObjList[index].wasLazyLoaded\n );\n if (\n displayTree &&\n !Array.isArray(displayTree) &&\n Object.keys(displayTree).length\n ) {\n updatedMenuList.push(displayTree);\n loadedNodesList.push(\n getLoadedNodeObject(\n searchObjList[index].apiMethodId,\n searchObjList[index].searchObject,\n displayTree?.properties?.nodeLabel,\n searchObjList[index].catalogReturnObject,\n treeStructure.id\n )\n );\n if (index === 0) {\n displayTree.properties.searchValue = getSearchValueString(\n response.data.pageList[0],\n displayTree?.properties?.searchIdentifier\n );\n if (selectedNode) {\n const updatedNodeHistory = nodeHistory.map(\n (node) => node\n );\n updatedNodeHistory.push(selectedNode);\n setNodeHistory(updatedNodeHistory);\n }\n setActionPanels(\n displayTree?.properties.panels,\n containerId\n );\n setSelectedNode(displayTree);\n }\n }\n }\n }\n });\n\n if (menuList.length) {\n setSelectedMenuIndex(menuList.length);\n } else {\n setSelectedMenuIndex(0);\n }\n executeAddRecentlyLoadedNodes({ data: loadedNodesList });\n\n setAppNavigationExpanded(false);\n setMenuList(updatedMenuList);\n setSelectedSearchRows(null);\n setMenuLoading(false);\n setNodesRequested([]);\n setSearchValue('');\n setClearSearchStr(true);\n });\n }\n },\n [\n menuList,\n executeQueryAdHoc,\n catalogObjects,\n selectedNode,\n nodeHistory,\n getLoadedNodeObject,\n executeAddRecentlyLoadedNodes,\n promotedEntities,\n setActionPanels,\n setAppNavigationExpanded,\n containerId\n ]\n );\n\n const handleCloseWorkflow = useCallback(() => {\n setWorkflowMap({\n [containerId || 0]: {\n inWorkflowMode: false,\n currentWorkflowPlayId: ''\n }\n });\n setHideActions(false);\n setSelectedWorkflowNode(null);\n setWorkflowMenuItemsList([]);\n setInquiryWorkflowTabValue(1);\n setGetWorkflowPlayErrorCount(0);\n setGetWorkflowInitializedCount(0);\n setWorkflowInitialized(false);\n setWorkflow(null);\n }, [setWorkflowMap, containerId, setHideActions]);\n\n // menus prop will only be passed from actions engine\n const handleRemoveMenuItem = useCallback(\n (menus) => {\n const updatedMenuList = menus ?? menuList.slice();\n updatedMenuList.splice(selectedMenuIndex, 1);\n setMenuList(updatedMenuList);\n setDisableMoveToTop(true);\n if (updatedMenuList?.length) {\n const newSelectedNode = updatedMenuList[0];\n setActionPanels(newSelectedNode?.properties.panels, containerId);\n setSelectedNode(newSelectedNode);\n setSelectedMenuIndex(0);\n } else {\n setActionPanels([], containerId);\n setSelectedNode(null);\n setSelectedMenuIndex(null);\n setNodeLoaded(false);\n closeAllSplitScreens();\n handleCloseWorkflow();\n }\n },\n [\n menuList,\n selectedMenuIndex,\n setActionPanels,\n closeAllSplitScreens,\n containerId,\n handleCloseWorkflow\n ]\n );\n\n const handleRecentlyLoadedNodeClick = useCallback(\n async (loadedNode, additionalAction = () => {}) => {\n setNodeLoaded(true);\n setMenuLoading(true);\n setSidebarTabValue(0);\n setNodesRequested([1]);\n const data = { data: loadedNode?.queryPayload };\n const currentTreeStructureArr = tree.treeStructure.filter(\n (node) =>\n loadedNode?.nodeDetails?.catalogReturnObject ===\n node.properties.catalogReturnObject\n );\n const currentTree =\n currentTreeStructureArr.find((t) => {\n if (t?.properties?.associatedInquiryTree?.treeStructure) {\n const foundTreeStructure =\n t?.properties?.associatedInquiryTree?.treeStructure.find(\n (n) => n.id === loadedNode?.nodeDetails?.treeStructureId\n );\n return foundTreeStructure;\n } else {\n return false;\n }\n }) || currentTreeStructureArr[0];\n // Update request data to be eager/lazy load based on current tree config\n if (currentTree) {\n if (currentTree.properties?.associatedInquiryTree) {\n const associatedTreeStructure =\n currentTree.properties.associatedInquiryTree?.treeStructure;\n const associatedTree = associatedTreeStructure.find(\n (node) => node.id === loadedNode?.nodeDetails?.treeStructureId\n );\n data.data.eagerLoad = !associatedTree?.properties?.lazyLoad;\n } else {\n data.data.eagerLoad = !currentTree?.properties?.lazyLoad;\n }\n }\n const apiMethodId = loadedNode?.apiMethodId;\n const response = await executeQueryAdHoc(data, apiMethodId).catch((e) => {\n console.error(e);\n });\n if (\n response?.status === 200 &&\n loadedNode?.nodeDetails?.catalogReturnObject\n ) {\n if (response?.data?.pageList?.length) {\n const matchingNode = tree?.treeStructure?.find(\n (node) =>\n node.properties.catalogReturnObject ===\n loadedNode?.nodeDetails?.catalogReturnObject\n );\n let nodeTreeStructure = tree?.treeStructure;\n if (matchingNode?.properties?.associatedInquiryTree) {\n nodeTreeStructure =\n matchingNode?.properties?.associatedInquiryTree.treeStructure;\n }\n const treeStructure = makeTreeStructure(\n nodeTreeStructure,\n 'id',\n 'parentId'\n );\n const displayTree = formatTreeMenuItem(\n response.data.pageList[0],\n treeStructure,\n catalogObjects,\n promotedEntities,\n matchingNode?.properties?.associatedInquiryTree,\n !data.data.eagerLoad\n );\n if (\n displayTree &&\n !Array.isArray(displayTree) &&\n Object.keys(displayTree).length\n ) {\n displayTree.properties.searchValue = getSearchValueString(\n response.data.pageList[0],\n displayTree?.properties?.searchIdentifier\n );\n\n if (selectedNode) {\n const updatedNodeHistory = nodeHistory.map((node) => node);\n updatedNodeHistory.push(selectedNode);\n setNodeHistory(updatedNodeHistory);\n }\n setActionPanels(displayTree?.properties.panels, containerId);\n setSelectedNode(displayTree);\n setAppNavigationExpanded(false);\n setMenuList([displayTree]);\n }\n setSelectedMenuIndex(0);\n setMenuLoading(false);\n setNodesRequested([]);\n }\n } else {\n // could not properly load the entity\n setMenuLoading(false);\n enqueueSnackbar(t(`Unable to load entity`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }\n additionalAction();\n },\n [\n tree,\n executeQueryAdHoc,\n catalogObjects,\n promotedEntities,\n selectedNode,\n setActionPanels,\n nodeHistory,\n enqueueSnackbar,\n t,\n setAppNavigationExpanded,\n containerId\n ]\n );\n\n const handleLoadNodes = useCallback(() => {\n loadNodes(selectedSearchRows);\n }, [selectedSearchRows, loadNodes]);\n\n const handleSingleNodeLoad = useCallback(\n (searchRow) => {\n loadNodes(searchRow);\n },\n [loadNodes]\n );\n\n const handleRowDoubleClick = useCallback(\n (rowData, catalogReturnObject) => {\n const node = {};\n const searchItem = searchItems.find(\n (item) => item.catalogReturnObject === catalogReturnObject\n );\n const identifiers =\n getSearchIdentifiers(catalogObjects, searchItem.catalogReturnObject) ||\n [];\n\n node[searchItem.catalogReturnObject] = {\n rows: [rowData],\n apiMethodId: searchItem.apiMethodId,\n searchIdentifier: identifiers.toString(),\n treeStructure: searchItem.treeStructure\n };\n loadNodes(node);\n },\n [loadNodes, searchItems, catalogObjects]\n );\n\n const clearNodes = useCallback(() => {\n setNodeLoaded(false);\n setMenuList([]);\n setActionPanels([], containerId);\n setSelectedNode(null);\n setSelectedMenuIndex(null);\n setNodeHistory([]);\n setTabValue(0);\n setSelectedPageId(null);\n setPageId(null);\n setHeaderTitle('');\n setNodesRequested([]);\n closeAllSplitScreens();\n handleCloseWorkflow();\n }, [\n setActionPanels,\n setPageId,\n closeAllSplitScreens,\n containerId,\n handleCloseWorkflow\n ]);\n\n const handlePrimaryAction = useCallback(() => {\n handleLoadNodes();\n }, [handleLoadNodes]);\n\n const handleSearch = useCallback((event) => {\n if (event.key === 'Enter') {\n setSearchValue(event.target.value);\n setIsAdvancedSearch(false);\n setInSearch(true);\n }\n }, []);\n\n const clearSearch = useCallback(() => {\n setInSearch(false);\n if (menuList.length > 0) {\n setShowToggle2(true);\n }\n setSearchValue('');\n setClearSearchStr(true);\n setSelectedSearchRows(null);\n }, [menuList]);\n\n const handleSelectedSearchRows = useCallback(\n (\n objectName,\n rows,\n searchIdentifier,\n apiMethodId,\n treeStructure,\n associatedInquiryTree\n ) => {\n let searchRows = cloneDeep(selectedSearchRows);\n if (!searchRows) {\n searchRows = {};\n }\n searchRows[objectName] = {\n rows,\n searchIdentifier,\n apiMethodId,\n treeStructure,\n associatedInquiryTree\n };\n setSelectedSearchRows(searchRows);\n },\n [selectedSearchRows]\n );\n\n const handleSelectedNode = useCallback(\n (newSelectedNode, menuIndex) => {\n setSelectedMenuIndex(menuIndex);\n setInSearch(false);\n if (newSelectedNode.properties.associatedTreeId) {\n setDisableMoveToTop(false);\n } else {\n setDisableMoveToTop(true);\n }\n if (selectedNode) {\n const updatedNodeHistory = nodeHistory?.map((node) => node) || [];\n updatedNodeHistory.push(selectedNode);\n setNodeHistory(updatedNodeHistory);\n }\n setActionPanels(newSelectedNode?.properties.panels, containerId);\n setSelectedNode(newSelectedNode);\n },\n [selectedNode, setActionPanels, nodeHistory, containerId]\n );\n\n const constructMenuItemForDroppedNode = useCallback(\n (\n loadPageNodeActions,\n targetNodeObj,\n sourceNodeObj,\n targetNodeEntityName,\n sourceNodeEntityName\n ) => {\n const menuItem = {\n children: [],\n id: uuid(),\n isExpanded: true,\n parentId: null,\n properties: {\n nodeLabel: '',\n tabs: [],\n searchValue: '',\n nodeSubLabel: null,\n defaultPageHeaderExpanded: 'hidden',\n defaultNodeHeaderExpanded: 'hidden',\n defaultIcon: {\n color: null,\n name: 'BranchCompareIcon',\n type: null\n },\n nodeActions: loadPageNodeActions,\n isDroppedLoadedPageNode: true,\n existingPageLoadEntities: [sourceNodeEntityName]\n },\n inquiryParams: [targetNodeObj, sourceNodeObj],\n // TODO: allow for use of targetNodeObj and sourceNodeObj for when config in Inquiry is added\n nodeObj: targetNodeObj\n };\n if (loadPageNodeActions?.length) {\n loadPageNodeActions.forEach((nodeAction) => {\n if (nodeAction?.dragEntityName === sourceNodeEntityName) {\n const tabObj = {\n id: uuid(),\n page: nodeAction.page,\n inquiryTreeRuleId: nodeAction.inquiryTreeRuleId || '',\n jsonLogic: nodeAction.jsonLogic || null,\n propertyIsCustomMapping: nodeAction.propertyIsCustomMapping || '',\n propertyMapping: nodeAction.propertyMapping || '',\n sequence: nodeAction.sequence || '1',\n requiredFieldMapping:\n nodeAction.parameters?.requiredFieldMapping || null\n };\n menuItem.properties.tabs.push(tabObj);\n }\n });\n }\n let nodeLabel = 'DnD Nodes';\n if (targetNodeEntityName === sourceNodeEntityName) {\n nodeLabel = pluralize(getSanitizedName(targetNodeEntityName));\n } else {\n nodeLabel = `${getSanitizedName(\n targetNodeEntityName\n )}/${getSanitizedName(sourceNodeEntityName)}`;\n }\n menuItem.properties.nodeLabel = nodeLabel;\n return menuItem;\n },\n []\n );\n\n const loadPageForDroppedNode = useCallback(\n (\n sourceNode,\n targetNode,\n loadPageNodeActions,\n targetNodeCatalogReturnObject,\n sourceNodeCatalogReturnObject\n ) => {\n // If the first drop has not occurred yet for a loaded page\n if (!targetNode?.properties?.isDroppedLoadedPageNode) {\n if (loadPageNodeActions.length) {\n setMoveToTopLoading(true);\n const orderedLoadPageNodeActions =\n orderBySequence(loadPageNodeActions);\n const pageMenuItem = constructMenuItemForDroppedNode(\n orderedLoadPageNodeActions,\n targetNode?.nodeObj,\n sourceNode?.nodeObj,\n targetNodeCatalogReturnObject,\n sourceNodeCatalogReturnObject\n );\n const updatedMenuList = cloneDeep(menuList);\n updatedMenuList.unshift(pageMenuItem);\n setActionPanels(updatedMenuList[0]?.properties.panels, containerId);\n setSelectedNode(updatedMenuList[0]);\n setMenuList(updatedMenuList);\n setMoveToTopLoading(false);\n }\n } else if (targetNode?.properties?.isDroppedLoadedPageNode) {\n setMoveToTopLoading(true);\n const updatedMenuList = cloneDeep(menuList);\n const targetMenuItem = updatedMenuList.find(\n (item) => item.id === targetNode.id\n );\n if (targetMenuItem) {\n const nodeLabel = targetMenuItem.properties?.nodeLabel;\n if (!nodeLabel.includes(sourceNodeCatalogReturnObject)) {\n targetMenuItem.properties.nodeLabel = `${nodeLabel}/${getSanitizedName(\n sourceNodeCatalogReturnObject\n )}`;\n }\n targetMenuItem.inquiryParams.push(sourceNode?.nodeObj);\n if (\n !targetNode?.properties?.existingPageLoadEntities?.includes(\n sourceNodeCatalogReturnObject\n ) &&\n loadPageNodeActions?.length\n ) {\n targetMenuItem.properties.existingPageLoadEntities.push(\n sourceNodeCatalogReturnObject\n );\n loadPageNodeActions.forEach((nodeAction) => {\n if (\n nodeAction?.dragEntityName === sourceNodeCatalogReturnObject\n ) {\n const tabObj = {\n id: uuid(),\n page: nodeAction.page,\n inquiryTreeRuleId: nodeAction.inquiryTreeRuleId || '',\n jsonLogic: nodeAction.jsonLogic || null,\n propertyIsCustomMapping:\n nodeAction.propertyIsCustomMapping || '',\n propertyMapping: nodeAction.propertyMapping || '',\n sequence: nodeAction.sequence || '1',\n requiredFieldMapping:\n nodeAction.parameters?.requiredFieldMapping || null\n };\n targetMenuItem.properties.tabs.push(tabObj);\n }\n });\n }\n setActionPanels(targetMenuItem?.properties.panels, containerId);\n setSelectedNode(targetMenuItem);\n }\n setMenuList(updatedMenuList);\n setMoveToTopLoading(false);\n }\n },\n [constructMenuItemForDroppedNode, menuList, setActionPanels, containerId]\n );\n\n const handleDroppedNodeForExecuteApi = useCallback(\n async (\n sourceNode,\n targetNode,\n executeApiNodeActions,\n sourceNodeType,\n targetNodeType,\n sourceNodeMenuIndex,\n targetNodeMenuIndex\n ) => {\n setDragAndDropLoading(true);\n const apiMethodIds = executeApiNodeActions.map(\n (eana) => eana.actionValue\n );\n const promotedMethods = await apiMutate(\n ConfigService.integrationV2ApiUrl,\n `apiMethod/listByApiCatalogIdAndIds/${apiCatalogId}`,\n { method: 'post' },\n { data: apiMethodIds }\n );\n setDragAndDropLoading(false);\n const pmte = promotedMethods?.data ?? [];\n setExecuteApiData({\n source: sourceNode?.nodeObj,\n target: targetNode?.nodeObj,\n sourceNodeType,\n targetNodeType,\n sourceNodeMenuIndex,\n targetNodeMenuIndex\n });\n setPromotedMethodsToExecute(pmte);\n setExecuteApiDialogOpen(true);\n },\n [apiCatalogId]\n );\n\n const handleCloseExecuteApiDialog = useCallback(() => {\n setExecuteApiData(null);\n setPromotedMethodsToExecute([]);\n setExecuteApiDialogOpen(false);\n }, []);\n\n const handleMenuTreesRefresh = useCallback(\n async (menuIndexes) => {\n if (!menuList.length) {\n return;\n }\n const updatedMenuList = menuList.slice();\n const promises = [];\n let apiMethodId = tree.apiMethodInstance.apiMethodId;\n let workingTree = tree;\n let assocInquiryTreeMap = {};\n let searchObjList = [];\n if (!menuIndexes?.length) {\n menuIndexes = [selectedMenuIndex];\n }\n menuIndexes.forEach((index) => {\n const menuTree = menuList[index];\n if (menuTree) {\n const { properties, associatedInquiryTree } = menuTree;\n const { filterElements } = properties;\n\n if (associatedInquiryTree) {\n apiMethodId = associatedInquiryTree.apiMethodInstance.apiMethodId;\n workingTree = associatedInquiryTree;\n assocInquiryTreeMap[index] = associatedInquiryTree;\n }\n const lazyLoad = !!workingTree?.properties?.lazyLoad;\n\n const searchObject = getSearchObject(\n filterElements,\n 1,\n 50,\n !lazyLoad\n );\n const data = { data: searchObject };\n promises.push(executeQueryAdHoc(data, apiMethodId));\n searchObjList.push({\n wasLazyLoaded: lazyLoad\n });\n }\n });\n\n await Promise.all(promises.map((p) => p.catch((e) => e))).then(\n (responses) => {\n responses.forEach((response, index) => {\n if (response.status === 200) {\n if (response?.data?.pageList?.length) {\n const treeStructure = makeTreeStructure(\n workingTree.treeStructure,\n 'id',\n 'parentId'\n );\n const displayTree = formatTreeMenuItem(\n response.data.pageList[0],\n treeStructure,\n catalogObjects,\n promotedEntities,\n assocInquiryTreeMap[index],\n searchObjList[index].wasLazyLoaded\n );\n\n updatedMenuList[menuIndexes[index]] = displayTree;\n }\n }\n });\n }\n );\n const currentSelectedTree = updatedMenuList[selectedMenuIndex];\n const selectedNodeSearchIdentifier =\n selectedNode.properties.searchIdentifier || [];\n setMenuList(updatedMenuList);\n if (selectedNodeSearchIdentifier) {\n const matchingNode = findNodeByBusinessObjectKey(\n currentSelectedTree,\n selectedNode.nodeObj?.businessObjectKey\n )?.node;\n setActionPanels(matchingNode?.properties.panels, containerId);\n setSelectedNode(matchingNode);\n } else {\n setSelectedNode(selectedNode);\n }\n },\n [\n menuList,\n tree,\n selectedMenuIndex,\n catalogObjects,\n executeQueryAdHoc,\n selectedNode,\n promotedEntities,\n setActionPanels,\n containerId\n ]\n );\n\n const expandedStateRef = useRef({});\n\n const handleExpandedChange = useCallback((menuIndex, stateMap) => {\n expandedStateRef.current[menuIndex] = stateMap;\n }, []);\n\n const restoreExpandedState = useCallback((node, stateMap) => {\n if (!node) return;\n const getStableKey = (n) =>\n n.isGroupNode ? n.properties?.label : n.nodeObj?.businessObjectKey;\n const walk = (n) => {\n const key = getStableKey(n);\n if (key && stateMap.has(key)) {\n n.isExpanded = stateMap.get(key);\n }\n n.children?.forEach(walk);\n };\n if (Array.isArray(node)) {\n node.forEach(walk);\n } else {\n walk(node);\n }\n }, []);\n\n const treeNodeIds = useMemo(() => {\n if (!selectedTree) return null;\n\n const idMap = {};\n const stack = [selectedTree];\n\n while (stack.length) {\n const node = stack.pop();\n idMap[node.id] = node;\n\n node.children?.forEach((child) => stack.push(child));\n }\n\n return idMap;\n }, [selectedTree]);\n\n const getCriticalPath = useCallback(\n (selectedTreeNode) => {\n if (!selectedTreeNode) return [];\n\n const path = [];\n let node = selectedTreeNode;\n const treeNodes = treeNodeIds;\n path.push(node);\n\n while (node.parentId) {\n node = treeNodes[node.parentId];\n path.push(node);\n }\n\n return path;\n },\n [treeNodeIds]\n );\n\n const hasLazyLevelInStructure = useMemo(() => {\n return (\n tree?.treeStructure?.some((level) => level.properties?.lazyLoad) ?? false\n );\n }, [tree?.treeStructure]);\n\n // For eager loaded trees only (no mixes with lazy loaded nodes)\n const fetchAndBuildDisplayTree = useCallback(async () => {\n if (!tree || !selectedTree) return null;\n\n const lazyLoad = tree.properties?.lazyLoad ?? false;\n const filterElements = selectedTree.properties?.filterElements;\n const associatedInquiryTree = selectedTree.associatedInquiryTree;\n const workingTree = selectedTree.associatedInquiryTree ?? tree;\n\n if (!workingTree.apiMethodInstance) return null;\n const apiMethodId = workingTree.apiMethodInstance.apiMethodId;\n\n // The folowing is a problem for child nodes with over 50 entries\n // given you want to eager load them all or guarantee a specific node\n const page = 1;\n const pageSize = 50; // Arbitrary\n const searchObject = getSearchObject(\n filterElements,\n page,\n pageSize,\n !lazyLoad\n );\n const data = { data: searchObject };\n\n const isPreloadedGroupQuery =\n tree?.isPreloaded &&\n tree?.apiMethodInstance?.apiMethodInstanceId &&\n selectedTree.isGroupNode;\n\n const response = isPreloadedGroupQuery\n ? await executeQueryInstance(\n { data: {} },\n tree.apiMethodInstance.apiMethodInstanceId\n )\n : await executeQueryAdHoc(data, apiMethodId);\n\n if (response?.status !== 200 || !response?.data?.pageList?.length) {\n return null;\n }\n\n const treeStructure = makeTreeStructure(\n workingTree.treeStructure,\n 'id',\n 'parentId'\n );\n\n let responseObj = response.data.pageList[0];\n\n if (selectedTree.isGroupNode) {\n responseObj = response.data.pageList;\n }\n\n return formatTreeMenuItem(\n responseObj,\n treeStructure,\n catalogObjects,\n promotedEntities,\n associatedInquiryTree,\n lazyLoad\n );\n }, [catalogObjects, executeQueryAdHoc, promotedEntities, selectedTree, tree]);\n\n const fetchAndMergeLazyNode = useCallback(\n async (currentNode, workingTree, context) => {\n let {\n currentCriticalPathNode,\n criticalPathBroken,\n survivingAncestor,\n criticalPathList\n } = context;\n\n const keysByType = collectChildVaryingKeysByType(\n currentNode,\n catalogObjects\n );\n const inclusionFilter = keysByTypeToFilterArray(keysByType);\n\n const [res, totalsByType] = await Promise.all([\n fetchLazyChildren({\n node: currentNode,\n treeStructureArr: workingTree?.treeStructure || [],\n executeQueryAdHoc,\n catalogObjects,\n promotedEntities,\n pageNumber: 1,\n inclusionFilter\n }),\n fetchCountsByType(currentNode, executeQueryAdHoc)\n ]);\n\n const currentBok = currentNode.nodeObj?.businessObjectKey;\n const criticalPathNodeBok =\n currentCriticalPathNode?.nodeObj?.businessObjectKey;\n const isCriticalPathNode = currentBok === criticalPathNodeBok;\n\n if (\n !criticalPathBroken &&\n isCriticalPathNode &&\n criticalPathList.length\n ) {\n currentCriticalPathNode = criticalPathList.pop();\n\n const nextAncestorBok =\n currentCriticalPathNode?.nodeObj?.businessObjectKey;\n const present = res.children.some(\n (c) => c.nodeObj?.businessObjectKey === nextAncestorBok\n );\n if (nextAncestorBok && !present) {\n criticalPathBroken = true;\n survivingAncestor = currentNode;\n }\n }\n\n const existingChildrenMap = new Map();\n (currentNode.children || []).forEach((oldChild) => {\n if (oldChild?.isGroupNode) return;\n const type = oldChild.properties?.catalogReturnObject;\n const bok = oldChild.nodeObj?.businessObjectKey;\n if (type && bok) {\n existingChildrenMap.set(`${type}_${bok}`, oldChild);\n }\n });\n\n const mergedChildren = [];\n res.children.forEach((freshChild) => {\n const type = freshChild.properties?.catalogReturnObject;\n const bok = freshChild.nodeObj?.businessObjectKey;\n if (!type || !bok) return;\n\n const existingChild = existingChildrenMap.get(`${type}_${bok}`);\n if (existingChild) {\n existingChild.nodeObj = freshChild.nodeObj;\n existingChild.properties = freshChild.properties;\n mergedChildren.push(existingChild);\n } else {\n mergedChildren.push(freshChild);\n }\n });\n\n const groupNodes = (currentNode.children || []).filter(\n (c) => c?.isGroupNode\n );\n currentNode.children = [...groupNodes, ...mergedChildren];\n\n const localPhysicalCounts = {};\n currentNode.children.forEach((c) => {\n if (c?.isGroupNode) return;\n const type = c.properties?.catalogReturnObject;\n if (type) {\n localPhysicalCounts[type] = (localPhysicalCounts[type] || 0) + 1;\n }\n });\n\n const hasMore = Object.entries(totalsByType).some(\n ([type, total]) => total > (localPhysicalCounts[type] || 0)\n );\n\n const freshSeenByType = collectChildVaryingKeysByType(\n currentNode,\n catalogObjects\n );\n\n currentNode.completedLoadingChildren = true;\n currentNode.hasMoreChildren = hasMore;\n currentNode.seenChildKeysByType = freshSeenByType;\n currentNode.totalsByType = totalsByType;\n currentNode.isExpanded = true;\n\n if (res.errorRetrievingChildren) {\n currentNode.errorRetrievingChildren = true;\n }\n\n return {\n currentCriticalPathNode,\n criticalPathBroken,\n survivingAncestor,\n criticalPathList\n };\n },\n [catalogObjects, executeQueryAdHoc, promotedEntities]\n );\n\n const doesRootExist = useCallback(\n async (displayTree, workingTree, isPreloadedRoot) => {\n const rootEntityType = displayTree?.properties?.catalogReturnObject;\n const rootApiMethodId = workingTree?.apiMethodInstance?.apiMethodId;\n\n if (\n displayTree?.isGroupNode ||\n !rootEntityType ||\n !rootApiMethodId ||\n isPreloadedRoot\n ) {\n return true;\n }\n\n const rootPkFields = getSearchIdentifiers(catalogObjects, rootEntityType);\n const rootPk = rootPkFields?.[0];\n const rootPkValue = rootPk ? displayTree?.nodeObj?.[rootPk] : null;\n\n if (!rootPk || rootPkValue == null) {\n return true;\n }\n\n const pkSearchField = rootPk.charAt(0).toUpperCase() + rootPk.slice(1);\n const rootCheckResponse = await executeQueryAdHoc(\n {\n data: getSearchObject(\n [\n {\n searchField: pkSearchField,\n searchValue: rootPkValue,\n searchOperator: '='\n }\n ],\n 1,\n 1\n )\n },\n rootApiMethodId\n ).catch(() => null);\n\n return !!rootCheckResponse?.data?.pageList?.length;\n },\n [catalogObjects, executeQueryAdHoc]\n );\n\n const buildLazyDisplayTree = useCallback(async () => {\n const expandedKeys =\n expandedStateRef.current[selectedMenuIndex] ?? new Map();\n const displayTree = cloneDeep(selectedTree);\n const workingTree = selectedTree.associatedInquiryTree ?? tree;\n\n const isPreloadedRoot = !!tree?.isPreloaded;\n const rootExists = await doesRootExist(\n displayTree,\n workingTree,\n isPreloadedRoot\n );\n\n if (!rootExists) {\n return { displayTree: null, survivingAncestor: null, rootDeleted: true };\n }\n\n const criticalPathList = getCriticalPath(selectedNode);\n const queue = Array.isArray(displayTree) ? [...displayTree] : [displayTree];\n\n let pathContext = {\n currentCriticalPathNode: criticalPathList.pop(),\n criticalPathBroken: false,\n survivingAncestor: null,\n criticalPathList\n };\n\n while (queue.length) {\n const currentNode = queue.shift();\n if (!currentNode) continue;\n\n const key = getKeyIdentifier(currentNode);\n const wasExpanded = key && expandedKeys.get(key);\n\n if (wasExpanded && currentNode.properties?.lazyLoad) {\n pathContext = await fetchAndMergeLazyNode(\n currentNode,\n workingTree,\n pathContext\n );\n }\n\n currentNode.children?.forEach((child) => queue.push(child));\n }\n\n return {\n displayTree,\n survivingAncestor: pathContext.survivingAncestor,\n rootDeleted: false,\n criticalPathNode: pathContext.criticalPathNode\n };\n }, [\n doesRootExist,\n fetchAndMergeLazyNode,\n getCriticalPath,\n selectedMenuIndex,\n selectedNode,\n selectedTree,\n tree\n ]);\n\n const handleMenuTreesRefreshFromPage = useCallback(\n async (updateAllPreloadedTreesOrMutationInfo = false) => {\n // To ensure that the passed in variable is a boolean\n const updateAllPreloadedTrees =\n updateAllPreloadedTreesOrMutationInfo === true;\n\n if (!selectedNode || !selectedTree) {\n return;\n }\n\n setRefreshing(true);\n\n const { associatedInquiryTree } = selectedTree;\n\n let selectedNodeIndex = -1;\n const workingTree = associatedInquiryTree ?? tree;\n\n // selectedTree is always the top node of the tree that the current selectedNode is on\n const expandedKeys =\n expandedStateRef.current[selectedMenuIndex] ?? new Map();\n\n if (selectedTree.children.length > 0) {\n selectedNodeIndex = selectedTree.children.indexOf(selectedNode);\n }\n\n let displayTree = null;\n let survivingAncestor = null;\n let rootDeleted = false;\n let criticalPathNode = null;\n\n if (!hasLazyLevelInStructure) {\n displayTree = await fetchAndBuildDisplayTree();\n } else {\n const res = await buildLazyDisplayTree();\n displayTree = res.displayTree;\n survivingAncestor = res.survivingAncestor;\n rootDeleted = res.rootDeleted;\n criticalPathNode = res.criticalPathNode;\n }\n\n // Root entity gone — drop this tree from menuList, clear selection,\n // skip the rest of the refresh flow.\n if (rootDeleted) {\n setMenuList((prevState) => {\n const updated = prevState.slice();\n updated.splice(selectedMenuIndex, 1);\n return updated;\n });\n setSelectedNode(null);\n setActionPanels([], containerId);\n setRefreshing(false);\n return;\n }\n\n restoreExpandedState(displayTree, expandedKeys);\n\n if (selectedTree.isGroupNode && selectedTree.children.length > 0) {\n displayTree.forEach((childNode) => {\n childNode.parentGroupId = selectedTree.id;\n childNode.parentId = selectedTree.id;\n childNode.parentGroupName = selectedTree.properties.label;\n });\n }\n\n const currentSelectedTree = displayTree;\n const selectedNodeSearchIdentifier =\n selectedNode.properties.searchIdentifier || '';\n\n setMenuList((prevState) => {\n const updatedMenuList = prevState.slice();\n if (updateAllPreloadedTrees && workingTree?.isPreloaded) {\n updatedMenuList.forEach((menuItem) => {\n const newGroupId = uuid();\n menuItem.id = newGroupId;\n menuItem.children?.forEach((childNode) => {\n childNode.parentGroupId = newGroupId;\n childNode.parentId = newGroupId;\n });\n });\n }\n if (selectedTree.isGroupNode) {\n if (selectedTree.children.length > 0 && Array.isArray(displayTree)) {\n updatedMenuList[selectedMenuIndex].children = displayTree;\n }\n if (!updateAllPreloadedTrees) {\n const newGroupId = uuid();\n updatedMenuList[selectedMenuIndex].id = newGroupId;\n updatedMenuList[selectedMenuIndex]?.children?.forEach(\n (childNode) => {\n childNode.parentGroupId = newGroupId;\n childNode.parentId = newGroupId;\n }\n );\n }\n } else if (!selectedTree.isGroupNode) {\n updatedMenuList[selectedMenuIndex] = displayTree;\n }\n return updatedMenuList;\n });\n\n // If the current selected node (or an ancestor on its critical path)\n // was deleted, propagate selection up to the surviving ancestor.\n if (survivingAncestor) {\n setSelectedNode(survivingAncestor);\n setActionPanels(survivingAncestor.properties?.panels, containerId);\n } else if (criticalPathNode) {\n setSelectedNode(criticalPathNode);\n } else if (selectedNodeSearchIdentifier) {\n let tree = currentSelectedTree;\n if (selectedTree.isGroupNode && selectedNodeIndex >= 0) {\n tree = currentSelectedTree[selectedNodeIndex];\n }\n const matchingNode = findNodeByBusinessObjectKey(\n tree,\n selectedNode.nodeObj?.businessObjectKey\n )?.node;\n setActionPanels(matchingNode?.properties.panels, containerId);\n setSelectedNode(matchingNode);\n } else if (selectedTree.isGroupNode && selectedNodeIndex >= 0) {\n setSelectedNode(displayTree[selectedNodeIndex]);\n } else {\n setSelectedNode(selectedNode);\n }\n\n setRefreshing(false);\n },\n [\n selectedNode,\n selectedTree,\n tree,\n selectedMenuIndex,\n hasLazyLevelInStructure,\n restoreExpandedState,\n fetchAndBuildDisplayTree,\n buildLazyDisplayTree,\n setActionPanels,\n containerId\n ]\n );\n\n const executeApiForDroppedNode = useCallback(\n async (value) => {\n setExecuteApiProgress(true);\n const { sourceNodeMenuIndex, targetNodeMenuIndex, ...apiData } =\n executeApiData;\n const response = await executeQueryWithParameters(\n { data: { requestBody: { ...apiData } } },\n value?.apiMethod?.apiMethodId\n ).catch((res) => {\n console.error(res);\n });\n if (response?.status === 200) {\n const menuIndexes = [sourceNodeMenuIndex];\n // if the menu indexes for the nodes are the same we only need to refresh 1 tree\n if (sourceNodeMenuIndex !== targetNodeMenuIndex) {\n menuIndexes.push(targetNodeMenuIndex);\n }\n handleMenuTreesRefresh(menuIndexes);\n }\n setExecuteApiProgress(false);\n handleCloseExecuteApiDialog();\n },\n [\n executeQueryWithParameters,\n handleCloseExecuteApiDialog,\n executeApiData,\n handleMenuTreesRefresh\n ]\n );\n\n const handleDroppedNode = useCallback(\n (sourceNode, targetNode, sourceNodeMenuIndex, targetNodeMenuIndex) => {\n const sourceNodeCatalogReturnObject =\n sourceNode?.properties?.catalogReturnObject;\n const targetNodeCatalogReturnObject =\n targetNode?.properties?.catalogReturnObject;\n const targetNodeActions = targetNode?.properties?.nodeActions || [];\n const loadPageNodeActions = targetNodeActions.filter(\n (nodeAction) =>\n nodeAction.triggerType === NodeActionTriggerEnums.On_Node_Drop &&\n nodeAction.actionTypeId === NodeActionEnums.Load_Inquiry_Page\n );\n // TODO: Implement query node actions\n const executeApiNodeActions = targetNodeActions.filter(\n (nodeAction) =>\n nodeAction.triggerType === NodeActionTriggerEnums.On_Node_Drop &&\n nodeAction.actionTypeId === NodeActionEnums.Execute_Api &&\n sourceNodeCatalogReturnObject === nodeAction?.dragEntityName\n );\n // TODO: Implement workflow node actions\n const workflowNodeActions = targetNodeActions.filter(\n (nodeAction) =>\n nodeAction.triggerType === NodeActionTriggerEnums.On_Node_Drop &&\n nodeAction.actionTypeId === NodeActionEnums.Start_Workflow &&\n sourceNodeCatalogReturnObject === nodeAction?.dragEntityName\n );\n if (\n targetNodeActions.some(\n (tna) =>\n tna.dragEntityName === sourceNodeCatalogReturnObject &&\n tna.actionTypeId === NodeActionEnums.Execute_Api\n )\n ) {\n handleDroppedNodeForExecuteApi(\n sourceNode,\n targetNode,\n executeApiNodeActions,\n sourceNodeCatalogReturnObject,\n targetNodeCatalogReturnObject,\n sourceNodeMenuIndex,\n targetNodeMenuIndex\n );\n }\n if (\n targetNodeActions.some(\n (tna) =>\n tna.dragEntityName === sourceNodeCatalogReturnObject &&\n tna.actionTypeId === NodeActionEnums.Load_Inquiry_Page\n )\n ) {\n loadPageForDroppedNode(\n sourceNode,\n targetNode,\n loadPageNodeActions,\n targetNodeCatalogReturnObject,\n sourceNodeCatalogReturnObject\n );\n }\n },\n [loadPageForDroppedNode, handleDroppedNodeForExecuteApi]\n );\n\n const handleMoveToTop = useCallback(async () => {\n if (!selectedNode) {\n return;\n }\n\n const associatedTreeId = selectedNode.properties.associatedTreeId;\n\n if (!associatedTreeId) return;\n setMenuLoading(true);\n setMoveToTopLoading(true);\n let associatedInquiryTree = selectedNode.properties.associatedInquiryTree;\n if (!associatedInquiryTree) {\n const detailedTreeResponse = await executeGetDetailedTree(\n associatedTreeId\n );\n if (detailedTreeResponse.status === 200) {\n associatedInquiryTree = detailedTreeResponse.data;\n }\n }\n const lazyLoad = !!associatedInquiryTree?.properties?.lazyLoad;\n const filterElements = selectedNode.properties.filterElements;\n const apiMethodId = associatedInquiryTree.apiMethodInstance.apiMethodId;\n\n const searchObject = getSearchObject(filterElements, 1, 50, !lazyLoad);\n const data = { data: searchObject };\n const loadedNodesList = [];\n const response = await executeQueryAdHoc(data, apiMethodId).catch((res) => {\n enqueueSnackbar(t(`Unable to move to top: ${res?.response?.data}`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n if (response?.status === 200) {\n if (response?.data?.pageList?.length) {\n const updatedMenuList = menuList.slice();\n const treeStructure = makeTreeStructure(\n associatedInquiryTree.treeStructure,\n 'id',\n 'parentId'\n );\n const displayTree = formatTreeMenuItem(\n response.data.pageList[0],\n treeStructure,\n catalogObjects,\n promotedEntities,\n associatedInquiryTree,\n lazyLoad\n );\n loadedNodesList.push(\n getLoadedNodeObject(\n apiMethodId,\n searchObject,\n displayTree?.properties?.nodeLabel,\n displayTree?.properties?.catalogReturnObject,\n treeStructure.id\n )\n );\n if (\n displayTree &&\n !Array.isArray(displayTree) &&\n Object.keys(displayTree).length\n ) {\n displayTree.properties.searchValue = getSearchValueString(\n response.data.pageList[0],\n displayTree?.properties?.searchIdentifier\n );\n\n if (selectedNode) {\n const updatedNodeHistory = nodeHistory.map((node) => node);\n updatedNodeHistory.push(selectedNode);\n setNodeHistory(updatedNodeHistory);\n }\n setActionPanels(displayTree?.properties.panels, containerId);\n setSelectedNode(displayTree);\n executeAddRecentlyLoadedNodes({ data: loadedNodesList });\n updatedMenuList[selectedMenuIndex] = displayTree;\n setMenuList(updatedMenuList);\n }\n setDisableMoveToTop(true);\n }\n }\n setMenuLoading(false);\n setMoveToTopLoading(false);\n }, [\n selectedNode,\n executeQueryAdHoc,\n executeGetDetailedTree,\n menuList,\n catalogObjects,\n promotedEntities,\n getLoadedNodeObject,\n setActionPanels,\n executeAddRecentlyLoadedNodes,\n selectedMenuIndex,\n nodeHistory,\n containerId,\n enqueueSnackbar,\n t\n ]);\n\n // Expand All: expands only cached (already-fetched) nodes.\n // Exception: if a root node's children haven't been fetched yet, fetch them (one level only).\n const handleExpandAll = useCallback(async () => {\n const treeStructureArr = tree?.treeStructure || [];\n const currentMenuList = cloneDeep(menuList);\n\n for (const rootTree of currentMenuList) {\n // Fetch root's immediate children if they haven't been loaded yet\n if (\n rootTree.properties?.lazyLoad &&\n !rootTree.completedLoadingChildren &&\n rootTree.lazyLoadChildrenArr?.length\n ) {\n rootTree.children = [];\n const promises = rootTree.lazyLoadChildrenArr.map((searchMethod) =>\n executeQueryAdHoc(\n { data: searchMethod.data },\n searchMethod.apiMethodId\n ).catch(() => null)\n );\n const responses = await Promise.all(promises);\n responses.forEach((response, index) => {\n const searchMethod = rootTree.lazyLoadChildrenArr[index];\n if (response?.status === 200 && response?.data?.pageList?.length) {\n const childTree = treeStructureArr.find(\n (ts) =>\n ts.properties.catalogReturnObject ===\n searchMethod.catalogReturnObject\n );\n if (childTree) {\n response.data.pageList.forEach((item) => {\n const displayTree = formatTreeMenuItem(\n item,\n childTree,\n catalogObjects,\n promotedEntities,\n null,\n true\n );\n displayTree.parentId = rootTree.id;\n rootTree.children.push(displayTree);\n });\n }\n }\n });\n rootTree.completedLoadingChildren = true;\n rootTree.currentChildPage = 1;\n rootTree.hasMoreChildren = responses.some((response, index) => {\n const pageSize = rootTree.lazyLoadChildrenArr[index]?.pageSize || 50;\n return response?.data?.total > pageSize;\n });\n }\n expandAllNodes(rootTree, true);\n }\n\n setMenuList(currentMenuList);\n setExpandAllClicked(!expandAllClicked);\n }, [\n expandAllClicked,\n menuList,\n tree,\n executeQueryAdHoc,\n catalogObjects,\n promotedEntities\n ]);\n\n const handleCollapseAll = useCallback(() => {\n setMenuList((prevState) => {\n const updatedMenuList = cloneDeep(prevState);\n updatedMenuList.forEach((tree) => {\n collapseAllNodes(tree);\n });\n return updatedMenuList;\n });\n }, []);\n\n // @TODO: Add back click handling for move to top\n // const handleBackClick = useCallback(() => {\n // if (!nodeHistory.length) return;\n // const lastIndex = nodeHistory.length - 1;\n // const lastSelectedNode = nodeHistory[lastIndex];\n // setSelectedNode(lastSelectedNode);\n // const updatedNodeHistory = nodeHistory.map(node => node);\n // updatedNodeHistory.pop();\n // setNodeHistory(updatedNodeHistory);\n // }, [nodeHistory]);\n\n const inquiryTabList = useMemo(() => {\n if (!selectedNode || !selectedNode?.properties?.tabs) return [];\n const tabList = [];\n const orderedTabs = orderBySequence(selectedNode.properties.tabs);\n orderedTabs.forEach((tab) => {\n if (tab?.propertyMapping && tab?.jsonLogic) {\n const rule = mapRule(tab?.propertyMapping, tab?.jsonLogic);\n\n if (!evaluateRule(rule, selectedNode.nodeObj, null, false)) {\n return;\n }\n }\n\n let label = '';\n if (tab?.displayName && tab?.displayName.trim()) {\n label = tab?.displayName.trim();\n } else if (tab?.page?.name && tab?.page?.name.trim()) {\n label = tab?.page?.name.trim();\n }\n\n const page = {\n label: label,\n icon: null,\n pageId: tab?.page?.pageId || null,\n trees: tab?.trees || [],\n requiredFieldMapping: tab?.requiredFieldMapping || {},\n queryId: tab?.queryId || '',\n queryParamMapping: tab?.queryParamMapping || null\n };\n tabList.push(page);\n });\n setSelectedPageId(tabList[0]?.pageId);\n return tabList;\n }, [selectedNode]);\n\n const inquiryFluentTabList = useMemo(\n () =>\n inquiryTabList.map((tab, index) => ({\n id: String(index),\n label: tab.label\n })),\n [inquiryTabList]\n );\n\n const inquiryWorkflowFluentTabList = useMemo(\n () => [\n { id: '0', label: t('Inquiry') },\n { id: '1', label: t('Workflow') }\n ],\n [t]\n );\n\n const handlePageChange = useCallback(\n (value) => {\n if (Number.isNaN(value)) return;\n setTabValue(value);\n if (selectedPageId !== inquiryTabList[value]?.pageId) {\n setSelectedPageId(inquiryTabList[value]?.pageId);\n }\n },\n [inquiryTabList, selectedPageId]\n );\n\n const handleFluentInquiryTabChange = useCallback(\n (e) => {\n handlePageChange(Number(e.detail));\n },\n [handlePageChange]\n );\n\n const handleLoadingSpecificNode = useCallback(\n async (obj) => {\n setMenuLoading(true);\n setNodesRequested([1]);\n const currentTabValue = inquiryTabList?.length\n ? inquiryTabList[tabValue]\n : null;\n let error = false;\n let errorMessage = t(`Unable to load entity`);\n if (!obj?.businessObjectKey) {\n error = true;\n errorMessage = `Unable to load entity: No Business Object Key`;\n } else if (!currentTabValue?.trees?.length) {\n error = true;\n errorMessage = `Unable to load entity: No Trees Configured for Tab`;\n }\n\n if (error) {\n setMenuLoading(false);\n setNodesRequested([]);\n enqueueSnackbar(errorMessage, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n return;\n }\n\n const fullyQualifiedName = obj.businessObjectKey.split('|')[0];\n const sanitizedName = getSanitizedName(fullyQualifiedName);\n const matchingCtlgFullyQualifiedNameComponent = catalogObjects.find(\n (domain) => domain.catalogObjectName === fullyQualifiedName\n );\n const catObjName = matchingCtlgFullyQualifiedNameComponent\n ? fullyQualifiedName\n : sanitizedName;\n\n const matchingTabValueTree = currentTabValue.trees.find(\n (tabTree) => tabTree.catalogReturnObject === catObjName\n );\n\n if (!matchingTabValueTree) {\n setMenuLoading(false);\n setNodesRequested([]);\n enqueueSnackbar(\n t(\n `Unable to load entity: Incorrect tree(s) configured for Node trying to load`\n ),\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n return;\n }\n let nodeTree = null;\n const detailedTreeResponse = await executeGetDetailedTree(\n matchingTabValueTree.treeId\n );\n if (detailedTreeResponse.status === 200) {\n nodeTree = detailedTreeResponse.data;\n } else {\n setMenuLoading(false);\n setNodesRequested([]);\n enqueueSnackbar(\n t(`Unable to load entity: Tree for item failed to load`),\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n return;\n }\n\n if (!nodeTree) {\n setMenuLoading(false);\n setNodesRequested([]);\n enqueueSnackbar(\n t(`Unable to load entity: Tree for item failed to load`),\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n return;\n }\n\n const searchIdentifiers = getSearchIdentifiers(\n catalogObjects,\n catObjName\n );\n\n const filterElements = [];\n const searchValues = [];\n searchIdentifiers.forEach((searchIdentifier) => {\n const searchField = searchIdentifier\n ? searchIdentifier.charAt(0).toUpperCase() + searchIdentifier.slice(1)\n : '';\n filterElements.push({\n searchField: searchField,\n searchOperator: '=',\n searchValue: obj[searchIdentifier] ?? ''\n });\n searchValues.push(obj[searchIdentifier]);\n });\n const apiMethodId = nodeTree.apiMethodInstance.apiMethodId;\n const lazyLoad = !!nodeTree?.properties?.lazyLoad;\n\n const searchObject = getSearchObject(filterElements, 1, 50, !lazyLoad);\n const data = { data: searchObject };\n // const loadedNodesList = [];\n const searchResponse = await executeQueryAdHoc(data, apiMethodId);\n if (searchResponse.status === 200) {\n if (searchResponse?.data?.pageList?.length) {\n const treeStructure = makeTreeStructure(\n nodeTree.treeStructure,\n 'id',\n 'parentId'\n );\n const displayTree = formatTreeMenuItem(\n searchResponse.data.pageList[0],\n treeStructure,\n catalogObjects,\n promotedEntities,\n nodeTree,\n lazyLoad\n );\n // loadedNodesList.push(\n // getLoadedNodeObject(\n // apiMethodId,\n // searchObject,\n // displayTree?.properties?.nodeLabel,\n // displayTree?.properties?.catalogReturnObject,\n // treeStructure.id\n // )\n // );\n // executeAddRecentlyLoadedNodes({ data: loadedNodesList });\n setMenuList((prevState) => [...prevState, displayTree]);\n setNodesRequested([]);\n setMenuLoading(false);\n }\n }\n },\n [\n inquiryTabList,\n tabValue,\n catalogObjects,\n enqueueSnackbar,\n t,\n executeGetDetailedTree,\n executeQueryAdHoc,\n // getLoadedNodeObject,\n promotedEntities\n // executeAddRecentlyLoadedNodes\n ]\n );\n\n const handleSideBarValueChange = useCallback((value) => {\n setSidebarTabValue(value);\n }, []);\n\n const handleAdvancedSearchClick = useCallback(\n (values, selectedSearchOperators, entity, lookupPropertyNames) => {\n setIsAdvancedSearch(true);\n setInSearch(true);\n const foundSearchItem = searchItems.find(\n (item) => item.catalogReturnObject === entity\n );\n const searchFilterElements = [];\n const searchFields = Object.keys(values).filter((field) =>\n field.startsWith(`${getSanitizedName(entity)}:`)\n );\n\n searchFields.forEach((searchField) => {\n const filterElement = {\n searchField: '',\n searchOperator: '',\n searchValue: ''\n };\n const configuredSearchField = searchField.replace(\n `${getSanitizedName(entity)}:`,\n ''\n );\n filterElement.searchField =\n configuredSearchField.charAt(0).toUpperCase() +\n configuredSearchField.slice(1);\n filterElement.searchOperator =\n (selectedSearchOperators &&\n selectedSearchOperators[configuredSearchField]?.value) ||\n '=';\n\n if (\n configuredSearchField.includes(':between') ||\n !values[searchField]\n ) {\n return;\n }\n\n // Handle between operator\n if (filterElement.searchOperator === 'BETWEEN') {\n let fromValue =\n values[searchField] instanceof Date\n ? values[searchField].toISOString()\n : values[searchField];\n let toValue =\n values[`${searchField}:between`] instanceof Date\n ? values[`${searchField}:between`].toISOString()\n : values[`${searchField}:between`];\n filterElement.searchValue = `${fromValue}${\n toValue ? `,${toValue}` : ''\n }`;\n } else {\n filterElement.searchValue =\n values[searchField] instanceof Date\n ? values[searchField].toISOString()\n : values[searchField];\n }\n // Handle lookup values\n if (lookupPropertyNames.includes(configuredSearchField)) {\n filterElement.searchValue = values[searchField]['value'];\n }\n searchFilterElements.push(filterElement);\n });\n\n foundSearchItem.searchFilterElements = searchFilterElements;\n setAdvancedSearchItems([foundSearchItem]);\n },\n [searchItems]\n );\n\n const entityList = useMemo(() => {\n if (!searchItems?.length) {\n return [];\n }\n return searchItems.reduce((entities, item) => {\n if (item.catalogReturnObject) {\n entities.push({\n label: getSanitizedName(item.catalogReturnObject),\n value: item.catalogReturnObject\n });\n }\n return entities;\n }, []);\n }, [searchItems]);\n\n const secondaryButtons = useMemo(() => {\n if (inSearch) {\n return [\n {\n component: ClearIcon,\n label: 'Clear Search',\n click: clearSearch,\n id: 1\n }\n ];\n }\n return [];\n }, [clearSearch, inSearch]);\n\n const pageHeightOffSet = useMemo(() => {\n let offset = 0;\n if (primaryExpanded) {\n offset = offset + 180;\n }\n if (secondaryExpanded) {\n offset = offset + 270;\n }\n\n if (selectedNode?.properties?.tabs?.length > 1) {\n offset = offset + 44;\n }\n\n return offset;\n }, [primaryExpanded, secondaryExpanded, selectedNode]);\n\n const onTreeViewModeChange = useCallback(() => {\n if (treeViewMode === TreeViewModeEnums.Classic) {\n setTreeViewMode(TreeViewModeEnums.Compact);\n } else if (treeViewMode === TreeViewModeEnums.Compact) {\n setTreeViewMode(TreeViewModeEnums.Classic);\n }\n }, [treeViewMode]);\n\n const selectedNodeChildren = useMemo(() => {\n if (!!!selectedNode?.children?.length) return [];\n return selectedNode?.children?.filter(\n (child) => !(child instanceof GroupNode)\n );\n }, [selectedNode]);\n\n const udpPageWidgetParams = useMemo(() => {\n const currentTabValue = inquiryTabList?.length\n ? inquiryTabList[tabValue]\n : null;\n return {\n pageId: currentTabValue?.pageId || '',\n entityName: selectedNode?.properties?.catalogReturnObject,\n contentId: selectedNode?.properties?.searchValue,\n nodeObj: selectedNode?.nodeObj,\n nodeId: selectedNode?.id,\n manytoManyNodeObjKey:\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n parentNodeObj: selectedNode?.parentNode?.nodeObj,\n parentGroupName: selectedNode?.parentGroupName,\n inquiryParams: selectedNode?.inquiryParams,\n inquiryNodeProperties: selectedNode?.properties,\n refreshTree: handleMenuTreesRefreshFromPage,\n loadInquiryNode: handleLoadingSpecificNode,\n requiredFieldsMap: currentTabValue?.requiredFieldMapping || {},\n displayLoadNodeButton: !!currentTabValue?.trees?.length,\n nodeChildren: selectedNodeChildren,\n catalogObjects,\n queryId: currentTabValue?.queryId,\n queryParamMapping: currentTabValue?.queryParamMapping,\n refreshNodeHeaderData: refreshNodeHeaderPageData,\n refreshPageHeaderData: refreshPageHeaderPageData,\n inquiryContainerId: containerId\n };\n }, [\n inquiryTabList,\n selectedNode,\n catalogObjects,\n handleMenuTreesRefreshFromPage,\n handleLoadingSpecificNode,\n tabValue,\n selectedNodeChildren,\n refreshNodeHeaderPageData,\n refreshPageHeaderPageData,\n containerId\n ]);\n\n const pageWidgetParams = useMemo(() => {\n const currentTabValue = inquiryTabList?.length\n ? inquiryTabList[tabValue]\n : null;\n return {\n pageId: currentTabValue?.pageId || '',\n entityName: selectedNode?.properties?.catalogReturnObject,\n contentId: selectedNode?.properties?.searchValue,\n nodeObj: selectedNode?.nodeObj,\n nodeId: selectedNode?.id,\n manytoManyNodeObjKey:\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n parentNodeObj: selectedNode?.parentNode?.nodeObj,\n parentGroupName: selectedNode?.parentGroupName,\n inquiryParams: selectedNode?.inquiryParams,\n inquiryNodeProperties: selectedNode?.properties,\n heightOffset: pageHeightOffSet,\n refreshTree: handleMenuTreesRefreshFromPage,\n loadInquiryNode: handleLoadingSpecificNode,\n requiredFieldsMap: currentTabValue?.requiredFieldMapping || {},\n displayLoadNodeButton: !!currentTabValue?.trees?.length,\n nodeChildren: selectedNodeChildren,\n catalogObjects,\n queryId: currentTabValue?.queryId,\n queryParamMapping: currentTabValue?.queryParamMapping,\n refreshNodeHeaderData: refreshNodeHeaderPageData,\n refreshPageHeaderData: refreshPageHeaderPageData,\n inquiryContainerId: containerId\n };\n }, [\n inquiryTabList,\n selectedNode,\n catalogObjects,\n handleMenuTreesRefreshFromPage,\n handleLoadingSpecificNode,\n pageHeightOffSet,\n tabValue,\n selectedNodeChildren,\n refreshNodeHeaderPageData,\n refreshPageHeaderPageData,\n containerId\n ]);\n\n const pageContainer = useMemo(() => {\n return (\n <PageContainer\n user={user}\n key={selectedNode?.properties?.searchValue}\n pageData={pageData}\n pageLoading={pageLoading}\n widgetParams={\n pageData?.isUdpPage ? udpPageWidgetParams : pageWidgetParams\n }\n disableMargins={true}\n />\n );\n }, [\n user,\n pageData,\n pageLoading,\n udpPageWidgetParams,\n selectedNode,\n pageWidgetParams\n ]);\n\n const handleSidebarExpandClick = useCallback(() => {\n setSidebarExpanded((expanded) => !expanded);\n }, []);\n\n useEffect(() => {\n setSubHeaderActionHasChildren(false);\n }, [setSubHeaderActionHasChildren]);\n\n useEffect(() => {\n clearNodes();\n clearSearch();\n // If the treeId changes we want to clear all nodes and search\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [treeId]);\n\n useEffect(() => {\n if (inSearch) {\n setHeaderTitle('');\n setPrimaryExpanded(false);\n setSecondaryExpanded(false);\n setShowToggle1(false);\n setShowToggle2(false);\n } else if (!inSearch && selectedNode) {\n setHeaderTitle(\n selectedNode?.isGroupNode\n ? selectedNode.properties?.label\n : selectedNode.properties?.headerTitle\n );\n if (\n !selectedNode.properties?.defaultNodeHeaderExpanded ||\n selectedNode.properties?.defaultNodeHeaderExpanded === 'hidden'\n ) {\n setShowToggle1(false);\n setPrimaryExpanded(false);\n } else {\n setShowToggle1(true);\n setPrimaryExpanded(\n selectedNode.properties?.defaultNodeHeaderExpanded\n ? selectedNode.properties?.defaultNodeHeaderExpanded === 'expanded'\n : false\n );\n }\n if (\n !selectedNode.properties?.defaultPageHeaderExpanded ||\n selectedNode.properties?.defaultPageHeaderExpanded === 'hidden'\n ) {\n setShowToggle2(false);\n setSecondaryExpanded(false);\n } else {\n setShowToggle2(true);\n setSecondaryExpanded(\n selectedNode.properties?.defaultPageHeaderExpanded\n ? selectedNode.properties?.defaultPageHeaderExpanded === 'expanded'\n : true\n );\n }\n }\n }, [inSearch, selectedNode]);\n\n useEffect(() => {\n if (!nodeLoaded) {\n setHeaderTitle('');\n setShowToggle1(false);\n setShowToggle2(false);\n setPrimaryExpanded(false);\n setSecondaryExpanded(false);\n }\n }, [nodeLoaded]);\n\n useEffect(() => {\n if (!sidebarExpanded) {\n setSidebarTabValue(0);\n }\n }, [sidebarExpanded]);\n\n useEffect(() => {\n if (setPageId) {\n if (selectedNode) {\n if (selectedNode?.properties?.tabs?.length > 1) {\n setPageId(selectedPageId || null);\n } else {\n const pageTabs = selectedNode?.properties?.tabs;\n if (pageTabs?.[0]) {\n setPageId(pageTabs[0].page?.pageId || null);\n } else {\n setPageId(null);\n }\n }\n } else {\n setPageId(null);\n }\n }\n }, [setPageId, selectedNode, selectedPageId]);\n\n useEffect(() => {\n if (initialSearchValue) {\n setIsAdvancedSearch(false);\n setInSearch(true);\n setSearchValue(initialSearchValue);\n }\n }, [initialSearchValue]);\n\n useEffect(() => {\n setTabValue(0);\n }, [selectedNode]);\n\n useEffect(() => {\n if (inSearch) {\n setShowInquiryHeaderActions(false);\n } else {\n setShowInquiryHeaderActions(true);\n }\n }, [inSearch, setShowInquiryHeaderActions]);\n\n useEffect(() => {\n setInquiryParams(\n {\n selectedNode,\n selectedNodeParent: selectedNode?.parentNode,\n refreshTree: handleMenuTreesRefresh\n },\n containerId\n );\n }, [selectedNode, handleMenuTreesRefresh, setInquiryParams, containerId]);\n\n useEffect(() => {\n setMenuListState({\n menuList: menuList,\n handleRemoveMenuItem: handleRemoveMenuItem,\n selectedMenuIndex\n });\n }, [setMenuListState, menuList, handleRemoveMenuItem, selectedMenuIndex]);\n\n useEffect(() => {\n if (tree) {\n const getPreloadedTree = async () => {\n setMenuLoading(true);\n setNodesRequested([1]);\n const response = await executeQueryInstance(\n { data: {} },\n tree.apiMethodInstance?.apiMethodInstanceId\n );\n if (response.status === 200) {\n if (response?.data?.pageList?.length) {\n const clonedTree = cloneDeep(tree.treeStructure);\n const treeStructure = makeTreeStructure(\n clonedTree,\n 'id',\n 'parentId'\n );\n const preloadedList = constructPreloadedTree(\n treeStructure,\n response.data.pageList,\n catalogObjects\n );\n setMenuList(preloadedList || []);\n if (preloadedList?.length) {\n setSelectedNode(preloadedList[0]);\n setSelectedMenuIndex(0);\n }\n setAppNavigationExpanded(false);\n }\n }\n setMenuLoading(false);\n setNodesRequested([]);\n };\n\n if (tree) {\n // inquiry title is stored in the properties of the top node of the tree\n const topNode = tree?.treeStructure?.find((node) => !node.parentId);\n setInquiryTitleHeader(topNode?.properties?.inquiryTitle || '');\n }\n\n setIsPreloaded(tree.isPreloaded);\n if (tree.isPreloaded) {\n setNodeLoaded(true);\n getPreloadedTree();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tree, setAppNavigationExpanded, catalogObjects]);\n\n useEffect(() => {\n setSelectedNodeForStore(selectedNode || null);\n }, [selectedNode, setSelectedNodeForStore]);\n\n /* useEffects for workflow */\n\n useEffect(() => {\n if (workflowPlay) {\n setWorkflow(workflowPlay);\n }\n }, [workflowPlay]);\n\n // this is used for updating the state node for page use\n useEffect(() => {\n if (workflow) {\n setSelectedWorkflowNode((prevNode) => {\n if (!!prevNode) {\n const foundNode = workflow.workflowPlayNode?.children?.find(\n (child) => child.id === prevNode.id\n );\n if (!!foundNode) {\n const updatedNode = { ...prevNode };\n // TODO: using this to update state for now but may need to update\n // other properties of the selected node when we pull workflow tree\n updatedNode.properties.state = foundNode.state;\n return updatedNode;\n } else {\n return prevNode;\n }\n }\n });\n }\n }, [workflow]);\n\n useEffect(() => {\n if (workflow) {\n if (!workflowInitialized) {\n let initialized = false;\n if (workflow.workflowPlayNode?.children?.length) {\n const firstWorkflowNode = workflow.workflowPlayNode.children[0];\n if (firstWorkflowNode.state !== UnitStateType.Initial) {\n initialized = true;\n setWorkflowInitialized(true);\n }\n }\n\n if (\n !initialized &&\n getWorkflowInitializedCount < WORKFLOW_MAX_NETWORK_CALLS &&\n inquiryWorkflow?.currentWorkflowPlayId\n ) {\n const timer = setTimeout(async () => {\n await reloadWorkflow();\n setGetWorkflowInitializedCount((prevCount) => prevCount + 1);\n }, 1000);\n\n return () => clearTimeout(timer);\n }\n if (getWorkflowInitializedCount === WORKFLOW_MAX_NETWORK_CALLS) {\n enqueueSnackbar(t(`Unable to initialize workflow`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }\n }\n if (workflowInitialized) {\n const list = [];\n const updatedMenu = transformWorkflowPlayTree(\n workflow.workflowPlayNode\n );\n if (updatedMenu) {\n list.push(updatedMenu);\n }\n setWorkflowMenuItemsList(list);\n }\n }\n }, [\n workflow,\n workflowInitialized,\n reloadWorkflow,\n getWorkflowInitializedCount,\n inquiryWorkflow,\n enqueueSnackbar,\n t\n ]);\n\n useEffect(() => {\n if (inquiryWorkflow?.inWorkflowMode && inquiryWorkflowTabValue === 1) {\n setHideActions(true);\n } else if (\n inquiryWorkflow?.inWorkflowMode &&\n inquiryWorkflowTabValue === 0\n ) {\n setHideActions(false);\n }\n }, [setHideActions, inquiryWorkflowTabValue, inquiryWorkflow]);\n\n useEffect(() => {\n if (!selectedWorkflowNode) {\n const menu = workflowMenuItemsList[0];\n // Use Task Id to find the first matching node in tree\n if (menu) {\n const firstSelectableMenuItem = menu?.children?.find(\n (item) => item.isSelectable\n );\n setSelectedWorkflowNode(firstSelectableMenuItem || null);\n if (autoCollapseNav) {\n setNavigationExpanded(false);\n }\n }\n }\n }, [\n // udpTaskId,\n workflowMenuItemsList,\n selectedWorkflowNode,\n setNavigationExpanded,\n autoCollapseNav\n ]);\n\n useEffect(() => {\n if (\n !!workflowPlayError &&\n getWorkflowPlayErrorCount < WORKFLOW_MAX_NETWORK_CALLS &&\n inquiryWorkflow?.currentWorkflowPlayId\n ) {\n const timer = setTimeout(() => {\n reloadWorkflow();\n setGetWorkflowPlayErrorCount((prevCount) => prevCount + 1);\n }, 1000);\n\n return () => clearTimeout(timer);\n }\n if (getWorkflowPlayErrorCount === WORKFLOW_MAX_NETWORK_CALLS) {\n enqueueSnackbar(t(`Unable to load workflow`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }\n }, [\n workflowPlayError,\n reloadWorkflow,\n getWorkflowPlayErrorCount,\n enqueueSnackbar,\n t,\n inquiryWorkflow\n ]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n setLocationState({ label: t(inquiryTitle) || t('Inquiry') });\n }, [setLocationState, t, inquiryTitle]);\n\n return (\n <DndProvider backend={HTML5Backend}>\n <LoadingOverlay open={workflowStarting} />\n <div key={treeId} className={classes.root}>\n {!inquiryMenuHidden && (\n <UtilitySideBar\n title={t(inquiryTitle) || t('Inquiry')}\n isUsingChildren={true}\n resizable={true}\n removePadding={true}\n removeTopLayoutUnit={true}\n onUtilitySidebarToggleExpandClick={handleSidebarExpandClick}\n collapsedWidth={78}\n handleResize={(width) => setUtilitySideBarWidth(width)}\n hideTitleBar={inquiryWorkflow?.inWorkflowMode}\n >\n {(moveToTopLoading || dragAndDropLoading || refreshing) && (\n <LinearProgress />\n )}\n {sidebarTabValue === 0 && (\n <>\n {inquiryWorkflow?.inWorkflowMode && (\n <>\n <div className={classes.workflowTablist}>\n <UdpTablist\n activeId={String(inquiryWorkflowTabValue)}\n tabList={inquiryWorkflowFluentTabList}\n onTabChange={(e) =>\n setInquiryWorkflowTabValue(Number(e.detail))\n }\n />\n </div>\n <Divider />\n </>\n )}\n {(!inquiryWorkflow?.inWorkflowMode ||\n (inquiryWorkflow?.inWorkflowMode &&\n inquiryWorkflowTabValue === 0)) && (\n <>\n <InquiryNodeControls\n remove={() => handleRemoveMenuItem(null)}\n moveToTop={handleMoveToTop}\n expandAll={handleExpandAll}\n collapseAll={handleCollapseAll}\n clearAll={clearNodes}\n switchTreeViewMode={onTreeViewModeChange}\n treeViewMode={treeViewMode}\n changeSideBarView={handleSideBarValueChange}\n handleKeyDown={handleSearch}\n disableMoveToTop={disableMoveToTop}\n entityList={entityList}\n entityValue={entityValue}\n setEntityValue={setEntityValue}\n hiddenControls={\n sidebarExpanded\n ? isPreloaded\n ? ['remove', 'clearAll']\n : []\n : isPreloaded\n ? ['remove', 'expandAll', 'clearAll', 'collapseAll']\n : ['remove', 'expandAll', 'clearAll', 'collapseAll']\n }\n showControls={!treeLoading && !treeError && nodeLoaded}\n showSearch={!treeLoading && !treeError}\n defaultValue={initialSearchValue}\n clearSearchStr={clearSearchStr}\n setClearSearchStr={setClearSearchStr}\n isPreloadedTree={isPreloaded}\n treeLoading={treeLoading}\n >\n {!treeLoading && treeError && (\n <div style={{ marginLeft: 4, marginBottom: 12 }}>\n <LayoutUnit unit='nudge' />\n <Typography>\n Error getting tree data from tree id\n </Typography>\n </div>\n )}\n </InquiryNodeControls>\n <NodeList\n menuItemsList={menuList}\n onSelectNode={handleSelectedNode}\n onDropNode={handleDroppedNode}\n selectedNodeId={selectedNode?.id ?? ''}\n selectedNodeParentId={selectedNode?.parentId ?? ''}\n expandAllClicked={expandAllClicked}\n classes={{\n root: !treeLoading\n ? nodeLoaded\n ? classes.nodeListRootLoaded\n : classes.nodeListRoot\n : classes.nodeListRootLoading\n }}\n menuLoading={menuLoading}\n nodesRequested={nodesRequested}\n sidebarExpanded={sidebarExpanded}\n executeQueryAdHoc={executeQueryAdHoc}\n catalogObjects={catalogObjects}\n promotedEntities={promotedEntities}\n treeStructureArr={tree?.treeStructure || []}\n setMenuList={setMenuList}\n treeViewMode={treeViewMode || TreeViewModeEnums.Classic}\n onExpandedChange={handleExpandedChange}\n />\n </>\n )}\n </>\n )}\n {sidebarTabValue === 1 && (\n <InquiryAdvancedSearch\n entityList={entityList}\n entityValue={advancedSearchEntityValue}\n setEntityValue={setAdvancedSearchEntityValue}\n onSubmit={handleAdvancedSearchClick}\n currentNodeCatalogReturnObject={\n selectedNode?.properties?.catalogReturnObject\n }\n changeSideBarView={handleSideBarValueChange}\n catalogObjects={catalogObjects}\n tree={tree}\n executeQueryWithParameters={executeQueryWithParameters}\n />\n )}\n {inquiryWorkflow?.inWorkflowMode &&\n inquiryWorkflowTabValue === 1 && (\n <div\n className={classes.workflowMenuContent}\n key={inquiryWorkflow?.currentWorkflowPlayId}\n >\n {workflowMenuItemsList?.length > 0 &&\n (!workflowPlayLoading || reloadWorkflowFromPage) &&\n workflowMenuItemsList.map((workflowMenuItems, index) => (\n <div\n key={workflowMenuItems.id}\n className={classes.nodeContainer}\n >\n <WorkflowTreeMenu\n menuItems={workflowMenuItems}\n onSelectNode={handleSelectedWorkflowNode}\n // onDropNode={handleDropNode}\n menuIndex={index}\n selectedNodeId={selectedWorkflowNode?.id}\n selectedNodeParentId={selectedWorkflowNode?.parentId}\n sidebarExpanded={sidebarExpanded}\n treeViewMode={TreeViewModeEnums.Classic}\n />\n </div>\n ))}\n {(workflowPlayLoading ||\n workflowPlayError ||\n !workflowInitialized) &&\n !reloadWorkflowFromPage && (\n <div className={classes.workflowTreeLoader}>\n <NodeLoader\n loading={\n workflowPlayLoading ||\n workflowPlayError ||\n !workflowInitialized\n }\n />\n </div>\n )}\n </div>\n )}\n </UtilitySideBar>\n )}\n <OpenPage\n disableGutters\n style={{\n position: 'relative',\n top: 0,\n width: `calc(100% - ${utilitySideBarWidth}px)`\n }}\n >\n <Form\n onSubmit={executeApiForDroppedNode}\n key={promotedMethodsToExecute}\n >\n <ExecuteApiDialog\n open={executeApiDialogOpen}\n handleCloseDialog={handleCloseExecuteApiDialog}\n apiMethods={promotedMethodsToExecute}\n progress={executeApiProgress}\n />\n </Form>\n <div className={classes.content}>\n {(!inquiryWorkflow?.inWorkflowMode ||\n (inquiryWorkflow?.inWorkflowMode &&\n inquiryWorkflowTabValue === 0)) && (\n <InquiryWrapper nodeLoaded={false} collapsedWidth={32}>\n {(inSearch || nodeLoaded) && (\n <Card square>\n <PrimaryActionHeader\n key={`${selectedNode?.id}-${inSearch}`}\n title={headerTitle}\n buttonLabel={'Load'}\n single\n secondaryButtons={secondaryButtons}\n handleClick={handlePrimaryAction}\n hidePAB={nodeLoaded && !inSearch}\n allowAdditionalTitleComponent={true}\n additionalComponentId={containerId}\n />\n </Card>\n )}\n {!!selectedNode && (\n <Card square className={classes.nodeHeader}>\n <div>\n <Collapse in={primaryExpanded} timeout='auto'>\n {nodeHeaderPageIdToLoad && showToggle1 ? (\n <PageContainer\n user={user}\n key={nodeHeaderPageIdToLoad}\n pageData={nodeHeaderPageData}\n pageLoading={nodeHeaderPageLoading}\n widgetParams={{\n nodeObj: selectedNode?.nodeObj,\n nodeId: selectedNode?.id,\n selectedNode: selectedNode,\n setRefreshNodeHeaderPageData:\n setRefreshNodeHeaderPageData,\n inquiryContainerId: containerId\n }}\n disableMargins={true}\n loadingHeight={32}\n autoHeight={true}\n />\n ) : (\n <NodeDetails node={selectedNode} />\n )}\n </Collapse>\n\n {showToggle1 && (\n <div\n className={clsx(\n primaryExpanded\n ? classes.chevronButtons\n : classes.chevronButtonClosed\n )}\n >\n <FluentIconButton\n onClick={() => setPrimaryExpanded(!primaryExpanded)}\n icon={\n primaryExpanded ? ChevronUpIcon : ChevronDownIcon\n }\n />\n </div>\n )}\n </div>\n <Divider />\n <Collapse in={secondaryExpanded} timeout='auto'>\n <div className={classes.inquiryHeader}>\n {pageHeaderPageIdToLoad && showToggle2 ? (\n <PageContainer\n user={user}\n key={pageHeaderPageIdToLoad}\n pageData={pageHeaderPageData}\n pageLoading={pageHeaderPageLoading}\n widgetParams={{\n nodeObj: selectedNode?.nodeObj,\n nodeId: selectedNode?.id,\n selectedNode: selectedNode,\n setRefreshPageHeaderPageData:\n setRefreshPageHeaderPageData,\n inquiryContainerId: containerId\n }}\n disableMargins={true}\n loadingHeight={32}\n autoHeight={true}\n />\n ) : (\n <>\n <InquiryHeaderSecondaryTarget\n className={classes.actions}\n />\n <InquiryHeaderSecondaryAlertTarget\n className={classes.actions}\n />\n </>\n )}\n </div>\n </Collapse>\n {selectedNode?.properties?.tabs?.length > 1 && !inSearch ? (\n <div className={classes.tabRoot}>\n <UdpTablist\n activeId={tabValue}\n tabList={inquiryFluentTabList}\n onTabChange={handleFluentInquiryTabChange}\n />\n </div>\n ) : null}\n </Card>\n )}\n {!!selectedNode && showToggle2 && (\n <Card square className={classes.entityHeader}>\n <div className={classes.chevronButtons}>\n <FluentIconButton\n onClick={() => setSecondaryExpanded(!secondaryExpanded)}\n icon={\n secondaryExpanded ? ChevronUpIcon : ChevronDownIcon\n }\n className={classes.icon}\n />\n </div>\n </Card>\n )}\n {!treeError && (\n <PageActionWrapper\n forPageContainer={true}\n splitScreenStateKey={'pageContainerSplitScreen'}\n >\n <div\n className={classes.mainWrapper}\n style={{ width: '100%' }}\n >\n {inSearch ? (\n <InquirySearchContainer\n searchItems={entitySearchItems}\n isAdvancedSearch={isAdvancedSearch}\n advancedSearchItems={advancedSearchItems}\n setSelectedSearchRows={handleSelectedSearchRows}\n catalogObjects={catalogObjects}\n loadSingleNode={handleSingleNodeLoad}\n onRowDoubleClick={handleRowDoubleClick}\n classes={{ root: classes.searchContainerRoot }}\n executeQueryAdHoc={executeQueryAdHoc}\n apiMethodInstanceId={\n tree?.apiMethodInstance?.apiMethodInstanceId\n } // The original apiMethodInstanceId that the tree uses\n />\n ) : !tree || !catalogObjects ? (\n <LinearProgress />\n ) : !nodeLoaded && !tree?.isPreloaded ? (\n tree?.explorePageId ? (\n <PageContainer\n user={user}\n key={selectedNode?.properties?.searchValue}\n pageData={explorePageData}\n pageLoading={explorePageLoading}\n widgetParams={{\n tree: tree,\n recentlyLoadedNodes: litnHistory,\n loading: litnHistoryLoading,\n onLoadedNodeClick: handleRecentlyLoadedNodeClick,\n tableHeight: 'calc(100vh - 172px)',\n catalogObjects\n }}\n disableMargins={true}\n />\n ) : (\n <InquiryDashboard\n treeId={treeId}\n recentlyLoadedNodeOnClick={\n handleRecentlyLoadedNodeClick\n }\n >\n <RecentlyLoadedNodesTable\n recentlyLoadedNodes={litnHistory}\n loading={litnHistoryLoading}\n onLoadedNodeClick={handleRecentlyLoadedNodeClick}\n tableHeight={'calc(100vh - 172px)'}\n tree={tree}\n />\n </InquiryDashboard>\n )\n ) : (\n selectedNode?.properties?.tabs?.length > 0 &&\n (selectedNode?.properties?.tabs?.length > 1\n ? pageId && pageContainer\n : pageId\n ? pageContainer\n : null)\n )}\n </div>\n </PageActionWrapper>\n )}\n <InquiryHeaderSecondary secondExtended>\n <div className={classes.information}>\n <div className={classes.summaryCard}>\n {/* Add Child component here for the Node header */}\n </div>\n </div>\n </InquiryHeaderSecondary>\n </InquiryWrapper>\n )}\n {inquiryWorkflow?.inWorkflowMode &&\n inquiryWorkflowTabValue === 1 && (\n <WorkflowContent\n selectedNode={selectedWorkflowNode}\n workflow={workflow}\n reloadWorkflow={handleReloadWorkflow}\n users={users}\n groups={groups}\n handleClose={handleCloseWorkflow}\n inquiryPageParams={\n pageData?.isUdpPage ? udpPageWidgetParams : pageWidgetParams\n }\n />\n )}\n </div>\n </OpenPage>\n </div>\n </DndProvider>\n );\n};\n\nInquiryContainer.propTypes = {\n user: PropTypes.object,\n litnHistory: PropTypes.array,\n litnHistoryLoading: PropTypes.bool,\n tree: PropTypes.object,\n treeId: PropTypes.string,\n catalogObjects: PropTypes.array,\n executeQueryAdHoc: PropTypes.func,\n executeQueryWithParameters: PropTypes.func,\n executeGetDetailedTree: PropTypes.func,\n executeAddRecentlyLoadedNodes: PropTypes.func,\n treeLoading: PropTypes.bool,\n treeError: PropTypes.object,\n pageData: PropTypes.object,\n pageLoading: PropTypes.bool,\n pageError: PropTypes.object,\n setPageId: PropTypes.func,\n pageId: PropTypes.string,\n isValidWidget: PropTypes.func,\n productId: PropTypes.string,\n initialSearchValue: PropTypes.string,\n promotedEntities: PropTypes.array,\n apiCatalogId: PropTypes.string\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InquiryContainer.mjs","names":["ChevronDownIcon","ChevronUpIcon","ClearIcon","LinearProgress","makeStyles","Typography","Card","Collapse","Divider","cloneDeep","orderBy","PropTypes","React","useCallback","useEffect","useMemo","useRef","useState","DndProvider","HTML5Backend","useTranslation","collapseAllNodes","constructPreloadedTree","getSearchValueString","expandAllNodes","fetchLazyChildren","collectChildVaryingKeysByType","keysByTypeToFilterArray","fetchCountsByType","findNodeByBusinessObjectKey","Form","formatTreeMenuItem","getSearchIdentifiers","getSearchObject","InquiryAdvancedSearch","InquiryDashboard","InquiryHeaderSecondary","InquiryHeaderSecondaryTarget","InquiryNodeControls","InquirySearchContainer","InquiryWrapper","LayoutUnit","makeTreeStructure","NodeDetails","NodeList","OpenPage","PageContainer","pluralize","PrimaryActionHeader","useActions","v4","uuid","NodeActionEnums","NodeActionTriggerEnums","TreeViewModeEnums","RecentlyLoadedNodesTable","ExecuteApiDialog","useSnackbar","executeQueryInstance","useInquiryStore","useSetInitialInquiryMenuVisibility","evaluateRule","mapRule","GroupNode","getSanitizedName","useShellStore","useActionStore","useAxiosGet","UdpTablist","UtilitySideBar","InquiryHeaderSecondaryAlertTarget","FluentIconButton","clsx","PageActionWrapper","WorkflowTreeMenu","NodeLoader","apiMutate","transformWorkflowPlayTree","updateWorkflowPlayNodeState","APP_RIBBON_SPACE","useBuildEnvironment","WorkflowContent","LoadingOverlay","UnitStateType","useSetLocationState","ConfigService","useStyles","theme","root","display","height","appRibbonSpace","mainWrapper","padding","spacing","children","searchContainerRoot","nodeListRoot","props","shellHidden","overflowX","nodeListRootLoaded","tree","isPreloaded","tabRoot","width","minWidth","workflowTablist","nodeListRootLoading","chevronButtons","justifyContent","zIndex","appBar","chevronButtonClosed","position","left","top","marginLeft","entityHeader","boxShadow","nodeHeader","content","overflowY","workflowMenuContent","marginTop","paddingTop","workflowTreeLoader","marginRight","WORKFLOW_MAX_NETWORK_CALLS","getKeyIdentifier","n","isGroupNode","properties","label","nodeObj","businessObjectKey","InquiryContainer","catalogObjects","executeQueryAdHoc","executeQueryWithParameters","executeGetDetailedTree","executeAddRecentlyLoadedNodes","initialSearchValue","litnHistory","litnHistoryLoading","pageId","pageData","pageLoading","pageError","productId","promotedEntities","apiCatalogId","setPageId","treeId","treeLoading","treeError","user","autoCollapseNav","containerId","state","buildEnv","classes","t","enqueueSnackbar","refreshing","setRefreshing","nodeLoaded","setNodeLoaded","searchValue","setSearchValue","clearSearchStr","setClearSearchStr","inSearch","setInSearch","selectedSearchRows","setSelectedSearchRows","menuList","setMenuList","menuLoading","setMenuLoading","selectedNode","setSelectedNode","selectedMenuIndex","setSelectedMenuIndex","disableMoveToTop","setDisableMoveToTop","nodeHistory","setNodeHistory","expandAllClicked","setExpandAllClicked","tabValue","setTabValue","selectedPageId","setSelectedPageId","nodesRequested","setNodesRequested","sidebarTabValue","setSidebarTabValue","advancedSearchItems","setAdvancedSearchItems","isAdvancedSearch","setIsAdvancedSearch","entityValue","setEntityValue","treeViewMode","setTreeViewMode","Classic","advancedSearchEntityValue","setAdvancedSearchEntityValue","moveToTopLoading","setMoveToTopLoading","moveToTopCount","setMoveToTopCount","promotedMethodsToExecute","setPromotedMethodsToExecute","executeApiDialogOpen","setExecuteApiDialogOpen","executeApiData","setExecuteApiData","executeApiProgress","setExecuteApiProgress","setIsPreloaded","headerTitle","setHeaderTitle","sidebarExpanded","setSidebarExpanded","primaryExpanded","setPrimaryExpanded","secondaryExpanded","setSecondaryExpanded","showToggle1","setShowToggle1","showToggle2","setShowToggle2","utilitySideBarWidth","setUtilitySideBarWidth","refreshNodeHeaderPageData","setRefreshNodeHeaderPageData","refreshPageHeaderPageData","setRefreshPageHeaderPageData","dragAndDropLoading","setDragAndDropLoading","inquiryWorkflowTabValue","setInquiryWorkflowTabValue","workflowMenuItemsList","setWorkflowMenuItemsList","selectedWorkflowNode","setSelectedWorkflowNode","reloadWorkflowFromPage","setReloadWorkflowFromPage","getWorkflowPlayErrorCount","setGetWorkflowPlayErrorCount","getWorkflowInitializedCount","setGetWorkflowInitializedCount","workflowInitialized","setWorkflowInitialized","workflow","setWorkflow","inquiryMenuHidden","setActionPanels","setShowInquiryHeaderActions","setMenuListState","setInquiryParams","closeAllSplitScreens","setSelectedNodeForStore","setHideActions","setInquiryTitleHeader","setInquiryToolbarTitle","setNavigationExpanded","setSubHeaderActionHasChildren","inquiryTitle","title","workflowMap","setWorkflowMap","workflowStarting","setLocationState","data","explorePageData","loading","explorePageLoading","tenantV1ApiUrl","explorePageId","orderBySequence","list","selectedTree","inquiryWorkflow","nodeHeaderPageIdToLoad","nodeHeaderPages","orderedNodeHeaderPages","nodeHeaderPageId","i","length","nodeHeaderPage","propertyMapping","jsonLogic","rule","page","pageHeaderPageIdToLoad","matchingTab","tabs","find","tab","pageHeaderPages","orderedPageHeaderPages","pageHeaderPageId","pageHeaderPage","nodeHeaderPageData","nodeHeaderPageLoading","pageHeaderPageData","pageHeaderPageLoading","workflowPlay","workflowPlayLoading","error","workflowPlayError","reloadWorkflow","builderV1ApiUrl","currentWorkflowPlayId","users","securityV1ApiUrl","currentTenantId","inWorkflowMode","groups","config","UNITY_PRODUCT_ID","handleReloadWorkflow","handleSelectedWorkflowNode","node","menuIndex","isSelectable","searchItems","result","treeStructure","reduce","items","item","matchingCatalogObject","co","catalogObjectName","catalogReturnObject","entityAttributes","searchFilterElements","forEach","element","parentId","apiMethodInstance","apiMethodId","columns","searchTableColumns","id","associatedInquiryTree","isPrimarySearch","push","entitySearchItems","value","filter","getLoadedNodeObject","queryPayload","nodeLabel","treeStructureId","loadedNode","inquiryTreeId","userId","nodeDetails","setAppNavigationExpanded","loadNodes","searchRows","Object","keys","catalogObjectKeys","promises","searchObjList","loadedNodesList","nodesRequestedArr","key","searchObj","currentSearchTree","lazyLoad","rows","searchIdentifier","row","filterElements","searchIdentifiers","split","si","formattedPropertyName","charAt","toUpperCase","slice","searchField","searchOperator","searchObject","wasLazyLoaded","menuTree","Promise","all","then","responses","updatedMenuList","response","index","status","pageList","displayTree","Array","isArray","updatedNodeHistory","map","panels","handleCloseWorkflow","handleRemoveMenuItem","menus","splice","newSelectedNode","handleRecentlyLoadedNodeClick","additionalAction","currentTreeStructureArr","currentTree","foundTreeStructure","associatedTreeStructure","associatedTree","eagerLoad","catch","e","console","matchingNode","nodeTreeStructure","variant","anchorOrigin","vertical","horizontal","handleLoadNodes","handleSingleNodeLoad","searchRow","handleRowDoubleClick","rowData","searchItem","identifiers","toString","clearNodes","handlePrimaryAction","handleSearch","event","target","clearSearch","handleSelectedSearchRows","objectName","handleSelectedNode","associatedTreeId","constructMenuItemForDroppedNode","loadPageNodeActions","targetNodeObj","sourceNodeObj","targetNodeEntityName","sourceNodeEntityName","menuItem","isExpanded","nodeSubLabel","defaultPageHeaderExpanded","defaultNodeHeaderExpanded","defaultIcon","color","name","type","nodeActions","isDroppedLoadedPageNode","existingPageLoadEntities","inquiryParams","nodeAction","dragEntityName","tabObj","inquiryTreeRuleId","propertyIsCustomMapping","sequence","requiredFieldMapping","parameters","loadPageForDroppedNode","sourceNode","targetNode","targetNodeCatalogReturnObject","sourceNodeCatalogReturnObject","orderedLoadPageNodeActions","pageMenuItem","unshift","targetMenuItem","includes","handleDroppedNodeForExecuteApi","executeApiNodeActions","sourceNodeType","targetNodeType","sourceNodeMenuIndex","targetNodeMenuIndex","apiMethodIds","eana","actionValue","promotedMethods","integrationV2ApiUrl","method","pmte","source","handleCloseExecuteApiDialog","handleMenuTreesRefresh","menuIndexes","workingTree","assocInquiryTreeMap","p","currentSelectedTree","selectedNodeSearchIdentifier","expandedStateRef","handleExpandedChange","stateMap","current","restoreExpandedState","getStableKey","walk","has","get","treeNodeIds","idMap","stack","pop","child","getCriticalPath","selectedTreeNode","path","treeNodes","hasLazyLevelInStructure","some","level","fetchAndBuildDisplayTree","pageSize","isPreloadedGroupQuery","apiMethodInstanceId","responseObj","fetchAndMergeLazyNode","currentNode","context","currentCriticalPathNode","criticalPathBroken","survivingAncestor","criticalPathList","keysByType","inclusionFilter","res","totalsByType","treeStructureArr","pageNumber","currentBok","criticalPathNodeBok","isCriticalPathNode","nextAncestorBok","present","c","existingChildrenMap","Map","oldChild","bok","set","mergedChildren","freshChild","existingChild","groupNodes","localPhysicalCounts","hasMore","entries","total","freshSeenByType","completedLoadingChildren","hasMoreChildren","seenChildKeysByType","errorRetrievingChildren","doesRootExist","isPreloadedRoot","rootEntityType","rootApiMethodId","rootPkFields","rootPk","rootPkValue","pkSearchField","rootCheckResponse","buildLazyDisplayTree","expandedKeys","rootExists","rootDeleted","queue","pathContext","shift","wasExpanded","criticalPathNode","handleMenuTreesRefreshFromPage","updateAllPreloadedTreesOrMutationInfo","updateAllPreloadedTrees","selectedNodeIndex","indexOf","prevState","updated","childNode","parentGroupId","parentGroupName","newGroupId","executeApiForDroppedNode","apiData","requestBody","apiMethod","handleDroppedNode","targetNodeActions","triggerType","On_Node_Drop","actionTypeId","Load_Inquiry_Page","Execute_Api","workflowNodeActions","Start_Workflow","tna","handleMoveToTop","detailedTreeResponse","count","handleExpandAll","currentMenuList","rootTree","lazyLoadChildrenArr","searchMethod","childTree","ts","currentChildPage","handleCollapseAll","inquiryTabList","tabList","orderedTabs","displayName","trim","icon","trees","queryId","queryParamMapping","inquiryFluentTabList","String","inquiryWorkflowFluentTabList","handlePageChange","Number","isNaN","handleFluentInquiryTabChange","detail","handleLoadingSpecificNode","obj","currentTabValue","errorMessage","fullyQualifiedName","sanitizedName","matchingCtlgFullyQualifiedNameComponent","domain","catObjName","matchingTabValueTree","tabTree","nodeTree","searchValues","searchResponse","handleSideBarValueChange","handleAdvancedSearchClick","values","selectedSearchOperators","entity","lookupPropertyNames","foundSearchItem","searchFields","field","startsWith","filterElement","configuredSearchField","replace","fromValue","Date","toISOString","toValue","entityList","entities","secondaryButtons","component","click","pageHeightOffSet","offset","onTreeViewModeChange","Compact","selectedNodeChildren","udpPageWidgetParams","entityName","contentId","nodeId","manytoManyNodeObjKey","joiningEntityCatalogObjectKey","parentNodeObj","parentNode","inquiryNodeProperties","refreshTree","loadInquiryNode","requiredFieldsMap","displayLoadNodeButton","nodeChildren","refreshNodeHeaderData","refreshPageHeaderData","inquiryContainerId","pageWidgetParams","heightOffset","pageContainer","isUdpPage","handleSidebarExpandClick","expanded","pageTabs","selectedNodeParent","getPreloadedTree","clonedTree","preloadedList","topNode","prevNode","foundNode","workflowPlayNode","updatedNode","initialized","firstWorkflowNode","Initial","timer","setTimeout","prevCount","clearTimeout","updatedMenu","menu","firstSelectableMenuItem","marginBottom","workflowMenuItems","nodeContainer","inquiryHeader","actions","recentlyLoadedNodes","onLoadedNodeClick","tableHeight","information","summaryCard","propTypes","object","array","bool","string","func","isValidWidget"],"sources":["../../src/inquiry/InquiryContainer.jsx"],"sourcesContent":["import {\n ChevronDownIcon,\n ChevronUpIcon,\n ClearIcon\n} from '@fluentui/react-icons';\nimport {\n LinearProgress,\n makeStyles,\n Typography,\n Card,\n Collapse,\n Divider\n} from '@material-ui/core';\nimport { cloneDeep, orderBy } from 'lodash-es';\nimport PropTypes from 'prop-types';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useTranslation } from 'react-i18next';\nimport {\n collapseAllNodes,\n constructPreloadedTree,\n getSearchValueString\n} from '../utilities/tree/TreeUtilities';\nimport { expandAllNodes } from '../utilities/tree/TreeUtilities';\nimport { fetchLazyChildren } from '../utilities/tree/TreeUtilities';\nimport {\n collectChildVaryingKeysByType,\n keysByTypeToFilterArray,\n fetchCountsByType,\n findNodeByBusinessObjectKey\n} from '../utilities/tree/TreeUtilities';\nimport { Form } from '../utilities/form';\nimport { formatTreeMenuItem } from '../utilities/tree/TreeUtilities';\nimport { getSearchIdentifiers } from '../utilities/search/SearchUtilities';\nimport { getSearchObject } from '../utilities/search/SearchUtilities';\nimport { InquiryAdvancedSearch } from './search/InquiryAdvancedSearch';\nimport { InquiryDashboard } from './dashboard/InquiryDashboard';\nimport {\n InquiryHeaderSecondary,\n InquiryHeaderSecondaryTarget\n} from '../utilities/utilityBar/InquiryHeaderSecondary';\nimport { InquiryNodeControls } from './inquiryBar/InquiryNodeControls';\nimport { InquirySearchContainer } from './search/InquirySearchContainer';\nimport { InquiryWrapper } from './InquiryWrapper';\nimport { LayoutUnit } from '../layout/LayoutUnit';\nimport { makeTreeStructure } from '../utilities/tree/TreeUtilities';\nimport { NodeDetails } from './NodeDetails';\nimport { NodeList } from './NodeList';\nimport { OpenPage } from '../UI/templates/OpenPage';\nimport { PageContainer } from '../page/PageContainer';\nimport { pluralize } from '../utilities/input/StringUtilities';\nimport { PrimaryActionHeader } from '../UI/utilityDisplay/utilityHeader/PrimaryActionHeader';\nimport { useActions } from '../hooks/useActions';\nimport { v4 as uuid } from 'uuid';\nimport {\n NodeActionEnums,\n NodeActionTriggerEnums,\n TreeViewModeEnums\n} from '../enums/unitySystemEnums.ts';\nimport { RecentlyLoadedNodesTable } from './dashboard/RecentlyLoadedNodesTable';\nimport { ExecuteApiDialog } from './ExecuteApiDialog';\nimport { useSnackbar } from 'notistack';\nimport { executeQueryInstance } from '../udp/utilities/methodUtils';\nimport {\n useInquiryStore,\n useSetInitialInquiryMenuVisibility\n} from '../stores/inquiryStore';\nimport { evaluateRule, mapRule } from '../utilities/rules/RuleUtilities';\nimport GroupNode from '../models/GroupNode';\nimport { getSanitizedName } from '../utilities/entities/entityUtilities';\nimport { useShellStore } from '../stores/shellStore';\nimport { useActionStore } from '../stores/actionStore';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UdpTablist } from '../UI/fluent-web-components/UdpTablist';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { InquiryHeaderSecondaryAlertTarget } from '../utilities/utilityBar/InquiryHeaderSecondaryAlert';\nimport { FluentIconButton } from '../UI/inputs/buttons/FluentIconButton';\nimport clsx from 'clsx';\nimport { PageActionWrapper } from '../actions/PageActionWrapper';\nimport { WorkflowTreeMenu } from '../workflow/menus/WorkflowTreeMenu';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport {\n transformWorkflowPlayTree,\n updateWorkflowPlayNodeState\n} from '../utilities/workflow/workflowUtilities';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/useBuildEnvironment';\nimport { WorkflowContent } from '../workflow/WorkflowContent';\nimport LoadingOverlay from '../UI/loading/LoadingOverlay';\nimport { UnitStateType } from '../enums/workflowEnums';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { ConfigService } from '../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`\n },\n mainWrapper: {\n padding: theme.spacing(2)\n },\n children: {\n height: 'calc(100vh - 150px)'\n },\n searchContainerRoot: {\n height: 'calc(100vh - 140px)'\n },\n nodeListRoot: {\n height: (props) => `calc(100vh - ${props.shellHidden ? '120px' : '176px'})`,\n overflowX: 'hidden'\n },\n nodeListRootLoaded: {\n height: (props) =>\n props.tree?.isPreloaded\n ? 'calc(100vh - 140px)'\n : `calc(100vh - ${props.shellHidden ? '130px' : '184px'})`,\n overflowX: 'hidden'\n },\n tabRoot: {\n width: '100%',\n minWidth: 0\n },\n workflowTablist: {\n width: '100%',\n display: 'block',\n '& udp-fluent-tablist': {\n width: '100%'\n }\n },\n nodeListRootLoading: {\n height: 'calc(100vh - 108px)'\n },\n chevronButtons: {\n display: 'flex',\n justifyContent: 'center',\n zIndex: theme.zIndex.appBar\n },\n chevronButtonClosed: {\n position: 'absolute',\n left: '50%',\n top: 14,\n marginLeft: -13,\n zIndex: theme.zIndex.appBar\n },\n entityHeader: {\n position: 'relative',\n zIndex: theme.zIndex.appBar,\n boxShadow:\n '0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 3px 3px 0px rgba(0, 0, 0, 0.12)'\n },\n nodeHeader: {\n boxShadow:\n '0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 3px 3px 0px rgba(0, 0, 0, 0.12)'\n },\n content: {\n overflowY: 'auto',\n height: 'calc(100vh - 50px)'\n },\n workflowMenuContent: {\n marginTop: theme.spacing(1),\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 120}px)`,\n overflowX: 'hidden',\n paddingTop: theme.spacing(1)\n },\n workflowTreeLoader: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n }\n}));\n\nconst WORKFLOW_MAX_NETWORK_CALLS = 50;\n\nconst getKeyIdentifier = (n) =>\n n.isGroupNode ? n.properties?.label : n.nodeObj?.businessObjectKey;\n\nexport const InquiryContainer = (props) => {\n const {\n catalogObjects,\n executeQueryAdHoc,\n executeQueryWithParameters,\n executeGetDetailedTree,\n executeAddRecentlyLoadedNodes,\n initialSearchValue,\n litnHistory,\n litnHistoryLoading,\n pageId,\n pageData,\n pageLoading,\n pageError,\n productId,\n promotedEntities,\n apiCatalogId,\n setPageId,\n tree,\n treeId,\n treeLoading,\n treeError,\n user,\n autoCollapseNav = true,\n containerId = ''\n } = props;\n const shellHidden = useShellStore((state) => state.shellHidden);\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n shellHidden,\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const { t } = useTranslation();\n const { enqueueSnackbar } = useSnackbar();\n\n const [refreshing, setRefreshing] = useState(false);\n const [nodeLoaded, setNodeLoaded] = useState(false);\n const [searchValue, setSearchValue] = useState(initialSearchValue || '');\n const [clearSearchStr, setClearSearchStr] = useState(false);\n const [inSearch, setInSearch] = useState(false);\n const [selectedSearchRows, setSelectedSearchRows] = useState(null);\n const [menuList, setMenuList] = useState([]);\n const [menuLoading, setMenuLoading] = useState(false);\n const [selectedNode, setSelectedNode] = useState(null);\n const [selectedMenuIndex, setSelectedMenuIndex] = useState(null);\n const [disableMoveToTop, setDisableMoveToTop] = useState(true);\n const [nodeHistory, setNodeHistory] = useState([]);\n const [expandAllClicked, setExpandAllClicked] = useState(false);\n const [tabValue, setTabValue] = useState(0);\n const [selectedPageId, setSelectedPageId] = useState(null);\n const [nodesRequested, setNodesRequested] = useState([]);\n const [sidebarTabValue, setSidebarTabValue] = useState(0);\n const [advancedSearchItems, setAdvancedSearchItems] = useState([]);\n const [isAdvancedSearch, setIsAdvancedSearch] = useState(false);\n const [entityValue, setEntityValue] = useState('');\n const [treeViewMode, setTreeViewMode] = useState(TreeViewModeEnums.Classic);\n const [advancedSearchEntityValue, setAdvancedSearchEntityValue] =\n useState('');\n const [moveToTopLoading, setMoveToTopLoading] = useState(false);\n const [moveToTopCount, setMoveToTopCount] = useState(0);\n const [promotedMethodsToExecute, setPromotedMethodsToExecute] = useState([]);\n const [executeApiDialogOpen, setExecuteApiDialogOpen] = useState(false);\n const [executeApiData, setExecuteApiData] = useState(null);\n const [executeApiProgress, setExecuteApiProgress] = useState(false);\n const [isPreloaded, setIsPreloaded] = useState(false);\n const [headerTitle, setHeaderTitle] = useState('');\n const [sidebarExpanded, setSidebarExpanded] = useState(true);\n const [primaryExpanded, setPrimaryExpanded] = useState(false);\n const [secondaryExpanded, setSecondaryExpanded] = useState(false);\n const [showToggle1, setShowToggle1] = useState(false);\n const [showToggle2, setShowToggle2] = useState(false);\n const [utilitySideBarWidth, setUtilitySideBarWidth] = useState(288);\n const [refreshNodeHeaderPageData, setRefreshNodeHeaderPageData] =\n useState(null);\n const [refreshPageHeaderPageData, setRefreshPageHeaderPageData] =\n useState(null);\n const [dragAndDropLoading, setDragAndDropLoading] = useState(false);\n\n /* States for Workflow */\n const [inquiryWorkflowTabValue, setInquiryWorkflowTabValue] = useState(1);\n const [workflowMenuItemsList, setWorkflowMenuItemsList] = useState([]); // holds a list of workflow trees\n const [selectedWorkflowNode, setSelectedWorkflowNode] = useState(null);\n const [reloadWorkflowFromPage, setReloadWorkflowFromPage] = useState(false);\n const [getWorkflowPlayErrorCount, setGetWorkflowPlayErrorCount] = useState(0);\n const [getWorkflowInitializedCount, setGetWorkflowInitializedCount] =\n useState(0);\n const [workflowInitialized, setWorkflowInitialized] = useState(false);\n const [workflow, setWorkflow] = useState(null);\n // Checks if we should be hiding the Inquiry Left Menu\n useSetInitialInquiryMenuVisibility();\n const inquiryMenuHidden = useInquiryStore((state) => state.inquiryMenuHidden);\n\n const {\n setActionPanels,\n setShowInquiryHeaderActions,\n setMenuListState,\n setInquiryParams,\n closeAllSplitScreens\n } = useActions();\n\n const setSelectedNodeForStore = useActionStore(\n (state) => state.setSelectedNode\n );\n\n const setHideActions = useActionStore((state) => state.setHideActions);\n\n const setInquiryTitleHeader = useInquiryStore(\n (state) => state.setInquiryToolbarTitle\n );\n\n const setNavigationExpanded = useShellStore(\n (state) => state.setNavigationExpanded\n );\n\n const setSubHeaderActionHasChildren = useShellStore(\n (state) => state.setSubHeaderActionHasChildren\n );\n\n const inquiryTitle = useInquiryStore((state) => state.title);\n const workflowMap = useInquiryStore((state) => state.workflowMap);\n const setWorkflowMap = useInquiryStore((state) => state.setWorkflowMap);\n const workflowStarting = useInquiryStore((state) => state.workflowStarting);\n const setLocationState = useSetLocationState();\n\n const [{ data: explorePageData, loading: explorePageLoading }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${tree?.explorePageId}`,\n {},\n !!!tree?.explorePageId,\n false\n );\n\n const orderBySequence = (list) => {\n return orderBy(list, ['sequenceNo'], ['asc']);\n };\n\n const selectedTree = useMemo(\n () => menuList[selectedMenuIndex] ?? null,\n [menuList, selectedMenuIndex]\n );\n\n const inquiryWorkflow = useMemo(() => {\n if (workflowMap) {\n return workflowMap[containerId || 0];\n }\n }, [workflowMap, containerId]);\n\n const nodeHeaderPageIdToLoad = useMemo(() => {\n const nodeHeaderPages = selectedNode?.properties?.nodeHeaderPages;\n if (!nodeHeaderPages) {\n return null;\n }\n const orderedNodeHeaderPages = orderBySequence(nodeHeaderPages);\n let nodeHeaderPageId = null;\n for (let i = 0; i < orderedNodeHeaderPages.length; i++) {\n const nodeHeaderPage = orderedNodeHeaderPages[i];\n if (nodeHeaderPage?.propertyMapping && nodeHeaderPage?.jsonLogic) {\n const rule = mapRule(\n nodeHeaderPage?.propertyMapping,\n nodeHeaderPage?.jsonLogic\n );\n\n if (evaluateRule(rule, selectedNode.nodeObj, null, false)) {\n nodeHeaderPageId = nodeHeaderPage.page?.pageId;\n break;\n } else {\n continue;\n }\n } else {\n nodeHeaderPageId = nodeHeaderPage.page?.pageId;\n break;\n }\n }\n return nodeHeaderPageId;\n }, [selectedNode]);\n\n const pageHeaderPageIdToLoad = useMemo(() => {\n if (!selectedPageId) {\n return null;\n }\n const matchingTab = selectedNode?.properties?.tabs?.find(\n (tab) => tab.page?.pageId === selectedPageId\n );\n if (!matchingTab) {\n return null;\n }\n const pageHeaderPages = matchingTab?.pageHeaderPages;\n if (!pageHeaderPages) {\n return null;\n }\n const orderedPageHeaderPages = orderBySequence(pageHeaderPages);\n let pageHeaderPageId = null;\n for (let i = 0; i < orderedPageHeaderPages.length; i++) {\n const pageHeaderPage = orderedPageHeaderPages[i];\n if (pageHeaderPage?.propertyMapping && pageHeaderPage?.jsonLogic) {\n const rule = mapRule(\n pageHeaderPage?.propertyMapping,\n pageHeaderPage?.jsonLogic\n );\n\n if (evaluateRule(rule, selectedNode.nodeObj, null, false)) {\n pageHeaderPageId = pageHeaderPage.page?.pageId;\n break;\n } else {\n continue;\n }\n } else {\n pageHeaderPageId = pageHeaderPage.page?.pageId;\n break;\n }\n }\n return pageHeaderPageId;\n }, [selectedNode, selectedPageId]);\n\n const [{ data: nodeHeaderPageData, loading: nodeHeaderPageLoading }] =\n useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${nodeHeaderPageIdToLoad}`,\n {},\n !!!nodeHeaderPageIdToLoad,\n false\n );\n\n const [{ data: pageHeaderPageData, loading: pageHeaderPageLoading }] =\n useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${pageHeaderPageIdToLoad}`,\n {},\n !!!pageHeaderPageIdToLoad,\n false\n );\n\n /* Workflow Api calls */\n const [\n {\n data: workflowPlay,\n loading: workflowPlayLoading,\n error: workflowPlayError\n },\n reloadWorkflow\n ] = useAxiosGet(\n ConfigService.builderV1ApiUrl,\n `workflow/play/${inquiryWorkflow?.currentWorkflowPlayId}`,\n {},\n !!!inquiryWorkflow?.currentWorkflowPlayId,\n false\n );\n\n const [{ data: users }] = useAxiosGet(\n ConfigService.securityV1ApiUrl,\n `users?tenantId=${user?.currentTenantId || ''}`,\n {},\n !!!inquiryWorkflow?.inWorkflowMode && !!!user?.currentTenantId\n );\n\n const [{ data: groups }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `groups?tenantId=${user?.currentTenantId || ''}&productId=${\n ConfigService.config.UNITY_PRODUCT_ID\n }`,\n {},\n !!!inquiryWorkflow?.inWorkflowMode && !!!user?.currentTenantId\n );\n\n const handleReloadWorkflow = useCallback(async () => {\n setReloadWorkflowFromPage(true);\n if (inquiryWorkflow?.currentWorkflowPlayId) {\n await reloadWorkflow();\n }\n setReloadWorkflowFromPage(false);\n }, [reloadWorkflow, inquiryWorkflow]);\n\n const handleSelectedWorkflowNode = useCallback(\n async (node, menuIndex) => {\n if (node.isSelectable) {\n setSelectedWorkflowNode(node);\n await handleReloadWorkflow();\n }\n },\n [handleReloadWorkflow]\n );\n\n const searchItems = useMemo(() => {\n if (!tree) return [];\n\n const result = tree.treeStructure.reduce((items, node) => {\n let item = null;\n const matchingCatalogObject = catalogObjects?.find(\n (co) => co.catalogObjectName === node.properties.catalogReturnObject\n );\n const entityAttributes = matchingCatalogObject?.properties || null;\n const searchFilterElements = node.properties?.searchFilterElements;\n if (searchFilterElements) {\n searchFilterElements.forEach(\n (element) => (element.searchValue = searchValue)\n );\n }\n if (!node.parentId) {\n item = {\n apiMethodInstance: tree.apiMethodInstance,\n apiMethodId: tree.apiMethodInstance.apiMethodId,\n columns: entityAttributes || node.properties.searchTableColumns,\n searchFilterElements: searchFilterElements,\n id: `${uuid()}-${searchValue}`,\n catalogReturnObject: node.properties.catalogReturnObject,\n treeStructure: tree.treeStructure,\n associatedInquiryTree: null\n };\n } else {\n const associatedInquiryTree = node.properties?.associatedInquiryTree;\n if (associatedInquiryTree && node.properties?.isPrimarySearch) {\n item = {\n apiMethodInstance: associatedInquiryTree.apiMethodInstance,\n apiMethodId: associatedInquiryTree.apiMethodInstance?.apiMethodId,\n columns: entityAttributes || node.properties.searchTableColumns,\n searchFilterElements: searchFilterElements,\n id: `${uuid()}-${searchValue}`,\n catalogReturnObject: node.properties.catalogReturnObject,\n treeStructure: associatedInquiryTree.treeStructure,\n associatedInquiryTree: associatedInquiryTree\n };\n }\n }\n if (item) {\n items.push(item);\n }\n return items;\n }, []);\n return result;\n }, [tree, searchValue, catalogObjects]);\n\n const entitySearchItems = useMemo(() => {\n if (!searchItems) {\n return [];\n }\n if (!entityValue?.value) {\n return searchItems;\n } else {\n return searchItems.filter(\n (item) => item.catalogReturnObject === entityValue.value\n );\n }\n }, [searchItems, entityValue]);\n\n const getLoadedNodeObject = useCallback(\n (\n apiMethodId,\n queryPayload,\n nodeLabel,\n catalogReturnObject,\n treeStructureId\n ) => {\n const loadedNode = {\n productId: productId,\n inquiryTreeId: treeId,\n userId: user.id,\n apiMethodId: apiMethodId,\n nodeDetails: {},\n queryPayload: {}\n };\n loadedNode.nodeDetails = {\n nodeLabel: nodeLabel,\n catalogReturnObject: catalogReturnObject,\n treeStructureId: treeStructureId\n };\n loadedNode.queryPayload = queryPayload;\n return loadedNode;\n },\n [treeId, user, productId]\n );\n\n const setAppNavigationExpanded = useCallback(\n (value) => {\n if (autoCollapseNav) {\n setNavigationExpanded(value);\n }\n },\n [autoCollapseNav, setNavigationExpanded]\n );\n\n const loadNodes = useCallback(\n (searchRows) => {\n if (searchRows && Object.keys(searchRows).length) {\n setSidebarTabValue(0);\n setNodeLoaded(true);\n setInSearch(false);\n setMenuLoading(true);\n const catalogObjectKeys = Object.keys(searchRows);\n const promises = [];\n const searchObjList = [];\n const loadedNodesList = [];\n const nodesRequestedArr = [];\n catalogObjectKeys.forEach((key) => {\n const searchObj = searchRows[key];\n const currentSearchTree = searchObj?.treeStructure.find(\n (tree) => tree?.properties?.catalogReturnObject === key\n );\n\n const lazyLoad = !!currentSearchTree?.properties?.lazyLoad;\n\n const rows = searchObj.rows;\n const searchIdentifier = searchObj.searchIdentifier;\n const apiMethodId = searchObj.apiMethodId;\n const associatedInquiryTree = searchObj?.associatedInquiryTree;\n\n rows.forEach((row) => {\n const filterElements = [];\n const searchIdentifiers = searchIdentifier.split(',');\n searchIdentifiers.forEach((si) => {\n const formattedPropertyName =\n si.charAt(0).toUpperCase() + si.slice(1);\n filterElements.push({\n searchField: formattedPropertyName,\n searchValue: row[si] ?? '',\n searchOperator: '='\n });\n });\n const searchObject = getSearchObject(\n filterElements,\n 1,\n 50,\n !lazyLoad\n );\n const data = { data: searchObject };\n promises.push(executeQueryAdHoc(data, apiMethodId));\n nodesRequestedArr.push(nodesRequestedArr.length + 1);\n searchObjList.push({\n searchObject,\n apiMethodId,\n treeStructure: searchObj.treeStructure,\n catalogReturnObject: key,\n associatedInquiryTree,\n wasLazyLoaded: lazyLoad,\n menuTree: currentSearchTree\n });\n });\n });\n setNodesRequested(nodesRequestedArr);\n Promise.all(promises).then((responses) => {\n const updatedMenuList = menuList.slice();\n responses.forEach((response, index) => {\n if (response.status === 200) {\n if (response?.data?.pageList?.length) {\n const treeStructure = makeTreeStructure(\n searchObjList[index].treeStructure,\n 'id',\n 'parentId'\n );\n const displayTree = formatTreeMenuItem(\n response.data.pageList[0],\n treeStructure,\n catalogObjects,\n promotedEntities,\n searchObjList[index].associatedInquiryTree,\n searchObjList[index].wasLazyLoaded\n );\n if (\n displayTree &&\n !Array.isArray(displayTree) &&\n Object.keys(displayTree).length\n ) {\n updatedMenuList.push(displayTree);\n loadedNodesList.push(\n getLoadedNodeObject(\n searchObjList[index].apiMethodId,\n searchObjList[index].searchObject,\n displayTree?.properties?.nodeLabel,\n searchObjList[index].catalogReturnObject,\n treeStructure.id\n )\n );\n if (index === 0) {\n displayTree.properties.searchValue = getSearchValueString(\n response.data.pageList[0],\n displayTree?.properties?.searchIdentifier\n );\n if (selectedNode) {\n const updatedNodeHistory = nodeHistory.map(\n (node) => node\n );\n updatedNodeHistory.push(selectedNode);\n setNodeHistory(updatedNodeHistory);\n }\n setActionPanels(\n displayTree?.properties.panels,\n containerId\n );\n setSelectedNode(displayTree);\n }\n }\n }\n }\n });\n\n if (menuList.length) {\n setSelectedMenuIndex(menuList.length);\n } else {\n setSelectedMenuIndex(0);\n }\n executeAddRecentlyLoadedNodes({ data: loadedNodesList });\n\n setAppNavigationExpanded(false);\n setMenuList(updatedMenuList);\n setSelectedSearchRows(null);\n setMenuLoading(false);\n setNodesRequested([]);\n setSearchValue('');\n setClearSearchStr(true);\n });\n }\n },\n [\n menuList,\n executeQueryAdHoc,\n catalogObjects,\n selectedNode,\n nodeHistory,\n getLoadedNodeObject,\n executeAddRecentlyLoadedNodes,\n promotedEntities,\n setActionPanels,\n setAppNavigationExpanded,\n containerId\n ]\n );\n\n const handleCloseWorkflow = useCallback(() => {\n setWorkflowMap({\n [containerId || 0]: {\n inWorkflowMode: false,\n currentWorkflowPlayId: ''\n }\n });\n setHideActions(false);\n setSelectedWorkflowNode(null);\n setWorkflowMenuItemsList([]);\n setInquiryWorkflowTabValue(1);\n setGetWorkflowPlayErrorCount(0);\n setGetWorkflowInitializedCount(0);\n setWorkflowInitialized(false);\n setWorkflow(null);\n }, [setWorkflowMap, containerId, setHideActions]);\n\n // menus prop will only be passed from actions engine\n const handleRemoveMenuItem = useCallback(\n (menus) => {\n const updatedMenuList = menus ?? menuList.slice();\n updatedMenuList.splice(selectedMenuIndex, 1);\n setMenuList(updatedMenuList);\n setDisableMoveToTop(true);\n if (updatedMenuList?.length) {\n const newSelectedNode = updatedMenuList[0];\n setActionPanels(newSelectedNode?.properties.panels, containerId);\n setSelectedNode(newSelectedNode);\n setSelectedMenuIndex(0);\n } else {\n setActionPanels([], containerId);\n setSelectedNode(null);\n setSelectedMenuIndex(null);\n setNodeLoaded(false);\n closeAllSplitScreens();\n handleCloseWorkflow();\n }\n },\n [\n menuList,\n selectedMenuIndex,\n setActionPanels,\n closeAllSplitScreens,\n containerId,\n handleCloseWorkflow\n ]\n );\n\n const handleRecentlyLoadedNodeClick = useCallback(\n async (loadedNode, additionalAction = () => {}) => {\n setNodeLoaded(true);\n setMenuLoading(true);\n setSidebarTabValue(0);\n setNodesRequested([1]);\n const data = { data: loadedNode?.queryPayload };\n const currentTreeStructureArr = tree.treeStructure.filter(\n (node) =>\n loadedNode?.nodeDetails?.catalogReturnObject ===\n node.properties.catalogReturnObject\n );\n const currentTree =\n currentTreeStructureArr.find((t) => {\n if (t?.properties?.associatedInquiryTree?.treeStructure) {\n const foundTreeStructure =\n t?.properties?.associatedInquiryTree?.treeStructure.find(\n (n) => n.id === loadedNode?.nodeDetails?.treeStructureId\n );\n return foundTreeStructure;\n } else {\n return false;\n }\n }) || currentTreeStructureArr[0];\n // Update request data to be eager/lazy load based on current tree config\n if (currentTree) {\n if (currentTree.properties?.associatedInquiryTree) {\n const associatedTreeStructure =\n currentTree.properties.associatedInquiryTree?.treeStructure;\n const associatedTree = associatedTreeStructure.find(\n (node) => node.id === loadedNode?.nodeDetails?.treeStructureId\n );\n data.data.eagerLoad = !associatedTree?.properties?.lazyLoad;\n } else {\n data.data.eagerLoad = !currentTree?.properties?.lazyLoad;\n }\n }\n const apiMethodId = loadedNode?.apiMethodId;\n const response = await executeQueryAdHoc(data, apiMethodId).catch((e) => {\n console.error(e);\n });\n if (\n response?.status === 200 &&\n loadedNode?.nodeDetails?.catalogReturnObject\n ) {\n if (response?.data?.pageList?.length) {\n const matchingNode = tree?.treeStructure?.find(\n (node) =>\n node.properties.catalogReturnObject ===\n loadedNode?.nodeDetails?.catalogReturnObject\n );\n let nodeTreeStructure = tree?.treeStructure;\n if (matchingNode?.properties?.associatedInquiryTree) {\n nodeTreeStructure =\n matchingNode?.properties?.associatedInquiryTree.treeStructure;\n }\n const treeStructure = makeTreeStructure(\n nodeTreeStructure,\n 'id',\n 'parentId'\n );\n const displayTree = formatTreeMenuItem(\n response.data.pageList[0],\n treeStructure,\n catalogObjects,\n promotedEntities,\n matchingNode?.properties?.associatedInquiryTree,\n !data.data.eagerLoad\n );\n if (\n displayTree &&\n !Array.isArray(displayTree) &&\n Object.keys(displayTree).length\n ) {\n displayTree.properties.searchValue = getSearchValueString(\n response.data.pageList[0],\n displayTree?.properties?.searchIdentifier\n );\n\n if (selectedNode) {\n const updatedNodeHistory = nodeHistory.map((node) => node);\n updatedNodeHistory.push(selectedNode);\n setNodeHistory(updatedNodeHistory);\n }\n setActionPanels(displayTree?.properties.panels, containerId);\n setSelectedNode(displayTree);\n setAppNavigationExpanded(false);\n setMenuList([displayTree]);\n }\n setSelectedMenuIndex(0);\n setMenuLoading(false);\n setNodesRequested([]);\n }\n } else {\n // could not properly load the entity\n setMenuLoading(false);\n enqueueSnackbar(t(`Unable to load entity`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }\n additionalAction();\n },\n [\n tree,\n executeQueryAdHoc,\n catalogObjects,\n promotedEntities,\n selectedNode,\n setActionPanels,\n nodeHistory,\n enqueueSnackbar,\n t,\n setAppNavigationExpanded,\n containerId\n ]\n );\n\n const handleLoadNodes = useCallback(() => {\n loadNodes(selectedSearchRows);\n }, [selectedSearchRows, loadNodes]);\n\n const handleSingleNodeLoad = useCallback(\n (searchRow) => {\n loadNodes(searchRow);\n },\n [loadNodes]\n );\n\n const handleRowDoubleClick = useCallback(\n (rowData, catalogReturnObject) => {\n const node = {};\n const searchItem = searchItems.find(\n (item) => item.catalogReturnObject === catalogReturnObject\n );\n const identifiers =\n getSearchIdentifiers(catalogObjects, searchItem.catalogReturnObject) ||\n [];\n\n node[searchItem.catalogReturnObject] = {\n rows: [rowData],\n apiMethodId: searchItem.apiMethodId,\n searchIdentifier: identifiers.toString(),\n treeStructure: searchItem.treeStructure\n };\n loadNodes(node);\n },\n [loadNodes, searchItems, catalogObjects]\n );\n\n const clearNodes = useCallback(() => {\n setNodeLoaded(false);\n setMenuList([]);\n setActionPanels([], containerId);\n setSelectedNode(null);\n setSelectedMenuIndex(null);\n setNodeHistory([]);\n setTabValue(0);\n setSelectedPageId(null);\n setPageId(null);\n setHeaderTitle('');\n setNodesRequested([]);\n closeAllSplitScreens();\n handleCloseWorkflow();\n }, [\n setActionPanels,\n setPageId,\n closeAllSplitScreens,\n containerId,\n handleCloseWorkflow\n ]);\n\n const handlePrimaryAction = useCallback(() => {\n handleLoadNodes();\n }, [handleLoadNodes]);\n\n const handleSearch = useCallback((event) => {\n if (event.key === 'Enter') {\n setSearchValue(event.target.value);\n setIsAdvancedSearch(false);\n setInSearch(true);\n }\n }, []);\n\n const clearSearch = useCallback(() => {\n setInSearch(false);\n if (menuList.length > 0) {\n setShowToggle2(true);\n }\n setSearchValue('');\n setClearSearchStr(true);\n setSelectedSearchRows(null);\n }, [menuList]);\n\n const handleSelectedSearchRows = useCallback(\n (\n objectName,\n rows,\n searchIdentifier,\n apiMethodId,\n treeStructure,\n associatedInquiryTree\n ) => {\n let searchRows = cloneDeep(selectedSearchRows);\n if (!searchRows) {\n searchRows = {};\n }\n searchRows[objectName] = {\n rows,\n searchIdentifier,\n apiMethodId,\n treeStructure,\n associatedInquiryTree\n };\n setSelectedSearchRows(searchRows);\n },\n [selectedSearchRows]\n );\n\n const handleSelectedNode = useCallback(\n (newSelectedNode, menuIndex) => {\n setSelectedMenuIndex(menuIndex);\n setInSearch(false);\n if (newSelectedNode.properties.associatedTreeId) {\n setDisableMoveToTop(false);\n } else {\n setDisableMoveToTop(true);\n }\n if (selectedNode) {\n const updatedNodeHistory = nodeHistory?.map((node) => node) || [];\n updatedNodeHistory.push(selectedNode);\n setNodeHistory(updatedNodeHistory);\n }\n setActionPanels(newSelectedNode?.properties.panels, containerId);\n setSelectedNode(newSelectedNode);\n },\n [selectedNode, setActionPanels, nodeHistory, containerId]\n );\n\n const constructMenuItemForDroppedNode = useCallback(\n (\n loadPageNodeActions,\n targetNodeObj,\n sourceNodeObj,\n targetNodeEntityName,\n sourceNodeEntityName\n ) => {\n const menuItem = {\n children: [],\n id: uuid(),\n isExpanded: true,\n parentId: null,\n properties: {\n nodeLabel: '',\n tabs: [],\n searchValue: '',\n nodeSubLabel: null,\n defaultPageHeaderExpanded: 'hidden',\n defaultNodeHeaderExpanded: 'hidden',\n defaultIcon: {\n color: null,\n name: 'BranchCompareIcon',\n type: null\n },\n nodeActions: loadPageNodeActions,\n isDroppedLoadedPageNode: true,\n existingPageLoadEntities: [sourceNodeEntityName]\n },\n inquiryParams: [targetNodeObj, sourceNodeObj],\n // TODO: allow for use of targetNodeObj and sourceNodeObj for when config in Inquiry is added\n nodeObj: targetNodeObj\n };\n if (loadPageNodeActions?.length) {\n loadPageNodeActions.forEach((nodeAction) => {\n if (nodeAction?.dragEntityName === sourceNodeEntityName) {\n const tabObj = {\n id: uuid(),\n page: nodeAction.page,\n inquiryTreeRuleId: nodeAction.inquiryTreeRuleId || '',\n jsonLogic: nodeAction.jsonLogic || null,\n propertyIsCustomMapping: nodeAction.propertyIsCustomMapping || '',\n propertyMapping: nodeAction.propertyMapping || '',\n sequence: nodeAction.sequence || '1',\n requiredFieldMapping:\n nodeAction.parameters?.requiredFieldMapping || null\n };\n menuItem.properties.tabs.push(tabObj);\n }\n });\n }\n let nodeLabel = 'DnD Nodes';\n if (targetNodeEntityName === sourceNodeEntityName) {\n nodeLabel = pluralize(getSanitizedName(targetNodeEntityName));\n } else {\n nodeLabel = `${getSanitizedName(\n targetNodeEntityName\n )}/${getSanitizedName(sourceNodeEntityName)}`;\n }\n menuItem.properties.nodeLabel = nodeLabel;\n return menuItem;\n },\n []\n );\n\n const loadPageForDroppedNode = useCallback(\n (\n sourceNode,\n targetNode,\n loadPageNodeActions,\n targetNodeCatalogReturnObject,\n sourceNodeCatalogReturnObject\n ) => {\n // If the first drop has not occurred yet for a loaded page\n if (!targetNode?.properties?.isDroppedLoadedPageNode) {\n if (loadPageNodeActions.length) {\n setMoveToTopLoading(true);\n const orderedLoadPageNodeActions =\n orderBySequence(loadPageNodeActions);\n const pageMenuItem = constructMenuItemForDroppedNode(\n orderedLoadPageNodeActions,\n targetNode?.nodeObj,\n sourceNode?.nodeObj,\n targetNodeCatalogReturnObject,\n sourceNodeCatalogReturnObject\n );\n const updatedMenuList = cloneDeep(menuList);\n updatedMenuList.unshift(pageMenuItem);\n setActionPanels(updatedMenuList[0]?.properties.panels, containerId);\n setSelectedNode(updatedMenuList[0]);\n setMenuList(updatedMenuList);\n setMoveToTopLoading(false);\n }\n } else if (targetNode?.properties?.isDroppedLoadedPageNode) {\n setMoveToTopLoading(true);\n const updatedMenuList = cloneDeep(menuList);\n const targetMenuItem = updatedMenuList.find(\n (item) => item.id === targetNode.id\n );\n if (targetMenuItem) {\n const nodeLabel = targetMenuItem.properties?.nodeLabel;\n if (!nodeLabel.includes(sourceNodeCatalogReturnObject)) {\n targetMenuItem.properties.nodeLabel = `${nodeLabel}/${getSanitizedName(\n sourceNodeCatalogReturnObject\n )}`;\n }\n targetMenuItem.inquiryParams.push(sourceNode?.nodeObj);\n if (\n !targetNode?.properties?.existingPageLoadEntities?.includes(\n sourceNodeCatalogReturnObject\n ) &&\n loadPageNodeActions?.length\n ) {\n targetMenuItem.properties.existingPageLoadEntities.push(\n sourceNodeCatalogReturnObject\n );\n loadPageNodeActions.forEach((nodeAction) => {\n if (\n nodeAction?.dragEntityName === sourceNodeCatalogReturnObject\n ) {\n const tabObj = {\n id: uuid(),\n page: nodeAction.page,\n inquiryTreeRuleId: nodeAction.inquiryTreeRuleId || '',\n jsonLogic: nodeAction.jsonLogic || null,\n propertyIsCustomMapping:\n nodeAction.propertyIsCustomMapping || '',\n propertyMapping: nodeAction.propertyMapping || '',\n sequence: nodeAction.sequence || '1',\n requiredFieldMapping:\n nodeAction.parameters?.requiredFieldMapping || null\n };\n targetMenuItem.properties.tabs.push(tabObj);\n }\n });\n }\n setActionPanels(targetMenuItem?.properties.panels, containerId);\n setSelectedNode(targetMenuItem);\n }\n setMenuList(updatedMenuList);\n setMoveToTopLoading(false);\n }\n },\n [constructMenuItemForDroppedNode, menuList, setActionPanels, containerId]\n );\n\n const handleDroppedNodeForExecuteApi = useCallback(\n async (\n sourceNode,\n targetNode,\n executeApiNodeActions,\n sourceNodeType,\n targetNodeType,\n sourceNodeMenuIndex,\n targetNodeMenuIndex\n ) => {\n setDragAndDropLoading(true);\n const apiMethodIds = executeApiNodeActions.map(\n (eana) => eana.actionValue\n );\n const promotedMethods = await apiMutate(\n ConfigService.integrationV2ApiUrl,\n `apiMethod/listByApiCatalogIdAndIds/${apiCatalogId}`,\n { method: 'post' },\n { data: apiMethodIds }\n );\n setDragAndDropLoading(false);\n const pmte = promotedMethods?.data ?? [];\n setExecuteApiData({\n source: sourceNode?.nodeObj,\n target: targetNode?.nodeObj,\n sourceNodeType,\n targetNodeType,\n sourceNodeMenuIndex,\n targetNodeMenuIndex\n });\n setPromotedMethodsToExecute(pmte);\n setExecuteApiDialogOpen(true);\n },\n [apiCatalogId]\n );\n\n const handleCloseExecuteApiDialog = useCallback(() => {\n setExecuteApiData(null);\n setPromotedMethodsToExecute([]);\n setExecuteApiDialogOpen(false);\n }, []);\n\n const handleMenuTreesRefresh = useCallback(\n async (menuIndexes) => {\n if (!menuList.length) {\n return;\n }\n const updatedMenuList = menuList.slice();\n const promises = [];\n let apiMethodId = tree.apiMethodInstance.apiMethodId;\n let workingTree = tree;\n let assocInquiryTreeMap = {};\n let searchObjList = [];\n if (!menuIndexes?.length) {\n menuIndexes = [selectedMenuIndex];\n }\n menuIndexes.forEach((index) => {\n const menuTree = menuList[index];\n if (menuTree) {\n const { properties, associatedInquiryTree } = menuTree;\n const { filterElements } = properties;\n\n if (associatedInquiryTree) {\n apiMethodId = associatedInquiryTree.apiMethodInstance.apiMethodId;\n workingTree = associatedInquiryTree;\n assocInquiryTreeMap[index] = associatedInquiryTree;\n }\n const lazyLoad = !!workingTree?.properties?.lazyLoad;\n\n const searchObject = getSearchObject(\n filterElements,\n 1,\n 50,\n !lazyLoad\n );\n const data = { data: searchObject };\n promises.push(executeQueryAdHoc(data, apiMethodId));\n searchObjList.push({\n wasLazyLoaded: lazyLoad\n });\n }\n });\n\n await Promise.all(promises.map((p) => p.catch((e) => e))).then(\n (responses) => {\n responses.forEach((response, index) => {\n if (response.status === 200) {\n if (response?.data?.pageList?.length) {\n const treeStructure = makeTreeStructure(\n workingTree.treeStructure,\n 'id',\n 'parentId'\n );\n const displayTree = formatTreeMenuItem(\n response.data.pageList[0],\n treeStructure,\n catalogObjects,\n promotedEntities,\n assocInquiryTreeMap[index],\n searchObjList[index].wasLazyLoaded\n );\n\n updatedMenuList[menuIndexes[index]] = displayTree;\n }\n }\n });\n }\n );\n const currentSelectedTree = updatedMenuList[selectedMenuIndex];\n const selectedNodeSearchIdentifier =\n selectedNode.properties.searchIdentifier || [];\n setMenuList(updatedMenuList);\n if (selectedNodeSearchIdentifier) {\n const matchingNode = findNodeByBusinessObjectKey(\n currentSelectedTree,\n selectedNode.nodeObj?.businessObjectKey\n )?.node;\n setActionPanels(matchingNode?.properties.panels, containerId);\n setSelectedNode(matchingNode);\n } else {\n setSelectedNode(selectedNode);\n }\n },\n [\n menuList,\n tree,\n selectedMenuIndex,\n catalogObjects,\n executeQueryAdHoc,\n selectedNode,\n promotedEntities,\n setActionPanels,\n containerId\n ]\n );\n\n const expandedStateRef = useRef({});\n\n const handleExpandedChange = useCallback((menuIndex, stateMap) => {\n expandedStateRef.current[menuIndex] = stateMap;\n }, []);\n\n const restoreExpandedState = useCallback((node, stateMap) => {\n if (!node) return;\n const getStableKey = (n) =>\n n.isGroupNode ? n.properties?.label : n.nodeObj?.businessObjectKey;\n const walk = (n) => {\n const key = getStableKey(n);\n if (key && stateMap.has(key)) {\n n.isExpanded = stateMap.get(key);\n }\n n.children?.forEach(walk);\n };\n if (Array.isArray(node)) {\n node.forEach(walk);\n } else {\n walk(node);\n }\n }, []);\n\n const treeNodeIds = useMemo(() => {\n if (!selectedTree) return null;\n\n const idMap = {};\n const stack = [selectedTree];\n\n while (stack.length) {\n const node = stack.pop();\n idMap[node.id] = node;\n\n node.children?.forEach((child) => stack.push(child));\n }\n\n return idMap;\n }, [selectedTree]);\n\n const getCriticalPath = useCallback(\n (selectedTreeNode) => {\n if (!selectedTreeNode) return [];\n\n const path = [];\n let node = selectedTreeNode;\n const treeNodes = treeNodeIds;\n path.push(node);\n\n while (node.parentId) {\n node = treeNodes[node.parentId];\n path.push(node);\n }\n\n return path;\n },\n [treeNodeIds]\n );\n\n const hasLazyLevelInStructure = useMemo(() => {\n return (\n tree?.treeStructure?.some((level) => level.properties?.lazyLoad) ?? false\n );\n }, [tree?.treeStructure]);\n\n // For eager loaded trees only (no mixes with lazy loaded nodes)\n const fetchAndBuildDisplayTree = useCallback(async () => {\n if (!tree || !selectedTree) return null;\n\n const lazyLoad = tree.properties?.lazyLoad ?? false;\n const filterElements = selectedTree.properties?.filterElements;\n const associatedInquiryTree = selectedTree.associatedInquiryTree;\n const workingTree = selectedTree.associatedInquiryTree ?? tree;\n\n if (!workingTree.apiMethodInstance) return null;\n const apiMethodId = workingTree.apiMethodInstance.apiMethodId;\n\n // The folowing is a problem for child nodes with over 50 entries\n // given you want to eager load them all or guarantee a specific node\n const page = 1;\n const pageSize = 50; // Arbitrary\n const searchObject = getSearchObject(\n filterElements,\n page,\n pageSize,\n !lazyLoad\n );\n const data = { data: searchObject };\n\n const isPreloadedGroupQuery =\n tree?.isPreloaded &&\n tree?.apiMethodInstance?.apiMethodInstanceId &&\n selectedTree.isGroupNode;\n\n const response = isPreloadedGroupQuery\n ? await executeQueryInstance(\n { data: {} },\n tree.apiMethodInstance.apiMethodInstanceId\n )\n : await executeQueryAdHoc(data, apiMethodId);\n\n if (response?.status !== 200 || !response?.data?.pageList?.length) {\n return null;\n }\n\n const treeStructure = makeTreeStructure(\n workingTree.treeStructure,\n 'id',\n 'parentId'\n );\n\n let responseObj = response.data.pageList[0];\n\n if (selectedTree.isGroupNode) {\n responseObj = response.data.pageList;\n }\n\n return formatTreeMenuItem(\n responseObj,\n treeStructure,\n catalogObjects,\n promotedEntities,\n associatedInquiryTree,\n lazyLoad\n );\n }, [catalogObjects, executeQueryAdHoc, promotedEntities, selectedTree, tree]);\n\n const fetchAndMergeLazyNode = useCallback(\n async (currentNode, workingTree, context) => {\n let {\n currentCriticalPathNode,\n criticalPathBroken,\n survivingAncestor,\n criticalPathList\n } = context;\n\n const keysByType = collectChildVaryingKeysByType(\n currentNode,\n catalogObjects\n );\n const inclusionFilter = keysByTypeToFilterArray(keysByType);\n\n const [res, totalsByType] = await Promise.all([\n fetchLazyChildren({\n node: currentNode,\n treeStructureArr: workingTree?.treeStructure || [],\n executeQueryAdHoc,\n catalogObjects,\n promotedEntities,\n pageNumber: 1,\n inclusionFilter\n }),\n fetchCountsByType(currentNode, executeQueryAdHoc)\n ]);\n\n const currentBok = currentNode.nodeObj?.businessObjectKey;\n const criticalPathNodeBok =\n currentCriticalPathNode?.nodeObj?.businessObjectKey;\n const isCriticalPathNode = currentBok === criticalPathNodeBok;\n\n if (\n !criticalPathBroken &&\n isCriticalPathNode &&\n criticalPathList.length\n ) {\n currentCriticalPathNode = criticalPathList.pop();\n\n const nextAncestorBok =\n currentCriticalPathNode?.nodeObj?.businessObjectKey;\n const present = res.children.some(\n (c) => c.nodeObj?.businessObjectKey === nextAncestorBok\n );\n if (nextAncestorBok && !present) {\n criticalPathBroken = true;\n survivingAncestor = currentNode;\n }\n }\n\n const existingChildrenMap = new Map();\n (currentNode.children || []).forEach((oldChild) => {\n if (oldChild?.isGroupNode) return;\n const type = oldChild.properties?.catalogReturnObject;\n const bok = oldChild.nodeObj?.businessObjectKey;\n if (type && bok) {\n existingChildrenMap.set(`${type}_${bok}`, oldChild);\n }\n });\n\n const mergedChildren = [];\n res.children.forEach((freshChild) => {\n const type = freshChild.properties?.catalogReturnObject;\n const bok = freshChild.nodeObj?.businessObjectKey;\n if (!type || !bok) return;\n\n const existingChild = existingChildrenMap.get(`${type}_${bok}`);\n if (existingChild) {\n existingChild.nodeObj = freshChild.nodeObj;\n existingChild.properties = freshChild.properties;\n mergedChildren.push(existingChild);\n } else {\n mergedChildren.push(freshChild);\n }\n });\n\n const groupNodes = (currentNode.children || []).filter(\n (c) => c?.isGroupNode\n );\n currentNode.children = [...groupNodes, ...mergedChildren];\n\n const localPhysicalCounts = {};\n currentNode.children.forEach((c) => {\n if (c?.isGroupNode) return;\n const type = c.properties?.catalogReturnObject;\n if (type) {\n localPhysicalCounts[type] = (localPhysicalCounts[type] || 0) + 1;\n }\n });\n\n const hasMore = Object.entries(totalsByType).some(\n ([type, total]) => total > (localPhysicalCounts[type] || 0)\n );\n\n const freshSeenByType = collectChildVaryingKeysByType(\n currentNode,\n catalogObjects\n );\n\n currentNode.completedLoadingChildren = true;\n currentNode.hasMoreChildren = hasMore;\n currentNode.seenChildKeysByType = freshSeenByType;\n currentNode.totalsByType = totalsByType;\n currentNode.isExpanded = true;\n\n if (res.errorRetrievingChildren) {\n currentNode.errorRetrievingChildren = true;\n }\n\n return {\n currentCriticalPathNode,\n criticalPathBroken,\n survivingAncestor,\n criticalPathList\n };\n },\n [catalogObjects, executeQueryAdHoc, promotedEntities]\n );\n\n const doesRootExist = useCallback(\n async (displayTree, workingTree, isPreloadedRoot) => {\n const rootEntityType = displayTree?.properties?.catalogReturnObject;\n const rootApiMethodId = workingTree?.apiMethodInstance?.apiMethodId;\n\n if (\n displayTree?.isGroupNode ||\n !rootEntityType ||\n !rootApiMethodId ||\n isPreloadedRoot\n ) {\n return true;\n }\n\n const rootPkFields = getSearchIdentifiers(catalogObjects, rootEntityType);\n const rootPk = rootPkFields?.[0];\n const rootPkValue = rootPk ? displayTree?.nodeObj?.[rootPk] : null;\n\n if (!rootPk || rootPkValue == null) {\n return true;\n }\n\n const pkSearchField = rootPk.charAt(0).toUpperCase() + rootPk.slice(1);\n const rootCheckResponse = await executeQueryAdHoc(\n {\n data: getSearchObject(\n [\n {\n searchField: pkSearchField,\n searchValue: rootPkValue,\n searchOperator: '='\n }\n ],\n 1,\n 1\n )\n },\n rootApiMethodId\n ).catch(() => null);\n\n return !!rootCheckResponse?.data?.pageList?.length;\n },\n [catalogObjects, executeQueryAdHoc]\n );\n\n const buildLazyDisplayTree = useCallback(async () => {\n const expandedKeys =\n expandedStateRef.current[selectedMenuIndex] ?? new Map();\n const displayTree = cloneDeep(selectedTree);\n const workingTree = selectedTree.associatedInquiryTree ?? tree;\n\n const isPreloadedRoot = !!tree?.isPreloaded;\n const rootExists = await doesRootExist(\n displayTree,\n workingTree,\n isPreloadedRoot\n );\n\n if (!rootExists) {\n return { displayTree: null, survivingAncestor: null, rootDeleted: true };\n }\n\n const criticalPathList = getCriticalPath(selectedNode);\n const queue = Array.isArray(displayTree) ? [...displayTree] : [displayTree];\n\n let pathContext = {\n currentCriticalPathNode: criticalPathList.pop(),\n criticalPathBroken: false,\n survivingAncestor: null,\n criticalPathList\n };\n\n while (queue.length) {\n const currentNode = queue.shift();\n if (!currentNode) continue;\n\n const key = getKeyIdentifier(currentNode);\n const wasExpanded = key && expandedKeys.get(key);\n\n if (wasExpanded && currentNode.properties?.lazyLoad) {\n pathContext = await fetchAndMergeLazyNode(\n currentNode,\n workingTree,\n pathContext\n );\n }\n\n currentNode.children?.forEach((child) => queue.push(child));\n }\n\n return {\n displayTree,\n survivingAncestor: pathContext.survivingAncestor,\n rootDeleted: false,\n criticalPathNode: pathContext.criticalPathNode\n };\n }, [\n doesRootExist,\n fetchAndMergeLazyNode,\n getCriticalPath,\n selectedMenuIndex,\n selectedNode,\n selectedTree,\n tree\n ]);\n\n const handleMenuTreesRefreshFromPage = useCallback(\n async (updateAllPreloadedTreesOrMutationInfo = false) => {\n // To ensure that the passed in variable is a boolean\n const updateAllPreloadedTrees =\n updateAllPreloadedTreesOrMutationInfo === true;\n\n if (!selectedNode || !selectedTree) {\n return;\n }\n\n setRefreshing(true);\n\n const { associatedInquiryTree } = selectedTree;\n\n let selectedNodeIndex = -1;\n const workingTree = associatedInquiryTree ?? tree;\n\n // selectedTree is always the top node of the tree that the current selectedNode is on\n const expandedKeys =\n expandedStateRef.current[selectedMenuIndex] ?? new Map();\n\n if (selectedTree.children.length > 0) {\n selectedNodeIndex = selectedTree.children.indexOf(selectedNode);\n }\n\n let displayTree = null;\n let survivingAncestor = null;\n let rootDeleted = false;\n let criticalPathNode = null;\n\n if (!hasLazyLevelInStructure) {\n displayTree = await fetchAndBuildDisplayTree();\n } else {\n const res = await buildLazyDisplayTree();\n displayTree = res.displayTree;\n survivingAncestor = res.survivingAncestor;\n rootDeleted = res.rootDeleted;\n criticalPathNode = res.criticalPathNode;\n }\n\n // Root entity gone — drop this tree from menuList, clear selection,\n // skip the rest of the refresh flow.\n if (rootDeleted) {\n setMenuList((prevState) => {\n const updated = prevState.slice();\n updated.splice(selectedMenuIndex, 1);\n return updated;\n });\n setSelectedNode(null);\n setActionPanels([], containerId);\n setRefreshing(false);\n return;\n }\n\n restoreExpandedState(displayTree, expandedKeys);\n\n if (selectedTree.isGroupNode && selectedTree.children.length > 0) {\n displayTree.forEach((childNode) => {\n childNode.parentGroupId = selectedTree.id;\n childNode.parentId = selectedTree.id;\n childNode.parentGroupName = selectedTree.properties.label;\n });\n }\n\n const currentSelectedTree = displayTree;\n const selectedNodeSearchIdentifier =\n selectedNode.properties.searchIdentifier || '';\n\n setMenuList((prevState) => {\n const updatedMenuList = prevState.slice();\n if (updateAllPreloadedTrees && workingTree?.isPreloaded) {\n updatedMenuList.forEach((menuItem) => {\n const newGroupId = uuid();\n menuItem.id = newGroupId;\n menuItem.children?.forEach((childNode) => {\n childNode.parentGroupId = newGroupId;\n childNode.parentId = newGroupId;\n });\n });\n }\n if (selectedTree.isGroupNode) {\n if (selectedTree.children.length > 0 && Array.isArray(displayTree)) {\n updatedMenuList[selectedMenuIndex].children = displayTree;\n }\n if (!updateAllPreloadedTrees) {\n const newGroupId = uuid();\n updatedMenuList[selectedMenuIndex].id = newGroupId;\n updatedMenuList[selectedMenuIndex]?.children?.forEach(\n (childNode) => {\n childNode.parentGroupId = newGroupId;\n childNode.parentId = newGroupId;\n }\n );\n }\n } else if (!selectedTree.isGroupNode) {\n updatedMenuList[selectedMenuIndex] = displayTree;\n }\n return updatedMenuList;\n });\n\n // If the current selected node (or an ancestor on its critical path)\n // was deleted, propagate selection up to the surviving ancestor.\n if (survivingAncestor) {\n setSelectedNode(survivingAncestor);\n setActionPanels(survivingAncestor.properties?.panels, containerId);\n } else if (criticalPathNode) {\n setSelectedNode(criticalPathNode);\n } else if (selectedNodeSearchIdentifier) {\n let tree = currentSelectedTree;\n if (selectedTree.isGroupNode && selectedNodeIndex >= 0) {\n tree = currentSelectedTree[selectedNodeIndex];\n }\n const matchingNode = findNodeByBusinessObjectKey(\n tree,\n selectedNode.nodeObj?.businessObjectKey\n )?.node;\n setActionPanels(matchingNode?.properties.panels, containerId);\n setSelectedNode(matchingNode);\n } else if (selectedTree.isGroupNode && selectedNodeIndex >= 0) {\n setSelectedNode(displayTree[selectedNodeIndex]);\n } else {\n setSelectedNode(selectedNode);\n }\n\n setRefreshing(false);\n },\n [\n selectedNode,\n selectedTree,\n tree,\n selectedMenuIndex,\n hasLazyLevelInStructure,\n restoreExpandedState,\n fetchAndBuildDisplayTree,\n buildLazyDisplayTree,\n setActionPanels,\n containerId\n ]\n );\n\n const executeApiForDroppedNode = useCallback(\n async (value) => {\n setExecuteApiProgress(true);\n const { sourceNodeMenuIndex, targetNodeMenuIndex, ...apiData } =\n executeApiData;\n const response = await executeQueryWithParameters(\n { data: { requestBody: { ...apiData } } },\n value?.apiMethod?.apiMethodId\n ).catch((res) => {\n console.error(res);\n });\n if (response?.status === 200) {\n const menuIndexes = [sourceNodeMenuIndex];\n // if the menu indexes for the nodes are the same we only need to refresh 1 tree\n if (sourceNodeMenuIndex !== targetNodeMenuIndex) {\n menuIndexes.push(targetNodeMenuIndex);\n }\n handleMenuTreesRefresh(menuIndexes);\n }\n setExecuteApiProgress(false);\n handleCloseExecuteApiDialog();\n },\n [\n executeQueryWithParameters,\n handleCloseExecuteApiDialog,\n executeApiData,\n handleMenuTreesRefresh\n ]\n );\n\n const handleDroppedNode = useCallback(\n (sourceNode, targetNode, sourceNodeMenuIndex, targetNodeMenuIndex) => {\n const sourceNodeCatalogReturnObject =\n sourceNode?.properties?.catalogReturnObject;\n const targetNodeCatalogReturnObject =\n targetNode?.properties?.catalogReturnObject;\n const targetNodeActions = targetNode?.properties?.nodeActions || [];\n const loadPageNodeActions = targetNodeActions.filter(\n (nodeAction) =>\n nodeAction.triggerType === NodeActionTriggerEnums.On_Node_Drop &&\n nodeAction.actionTypeId === NodeActionEnums.Load_Inquiry_Page\n );\n // TODO: Implement query node actions\n const executeApiNodeActions = targetNodeActions.filter(\n (nodeAction) =>\n nodeAction.triggerType === NodeActionTriggerEnums.On_Node_Drop &&\n nodeAction.actionTypeId === NodeActionEnums.Execute_Api &&\n sourceNodeCatalogReturnObject === nodeAction?.dragEntityName\n );\n // TODO: Implement workflow node actions\n const workflowNodeActions = targetNodeActions.filter(\n (nodeAction) =>\n nodeAction.triggerType === NodeActionTriggerEnums.On_Node_Drop &&\n nodeAction.actionTypeId === NodeActionEnums.Start_Workflow &&\n sourceNodeCatalogReturnObject === nodeAction?.dragEntityName\n );\n if (\n targetNodeActions.some(\n (tna) =>\n tna.dragEntityName === sourceNodeCatalogReturnObject &&\n tna.actionTypeId === NodeActionEnums.Execute_Api\n )\n ) {\n handleDroppedNodeForExecuteApi(\n sourceNode,\n targetNode,\n executeApiNodeActions,\n sourceNodeCatalogReturnObject,\n targetNodeCatalogReturnObject,\n sourceNodeMenuIndex,\n targetNodeMenuIndex\n );\n }\n if (\n targetNodeActions.some(\n (tna) =>\n tna.dragEntityName === sourceNodeCatalogReturnObject &&\n tna.actionTypeId === NodeActionEnums.Load_Inquiry_Page\n )\n ) {\n loadPageForDroppedNode(\n sourceNode,\n targetNode,\n loadPageNodeActions,\n targetNodeCatalogReturnObject,\n sourceNodeCatalogReturnObject\n );\n }\n },\n [loadPageForDroppedNode, handleDroppedNodeForExecuteApi]\n );\n\n const handleMoveToTop = useCallback(async () => {\n if (!selectedNode) {\n return;\n }\n\n const associatedTreeId = selectedNode.properties.associatedTreeId;\n\n if (!associatedTreeId) return;\n setMenuLoading(true);\n setMoveToTopLoading(true);\n let associatedInquiryTree = selectedNode.properties.associatedInquiryTree;\n if (!associatedInquiryTree) {\n const detailedTreeResponse =\n await executeGetDetailedTree(associatedTreeId);\n if (detailedTreeResponse.status === 200) {\n associatedInquiryTree = detailedTreeResponse.data;\n }\n }\n const lazyLoad = !!associatedInquiryTree?.properties?.lazyLoad;\n const filterElements = selectedNode.properties.filterElements;\n const apiMethodId = associatedInquiryTree.apiMethodInstance.apiMethodId;\n\n const searchObject = getSearchObject(filterElements, 1, 50, !lazyLoad);\n const data = { data: searchObject };\n const loadedNodesList = [];\n const response = await executeQueryAdHoc(data, apiMethodId).catch((res) => {\n enqueueSnackbar(t(`Unable to move to top: ${res?.response?.data}`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n if (response?.status === 200) {\n if (response?.data?.pageList?.length) {\n const updatedMenuList = menuList.slice();\n const treeStructure = makeTreeStructure(\n associatedInquiryTree.treeStructure,\n 'id',\n 'parentId'\n );\n const displayTree = formatTreeMenuItem(\n response.data.pageList[0],\n treeStructure,\n catalogObjects,\n promotedEntities,\n associatedInquiryTree,\n lazyLoad\n );\n loadedNodesList.push(\n getLoadedNodeObject(\n apiMethodId,\n searchObject,\n displayTree?.properties?.nodeLabel,\n displayTree?.properties?.catalogReturnObject,\n treeStructure.id\n )\n );\n if (\n displayTree &&\n !Array.isArray(displayTree) &&\n Object.keys(displayTree).length\n ) {\n displayTree.properties.searchValue = getSearchValueString(\n response.data.pageList[0],\n displayTree?.properties?.searchIdentifier\n );\n\n if (selectedNode) {\n const updatedNodeHistory = nodeHistory.map((node) => node);\n updatedNodeHistory.push(selectedNode);\n setNodeHistory(updatedNodeHistory);\n }\n setActionPanels(displayTree?.properties.panels, containerId);\n setSelectedNode(displayTree);\n // Force the tab page to remount so it refetches, since the\n // reloaded root has the same searchValue as the moved node\n setMoveToTopCount((count) => count + 1);\n executeAddRecentlyLoadedNodes({ data: loadedNodesList });\n updatedMenuList[selectedMenuIndex] = displayTree;\n setMenuList(updatedMenuList);\n }\n setDisableMoveToTop(true);\n }\n }\n setMenuLoading(false);\n setMoveToTopLoading(false);\n }, [\n selectedNode,\n executeQueryAdHoc,\n executeGetDetailedTree,\n menuList,\n catalogObjects,\n promotedEntities,\n getLoadedNodeObject,\n setActionPanels,\n executeAddRecentlyLoadedNodes,\n selectedMenuIndex,\n nodeHistory,\n containerId,\n enqueueSnackbar,\n t\n ]);\n\n // Expand All: expands only cached (already-fetched) nodes.\n // Exception: if a root node's children haven't been fetched yet, fetch them (one level only).\n const handleExpandAll = useCallback(async () => {\n const treeStructureArr = tree?.treeStructure || [];\n const currentMenuList = cloneDeep(menuList);\n\n for (const rootTree of currentMenuList) {\n // Fetch root's immediate children if they haven't been loaded yet\n if (\n rootTree.properties?.lazyLoad &&\n !rootTree.completedLoadingChildren &&\n rootTree.lazyLoadChildrenArr?.length\n ) {\n rootTree.children = [];\n const promises = rootTree.lazyLoadChildrenArr.map((searchMethod) =>\n executeQueryAdHoc(\n { data: searchMethod.data },\n searchMethod.apiMethodId\n ).catch(() => null)\n );\n const responses = await Promise.all(promises);\n responses.forEach((response, index) => {\n const searchMethod = rootTree.lazyLoadChildrenArr[index];\n if (response?.status === 200 && response?.data?.pageList?.length) {\n const childTree = treeStructureArr.find(\n (ts) =>\n ts.properties.catalogReturnObject ===\n searchMethod.catalogReturnObject\n );\n if (childTree) {\n response.data.pageList.forEach((item) => {\n const displayTree = formatTreeMenuItem(\n item,\n childTree,\n catalogObjects,\n promotedEntities,\n null,\n true\n );\n displayTree.parentId = rootTree.id;\n rootTree.children.push(displayTree);\n });\n }\n }\n });\n rootTree.completedLoadingChildren = true;\n rootTree.currentChildPage = 1;\n rootTree.hasMoreChildren = responses.some((response, index) => {\n const pageSize = rootTree.lazyLoadChildrenArr[index]?.pageSize || 50;\n return response?.data?.total > pageSize;\n });\n }\n expandAllNodes(rootTree, true);\n }\n\n setMenuList(currentMenuList);\n setExpandAllClicked(!expandAllClicked);\n }, [\n expandAllClicked,\n menuList,\n tree,\n executeQueryAdHoc,\n catalogObjects,\n promotedEntities\n ]);\n\n const handleCollapseAll = useCallback(() => {\n setMenuList((prevState) => {\n const updatedMenuList = cloneDeep(prevState);\n updatedMenuList.forEach((tree) => {\n collapseAllNodes(tree);\n });\n return updatedMenuList;\n });\n }, []);\n\n // @TODO: Add back click handling for move to top\n // const handleBackClick = useCallback(() => {\n // if (!nodeHistory.length) return;\n // const lastIndex = nodeHistory.length - 1;\n // const lastSelectedNode = nodeHistory[lastIndex];\n // setSelectedNode(lastSelectedNode);\n // const updatedNodeHistory = nodeHistory.map(node => node);\n // updatedNodeHistory.pop();\n // setNodeHistory(updatedNodeHistory);\n // }, [nodeHistory]);\n\n const inquiryTabList = useMemo(() => {\n if (!selectedNode || !selectedNode?.properties?.tabs) return [];\n const tabList = [];\n const orderedTabs = orderBySequence(selectedNode.properties.tabs);\n orderedTabs.forEach((tab) => {\n if (tab?.propertyMapping && tab?.jsonLogic) {\n const rule = mapRule(tab?.propertyMapping, tab?.jsonLogic);\n\n if (!evaluateRule(rule, selectedNode.nodeObj, null, false)) {\n return;\n }\n }\n\n let label = '';\n if (tab?.displayName && tab?.displayName.trim()) {\n label = tab?.displayName.trim();\n } else if (tab?.page?.name && tab?.page?.name.trim()) {\n label = tab?.page?.name.trim();\n }\n\n const page = {\n label: label,\n icon: null,\n pageId: tab?.page?.pageId || null,\n trees: tab?.trees || [],\n requiredFieldMapping: tab?.requiredFieldMapping || {},\n queryId: tab?.queryId || '',\n queryParamMapping: tab?.queryParamMapping || null\n };\n tabList.push(page);\n });\n setSelectedPageId(tabList[0]?.pageId);\n return tabList;\n }, [selectedNode]);\n\n const inquiryFluentTabList = useMemo(\n () =>\n inquiryTabList.map((tab, index) => ({\n id: String(index),\n label: tab.label\n })),\n [inquiryTabList]\n );\n\n const inquiryWorkflowFluentTabList = useMemo(\n () => [\n { id: '0', label: t('Inquiry') },\n { id: '1', label: t('Workflow') }\n ],\n [t]\n );\n\n const handlePageChange = useCallback(\n (value) => {\n if (Number.isNaN(value)) return;\n setTabValue(value);\n if (selectedPageId !== inquiryTabList[value]?.pageId) {\n setSelectedPageId(inquiryTabList[value]?.pageId);\n }\n },\n [inquiryTabList, selectedPageId]\n );\n\n const handleFluentInquiryTabChange = useCallback(\n (e) => {\n handlePageChange(Number(e.detail));\n },\n [handlePageChange]\n );\n\n const handleLoadingSpecificNode = useCallback(\n async (obj) => {\n setMenuLoading(true);\n setNodesRequested([1]);\n const currentTabValue = inquiryTabList?.length\n ? inquiryTabList[tabValue]\n : null;\n let error = false;\n let errorMessage = t(`Unable to load entity`);\n if (!obj?.businessObjectKey) {\n error = true;\n errorMessage = `Unable to load entity: No Business Object Key`;\n } else if (!currentTabValue?.trees?.length) {\n error = true;\n errorMessage = `Unable to load entity: No Trees Configured for Tab`;\n }\n\n if (error) {\n setMenuLoading(false);\n setNodesRequested([]);\n enqueueSnackbar(errorMessage, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n return;\n }\n\n const fullyQualifiedName = obj.businessObjectKey.split('|')[0];\n const sanitizedName = getSanitizedName(fullyQualifiedName);\n const matchingCtlgFullyQualifiedNameComponent = catalogObjects.find(\n (domain) => domain.catalogObjectName === fullyQualifiedName\n );\n const catObjName = matchingCtlgFullyQualifiedNameComponent\n ? fullyQualifiedName\n : sanitizedName;\n\n const matchingTabValueTree = currentTabValue.trees.find(\n (tabTree) => tabTree.catalogReturnObject === catObjName\n );\n\n if (!matchingTabValueTree) {\n setMenuLoading(false);\n setNodesRequested([]);\n enqueueSnackbar(\n t(\n `Unable to load entity: Incorrect tree(s) configured for Node trying to load`\n ),\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n return;\n }\n let nodeTree = null;\n const detailedTreeResponse = await executeGetDetailedTree(\n matchingTabValueTree.treeId\n );\n if (detailedTreeResponse.status === 200) {\n nodeTree = detailedTreeResponse.data;\n } else {\n setMenuLoading(false);\n setNodesRequested([]);\n enqueueSnackbar(\n t(`Unable to load entity: Tree for item failed to load`),\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n return;\n }\n\n if (!nodeTree) {\n setMenuLoading(false);\n setNodesRequested([]);\n enqueueSnackbar(\n t(`Unable to load entity: Tree for item failed to load`),\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n return;\n }\n\n const searchIdentifiers = getSearchIdentifiers(\n catalogObjects,\n catObjName\n );\n\n const filterElements = [];\n const searchValues = [];\n searchIdentifiers.forEach((searchIdentifier) => {\n const searchField = searchIdentifier\n ? searchIdentifier.charAt(0).toUpperCase() + searchIdentifier.slice(1)\n : '';\n filterElements.push({\n searchField: searchField,\n searchOperator: '=',\n searchValue: obj[searchIdentifier] ?? ''\n });\n searchValues.push(obj[searchIdentifier]);\n });\n const apiMethodId = nodeTree.apiMethodInstance.apiMethodId;\n const lazyLoad = !!nodeTree?.properties?.lazyLoad;\n\n const searchObject = getSearchObject(filterElements, 1, 50, !lazyLoad);\n const data = { data: searchObject };\n // const loadedNodesList = [];\n const searchResponse = await executeQueryAdHoc(data, apiMethodId);\n if (searchResponse.status === 200) {\n if (searchResponse?.data?.pageList?.length) {\n const treeStructure = makeTreeStructure(\n nodeTree.treeStructure,\n 'id',\n 'parentId'\n );\n const displayTree = formatTreeMenuItem(\n searchResponse.data.pageList[0],\n treeStructure,\n catalogObjects,\n promotedEntities,\n nodeTree,\n lazyLoad\n );\n // loadedNodesList.push(\n // getLoadedNodeObject(\n // apiMethodId,\n // searchObject,\n // displayTree?.properties?.nodeLabel,\n // displayTree?.properties?.catalogReturnObject,\n // treeStructure.id\n // )\n // );\n // executeAddRecentlyLoadedNodes({ data: loadedNodesList });\n setMenuList((prevState) => [...prevState, displayTree]);\n setNodesRequested([]);\n setMenuLoading(false);\n }\n }\n },\n [\n inquiryTabList,\n tabValue,\n catalogObjects,\n enqueueSnackbar,\n t,\n executeGetDetailedTree,\n executeQueryAdHoc,\n // getLoadedNodeObject,\n promotedEntities\n // executeAddRecentlyLoadedNodes\n ]\n );\n\n const handleSideBarValueChange = useCallback((value) => {\n setSidebarTabValue(value);\n }, []);\n\n const handleAdvancedSearchClick = useCallback(\n (values, selectedSearchOperators, entity, lookupPropertyNames) => {\n setIsAdvancedSearch(true);\n setInSearch(true);\n const foundSearchItem = searchItems.find(\n (item) => item.catalogReturnObject === entity\n );\n const searchFilterElements = [];\n const searchFields = Object.keys(values).filter((field) =>\n field.startsWith(`${getSanitizedName(entity)}:`)\n );\n\n searchFields.forEach((searchField) => {\n const filterElement = {\n searchField: '',\n searchOperator: '',\n searchValue: ''\n };\n const configuredSearchField = searchField.replace(\n `${getSanitizedName(entity)}:`,\n ''\n );\n filterElement.searchField =\n configuredSearchField.charAt(0).toUpperCase() +\n configuredSearchField.slice(1);\n filterElement.searchOperator =\n (selectedSearchOperators &&\n selectedSearchOperators[configuredSearchField]?.value) ||\n '=';\n\n if (\n configuredSearchField.includes(':between') ||\n !values[searchField]\n ) {\n return;\n }\n\n // Handle between operator\n if (filterElement.searchOperator === 'BETWEEN') {\n let fromValue =\n values[searchField] instanceof Date\n ? values[searchField].toISOString()\n : values[searchField];\n let toValue =\n values[`${searchField}:between`] instanceof Date\n ? values[`${searchField}:between`].toISOString()\n : values[`${searchField}:between`];\n filterElement.searchValue = `${fromValue}${\n toValue ? `,${toValue}` : ''\n }`;\n } else {\n filterElement.searchValue =\n values[searchField] instanceof Date\n ? values[searchField].toISOString()\n : values[searchField];\n }\n // Handle lookup values\n if (lookupPropertyNames.includes(configuredSearchField)) {\n filterElement.searchValue = values[searchField]['value'];\n }\n searchFilterElements.push(filterElement);\n });\n\n foundSearchItem.searchFilterElements = searchFilterElements;\n setAdvancedSearchItems([foundSearchItem]);\n },\n [searchItems]\n );\n\n const entityList = useMemo(() => {\n if (!searchItems?.length) {\n return [];\n }\n return searchItems.reduce((entities, item) => {\n if (item.catalogReturnObject) {\n entities.push({\n label: getSanitizedName(item.catalogReturnObject),\n value: item.catalogReturnObject\n });\n }\n return entities;\n }, []);\n }, [searchItems]);\n\n const secondaryButtons = useMemo(() => {\n if (inSearch) {\n return [\n {\n component: ClearIcon,\n label: 'Clear Search',\n click: clearSearch,\n id: 1\n }\n ];\n }\n return [];\n }, [clearSearch, inSearch]);\n\n const pageHeightOffSet = useMemo(() => {\n let offset = 0;\n if (primaryExpanded) {\n offset = offset + 180;\n }\n if (secondaryExpanded) {\n offset = offset + 270;\n }\n\n if (selectedNode?.properties?.tabs?.length > 1) {\n offset = offset + 44;\n }\n\n return offset;\n }, [primaryExpanded, secondaryExpanded, selectedNode]);\n\n const onTreeViewModeChange = useCallback(() => {\n if (treeViewMode === TreeViewModeEnums.Classic) {\n setTreeViewMode(TreeViewModeEnums.Compact);\n } else if (treeViewMode === TreeViewModeEnums.Compact) {\n setTreeViewMode(TreeViewModeEnums.Classic);\n }\n }, [treeViewMode]);\n\n const selectedNodeChildren = useMemo(() => {\n if (!!!selectedNode?.children?.length) return [];\n return selectedNode?.children?.filter(\n (child) => !(child instanceof GroupNode)\n );\n }, [selectedNode]);\n\n const udpPageWidgetParams = useMemo(() => {\n const currentTabValue = inquiryTabList?.length\n ? inquiryTabList[tabValue]\n : null;\n return {\n pageId: currentTabValue?.pageId || '',\n entityName: selectedNode?.properties?.catalogReturnObject,\n contentId: selectedNode?.properties?.searchValue,\n nodeObj: selectedNode?.nodeObj,\n nodeId: selectedNode?.id,\n manytoManyNodeObjKey:\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n parentNodeObj: selectedNode?.parentNode?.nodeObj,\n parentGroupName: selectedNode?.parentGroupName,\n inquiryParams: selectedNode?.inquiryParams,\n inquiryNodeProperties: selectedNode?.properties,\n refreshTree: handleMenuTreesRefreshFromPage,\n loadInquiryNode: handleLoadingSpecificNode,\n requiredFieldsMap: currentTabValue?.requiredFieldMapping || {},\n displayLoadNodeButton: !!currentTabValue?.trees?.length,\n nodeChildren: selectedNodeChildren,\n catalogObjects,\n queryId: currentTabValue?.queryId,\n queryParamMapping: currentTabValue?.queryParamMapping,\n refreshNodeHeaderData: refreshNodeHeaderPageData,\n refreshPageHeaderData: refreshPageHeaderPageData,\n inquiryContainerId: containerId\n };\n }, [\n inquiryTabList,\n selectedNode,\n catalogObjects,\n handleMenuTreesRefreshFromPage,\n handleLoadingSpecificNode,\n tabValue,\n selectedNodeChildren,\n refreshNodeHeaderPageData,\n refreshPageHeaderPageData,\n containerId\n ]);\n\n const pageWidgetParams = useMemo(() => {\n const currentTabValue = inquiryTabList?.length\n ? inquiryTabList[tabValue]\n : null;\n return {\n pageId: currentTabValue?.pageId || '',\n entityName: selectedNode?.properties?.catalogReturnObject,\n contentId: selectedNode?.properties?.searchValue,\n nodeObj: selectedNode?.nodeObj,\n nodeId: selectedNode?.id,\n manytoManyNodeObjKey:\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n parentNodeObj: selectedNode?.parentNode?.nodeObj,\n parentGroupName: selectedNode?.parentGroupName,\n inquiryParams: selectedNode?.inquiryParams,\n inquiryNodeProperties: selectedNode?.properties,\n heightOffset: pageHeightOffSet,\n refreshTree: handleMenuTreesRefreshFromPage,\n loadInquiryNode: handleLoadingSpecificNode,\n requiredFieldsMap: currentTabValue?.requiredFieldMapping || {},\n displayLoadNodeButton: !!currentTabValue?.trees?.length,\n nodeChildren: selectedNodeChildren,\n catalogObjects,\n queryId: currentTabValue?.queryId,\n queryParamMapping: currentTabValue?.queryParamMapping,\n refreshNodeHeaderData: refreshNodeHeaderPageData,\n refreshPageHeaderData: refreshPageHeaderPageData,\n inquiryContainerId: containerId\n };\n }, [\n inquiryTabList,\n selectedNode,\n catalogObjects,\n handleMenuTreesRefreshFromPage,\n handleLoadingSpecificNode,\n pageHeightOffSet,\n tabValue,\n selectedNodeChildren,\n refreshNodeHeaderPageData,\n refreshPageHeaderPageData,\n containerId\n ]);\n\n const pageContainer = useMemo(() => {\n return (\n <PageContainer\n user={user}\n key={`${moveToTopCount}-${selectedNode?.properties?.searchValue}`}\n pageData={pageData}\n pageLoading={pageLoading}\n widgetParams={\n pageData?.isUdpPage ? udpPageWidgetParams : pageWidgetParams\n }\n disableMargins={true}\n />\n );\n }, [\n user,\n pageData,\n pageLoading,\n udpPageWidgetParams,\n selectedNode,\n pageWidgetParams,\n moveToTopCount\n ]);\n\n const handleSidebarExpandClick = useCallback(() => {\n setSidebarExpanded((expanded) => !expanded);\n }, []);\n\n useEffect(() => {\n setSubHeaderActionHasChildren(false);\n }, [setSubHeaderActionHasChildren]);\n\n useEffect(() => {\n clearNodes();\n clearSearch();\n // If the treeId changes we want to clear all nodes and search\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [treeId]);\n\n useEffect(() => {\n if (inSearch) {\n setHeaderTitle('');\n setPrimaryExpanded(false);\n setSecondaryExpanded(false);\n setShowToggle1(false);\n setShowToggle2(false);\n } else if (!inSearch && selectedNode) {\n setHeaderTitle(\n selectedNode?.isGroupNode\n ? selectedNode.properties?.label\n : selectedNode.properties?.headerTitle\n );\n if (\n !selectedNode.properties?.defaultNodeHeaderExpanded ||\n selectedNode.properties?.defaultNodeHeaderExpanded === 'hidden'\n ) {\n setShowToggle1(false);\n setPrimaryExpanded(false);\n } else {\n setShowToggle1(true);\n setPrimaryExpanded(\n selectedNode.properties?.defaultNodeHeaderExpanded\n ? selectedNode.properties?.defaultNodeHeaderExpanded === 'expanded'\n : false\n );\n }\n if (\n !selectedNode.properties?.defaultPageHeaderExpanded ||\n selectedNode.properties?.defaultPageHeaderExpanded === 'hidden'\n ) {\n setShowToggle2(false);\n setSecondaryExpanded(false);\n } else {\n setShowToggle2(true);\n setSecondaryExpanded(\n selectedNode.properties?.defaultPageHeaderExpanded\n ? selectedNode.properties?.defaultPageHeaderExpanded === 'expanded'\n : true\n );\n }\n }\n }, [inSearch, selectedNode]);\n\n useEffect(() => {\n if (!nodeLoaded) {\n setHeaderTitle('');\n setShowToggle1(false);\n setShowToggle2(false);\n setPrimaryExpanded(false);\n setSecondaryExpanded(false);\n }\n }, [nodeLoaded]);\n\n useEffect(() => {\n if (!sidebarExpanded) {\n setSidebarTabValue(0);\n }\n }, [sidebarExpanded]);\n\n useEffect(() => {\n if (setPageId) {\n if (selectedNode) {\n if (selectedNode?.properties?.tabs?.length > 1) {\n setPageId(selectedPageId || null);\n } else {\n const pageTabs = selectedNode?.properties?.tabs;\n if (pageTabs?.[0]) {\n setPageId(pageTabs[0].page?.pageId || null);\n } else {\n setPageId(null);\n }\n }\n } else {\n setPageId(null);\n }\n }\n }, [setPageId, selectedNode, selectedPageId]);\n\n useEffect(() => {\n if (initialSearchValue) {\n setIsAdvancedSearch(false);\n setInSearch(true);\n setSearchValue(initialSearchValue);\n }\n }, [initialSearchValue]);\n\n useEffect(() => {\n setTabValue(0);\n }, [selectedNode]);\n\n useEffect(() => {\n if (inSearch) {\n setShowInquiryHeaderActions(false);\n } else {\n setShowInquiryHeaderActions(true);\n }\n }, [inSearch, setShowInquiryHeaderActions]);\n\n useEffect(() => {\n setInquiryParams(\n {\n selectedNode,\n selectedNodeParent: selectedNode?.parentNode,\n refreshTree: handleMenuTreesRefresh\n },\n containerId\n );\n }, [selectedNode, handleMenuTreesRefresh, setInquiryParams, containerId]);\n\n useEffect(() => {\n setMenuListState({\n menuList: menuList,\n handleRemoveMenuItem: handleRemoveMenuItem,\n selectedMenuIndex\n });\n }, [setMenuListState, menuList, handleRemoveMenuItem, selectedMenuIndex]);\n\n useEffect(() => {\n if (tree) {\n const getPreloadedTree = async () => {\n setMenuLoading(true);\n setNodesRequested([1]);\n const response = await executeQueryInstance(\n { data: {} },\n tree.apiMethodInstance?.apiMethodInstanceId\n );\n if (response.status === 200) {\n if (response?.data?.pageList?.length) {\n const clonedTree = cloneDeep(tree.treeStructure);\n const treeStructure = makeTreeStructure(\n clonedTree,\n 'id',\n 'parentId'\n );\n const preloadedList = constructPreloadedTree(\n treeStructure,\n response.data.pageList,\n catalogObjects\n );\n setMenuList(preloadedList || []);\n if (preloadedList?.length) {\n setSelectedNode(preloadedList[0]);\n setSelectedMenuIndex(0);\n }\n setAppNavigationExpanded(false);\n }\n }\n setMenuLoading(false);\n setNodesRequested([]);\n };\n\n if (tree) {\n // inquiry title is stored in the properties of the top node of the tree\n const topNode = tree?.treeStructure?.find((node) => !node.parentId);\n setInquiryTitleHeader(topNode?.properties?.inquiryTitle || '');\n }\n\n setIsPreloaded(tree.isPreloaded);\n if (tree.isPreloaded) {\n setNodeLoaded(true);\n getPreloadedTree();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tree, setAppNavigationExpanded, catalogObjects]);\n\n useEffect(() => {\n setSelectedNodeForStore(selectedNode || null);\n }, [selectedNode, setSelectedNodeForStore]);\n\n /* useEffects for workflow */\n\n useEffect(() => {\n if (workflowPlay) {\n setWorkflow(workflowPlay);\n }\n }, [workflowPlay]);\n\n // this is used for updating the state node for page use\n useEffect(() => {\n if (workflow) {\n setSelectedWorkflowNode((prevNode) => {\n if (!!prevNode) {\n const foundNode = workflow.workflowPlayNode?.children?.find(\n (child) => child.id === prevNode.id\n );\n if (!!foundNode) {\n const updatedNode = { ...prevNode };\n // TODO: using this to update state for now but may need to update\n // other properties of the selected node when we pull workflow tree\n updatedNode.properties.state = foundNode.state;\n return updatedNode;\n } else {\n return prevNode;\n }\n }\n });\n }\n }, [workflow]);\n\n useEffect(() => {\n if (workflow) {\n if (!workflowInitialized) {\n let initialized = false;\n if (workflow.workflowPlayNode?.children?.length) {\n const firstWorkflowNode = workflow.workflowPlayNode.children[0];\n if (firstWorkflowNode.state !== UnitStateType.Initial) {\n initialized = true;\n setWorkflowInitialized(true);\n }\n }\n\n if (\n !initialized &&\n getWorkflowInitializedCount < WORKFLOW_MAX_NETWORK_CALLS &&\n inquiryWorkflow?.currentWorkflowPlayId\n ) {\n const timer = setTimeout(async () => {\n await reloadWorkflow();\n setGetWorkflowInitializedCount((prevCount) => prevCount + 1);\n }, 1000);\n\n return () => clearTimeout(timer);\n }\n if (getWorkflowInitializedCount === WORKFLOW_MAX_NETWORK_CALLS) {\n enqueueSnackbar(t(`Unable to initialize workflow`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }\n }\n if (workflowInitialized) {\n const list = [];\n const updatedMenu = transformWorkflowPlayTree(\n workflow.workflowPlayNode\n );\n if (updatedMenu) {\n list.push(updatedMenu);\n }\n setWorkflowMenuItemsList(list);\n }\n }\n }, [\n workflow,\n workflowInitialized,\n reloadWorkflow,\n getWorkflowInitializedCount,\n inquiryWorkflow,\n enqueueSnackbar,\n t\n ]);\n\n useEffect(() => {\n if (inquiryWorkflow?.inWorkflowMode && inquiryWorkflowTabValue === 1) {\n setHideActions(true);\n } else if (\n inquiryWorkflow?.inWorkflowMode &&\n inquiryWorkflowTabValue === 0\n ) {\n setHideActions(false);\n }\n }, [setHideActions, inquiryWorkflowTabValue, inquiryWorkflow]);\n\n useEffect(() => {\n if (!selectedWorkflowNode) {\n const menu = workflowMenuItemsList[0];\n // Use Task Id to find the first matching node in tree\n if (menu) {\n const firstSelectableMenuItem = menu?.children?.find(\n (item) => item.isSelectable\n );\n setSelectedWorkflowNode(firstSelectableMenuItem || null);\n if (autoCollapseNav) {\n setNavigationExpanded(false);\n }\n }\n }\n }, [\n // udpTaskId,\n workflowMenuItemsList,\n selectedWorkflowNode,\n setNavigationExpanded,\n autoCollapseNav\n ]);\n\n useEffect(() => {\n if (\n !!workflowPlayError &&\n getWorkflowPlayErrorCount < WORKFLOW_MAX_NETWORK_CALLS &&\n inquiryWorkflow?.currentWorkflowPlayId\n ) {\n const timer = setTimeout(() => {\n reloadWorkflow();\n setGetWorkflowPlayErrorCount((prevCount) => prevCount + 1);\n }, 1000);\n\n return () => clearTimeout(timer);\n }\n if (getWorkflowPlayErrorCount === WORKFLOW_MAX_NETWORK_CALLS) {\n enqueueSnackbar(t(`Unable to load workflow`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }\n }, [\n workflowPlayError,\n reloadWorkflow,\n getWorkflowPlayErrorCount,\n enqueueSnackbar,\n t,\n inquiryWorkflow\n ]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n setLocationState({ label: t(inquiryTitle) || t('Inquiry') });\n }, [setLocationState, t, inquiryTitle]);\n\n return (\n <DndProvider backend={HTML5Backend}>\n <LoadingOverlay open={workflowStarting} />\n <div key={treeId} className={classes.root}>\n {!inquiryMenuHidden && (\n <UtilitySideBar\n title={t(inquiryTitle) || t('Inquiry')}\n isUsingChildren={true}\n resizable={true}\n removePadding={true}\n removeTopLayoutUnit={true}\n onUtilitySidebarToggleExpandClick={handleSidebarExpandClick}\n collapsedWidth={78}\n handleResize={(width) => setUtilitySideBarWidth(width)}\n hideTitleBar={inquiryWorkflow?.inWorkflowMode}\n >\n {(moveToTopLoading || dragAndDropLoading || refreshing) && (\n <LinearProgress />\n )}\n {sidebarTabValue === 0 && (\n <>\n {inquiryWorkflow?.inWorkflowMode && (\n <>\n <div className={classes.workflowTablist}>\n <UdpTablist\n activeId={String(inquiryWorkflowTabValue)}\n tabList={inquiryWorkflowFluentTabList}\n onTabChange={(e) =>\n setInquiryWorkflowTabValue(Number(e.detail))\n }\n />\n </div>\n <Divider />\n </>\n )}\n {(!inquiryWorkflow?.inWorkflowMode ||\n (inquiryWorkflow?.inWorkflowMode &&\n inquiryWorkflowTabValue === 0)) && (\n <>\n <InquiryNodeControls\n remove={() => handleRemoveMenuItem(null)}\n moveToTop={handleMoveToTop}\n expandAll={handleExpandAll}\n collapseAll={handleCollapseAll}\n clearAll={clearNodes}\n switchTreeViewMode={onTreeViewModeChange}\n treeViewMode={treeViewMode}\n changeSideBarView={handleSideBarValueChange}\n handleKeyDown={handleSearch}\n disableMoveToTop={disableMoveToTop}\n entityList={entityList}\n entityValue={entityValue}\n setEntityValue={setEntityValue}\n hiddenControls={\n sidebarExpanded\n ? isPreloaded\n ? ['remove', 'clearAll']\n : []\n : isPreloaded\n ? ['remove', 'expandAll', 'clearAll', 'collapseAll']\n : ['remove', 'expandAll', 'clearAll', 'collapseAll']\n }\n showControls={!treeLoading && !treeError && nodeLoaded}\n showSearch={!treeLoading && !treeError}\n defaultValue={initialSearchValue}\n clearSearchStr={clearSearchStr}\n setClearSearchStr={setClearSearchStr}\n isPreloadedTree={isPreloaded}\n treeLoading={treeLoading}\n >\n {!treeLoading && treeError && (\n <div style={{ marginLeft: 4, marginBottom: 12 }}>\n <LayoutUnit unit='nudge' />\n <Typography>\n Error getting tree data from tree id\n </Typography>\n </div>\n )}\n </InquiryNodeControls>\n <NodeList\n menuItemsList={menuList}\n onSelectNode={handleSelectedNode}\n onDropNode={handleDroppedNode}\n selectedNodeId={selectedNode?.id ?? ''}\n selectedNodeParentId={selectedNode?.parentId ?? ''}\n expandAllClicked={expandAllClicked}\n classes={{\n root: !treeLoading\n ? nodeLoaded\n ? classes.nodeListRootLoaded\n : classes.nodeListRoot\n : classes.nodeListRootLoading\n }}\n menuLoading={menuLoading}\n nodesRequested={nodesRequested}\n sidebarExpanded={sidebarExpanded}\n executeQueryAdHoc={executeQueryAdHoc}\n catalogObjects={catalogObjects}\n promotedEntities={promotedEntities}\n treeStructureArr={tree?.treeStructure || []}\n setMenuList={setMenuList}\n treeViewMode={treeViewMode || TreeViewModeEnums.Classic}\n onExpandedChange={handleExpandedChange}\n />\n </>\n )}\n </>\n )}\n {sidebarTabValue === 1 && (\n <InquiryAdvancedSearch\n entityList={entityList}\n entityValue={advancedSearchEntityValue}\n setEntityValue={setAdvancedSearchEntityValue}\n onSubmit={handleAdvancedSearchClick}\n currentNodeCatalogReturnObject={\n selectedNode?.properties?.catalogReturnObject\n }\n changeSideBarView={handleSideBarValueChange}\n catalogObjects={catalogObjects}\n tree={tree}\n executeQueryWithParameters={executeQueryWithParameters}\n />\n )}\n {inquiryWorkflow?.inWorkflowMode &&\n inquiryWorkflowTabValue === 1 && (\n <div\n className={classes.workflowMenuContent}\n key={inquiryWorkflow?.currentWorkflowPlayId}\n >\n {workflowMenuItemsList?.length > 0 &&\n (!workflowPlayLoading || reloadWorkflowFromPage) &&\n workflowMenuItemsList.map((workflowMenuItems, index) => (\n <div\n key={workflowMenuItems.id}\n className={classes.nodeContainer}\n >\n <WorkflowTreeMenu\n menuItems={workflowMenuItems}\n onSelectNode={handleSelectedWorkflowNode}\n // onDropNode={handleDropNode}\n menuIndex={index}\n selectedNodeId={selectedWorkflowNode?.id}\n selectedNodeParentId={selectedWorkflowNode?.parentId}\n sidebarExpanded={sidebarExpanded}\n treeViewMode={TreeViewModeEnums.Classic}\n />\n </div>\n ))}\n {(workflowPlayLoading ||\n workflowPlayError ||\n !workflowInitialized) &&\n !reloadWorkflowFromPage && (\n <div className={classes.workflowTreeLoader}>\n <NodeLoader\n loading={\n workflowPlayLoading ||\n workflowPlayError ||\n !workflowInitialized\n }\n />\n </div>\n )}\n </div>\n )}\n </UtilitySideBar>\n )}\n <OpenPage\n disableGutters\n style={{\n position: 'relative',\n top: 0,\n width: `calc(100% - ${utilitySideBarWidth}px)`\n }}\n >\n <Form\n onSubmit={executeApiForDroppedNode}\n key={promotedMethodsToExecute}\n >\n <ExecuteApiDialog\n open={executeApiDialogOpen}\n handleCloseDialog={handleCloseExecuteApiDialog}\n apiMethods={promotedMethodsToExecute}\n progress={executeApiProgress}\n />\n </Form>\n <div className={classes.content}>\n {(!inquiryWorkflow?.inWorkflowMode ||\n (inquiryWorkflow?.inWorkflowMode &&\n inquiryWorkflowTabValue === 0)) && (\n <InquiryWrapper nodeLoaded={false} collapsedWidth={32}>\n {(inSearch || nodeLoaded) && (\n <Card square>\n <PrimaryActionHeader\n key={`${selectedNode?.id}-${inSearch}`}\n title={headerTitle}\n buttonLabel={'Load'}\n single\n secondaryButtons={secondaryButtons}\n handleClick={handlePrimaryAction}\n hidePAB={nodeLoaded && !inSearch}\n allowAdditionalTitleComponent={true}\n additionalComponentId={containerId}\n />\n </Card>\n )}\n {!!selectedNode && (\n <Card square className={classes.nodeHeader}>\n <div>\n <Collapse in={primaryExpanded} timeout='auto'>\n {nodeHeaderPageIdToLoad && showToggle1 ? (\n <PageContainer\n user={user}\n key={nodeHeaderPageIdToLoad}\n pageData={nodeHeaderPageData}\n pageLoading={nodeHeaderPageLoading}\n widgetParams={{\n nodeObj: selectedNode?.nodeObj,\n nodeId: selectedNode?.id,\n selectedNode: selectedNode,\n setRefreshNodeHeaderPageData:\n setRefreshNodeHeaderPageData,\n inquiryContainerId: containerId\n }}\n disableMargins={true}\n loadingHeight={32}\n autoHeight={true}\n />\n ) : (\n <NodeDetails node={selectedNode} />\n )}\n </Collapse>\n\n {showToggle1 && (\n <div\n className={clsx(\n primaryExpanded\n ? classes.chevronButtons\n : classes.chevronButtonClosed\n )}\n >\n <FluentIconButton\n onClick={() => setPrimaryExpanded(!primaryExpanded)}\n icon={\n primaryExpanded ? ChevronUpIcon : ChevronDownIcon\n }\n />\n </div>\n )}\n </div>\n <Divider />\n <Collapse in={secondaryExpanded} timeout='auto'>\n <div className={classes.inquiryHeader}>\n {pageHeaderPageIdToLoad && showToggle2 ? (\n <PageContainer\n user={user}\n key={pageHeaderPageIdToLoad}\n pageData={pageHeaderPageData}\n pageLoading={pageHeaderPageLoading}\n widgetParams={{\n nodeObj: selectedNode?.nodeObj,\n nodeId: selectedNode?.id,\n selectedNode: selectedNode,\n setRefreshPageHeaderPageData:\n setRefreshPageHeaderPageData,\n inquiryContainerId: containerId\n }}\n disableMargins={true}\n loadingHeight={32}\n autoHeight={true}\n />\n ) : (\n <>\n <InquiryHeaderSecondaryTarget\n className={classes.actions}\n />\n <InquiryHeaderSecondaryAlertTarget\n className={classes.actions}\n />\n </>\n )}\n </div>\n </Collapse>\n {selectedNode?.properties?.tabs?.length > 1 && !inSearch ? (\n <div className={classes.tabRoot}>\n <UdpTablist\n activeId={tabValue}\n tabList={inquiryFluentTabList}\n onTabChange={handleFluentInquiryTabChange}\n />\n </div>\n ) : null}\n </Card>\n )}\n {!!selectedNode && showToggle2 && (\n <Card square className={classes.entityHeader}>\n <div className={classes.chevronButtons}>\n <FluentIconButton\n onClick={() => setSecondaryExpanded(!secondaryExpanded)}\n icon={\n secondaryExpanded ? ChevronUpIcon : ChevronDownIcon\n }\n className={classes.icon}\n />\n </div>\n </Card>\n )}\n {!treeError && (\n <PageActionWrapper\n forPageContainer={true}\n splitScreenStateKey={'pageContainerSplitScreen'}\n >\n <div\n className={classes.mainWrapper}\n style={{ width: '100%' }}\n >\n {inSearch ? (\n <InquirySearchContainer\n searchItems={entitySearchItems}\n isAdvancedSearch={isAdvancedSearch}\n advancedSearchItems={advancedSearchItems}\n setSelectedSearchRows={handleSelectedSearchRows}\n catalogObjects={catalogObjects}\n loadSingleNode={handleSingleNodeLoad}\n onRowDoubleClick={handleRowDoubleClick}\n classes={{ root: classes.searchContainerRoot }}\n executeQueryAdHoc={executeQueryAdHoc}\n apiMethodInstanceId={\n tree?.apiMethodInstance?.apiMethodInstanceId\n } // The original apiMethodInstanceId that the tree uses\n />\n ) : !tree || !catalogObjects ? (\n <LinearProgress />\n ) : !nodeLoaded && !tree?.isPreloaded ? (\n tree?.explorePageId ? (\n <PageContainer\n user={user}\n key={selectedNode?.properties?.searchValue}\n pageData={explorePageData}\n pageLoading={explorePageLoading}\n widgetParams={{\n tree: tree,\n recentlyLoadedNodes: litnHistory,\n loading: litnHistoryLoading,\n onLoadedNodeClick: handleRecentlyLoadedNodeClick,\n tableHeight: 'calc(100vh - 172px)',\n catalogObjects\n }}\n disableMargins={true}\n />\n ) : (\n <InquiryDashboard\n treeId={treeId}\n recentlyLoadedNodeOnClick={\n handleRecentlyLoadedNodeClick\n }\n >\n <RecentlyLoadedNodesTable\n recentlyLoadedNodes={litnHistory}\n loading={litnHistoryLoading}\n onLoadedNodeClick={handleRecentlyLoadedNodeClick}\n tableHeight={'calc(100vh - 172px)'}\n tree={tree}\n />\n </InquiryDashboard>\n )\n ) : (\n selectedNode?.properties?.tabs?.length > 0 &&\n (selectedNode?.properties?.tabs?.length > 1\n ? pageId && pageContainer\n : pageId\n ? pageContainer\n : null)\n )}\n </div>\n </PageActionWrapper>\n )}\n <InquiryHeaderSecondary secondExtended>\n <div className={classes.information}>\n <div className={classes.summaryCard}>\n {/* Add Child component here for the Node header */}\n </div>\n </div>\n </InquiryHeaderSecondary>\n </InquiryWrapper>\n )}\n {inquiryWorkflow?.inWorkflowMode &&\n inquiryWorkflowTabValue === 1 && (\n <WorkflowContent\n selectedNode={selectedWorkflowNode}\n workflow={workflow}\n reloadWorkflow={handleReloadWorkflow}\n users={users}\n groups={groups}\n handleClose={handleCloseWorkflow}\n inquiryPageParams={\n pageData?.isUdpPage ? udpPageWidgetParams : pageWidgetParams\n }\n />\n )}\n </div>\n </OpenPage>\n </div>\n </DndProvider>\n );\n};\n\nInquiryContainer.propTypes = {\n user: PropTypes.object,\n litnHistory: PropTypes.array,\n litnHistoryLoading: PropTypes.bool,\n tree: PropTypes.object,\n treeId: PropTypes.string,\n catalogObjects: PropTypes.array,\n executeQueryAdHoc: PropTypes.func,\n executeQueryWithParameters: PropTypes.func,\n executeGetDetailedTree: PropTypes.func,\n executeAddRecentlyLoadedNodes: PropTypes.func,\n treeLoading: PropTypes.bool,\n treeError: PropTypes.object,\n pageData: PropTypes.object,\n pageLoading: PropTypes.bool,\n pageError: PropTypes.object,\n setPageId: PropTypes.func,\n pageId: PropTypes.string,\n isValidWidget: PropTypes.func,\n productId: PropTypes.string,\n initialSearchValue: PropTypes.string,\n promotedEntities: PropTypes.array,\n apiCatalogId: PropTypes.string\n};\n"],"mappings":"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"}
|