salix/front/core/components/icon-focusable/icon-focusable.js

30 lines
745 B
JavaScript

import ngModule from '../../module';
import './style.scss';
export default class IconFocusable {
constructor($element) {
$element[0].tabIndex = 0;
$element.on("keyup", event => this.onKeyDown(event, $element));
}
onKeyDown(event, $element) {
if (event.defaultPrevented) return;
if (event.keyCode == 32 || event.keyCode == 13) {
event.preventDefault();
$element.triggerHandler('click');
}
}
}
IconFocusable.$inject = ['$element'];
ngModule.component('vnIconFocusable', {
controller: IconFocusable,
template: require('./icon-focusable.html'),
bindings: {
icon: '@',
className: '@?',
enabled: '<?',
label: '@?'
}
});