Handlebars.registerHelper('selected', (current, value) =>
({value: value, selected: current === value ? 'selected' : undefined}));
Handlebars.registerHelper('equals', (a, b) => a === b);
Handlebars.registerHelper('editable', (field, value) =>
`
${value}
`);
Template.body.events({
'click a.link': function(event) {
window.location.hash = $(event.target).attr('data-value');
},
'click div.value[contenteditable="true"]': function(event) {
if ($(event.target).text().length !== 1) {
return;
}
const range = document.createRange();
range.selectNodeContents(event.target);
const selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
},
'keypress div.value[contenteditable="true"]': function(event) {
if (event.which === 13 /* \n */) {
$(event.target).trigger('blur');
event.preventDefault();
}
event.stopPropagation();
},
});