redefine_global_view_state = (zoom_data, viewId, zoom, target) => {
var globalViewState
var min_zoom_x = 0
var min_zoom_y = 0
var zoom_curated_x = Math.max(min_zoom_x, zoom[0])
var zoom_curated_y = Math.max(min_zoom_x, zoom[1])
var pan_curated_x = curate_pan_x(target[0], zoom_curated_x, ini_pan_x)
var pan_curated_y = curate_pan_y(target[1], zoom_curated_y, ini_pan_y)
if (viewId === 'matrix') {
globalViewState = {
matrix: {
zoom: [zoom_curated_x, zoom_curated_y],
target: [pan_curated_x, pan_curated_y]
},
rows: {
zoom: [ini_zoom_x, zoom_curated_y],
target: [label_row_x, pan_curated_y]
},
cols: {
zoom: [zoom_curated_x, ini_zoom_y],
target: [pan_curated_x, label_col_y]
},
}
} else if (viewId === 'cols'){
globalViewState = {
matrix: {
zoom: [zoom_curated_x, zoom_data.zoom_y],
target: [pan_curated_x, zoom_data.pan_y]
},
rows: {
zoom: [ini_zoom_x, zoom_data.zoom_y],
target: [label_row_x, zoom_data.pan_y]
},
cols: {
zoom: [zoom_curated_x, ini_zoom_y],
target: [pan_curated_x, label_col_y]
},
}
} else if (viewId === 'rows'){
globalViewState = {
matrix: {
zoom: [zoom_data.zoom_x, zoom_curated_y],
target: [zoom_data.pan_x, pan_curated_y]
},
rows: {
zoom: [ini_zoom_x, zoom_curated_y],
target: [label_row_x, pan_curated_y]
},
cols: {
zoom: [zoom_data.zoom_x, ini_zoom_y],
target: [zoom_data.pan_x, label_col_y]
},
}
}
return globalViewState
}