public/javascripts/app/lib/btn/index.js (31 lines of code) (raw):
import angular from 'angular';
var btn = angular.module('guBtn', []);
var templates = {
'anchor': '<a class="{{className}}" ng-transclude></a>',
'button': '<button class="{{className}}" ng-transclude></button>',
}
btn.directive('guBtn', function btnDirective(){
return {
restrict: 'E',
replace: true,
transclude: true,
template: function (el, attrs) {
return attrs.href ? templates.anchor : templates.button;
},
scope: {
variant: "@",
size: "@"
},
link: function (scope, el, attrs) {
var className = 'btn';
if (scope.variant) {
className = `btn--${scope.variant}`;
}
if (scope.size) {
className += ` btn--${scope.size}`;
}
scope.className = className;
}
};
});
export default btn;