@@ -51,10 +51,15 @@ const lmeState = {
managerHighlight : null ,
managerHighlight : null ,
managerHighlightedObjectId : null ,
managerHighlightedObjectId : null ,
managerHighlightedCategoryKey : null ,
managerHighlightedCategoryKey : null ,
managerOutsideSelectionBound : false ,
managerHiddenObjects : new Map ( ) ,
managerHiddenObjects : new Map ( ) ,
managerHiddenObjectIds : new Set ( ) ,
managerHiddenObjectIds : new Set ( ) ,
managerHiddenMeasurementSummaryIds : new Set ( ) ,
managerHiddenMeasurementSideIds : new Set ( ) ,
managerHiddenCategories : new Set ( ) ,
managerHiddenCategories : new Set ( ) ,
managerObjectOrder : { }
managerObjectOrder : { } ,
managerExpandedRows : new Set ( ) ,
dotNetReference : null
} ;
} ;
// AdE publishes the cadastral WMS in ETRS89. WMS 1.1.1 keeps the longitude,
// AdE publishes the cadastral WMS in ETRS89. WMS 1.1.1 keeps the longitude,
@@ -78,6 +83,7 @@ window.lmeMap = {
setImportedSheetLayerVisible ,
setImportedSheetLayerVisible ,
setLayerOrder ,
setLayerOrder ,
refreshLayerManager ,
refreshLayerManager ,
clearLayerManagerSelection : clearManagerHighlight ,
setImportedMeasurementsVisible ,
setImportedMeasurementsVisible ,
setDrawingMeasurementsVisible ,
setDrawingMeasurementsVisible ,
addProjectMarker ,
addProjectMarker ,
@@ -106,7 +112,10 @@ window.lmeMap = {
showInfo : setInfo
showInfo : setInfo
} ;
} ;
function init ( ) {
function init ( dotNetReference ) {
if ( dotNetReference ) {
lmeState . dotNetReference = dotNetReference ;
}
if ( lmeState . map ) {
if ( lmeState . map ) {
return ;
return ;
}
}
@@ -190,6 +199,7 @@ function init() {
}
}
lmeState . map . on ( "click" , async event => {
lmeState . map . on ( "click" , async event => {
clearManagerHighlight ( ) ;
const info = await queryFeatureInfo ( event . latlng ) ;
const info = await queryFeatureInfo ( event . latlng ) ;
if ( info ) {
if ( info ) {
L . popup ( ) . setLatLng ( event . latlng ) . setContent ( info ) . openOn ( lmeState . map ) ;
L . popup ( ) . setLatLng ( event . latlng ) . setContent ( info ) . openOn ( lmeState . map ) ;
@@ -211,6 +221,19 @@ function init() {
closeCadastrePreview ( ) ;
closeCadastrePreview ( ) ;
}
}
} ) ;
} ) ;
if ( ! lmeState . managerOutsideSelectionBound ) {
document . addEventListener ( "pointerdown" , event => {
if ( ! lmeState . managerHighlightedObjectId ) {
return ;
}
const selectedRow = event . target ? . closest ? . ( ".layer-manager-object" ) ;
if ( selectedRow ? . dataset . objectId === lmeState . managerHighlightedObjectId ) {
return ;
}
clearManagerHighlight ( ) ;
} ) ;
lmeState . managerOutsideSelectionBound = true ;
}
setInfo ( "Mappa pronta: satellite + catasto AdE" ) ;
setInfo ( "Mappa pronta: satellite + catasto AdE" ) ;
}
}
@@ -1164,6 +1187,9 @@ function refreshLayerManager() {
if ( ! container || ! lmeState . map ) {
if ( ! container || ! lmeState . map ) {
return ;
return ;
}
}
captureLayerManagerExpansion ( container ) ;
const scrollHost = container . closest ( ".map-layer-panel" ) ;
const scrollTop = scrollHost ? . scrollTop || 0 ;
applyStoredLayerManagerVisibility ( ) ;
applyStoredLayerManagerVisibility ( ) ;
container . innerHTML = "" ;
container . innerHTML = "" ;
lmeState . managerRecords = new Map ( ) ;
lmeState . managerRecords = new Map ( ) ;
@@ -1184,6 +1210,12 @@ function refreshLayerManager() {
applyManagedVisualOrder ( container ) ;
applyManagedVisualOrder ( container ) ;
bindLayerManagerDrag ( container ) ;
bindLayerManagerDrag ( container ) ;
bindLayerManagerMoveButtons ( container ) ;
bindLayerManagerMoveButtons ( container ) ;
if ( scrollHost ) {
scrollHost . scrollTop = scrollTop ;
window . requestAnimationFrame ( ( ) => {
scrollHost . scrollTop = scrollTop ;
} ) ;
}
}
}
function renderLayerManagerCategory ( category , records ) {
function renderLayerManagerCategory ( category , records ) {
@@ -1191,6 +1223,7 @@ function renderLayerManagerCategory(category, records) {
group . className = "layer-manager-group" ;
group . className = "layer-manager-group" ;
group . dataset . dragType = "category" ;
group . dataset . dragType = "category" ;
group . dataset . categoryKey = category . key ;
group . dataset . categoryKey = category . key ;
bindLayerManagerExpansion ( group , ` category: ${ category . key } ` ) ;
const visibleCount = records . filter ( record => ! lmeState . managerHiddenObjectIds . has ( record . id ) ) . length ;
const visibleCount = records . filter ( record => ! lmeState . managerHiddenObjectIds . has ( record . id ) ) . length ;
const categoryVisible = ! lmeState . managerHiddenCategories . has ( category . key )
const categoryVisible = ! lmeState . managerHiddenCategories . has ( category . key )
&& ( ! category . roots . length || category . roots . some ( layer => lmeState . map . hasLayer ( layer ) ) ) ;
&& ( ! category . roots . length || category . roots . some ( layer => lmeState . map . hasLayer ( layer ) ) ) ;
@@ -1221,6 +1254,7 @@ function renderLayerManagerBlock(category, source, records) {
block . dataset . dragType = "block" ;
block . dataset . dragType = "block" ;
block . dataset . categoryKey = category . key ;
block . dataset . categoryKey = category . key ;
block . dataset . blockKey = source ;
block . dataset . blockKey = source ;
bindLayerManagerExpansion ( block , ` block: ${ category . key } : ${ source } ` ) ;
const visibleCount = records . filter ( record => ! lmeState . managerHiddenObjectIds . has ( record . id ) ) . length ;
const visibleCount = records . filter ( record => ! lmeState . managerHiddenObjectIds . has ( record . id ) ) . length ;
const visible = visibleCount === records . length ;
const visible = visibleCount === records . length ;
block . innerHTML = ` <summary><button type="button" class="layer-drag-handle" aria-label="Trascina blocco">☰</button><input type="checkbox" ${ visible ? "checked" : "" } aria-label="Mostra blocco"><span class="layer-manager-title"> ${ escapeHtml ( source ) } </span> ${ layerManagerMoveButtons ( "blocco" ) } <span class="layer-manager-count"> ${ records . length } </span></summary><div class="layer-manager-children"></div> ` ;
block . innerHTML = ` <summary><button type="button" class="layer-drag-handle" aria-label="Trascina blocco">☰</button><input type="checkbox" ${ visible ? "checked" : "" } aria-label="Mostra blocco"><span class="layer-manager-title"> ${ escapeHtml ( source ) } </span> ${ layerManagerMoveButtons ( "blocco" ) } <span class="layer-manager-count"> ${ records . length } </span></summary><div class="layer-manager-children"></div> ` ;
@@ -1239,8 +1273,12 @@ function renderLayerManagerBlock(category, source, records) {
function renderLayerManagerObject ( record , index ) {
function renderLayerManagerObject ( record , index ) {
const object = document . createElement ( "details" ) ;
const object = document . createElement ( "details" ) ;
object . className = "layer-manager-object" ;
object . className = "layer-manager-object" ;
if ( record . id === lmeState . managerHighlightedObjectId ) {
object . classList . add ( "layer-manager-object-selected" ) ;
}
object . dataset . dragType = "object" ;
object . dataset . dragType = "object" ;
object . dataset . objectId = record . id ;
object . dataset . objectId = record . id ;
bindLayerManagerExpansion ( object , ` object: ${ record . id } ` ) ;
const visible = ! lmeState . managerHiddenObjectIds . has ( record . id ) ;
const visible = ! lmeState . managerHiddenObjectIds . has ( record . id ) ;
object . innerHTML = ` <summary><button type="button" class="layer-drag-handle" aria-label="Trascina oggetto">☰</button><input type="checkbox" ${ visible ? "checked" : "" } aria-label="Mostra oggetto"><span class="layer-manager-title"> ${ escapeHtml ( managedObjectLabel ( record , index ) ) } </span> ${ layerManagerMoveButtons ( "oggetto" ) } <span class="layer-manager-count">› </span></summary><div class="layer-manager-details"></div> ` ;
object . innerHTML = ` <summary><button type="button" class="layer-drag-handle" aria-label="Trascina oggetto">☰</button><input type="checkbox" ${ visible ? "checked" : "" } aria-label="Mostra oggetto"><span class="layer-manager-title"> ${ escapeHtml ( managedObjectLabel ( record , index ) ) } </span> ${ layerManagerMoveButtons ( "oggetto" ) } <span class="layer-manager-count">› </span></summary><div class="layer-manager-details"></div> ` ;
const checkbox = object . querySelector ( "input" ) ;
const checkbox = object . querySelector ( "input" ) ;
@@ -1253,13 +1291,137 @@ function renderLayerManagerObject(record, index) {
highlightManagedObject ( record ) ;
highlightManagedObject ( record ) ;
} ) ;
} ) ;
const details = object . querySelector ( ".layer-manager-details" ) ;
const details = object . querySelector ( ".layer-manager-details" ) ;
details . appendChild ( renderLayerManagerVisibilityOption (
geometryVisibilityLabel ( record . layer ) ,
visible ,
checked => setManagedObjectVisible ( record , checked , true ) ) ) ;
if ( supportsManagedMeasurements ( record ) ) {
managedMeasurementKinds ( record ) . forEach ( kind => {
const measurementsVisible = managedMeasurementsGloballyVisible ( record . categoryKey )
&& ! managedMeasurementHiddenSet ( kind . key ) . has ( record . id ) ;
details . appendChild ( renderLayerManagerVisibilityOption (
kind . label ,
measurementsVisible ,
checked => setManagedMeasurementKindVisible ( record , kind . key , checked ) ) ) ;
} ) ;
}
const rows = managedObjectDetails ( record . layer ) ;
const rows = managedObjectDetails ( record . layer ) ;
details . innerHTML = rows . length
const info = document . createElement ( "div" ) ;
info . className = "layer-manager-info" ;
info . innerHTML = rows . length
? rows . map ( value => ` <span> ${ escapeHtml ( value ) } </span> ` ) . join ( "" )
? rows . map ( value => ` <span> ${ escapeHtml ( value ) } </span> ` ) . join ( "" )
: "<span>Nessuna misura disponibile</span>" ;
: "<span>Nessuna misura disponibile</span>" ;
details . appendChild ( info ) ;
return object ;
return object ;
}
}
function renderLayerManagerVisibilityOption ( label , checked , onChange ) {
const option = document . createElement ( "label" ) ;
option . className = "layer-manager-suboption" ;
option . innerHTML = ` <input type="checkbox" ${ checked ? "checked" : "" } ><span> ${ escapeHtml ( label ) } </span> ` ;
const checkbox = option . querySelector ( "input" ) ;
checkbox . addEventListener ( "click" , event => event . stopPropagation ( ) ) ;
checkbox . addEventListener ( "change" , ( ) => onChange ( checkbox . checked ) ) ;
return option ;
}
function geometryVisibilityLabel ( layer ) {
if ( layer instanceof L . Polygon || layer instanceof L . Circle ) {
return "Area/geometria sulla mappa" ;
}
if ( layer instanceof L . Polyline ) {
return "Linea sulla mappa" ;
}
return "Punto sulla mappa" ;
}
function supportsManagedMeasurements ( record ) {
return [ "imported" , "drawings" ] . includes ( record . categoryKey )
&& ( record . layer instanceof L . Circle
|| record . layer instanceof L . Polygon
|| record . layer instanceof L . Polyline ) ;
}
function managedMeasurementsGloballyVisible ( categoryKey ) {
return categoryKey === "imported"
? lmeState . showImportedMeasurements
: lmeState . showDrawingMeasurements ;
}
function managedMeasurementKinds ( record ) {
if ( record . layer instanceof L . Polygon ) {
return [
{ key : "summary" , label : "Superficie e perimetro sulla mappa" } ,
{ key : "sides" , label : "Misure dei lati sulla mappa" }
] ;
}
if ( record . layer instanceof L . Circle ) {
return [ { key : "summary" , label : "Superficie, raggio e circonferenza sulla mappa" } ] ;
}
return [
{ key : "summary" , label : "Lunghezza totale sulla mappa" } ,
{ key : "sides" , label : "Misure dei tratti sulla mappa" }
] ;
}
function managedMeasurementHiddenSet ( kind ) {
return kind === "sides"
? lmeState . managerHiddenMeasurementSideIds
: lmeState . managerHiddenMeasurementSummaryIds ;
}
function setManagedMeasurementKindVisible ( record , kind , visible ) {
const hiddenSet = managedMeasurementHiddenSet ( kind ) ;
if ( visible ) {
if ( ! managedMeasurementsGloballyVisible ( record . categoryKey ) ) {
lmeState . managerRecords . forEach ( candidate => {
if ( candidate . categoryKey === record . categoryKey
&& supportsManagedMeasurements ( candidate ) ) {
lmeState . managerHiddenMeasurementSummaryIds . add ( candidate . id ) ;
lmeState . managerHiddenMeasurementSideIds . add ( candidate . id ) ;
}
} ) ;
if ( record . categoryKey === "imported" ) {
lmeState . showImportedMeasurements = true ;
} else {
lmeState . showDrawingMeasurements = true ;
}
void lmeState . dotNetReference ? . invokeMethodAsync (
"SetMeasurementsFromLayerManager" ,
record . categoryKey ,
true ) ;
}
hiddenSet . delete ( record . id ) ;
} else {
hiddenSet . add ( record . id ) ;
}
refreshImportedMeasurements ( ) ;
refreshDrawingMeasurements ( ) ;
refreshLayerManager ( ) ;
}
function captureLayerManagerExpansion ( container ) {
container . querySelectorAll ( "details[data-expansion-key]" ) . forEach ( row => {
if ( row . open ) {
lmeState . managerExpandedRows . add ( row . dataset . expansionKey ) ;
} else {
lmeState . managerExpandedRows . delete ( row . dataset . expansionKey ) ;
}
} ) ;
}
function bindLayerManagerExpansion ( row , key ) {
row . dataset . expansionKey = key ;
row . open = lmeState . managerExpandedRows . has ( key ) ;
row . addEventListener ( "toggle" , ( ) => {
if ( row . open ) {
lmeState . managerExpandedRows . add ( key ) ;
} else {
lmeState . managerExpandedRows . delete ( key ) ;
}
} ) ;
}
function setManagedCategoryVisible ( category , visible ) {
function setManagedCategoryVisible ( category , visible ) {
if ( category . key === "imported" ) {
if ( category . key === "imported" ) {
lmeState . importedVisible = visible ;
lmeState . importedVisible = visible ;
@@ -1343,9 +1505,16 @@ function managedCategoryEnabled(categoryKey) {
}
}
function highlightManagedObject ( record ) {
function highlightManagedObject ( record ) {
lmeState . managerHighlight . clearLayers ( ) ;
if ( lmeState . managerHighlightedObjectId === record . id ) {
clearManagerHighlight ( ) ;
return ;
}
clearManagerHighlight ( ) ;
lmeState . managerHighlightedObjectId = record . id ;
lmeState . managerHighlightedObjectId = record . id ;
lmeState . managerHighlightedCategoryKey = record . categoryKey ;
lmeState . managerHighlightedCategoryKey = record . categoryKey ;
document . querySelectorAll ( ".layer-manager-object" ) . forEach ( row => {
row . classList . toggle ( "layer-manager-object-selected" , row . dataset . objectId === record . id ) ;
} ) ;
const geojson = record . layer . toGeoJSON ? . ( ) ;
const geojson = record . layer . toGeoJSON ? . ( ) ;
if ( geojson ) {
if ( geojson ) {
L . geoJSON ( geojson , {
L . geoJSON ( geojson , {
@@ -1370,6 +1539,9 @@ function clearManagerHighlight() {
lmeState . managerHighlight ? . clearLayers ( ) ;
lmeState . managerHighlight ? . clearLayers ( ) ;
lmeState . managerHighlightedObjectId = null ;
lmeState . managerHighlightedObjectId = null ;
lmeState . managerHighlightedCategoryKey = null ;
lmeState . managerHighlightedCategoryKey = null ;
document . querySelectorAll ( ".layer-manager-object-selected" ) . forEach ( row => {
row . classList . remove ( "layer-manager-object-selected" ) ;
} ) ;
}
}
function layerManagerMoveButtons ( label ) {
function layerManagerMoveButtons ( label ) {
@@ -1595,6 +1767,7 @@ function applyImportedSheetVisibility() {
function setImportedMeasurementsVisible ( enabled ) {
function setImportedMeasurementsVisible ( enabled ) {
lmeState . showImportedMeasurements = Boolean ( enabled ) ;
lmeState . showImportedMeasurements = Boolean ( enabled ) ;
refreshImportedMeasurements ( ) ;
refreshImportedMeasurements ( ) ;
refreshLayerManager ( ) ;
setInfo ( lmeState . showImportedMeasurements
setInfo ( lmeState . showImportedMeasurements
? "Misure dei file GIS visibili."
? "Misure dei file GIS visibili."
: "Misure dei file GIS nascoste." ) ;
: "Misure dei file GIS nascoste." ) ;
@@ -1603,6 +1776,7 @@ function setImportedMeasurementsVisible(enabled) {
function setDrawingMeasurementsVisible ( enabled ) {
function setDrawingMeasurementsVisible ( enabled ) {
lmeState . showDrawingMeasurements = Boolean ( enabled ) ;
lmeState . showDrawingMeasurements = Boolean ( enabled ) ;
refreshDrawingMeasurements ( ) ;
refreshDrawingMeasurements ( ) ;
refreshLayerManager ( ) ;
setInfo ( lmeState . showDrawingMeasurements
setInfo ( lmeState . showDrawingMeasurements
? "Misure dei disegni visibili."
? "Misure dei disegni visibili."
: "Misure dei disegni nascoste." ) ;
: "Misure dei disegni nascoste." ) ;
@@ -1872,15 +2046,27 @@ function renderMeasurements(sourceGroup, targetGroup, visible, sourceType) {
sourceType
sourceType
} ;
} ;
visitMeasurableLayers ( sourceGroup , layer => {
visitMeasurableLayers ( sourceGroup , layer => {
const categoryKey = sourceType === "imported" ? "imported" : "drawings" ;
const objectId = managedLayerId ( layer , categoryKey ) ;
const showSummary = ! lmeState . managerHiddenMeasurementSummaryIds . has ( objectId ) ;
const showSides = ! lmeState . managerHiddenMeasurementSideIds . has ( objectId ) ;
if ( ! showSummary && ! showSides ) {
return ;
}
if ( context . count >= context . max || ! layerIsInView ( layer , context . bounds ) ) {
if ( context . count >= context . max || ! layerIsInView ( layer , context . bounds ) ) {
return ;
return ;
}
}
const layerContext = {
... context ,
showSummary ,
showSides : context . showSides && showSides
} ;
if ( layer instanceof L . Circle ) {
if ( layer instanceof L . Circle ) {
renderCircleMeasurement ( layer , targetGroup , context ) ;
renderCircleMeasurement ( layer , targetGroup , layerContext ) ;
} else if ( layer instanceof L . Polygon ) {
} else if ( layer instanceof L . Polygon ) {
renderPolygonMeasurement ( layer , targetGroup , context ) ;
renderPolygonMeasurement ( layer , targetGroup , layerContext ) ;
} else if ( layer instanceof L . Polyline ) {
} else if ( layer instanceof L . Polyline ) {
renderPolylineMeasurement ( layer , targetGroup , context ) ;
renderPolylineMeasurement ( layer , targetGroup , layerContext ) ;
}
}
} ) ;
} ) ;
}
}
@@ -1907,6 +2093,9 @@ function layerIsInView(layer, mapBounds) {
}
}
function renderCircleMeasurement ( layer , targetGroup , context ) {
function renderCircleMeasurement ( layer , targetGroup , context ) {
if ( ! context . showSummary ) {
return ;
}
const radius = layer . getRadius ( ) ;
const radius = layer . getRadius ( ) ;
const area = Math . PI * radius * radius ;
const area = Math . PI * radius * radius ;
const circumference = 2 * Math . PI * radius ;
const circumference = 2 * Math . PI * radius ;
@@ -1935,6 +2124,7 @@ function renderPolygonMeasurement(layer, targetGroup, context) {
const center = typeof layer . getCenter === "function"
const center = typeof layer . getCenter === "function"
? layer . getCenter ( )
? layer . getCenter ( )
: layer . getBounds ( ) . getCenter ( ) ;
: layer . getBounds ( ) . getCenter ( ) ;
if ( context . showSummary ) {
addMeasurementLabel (
addMeasurementLabel (
targetGroup ,
targetGroup ,
center ,
center ,
@@ -1942,6 +2132,7 @@ function renderPolygonMeasurement(layer, targetGroup, context) {
"summary" ,
"summary" ,
context ) ;
context ) ;
}
}
}
function renderPolylineMeasurement ( layer , targetGroup , context ) {
function renderPolylineMeasurement ( layer , targetGroup , context ) {
const lines = lineLatLngGroups ( layer . getLatLngs ( ) ) ;
const lines = lineLatLngGroups ( layer . getLatLngs ( ) ) ;
@@ -1950,7 +2141,7 @@ function renderPolylineMeasurement(layer, targetGroup, context) {
lines . forEach ( line => addSegmentLabels ( line , false , targetGroup , context ) ) ;
lines . forEach ( line => addSegmentLabels ( line , false , targetGroup , context ) ) ;
}
}
const longest = lines . reduce ( ( current , line ) => line . length > current . length ? line : current , [ ] ) ;
const longest = lines . reduce ( ( current , line ) => line . length > current . length ? line : current , [ ] ) ;
if ( longest . length ) {
if ( context . showSummary && longest . length ) {
addMeasurementLabel (
addMeasurementLabel (
targetGroup ,
targetGroup ,
longest [ Math . floor ( longest . length / 2 ) ] ,
longest [ Math . floor ( longest . length / 2 ) ] ,
@@ -2297,6 +2488,8 @@ function captureDisplayOptions() {
layerOrder : [ ... lmeState . layerOrder ] ,
layerOrder : [ ... lmeState . layerOrder ] ,
layerObjectOrder : { ... lmeState . managerObjectOrder } ,
layerObjectOrder : { ... lmeState . managerObjectOrder } ,
hiddenLayerObjects : [ ... lmeState . managerHiddenObjectIds ] ,
hiddenLayerObjects : [ ... lmeState . managerHiddenObjectIds ] ,
hiddenLayerMeasurementSummaries : [ ... lmeState . managerHiddenMeasurementSummaryIds ] ,
hiddenLayerMeasurementSides : [ ... lmeState . managerHiddenMeasurementSideIds ] ,
hiddenLayerCategories : [ ... lmeState . managerHiddenCategories ] ,
hiddenLayerCategories : [ ... lmeState . managerHiddenCategories ] ,
trailEnabled : lmeState . gpsTrailEnabled
trailEnabled : lmeState . gpsTrailEnabled
} ;
} ;
@@ -2333,6 +2526,12 @@ function applyProjectDisplayOptions(options) {
if ( Array . isArray ( options . hiddenLayerObjects ) ) {
if ( Array . isArray ( options . hiddenLayerObjects ) ) {
lmeState . managerHiddenObjectIds = new Set ( options . hiddenLayerObjects ) ;
lmeState . managerHiddenObjectIds = new Set ( options . hiddenLayerObjects ) ;
}
}
if ( Array . isArray ( options . hiddenLayerMeasurementSummaries ) ) {
lmeState . managerHiddenMeasurementSummaryIds = new Set ( options . hiddenLayerMeasurementSummaries ) ;
}
if ( Array . isArray ( options . hiddenLayerMeasurementSides ) ) {
lmeState . managerHiddenMeasurementSideIds = new Set ( options . hiddenLayerMeasurementSides ) ;
}
if ( Array . isArray ( options . hiddenLayerCategories ) ) {
if ( Array . isArray ( options . hiddenLayerCategories ) ) {
lmeState . managerHiddenCategories = new Set ( options . hiddenLayerCategories ) ;
lmeState . managerHiddenCategories = new Set ( options . hiddenLayerCategories ) ;
}
}
@@ -2416,12 +2615,21 @@ function managedGroupGeoJson(group, categoryKey) {
function resetLayerManagerProjectState ( ) {
function resetLayerManagerProjectState ( ) {
lmeState . managerHiddenObjects . clear ( ) ;
lmeState . managerHiddenObjects . clear ( ) ;
lmeState . managerHiddenObjectIds . clear ( ) ;
lmeState . managerHiddenObjectIds . clear ( ) ;
lmeState . managerHiddenMeasurementSummaryIds . clear ( ) ;
lmeState . managerHiddenMeasurementSideIds . clear ( ) ;
lmeState . managerHiddenCategories . clear ( ) ;
lmeState . managerHiddenCategories . clear ( ) ;
lmeState . managerObjectOrder = { } ;
lmeState . managerObjectOrder = { } ;
clearManagerHighlight ( ) ;
clearManagerHighlight ( ) ;
}
}
function clearManagedCategoryState ( categoryKey ) {
function clearManagedCategoryState ( categoryKey ) {
const category = layerManagerCategories ( ) . find ( item => item . key === categoryKey ) ;
if ( category ) {
managedRecordsForCategory ( category ) . forEach ( record => {
lmeState . managerHiddenMeasurementSummaryIds . delete ( record . id ) ;
lmeState . managerHiddenMeasurementSideIds . delete ( record . id ) ;
} ) ;
}
[ ... lmeState . managerHiddenObjects . entries ( ) ] . forEach ( ( [ id , record ] ) => {
[ ... lmeState . managerHiddenObjects . entries ( ) ] . forEach ( ( [ id , record ] ) => {
if ( record . categoryKey === categoryKey ) {
if ( record . categoryKey === categoryKey ) {
lmeState . managerHiddenObjects . delete ( id ) ;
lmeState . managerHiddenObjects . delete ( id ) ;