One can imagine behaviour of this module in the following way:
A tree of height m
is created.
We begin at the top of the tree with the entire data.table
.
A category (column) from a data.table
is chosen via uiSequence
.
Each value of this fixed category determines a subtable of the data.table
.
For each value choice a child node is created and receives the value choice.
Therefore, every child node implicitly receives a subtable corresponding to the
received value choice.
Child node also receives an information from user which category should be fixed next.
It then performs the same calculations as the top node, but based on the implicitly
received subtable.
Simultaneously, for each node desired UI (e.g., tabs) is created.
If no information about next category to fix is provided for a node, it assumes it is a leaf.
At the end, at each leaf, a summary function is applied.
Note that each leaf (and each node) receives the entire data.table
and
the information about chosen values leading to this leaf (node).
Hence, summary can be based on implicitly determined subtable, but also based
on entire data.table
or some subtable determined by a subset of chosen values.
slicerUI(id) slicer(input, output, session, datatable, uiSequence, serverFunction, uiFunction, ...)
id | An id string that corresponds with the id used to call the module's UI function. |
---|---|
input | shiny server input object |
output | shiny server output object |
session | shiny server session object |
datatable | A reactive |
uiSequence | A |
serverFunction | A summary module server function.
This function should take, at minimum, the following arguments:
|
uiFunction | A summary module function UI taking one argument: |
... | Additional arguments passed to |
Shiny module UI.
Shiny module server function.