## ----eval = FALSE-------------------------------------------------------------
# ui = fluidPage(
#     ...,
#     plotOutput("heatmap", click = "heatmap_click")
# )
# server = function(input, output, session) {
#     ht_obj = reactiveVal(NULL)
#     ht_pos_obj = reactiveVal(NULL)
#     output$heatmap = renderPlot({
#         ...
#         ht = draw(Heatmap(mat))
#         ht_pos = htPositionsOnDevice(ht)
#         ht_obj(ht)
#         ht_pos_obj(ht_pos)
#     })
#     observeEvent(input$heatmap_click, {
#         pos = getPositionFromClick(input$heatmap_click)
#         df = selectPosition(ht_obj(), pos, mark = FALSE,
#             ht_pos = ht_pos_obj(), verbose = FALSE)
#         # do something with `df`
#         ...
#     })
# }

