GitHub-inspired punch card implementation as an Angular directive