app-generatorized bar-interaction-viewer