{"version":3,"file":"MapLayout.mjs","names":["React","useState","useMemo","useCallback","useEffect","Fill","Style","Stroke","Icon","Circle","transform","makeStyles","Grid","lighten","ChromeCloseIcon","proj4","register","isArray","isObject","startCase","useTranslation","clsx","TruckIcon","ListView","ActionsRenderer","FluentTextField","AmbientGridTemplate","useAuthedUser","FluentIconButton","StandardTitle","AmbientCard","getLayer","generateGeoJsonList","getPrimaryFeatureCoordinate","UdpMapComponent","UdpMapToolbar","useStyles","theme","fullHeight","height","backgroundColor","palette","primary","light","overflow","contentWrapper","display","detailSheetHeader","background","paper","padding","spacing","alignItems","gap","detailSheetBody","detailTitle","marginTop","leftColumn","listViewWrapper","position","zoomControl","left","right","top","styles","Point","image","anchor","anchorXUnits","anchorYUnits","src","scale","zIndex","stroke","color","width","fill","radius","LineString","MapLayout","props","data","initialSelectedLayers","shellContext","sideSheetTitle","cardConfig","noRightPanelPadding","isGeoJsonFormat","geoJsonMappingConfig","showMap","showList","showGrid","getSelectedFeatures","getSelectedLayers","getSelectedViewItemData","rightSectionPanel","rightSectionPanelTitle","rightSectionPanelState","setRightSectionPanelState","overrideDetailRightSection","layerOptions","layerKeySeparator","statisticsList","hideZeroValueStats","defaultTileOptionName","hideTileSelection","filterPanel","filterCallback","selectedFeaturesActionPanel","refreshEvent","refreshButtonTooltip","readOnlyMap","addFeaturePanelConfig","noWrapPrimaryText","hideListView","listFilter","listViewCardConfig","listViewDetailsEvent","listViewChipConfig","popoverDetailsEvent","popoverPrimaryActions","popoverMoreIconButtonActions","getMessagePopover","getMessageIconPopover","hideMessageIconPopover","popoverWidth","enableViewFeature","enableDeleteFeature","handleDeleteFeature","enableEditFeature","handleEditFeature","mapTitle","getMapFeatureStyles","getSelectedFeatureStyles","tileLayersOptions","imageLayersOptions","mapZoom","mapCenter","mapProjection","addInteractions","selectedPin","mapHeight","addressBar","mapDataProjection","crs","layerKeys","mapFilter","showZoomControl","readOnlyLayers","layerRoles","getVectorLayerSources","enableAddNewFeature","addMultipleFeatures","enableSplitFeature","handleAddNewFeatures","handleSplitFeature","handleGetZoomExtent","minZoom","maxZoom","gridTitle","columnDefs","groupingData","frameworkComponents","primaryActionButton","loading","rowNodeIdName","gridHeight","paginationPageSize","onSearch","onRowSelected","rowModelType","api","columnApi","gridReady","onCellClicked","gridFilter","otherGridProps","selectedFeatureProperties","setSelectedFeatureProperties","showDetails","setShowDetails","selectedItemData","setSelectedItemData","definedProj","setDefinedProj","enableDragBox","setEnableDragBox","dataUpdateCount","setDataUpdateCount","map","setMap","filteredLayerOptions","setFilterLayerOptions","bulkSelectionActive","setBulkSelectionActive","splitActive","setSplitActive","selectedFeatureCoordinates","setSelectedFeatureCoordinates","addActive","setAddActive","selectedFeatureIdExternal","setSelectedFeatureIdExternal","currentCenter","setCurrentCenter","selectedLayers","setSelectedLayers","classes","user","t","length","defs","filteredData","formattedData","gridData","filter","obj","layerKey","some","roleId","roleIds","includes","id","properties","filteredGridData","filteredListData","geometry","coordinates","newCenter","getStyles","feature","geometryType","getGeometry","getType","handleViewDetailsFromPopover","featureProperties","selectedFeature","getProperties","setInquiryMenuToggle","handleCloseDetailSheet","handleViewDetailsFromList","itemDetails","Object","entries","key","value","readOnly","gridColumnDefinition","actionsRenderer","headerName","defaultValue","field","suppressSizeToFit","minWidth","maxWidth","cellRenderer","cellRendererParams","openView","sortable","detailSheetHeight","handleSelectLayers","e","handleSelectMarker","handleOnCellClicked","params","node","group","colDef","listView","handleSetSelectedFeatureProperties","currentFeature","getCoordinates","handleCloseFeaturePopover","handleSetMapComponent","mapComponent","gridComponent","mapGrid","xs","sm","maxHeight"],"sources":["../../../src/UI/mapLayout/MapLayout.jsx"],"sourcesContent":["import React, { useState, useMemo, useCallback, useEffect } from 'react';\nimport { Fill, Style, Stroke, Icon, Circle } from 'ol/style';\nimport { transform } from 'ol/proj';\nimport { makeStyles, Grid, lighten } from '@material-ui/core';\nimport { ChromeCloseIcon } from '@fluentui/react-icons';\nimport proj4 from 'proj4';\nimport { register } from 'ol/proj/proj4';\nimport { isArray, isObject, startCase } from 'lodash-es';\nimport { useTranslation } from 'react-i18next';\nimport clsx from 'clsx';\nimport TruckIcon from '../../assets/unityIcons/TruckIcon.svg';\nimport ListView from './ui/ListView';\nimport ActionsRenderer from './ui/ActionsRenderer';\nimport { FluentTextField } from '../inputs/textField/FluentTextField';\nimport { AmbientGridTemplate } from '../templates/deprecated/AmbientGridTemplate/AmbientGridTemplate';\nimport { useAuthedUser } from '../../utilities/auth/useAuthedUser';\nimport { FluentIconButton } from '../inputs/buttons/FluentIconButton';\nimport { StandardTitle } from '../dataDisplay/typography/StandardTitle';\nimport { AmbientCard } from '../surfaces/cards/AmbientCard';\nimport { getLayer, generateGeoJsonList, getPrimaryFeatureCoordinate } from './utilities/MapUtilities';\nimport { UdpMapComponent } from '../maps/UdpMapComponent';\nimport { UdpMapToolbar } from '../maps/UdpMapToolbar';\n\nconst useStyles = makeStyles((theme) => ({\n  fullHeight: {\n    height: '73vh',\n    backgroundColor: lighten(theme.palette.primary.light, 0.7),\n    overflow: 'auto'\n  },\n  contentWrapper: {\n    display: 'flex'\n  },\n  detailSheetHeader: {\n    display: 'flex',\n    backgroundColor: theme.palette.background.paper,\n    padding: theme.spacing(1),\n    alignItems: 'center',\n    gap: theme.spacing(1.5)\n  },\n  detailSheetBody: {\n    padding: theme.spacing(2)\n  },\n  detailTitle: {\n    marginTop: 0\n  },\n  leftColumn: {\n    overflow: 'auto',\n    backgroundColor: lighten(theme.palette.primary.light, 0.7)\n  },\n  listViewWrapper: {\n    position: 'relative'\n  },\n  zoomControl: {\n    left: 'auto',\n    right: theme.spacing(0.8),\n    top: theme.spacing(5)\n  }\n}));\n\nconst styles = {\n  Point: [\n    new Style({\n      image: new Icon({\n        anchor: [0.17, 48],\n        anchorXUnits: 'fraction',\n        anchorYUnits: 'pixels',\n        src: TruckIcon,\n        scale: 0.3\n      }),\n      zIndex: 1\n    }),\n    new Style({\n      image: new Circle({\n        stroke: new Stroke({\n          color: '#0F62FE',\n          width: 1\n        }),\n        fill: new Fill({\n          color: '#FFFFFF'\n        }),\n        radius: 20,\n        scale: 1.1\n      }),\n      zIndex: 0\n    })\n  ],\n  LineString: new Style({\n    stroke: new Stroke({\n      color: '#0F62FE',\n      width: 4\n    }),\n    zIndex: 0\n  })\n};\n\nexport const MapLayout = (props) => {\n  const {\n    data,\n    initialSelectedLayers,\n    shellContext,\n    sideSheetTitle,\n    cardConfig,\n    noRightPanelPadding = false,\n    isGeoJsonFormat = true,\n    geoJsonMappingConfig,\n    position = 'default',\n    showMap = true,\n    showList,\n    showGrid = true,\n    //inject data\n    getSelectedFeatures,\n    getSelectedLayers,\n    getSelectedViewItemData,\n    rightSectionPanel,\n    rightSectionPanelTitle,\n    rightSectionPanelState,\n    setRightSectionPanelState,\n    overrideDetailRightSection = false,\n    //toolbar\n    layerOptions,\n    layerKeySeparator = '',\n    statisticsList,\n    hideZeroValueStats,\n    defaultTileOptionName,\n    hideTileSelection,\n    filterPanel,\n    filterCallback,\n    selectedFeaturesActionPanel,\n    refreshEvent,\n    refreshButtonTooltip,\n    readOnlyMap,\n    addFeaturePanelConfig,\n    //list view props\n    noWrapPrimaryText,\n    hideListView = false,\n    listFilter,\n    listViewCardConfig,\n    listViewDetailsEvent,\n    listViewChipConfig,\n    //popover card props\n    popoverDetailsEvent,\n    popoverPrimaryActions,\n    popoverMoreIconButtonActions,\n    getMessagePopover,\n    getMessageIconPopover,\n    hideMessageIconPopover,\n    popoverWidth,\n    enableViewFeature = true,\n    enableDeleteFeature,\n    handleDeleteFeature,\n    enableEditFeature,\n    handleEditFeature,\n    //map props\n    mapTitle = '',\n    getMapFeatureStyles,\n    getSelectedFeatureStyles,\n    tileLayersOptions,\n    imageLayersOptions,\n    mapZoom,\n    mapCenter,\n    mapProjection,\n    addInteractions,\n    selectedPin,\n    mapHeight = '45vh',\n    addressBar,\n    mapDataProjection,\n    crs,\n    layerKeys,\n    mapFilter,\n    showZoomControl,\n    readOnlyLayers,\n    layerRoles,\n    getVectorLayerSources,\n    enableAddNewFeature,\n    addMultipleFeatures = false,\n    enableSplitFeature,\n    handleAddNewFeatures,\n    handleSplitFeature,\n    handleGetZoomExtent,\n    minZoom,\n    maxZoom,\n    //grid props\n    gridTitle,\n    columnDefs,\n    groupingData,\n    frameworkComponents,\n    primaryActionButton,\n    loading,\n    rowNodeIdName,\n    gridHeight = '50vh',\n    paginationPageSize,\n    onSearch,\n    onRowSelected,\n    rowModelType,\n    api,\n    columnApi,\n    gridReady,\n    onCellClicked,\n    gridFilter,\n    ...otherGridProps\n  } = props;\n  const [selectedFeatureProperties, setSelectedFeatureProperties] = useState();\n  const [showDetails, setShowDetails] = useState(false);\n  const [selectedItemData, setSelectedItemData] = useState();\n  const [definedProj, setDefinedProj] = useState(false);\n  const [enableDragBox, setEnableDragBox] = useState(false);\n  const [dataUpdateCount, setDataUpdateCount] = useState(0);\n  const [map, setMap] = useState(null);\n  const [filteredLayerOptions, setFilterLayerOptions] = useState();\n  const [bulkSelectionActive, setBulkSelectionActive] = useState(false);\n  const [splitActive, setSplitActive] = useState(false);\n  const [selectedFeatureCoordinates, setSelectedFeatureCoordinates] =\n    useState();\n  const [addActive, setAddActive] = useState(false);\n  const [selectedFeatureIdExternal, setSelectedFeatureIdExternal] = useState();\n  const [currentCenter, setCurrentCenter] = useState(mapCenter ?? [0, 0]);\n  const [selectedLayers, setSelectedLayers] = useState([]);\n\n  const classes = useStyles();\n  const user = useAuthedUser();\n  const { t } = useTranslation();\n\n  useEffect(() => {\n    if (crs?.length > 0) {\n      proj4.defs(crs);\n      register(proj4);\n      setDefinedProj(true);\n    }\n  }, [crs]);\n\n  useEffect(() => {\n    if (getSelectedLayers) {\n      getSelectedLayers(selectedLayers);\n    }\n  }, [getSelectedLayers, selectedLayers]);\n\n  useEffect(() => {\n    if (getSelectedViewItemData) {\n      getSelectedViewItemData(selectedItemData);\n    }\n  }, [getSelectedViewItemData, selectedItemData]);\n\n  //solve refreshing map data outside map layout\n  useEffect(() => {\n    if (!data) return;\n\n    if (dataUpdateCount === 0) {\n      setDataUpdateCount(dataUpdateCount + 1);\n    }\n    //if the data is updated, force the popover to close\n    if (dataUpdateCount === 1) {\n      setSelectedFeatureProperties(null);\n    }\n  }, [data, dataUpdateCount]);\n\n  //data\n  const filteredData = useMemo(() => {\n    if (!data) return [];\n\n    const formattedData = isGeoJsonFormat\n      ? data\n      : generateGeoJsonList(data, geoJsonMappingConfig);\n\n    //this will return an array of features in geojson format\n    if (filterPanel && filterCallback) {\n      return filterCallback(formattedData);\n    }\n\n    return formattedData;\n  }, [\n    data,\n    filterCallback,\n    filterPanel,\n    geoJsonMappingConfig,\n    isGeoJsonFormat\n  ]);\n\n  const gridData = useMemo(() => {\n    return filteredData\n      ?.filter((obj) => {\n        const layerKey = getLayer(layerKeys, layerKeySeparator, obj);\n\n        if (layerRoles?.[layerKey]) {\n          return layerRoles[layerKey]?.some((roleId) =>\n            user.roleIds?.includes(roleId)\n          );\n        }\n        return true;\n      })\n      .map((obj) => ({\n        id: obj.id,\n        ...obj.properties\n      }));\n  }, [filteredData, layerKeySeparator, layerKeys, layerRoles, user.roleIds]);\n\n  const filteredGridData = useMemo(() => {\n    if (gridFilter) {\n      return gridFilter(gridData);\n    }\n\n    return gridData;\n  }, [gridData, gridFilter]);\n\n  const filteredListData = useMemo(() => {\n    if (listFilter) {\n      return listFilter(gridData);\n    }\n\n    return gridData;\n  }, [gridData, listFilter]);\n\n  useEffect(() => {\n    //If there are projections need to be defined, but it isn't defined yet. Then, return to prevent errors in transform().\n    if (crs?.length > 0 && !definedProj) return;\n\n    if (\n      filteredData?.[0]?.geometry?.coordinates &&\n      mapProjection &&\n      mapDataProjection\n    ) {\n      const coordinates = getPrimaryFeatureCoordinate(\n           filteredData?.[0]?.geometry\n         );\n\n      const newCenter = transform(\n        coordinates,\n        mapDataProjection,\n        mapProjection\n      );\n      setCurrentCenter(newCenter);\n    }\n  }, [filteredData, mapDataProjection, mapProjection, definedProj, crs]);\n\n  //Default getStyles for map features\n  const getStyles = useCallback((feature) => {\n    const geometryType = feature.getGeometry().getType();\n    return styles[geometryType] ?? new Style();\n  }, []);\n\n  const handleViewDetailsFromPopover = useCallback(\n    (data) => {\n      const featureProperties = data?.selectedFeature?.getProperties();\n\n      if (popoverDetailsEvent) {\n        popoverDetailsEvent(featureProperties);\n        return;\n      }\n\n      if (setRightSectionPanelState) {\n        setRightSectionPanelState(false);\n      }\n\n      setShowDetails(true);\n\n      setSelectedItemData(featureProperties);\n      if (shellContext) {\n        shellContext.setInquiryMenuToggle(false);\n      }\n    },\n    [popoverDetailsEvent, setRightSectionPanelState, shellContext]\n  );\n\n  const handleCloseDetailSheet = useCallback(() => {\n    setShowDetails(false);\n    if (setRightSectionPanelState) {\n      setRightSectionPanelState(false);\n    }\n    setSelectedItemData(null);\n  }, [setRightSectionPanelState]);\n\n  const handleViewDetailsFromList = useCallback(\n    (data) => {\n      setShowDetails(true);\n      if (setRightSectionPanelState) {\n        setRightSectionPanelState(false);\n      }\n      setSelectedItemData(data);\n      if (shellContext) {\n        shellContext.setInquiryMenuToggle(false);\n      }\n    },\n    [setRightSectionPanelState, shellContext]\n  );\n\n  const itemDetails = useMemo(() => {\n    if (\n      selectedItemData &&\n      !overrideDetailRightSection &&\n      !rightSectionPanelState\n    ) {\n      return Object.entries(selectedItemData)\n        .filter(\n          ([key, value]) =>\n            'geometry' !== key && !isObject(value) && !isArray(value)\n        )\n        .map(([key, value]) => {\n          return (\n            <FluentTextField\n              label={startCase(key)}\n              value={value}\n              InputProps={{\n                readOnly: true\n              }}\n            />\n          );\n        });\n    }\n\n    return;\n  }, [overrideDetailRightSection, rightSectionPanelState, selectedItemData]);\n\n  const gridColumnDefinition = useMemo(() => {\n    if (!columnDefs) return;\n\n    //check if there's actions renderer to use. Otherwise, using the default actions renderer\n    if (frameworkComponents?.actionsRenderer) {\n      return columnDefs;\n    } else {\n      return [\n        ...columnDefs,\n        {\n          headerName: t('mapLayout.actions', { defaultValue: 'Actions' }),\n          field: 'actions',\n          suppressSizeToFit: true,\n          minWidth: 100,\n          maxWidth: 125,\n          cellRenderer: 'actionsRenderer',\n          cellRendererParams: {\n            openView: (data) => handleViewDetailsFromList(data)\n          },\n          sortable: false\n        }\n      ];\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [columnDefs, frameworkComponents, t]);\n\n  const detailSheetHeight = useMemo(() => {\n    if (!showGrid) {\n      return '73vh';\n    } else if (showGrid && !showMap) {\n      return `calc(67vh + 6vh)`;\n    } else {\n      return `calc(${mapHeight} + ${gridHeight} + 6vh)`;\n    }\n  }, [gridHeight, mapHeight, showGrid, showMap]);\n\n  const handleSelectLayers = (e) => {\n    setSelectedLayers(e);\n  };\n\n  const handleSelectMarker = useCallback((data) => {\n    setSelectedFeatureIdExternal(data?.id);\n  }, []);\n\n  const handleOnCellClicked = useCallback(\n    (params) => {\n      if (onCellClicked) {\n        onCellClicked(params);\n      }\n\n      if (!params?.node?.group && params?.colDef?.field !== 'actions') {\n        handleSelectMarker(params?.data);\n      }\n    },\n    [handleSelectMarker, onCellClicked]\n  );\n\n  const listView = useMemo(() => {\n    if (hideListView) return;\n\n    return (\n      <ListView\n        data={filteredListData ?? []}\n        listViewConfig={listViewCardConfig ?? cardConfig}\n        noWrapPrimaryText={noWrapPrimaryText}\n        viewEvent={listViewDetailsEvent ?? handleViewDetailsFromList}\n        showMarkerEvent={handleSelectMarker}\n        chipConfig={listViewChipConfig}\n      />\n    );\n  }, [\n    cardConfig,\n    filteredListData,\n    handleSelectMarker,\n    handleViewDetailsFromList,\n    hideListView,\n    listViewCardConfig,\n    listViewChipConfig,\n    listViewDetailsEvent,\n    noWrapPrimaryText\n  ]);\n\n  const handleSetSelectedFeatureProperties = useCallback((currentFeature) => {\n    if (currentFeature) {\n      let featureProperties = currentFeature?.getProperties();\n\n      setSelectedFeatureCoordinates(\n        currentFeature.getGeometry().getCoordinates()\n      );\n\n      setSelectedFeatureProperties(featureProperties);\n    }\n  }, []);\n\n  const handleCloseFeaturePopover = useCallback(() => {\n    setSelectedFeatureIdExternal(null);\n  }, []);\n\n  const handleSetMapComponent = useCallback((value) => {\n    setMap(value);\n  }, []);\n\n  const mapComponent = useMemo(() => {\n    return (\n      <div>\n        <Grid container>\n          <Grid\n            item\n            xs={3}\n            style={{\n              display: !hideListView && showList ? 'block' : 'none'\n            }}\n          >\n            <div className={clsx(classes.fullHeight, classes.listViewWrapper)}>\n              {listView}\n            </div>\n          </Grid>\n          <Grid item xs={showList ? 9 : 12}>\n            <UdpMapComponent\n              map={map}\n              handleSetMapComponent={handleSetMapComponent}\n              data={data}\n              isGeoJsonFormat={isGeoJsonFormat}\n              geoJsonMappingConfig={geoJsonMappingConfig}\n              enableZoom={showZoomControl}\n              mapZoom={mapZoom}\n              mapCenter={currentCenter}\n              mapHeight={mapHeight}\n              crs={crs}\n              mapProjection={mapProjection}\n              mapDataProjection={mapDataProjection}\n              getFilteredMapData={mapFilter}\n              getVectorLayerSources={getVectorLayerSources}\n              getFeatureStyles={getMapFeatureStyles ?? getStyles}\n              getSelectedFeatureStyles={getSelectedFeatureStyles}\n              filterPanel={filterPanel}\n              filterPanelCallback={filterCallback}\n              enableTileSelection={!hideTileSelection}\n              tileLayersOptions={tileLayersOptions}\n              defaultTileOptionName={defaultTileOptionName}\n              layerOptions={layerOptions}\n              initialSelectedLayers={initialSelectedLayers}\n              bulkSelectedFeaturesActionPanel={selectedFeaturesActionPanel}\n              handleSetSelectedFeaturesOnBulkSelect={getSelectedFeatures}\n              filterLayersByRole={layerRoles?.length > 0}\n              layerKeys={layerKeys}\n              layerKeySeparator={layerKeySeparator}\n              user={user}\n              layerRoles={layerRoles}\n              filteredLayerOptionsByRole={filteredLayerOptions}\n              handleSetFilteredLayerOptionsByRole={setFilterLayerOptions}\n              enableViewFeature={enableViewFeature}\n              handleViewFeature={handleViewDetailsFromPopover}\n              bulkSelectionActive={bulkSelectionActive}\n              splitActive={splitActive}\n              enableDragBox={enableDragBox}\n              selectedFeatureCoordinates={selectedFeatureCoordinates}\n              selectedFeatureProperties={selectedFeatureProperties}\n              handleSetSelectedFeatureProperties={\n                handleSetSelectedFeatureProperties\n              }\n              enableAddNewFeature={addActive}\n              readOnlyLayers={readOnlyLayers}\n              selectedFeatureIdExternal={selectedFeatureIdExternal}\n              additionalOnclosePopover={handleCloseFeaturePopover}\n              popoverPrimaryActions={popoverPrimaryActions}\n              popoverMoreIconButtonActions={popoverMoreIconButtonActions}\n              getMessagePopover={getMessagePopover}\n              getMessageIconPopover={getMessageIconPopover}\n              hideMessageIconPopover={hideMessageIconPopover}\n              popoverCardConfig={cardConfig}\n              selectedLayers={selectedLayers}\n              handleSetSelectedLayers={handleSelectLayers}\n              handleGetZoomExtent={handleGetZoomExtent}\n              minZoom={minZoom}\n              maxZoom={maxZoom}\n            />\n          </Grid>\n        </Grid>\n      </div>\n    );\n  }, [\n    addActive,\n    bulkSelectionActive,\n    cardConfig,\n    classes.fullHeight,\n    classes.listViewWrapper,\n    crs,\n    currentCenter,\n    data,\n    defaultTileOptionName,\n    enableDragBox,\n    enableViewFeature,\n    filterCallback,\n    filterPanel,\n    filteredLayerOptions,\n    geoJsonMappingConfig,\n    getMapFeatureStyles,\n    getMessageIconPopover,\n    getMessagePopover,\n    getSelectedFeatureStyles,\n    getSelectedFeatures,\n    getStyles,\n    getVectorLayerSources,\n    handleCloseFeaturePopover,\n    handleGetZoomExtent,\n    handleSetMapComponent,\n    handleSetSelectedFeatureProperties,\n    handleViewDetailsFromPopover,\n    hideListView,\n    hideMessageIconPopover,\n    hideTileSelection,\n    initialSelectedLayers,\n    isGeoJsonFormat,\n    layerKeySeparator,\n    layerKeys,\n    layerOptions,\n    layerRoles,\n    listView,\n    map,\n    mapDataProjection,\n    mapFilter,\n    mapHeight,\n    mapProjection,\n    mapZoom,\n    maxZoom,\n    minZoom,\n    popoverMoreIconButtonActions,\n    popoverPrimaryActions,\n    readOnlyLayers,\n    selectedFeatureCoordinates,\n    selectedFeatureIdExternal,\n    selectedFeatureProperties,\n    selectedFeaturesActionPanel,\n    selectedLayers,\n    showList,\n    showZoomControl,\n    splitActive,\n    tileLayersOptions,\n    user\n  ]);\n\n  const gridComponent = useMemo(() => {\n    return (\n      <div>\n        <AmbientGridTemplate\n          title={gridTitle}\n          data={filteredGridData}\n          columnDefs={gridColumnDefinition}\n          groupingData={groupingData}\n          frameworkComponents={{\n            actionsRenderer: ActionsRenderer,\n            ...frameworkComponents\n          }}\n          primaryActionButton={primaryActionButton}\n          loading={loading}\n          rowNodeIdName={rowNodeIdName}\n          height={showGrid && !showMap ? '67vh' : gridHeight}\n          paginationPageSize={paginationPageSize}\n          onSearch={onSearch}\n          onRowSelected={onRowSelected}\n          rowModelType={rowModelType}\n          api={api}\n          columnApi={columnApi}\n          gridReady={gridReady}\n          dynamicSizing\n          onCellClicked={handleOnCellClicked}\n          {...otherGridProps}\n        />\n      </div>\n    );\n  }, [\n    api,\n    columnApi,\n    filteredGridData,\n    frameworkComponents,\n    gridColumnDefinition,\n    gridHeight,\n    gridReady,\n    gridTitle,\n    groupingData,\n    handleOnCellClicked,\n    loading,\n    onRowSelected,\n    onSearch,\n    otherGridProps,\n    paginationPageSize,\n    primaryActionButton,\n    rowModelType,\n    rowNodeIdName,\n    showGrid,\n    showMap\n  ]);\n\n  const mapGrid = useMemo(() => {\n    if (position === 'gridOnTop') {\n      return (\n        <div>\n          {showGrid && gridComponent}\n          {showMap && mapComponent}\n        </div>\n      );\n    }\n    return (\n      <div>\n        {showMap && mapComponent}\n        {showGrid && gridComponent}\n      </div>\n    );\n  }, [gridComponent, mapComponent, position, showGrid, showMap]);\n\n  return (\n    <div>\n      <UdpMapToolbar\n        map={map}\n        mapTitle={mapTitle}\n        mapProjection={mapProjection}\n        getFeatureStyles={getMapFeatureStyles}\n        getSelectedFeatureStyles={getSelectedFeatureStyles}\n        filterPanel={filterPanel}\n        filterPanelCallback={filterCallback}\n        enableTileSelection={!hideTileSelection}\n        tileLayersOptions={tileLayersOptions}\n        defaultTileOptionName={defaultTileOptionName}\n        layerOptions={layerOptions}\n        initialSelectedLayers={initialSelectedLayers}\n        bulkSelectedFeaturesActionPanel={selectedFeaturesActionPanel}\n        handleSetSelectedFeaturesOnBulkSelect={getSelectedFeatures}\n        handleSetSelectedFeatureOnSelect={getSelectedViewItemData}\n        handleRefresh={refreshEvent}\n        refreshButtonTooltip={refreshButtonTooltip}\n        readOnlyMap={readOnlyMap}\n        enableAdd={enableAddNewFeature}\n        handleAddNewFeatures={handleAddNewFeatures}\n        addMultipleFeatures={addMultipleFeatures}\n        enableSplitFeature={enableSplitFeature}\n        handleSplitFeature={handleSplitFeature}\n        handleSetSelectedFeatureProperties={handleSetSelectedFeatureProperties}\n        filteredLayerOptionsByRole={filteredLayerOptions}\n        handleSetBulkSelectionActive={setBulkSelectionActive}\n        enableDragBox={enableDragBox}\n        handleSetEnableDragBox={setEnableDragBox}\n        splitActive={splitActive}\n        handleSetSplitActive={setSplitActive}\n        enableAddNewFeature={addActive}\n        handleEnableAddNewFeature={setAddActive}\n        readOnlyLayers={readOnlyLayers}\n        selectedLayers={selectedLayers}\n        handleSetSelectedLayers={handleSelectLayers}\n        addFeaturePanelConfig={addFeaturePanelConfig}\n      />\n      <Grid container>\n        <Grid\n          item\n          {...(showDetails || rightSectionPanelState\n            ? { xs: 7, sm: 9 }\n            : { xs: 12 })}\n        >\n          {mapGrid}\n        </Grid>\n        {(showDetails || rightSectionPanelState) && (\n          <Grid\n            item\n            xs={5}\n            sm={3}\n            className={classes.leftColumn}\n            style={{ maxHeight: detailSheetHeight }}\n          >\n            <div className={classes.detailSheetHeader}>\n              <FluentIconButton\n                onClick={handleCloseDetailSheet}\n                icon={ChromeCloseIcon}\n              />\n              <StandardTitle className={classes.detailTitle}>\n                {rightSectionPanelTitle ??\n                  t('mapLayout.details', { defaultValue: 'Details' })}\n              </StandardTitle>\n            </div>\n            <div\n              className={noRightPanelPadding ? null : classes.detailSheetBody}\n            >\n              {rightSectionPanel &&\n                (rightSectionPanelState ||\n                  (showDetails && overrideDetailRightSection)) &&\n                rightSectionPanel}\n              {showDetails && itemDetails && (\n                <AmbientCard fullWidth>{itemDetails}</AmbientCard>\n              )}\n            </div>\n          </Grid>\n        )}\n      </Grid>\n    </div>\n  );\n};\n"],"mappings":"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ACIC;GACCC;GACxB,mBAAmBvC;GACHwH;GAChB,yBAAyBuD;GACJxG;GACZC;GACAC;GAAQ,CAAA,CAEf,CACF,CACF;IAEP;EACDyC;EACAN;EACA5G;EACA0H,QAAQzK;EACRyK,QAAQrJ;EACRsF;EACA2D;EACA1H;EACAuB;EACAiF;EACA3D;EACAnB;EACAD;EACAqF;EACAvG;EACA4C;EACAT;EACAD;EACAW;EACAzC;EACAyI;EACA/E;EACA0H;EACApH;EACAqH;EACAJ;EACAnC;EACAxH;EACAU;EACAnB;EACAvB;EACAK;EACAc;EACA4C;EACA7C;EACAiD;EACAuH;EACA/E;EACA9C;EACAG;EACAL;EACAH;EACAF;EACAsB;EACAD;EACApC;EACAD;EACA4B;EACAiD;EACAI;EACAxB;EACArE;EACAiG;EACAnH;EACAyD;EACAgD;EACA7D;EACA0E;EACD,CAAC;CAEF,MAAMmE,gBAAgBjR,cAAc;AAClC,SACE,sBAAA,cAAC,OAAA,MACC,sBAAA,cAAC,qBAAD;GACE,OAAO6J;GACP,MAAMiE;GACN,YAAYuB;GACEtF;GACd,qBAAqB;IACnBuF,iBAAiBhO;IACjB,GAAG0I;IACJ;GACoBC;GACZC;GACMC;GACf,QAAQ1E,YAAY,CAACF,UAAU,SAAS6E;GACpBC;GACVC;GACKC;GACDC;GACTC;GACMC;GACAC;GACX,eAAA;GACA,eAAe0F;GACf,GAAIvF;GAAe,CAAA,CAEjB;IAEP;EACDL;EACAC;EACAoD;EACA9D;EACAqF;EACAjF;EACAO;EACAd;EACAE;EACAsG;EACAnG;EACAK;EACAD;EACAQ;EACAT;EACAJ;EACAO;EACAL;EACA1E;EACAF;EACD,CAAC;CAEF,MAAM2L,UAAUlR,cAAc;AAC5B,MAAIyD,aAAa,YACf,QACE,sBAAA,cAAC,OAAA,MACEgC,YAAYwL,eACZ1L,WAAWyL,aACR;AAGV,SACE,sBAAA,cAAC,OAAA,MACEzL,WAAWyL,cACXvL,YAAYwL,cACT;IAEP;EAACA;EAAeD;EAAcvN;EAAUgC;EAAUF;EAAQ,CAAC;AAE9D,QACE,sBAAA,cAAC,OAAA,MACC,sBAAA,cAAC,eAAD;EACOoG;EACK1D;EACKO;EACf,kBAAkBN;EACQC;EACb3B;EACb,qBAAqBC;EACrB,qBAAqB,CAACF;EACH6B;EACI9B;EACTJ;EACSlB;EACvB,iCAAiC0B;EACjC,uCAAuChB;EACvC,kCAAkCE;EAClC,eAAee;EACOC;EACTC;EACb,WAAWwC;EACWG;EACDF;EACDC;EACAE;EACgBkH;EACpC,4BAA4B9E;EAC5B,8BAA8BG;EACfT;EACf,wBAAwBC;EACXS;EACb,sBAAsBC;EACtB,qBAAqBG;EACrB,2BAA2BC;EACXpD;EACAyD;EAChB,yBAAyBuD;EACFpJ;EAAsB,CAAA,EAE/C,sBAAA,cAAC,MAAD,EAAM,WAAA,MAwCA,EAvCJ,sBAAA,cAAC,MAAD;EACE,MAAA;EACA,GAAKmE,eAAelF,yBAChB;GAAEoL,IAAI;GAAGC,IAAI;GAAG,GAChB,EAAED,IAAI,IAAK;EAGX,EADHD,QACG,GACJjG,eAAelF,2BACf,sBAAA,cAAC,MAAD;EACE,MAAA;EACA,IAAI;EACJ,IAAI;EACJ,WAAW8G,QAAQtJ;EACnB,OAAO,EAAE8N,WAAWpB,mBAAmB;EAwB1C,EAtBG,sBAAA,cAAC,OAAD,EAAK,WAAWpD,QAAQhK,mBASnB,EARH,sBAAA,cAAC,kBAAD;EACE,SAASgM;EACT,MAAMjO;EAAgB,CAAA,EAExB,sBAAA,cAAC,eAAD,EAAe,WAAWiM,QAAQxJ,aAGnB,EAFZyC,0BACCiH,EAAE,qBAAqB,EAAEyC,cAAc,WAAW,CAAC,CACxC,CACZ,EACL,sBAAA,cAAC,OAAD,EACE,WAAWpK,sBAAsB,OAAOyH,QAAQzJ,iBAS7C,EAPFyC,sBACEE,0BACEkF,eAAehF,+BAClBJ,mBACDoF,eAAe8D,eACd,sBAAA,cAAC,aAAD,EAAa,WAAA,MACd,EADyBA,YACzB,CACE,CAER,CACG,CACF"}