Skip to content

Commit 8919d21

Browse files
committed
Release v1.0.0
1 parent 1af341c commit 8919d21

File tree

4 files changed

+173
-153
lines changed

4 files changed

+173
-153
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "angular-fontawesome",
33
"description": "Angular directive for FontAwesome",
4-
"version": "0.4.0",
4+
"version": "1.0.0",
55
"main": [
66
"dist/angular-fontawesome.js"
77
],

dist/angular-fontawesome.js

Lines changed: 170 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -1,151 +1,171 @@
1+
'use strict';
2+
13
angular.module('picardy.fontawesome', [])
2-
.directive('fa', function () {
3-
return {
4-
restrict: 'E',
5-
template: '<i class="fa"></i>',
6-
replace: true,
7-
link: function (scope, element, attrs) {
8-
9-
/*** STRING ATTRS ***/
10-
// keep a state of the current attrs so that when they change,
11-
// we can remove the old attrs before adding the new ones.
12-
var currentClasses = {};
13-
14-
// generic function to bind string attrs
15-
function _observeStringAttr (attr, baseClass) {
16-
attrs.$observe(attr, function () {
17-
baseClass = baseClass || 'fa-' + attr;
18-
element.removeClass(currentClasses[attr]);
19-
if (attrs[attr]) {
20-
var className = [baseClass, attrs[attr]].join('-');
21-
element.addClass(className);
22-
currentClasses[attr] = className;
23-
}
24-
});
25-
}
26-
27-
_observeStringAttr('name', 'fa');
28-
_observeStringAttr('rotate');
29-
_observeStringAttr('flip');
30-
_observeStringAttr('stack');
31-
32-
/**
33-
* size can be passed "large" or an integer
34-
*/
35-
attrs.$observe('size', function () {
36-
var className;
37-
element.removeClass(currentClasses.size);
38-
39-
if (attrs.size === 'large') {
40-
className = 'fa-lg';
41-
} else if (!isNaN(parseInt(attrs.size, 10))) {
42-
className = 'fa-' + attrs.size + 'x';
43-
}
44-
45-
element.addClass(className);
46-
currentClasses.size = className;
47-
});
48-
49-
/**
50-
* stack can be passed "large" or an integer
51-
*/
52-
attrs.$observe('stack', function () {
53-
var className;
54-
element.removeClass(currentClasses.stack);
55-
56-
if (attrs.stack === 'large') {
57-
className = 'fa-stack-lg';
58-
} else if (!isNaN(parseInt(attrs.stack, 10))) {
59-
className = 'fa-stack-' + attrs.stack + 'x';
60-
}
61-
62-
element.addClass(className);
63-
currentClasses.stack = className;
64-
});
65-
66-
/*** BOOLEAN ATTRS ***/
67-
// generic function to bind boolean attrs
68-
function _observeBooleanAttr (attr, className) {
69-
attrs.$observe(attr, function () {
70-
className = className || 'fa-' + attr;
71-
var value = attr in attrs && attrs[attr] !== 'false' && attrs[attr] !== false;
72-
element.toggleClass(className, value);
73-
});
74-
}
75-
76-
_observeBooleanAttr('border');
77-
_observeBooleanAttr('fw');
78-
_observeBooleanAttr('inverse');
79-
_observeBooleanAttr('spin');
80-
81-
/*** CONDITIONAL ATTRS ***/
82-
// automatically populate fa-li if DOM structure indicates
83-
element.toggleClass('fa-li', (
84-
element.parent() &&
85-
element.parent().parent() &&
86-
element.parent().parent().hasClass('fa-ul') &&
87-
element.parent().children()[0] === element[0]) &&
88-
attrs.list !== 'false' &&
89-
attrs.list !== false
90-
);
91-
92-
attrs.$observe('alt', function () {
93-
if (attrs.alt) {
94-
var srText;
95-
srText = attrs.alt;
96-
element.removeAttr('alt')
97-
element.attr('aria-hidden', 'true');
98-
element.after('<span class="sr-only">' + srText + '</span>');
99-
}
100-
});
101-
102-
}
103-
};
104-
})
105-
.directive('faStack', function () {
106-
return {
107-
restrict: 'E',
108-
transclude: true,
109-
template: '<span ng-transclude class="fa-stack fa-lg"></span>',
110-
replace: true,
111-
link: function (scope, element, attrs) {
112-
113-
/*** STRING ATTRS ***/
114-
// keep a state of the current attrs so that when they change,
115-
// we can remove the old attrs before adding the new ones.
116-
var currentClasses = {};
117-
118-
// generic function to bind string attrs
119-
function _observeStringAttr (attr, baseClass) {
120-
attrs.$observe(attr, function () {
121-
baseClass = baseClass || 'fa-' + attr;
122-
element.removeClass(currentClasses[attr]);
123-
if (attrs[attr]) {
124-
var className = [baseClass, attrs[attr]].join('-');
125-
element.addClass(className);
126-
currentClasses[attr] = className;
127-
}
128-
});
129-
}
130-
131-
_observeStringAttr('size');
132-
133-
/**
134-
* size can be passed "large" or an integer
135-
*/
136-
attrs.$observe('size', function () {
137-
var className;
138-
element.removeClass(currentClasses.size);
139-
140-
if (attrs.size === 'large') {
141-
className = 'fa-lg';
142-
} else if (!isNaN(parseInt(attrs.size, 10))) {
143-
className = 'fa-' + attrs.size + 'x';
144-
}
145-
146-
element.addClass(className);
147-
currentClasses.size = className;
148-
});
149-
}
150-
};
151-
});
4+
.directive('fa', function () {
5+
return {
6+
restrict: 'E',
7+
template: '<span class="fa" aria-hidden="true"></span>',
8+
replace: true,
9+
link: function (scope, element, attrs) {
10+
11+
/*** STRING ATTRS ***/
12+
// keep a state of the current attrs so that when they change,
13+
// we can remove the old attrs before adding the new ones.
14+
var currentClasses = {};
15+
16+
// generic function to bind string attrs
17+
function _observeStringAttr (attr, baseClass) {
18+
var className;
19+
20+
attrs.$observe(attr, function () {
21+
baseClass = baseClass || 'fa-' + attr;
22+
element.removeClass(currentClasses[attr]);
23+
if (attrs[attr]) {
24+
className = [baseClass, attrs[attr]].join('-');
25+
element.addClass(className);
26+
currentClasses[attr] = className;
27+
}
28+
});
29+
}
30+
31+
_observeStringAttr('name', 'fa');
32+
_observeStringAttr('rotate');
33+
_observeStringAttr('flip');
34+
_observeStringAttr('stack');
35+
36+
/**
37+
* size can be passed "large" or an integer
38+
*/
39+
attrs.$observe('size', function () {
40+
var className;
41+
element.removeClass(currentClasses.size);
42+
43+
if (attrs.size === 'large') {
44+
className = 'fa-lg';
45+
} else if (!isNaN(parseInt(attrs.size, 10))) {
46+
className = 'fa-' + attrs.size + 'x';
47+
}
48+
49+
element.addClass(className);
50+
currentClasses.size = className;
51+
});
52+
53+
/**
54+
* stack can be passed "large" or an integer
55+
*/
56+
attrs.$observe('stack', function () {
57+
var className;
58+
element.removeClass(currentClasses.stack);
59+
60+
if (attrs.stack === 'large') {
61+
className = 'fa-stack-lg';
62+
} else if (!isNaN(parseInt(attrs.stack, 10))) {
63+
className = 'fa-stack-' + attrs.stack + 'x';
64+
}
65+
66+
element.addClass(className);
67+
currentClasses.stack = className;
68+
});
69+
70+
/*** BOOLEAN ATTRS ***/
71+
// generic function to bind boolean attrs
72+
function _observeBooleanAttr (attr, className) {
73+
var value;
74+
75+
attrs.$observe(attr, function () {
76+
className = className || 'fa-' + attr;
77+
value = attr in attrs && attrs[attr] !== 'false' && attrs[attr] !== false;
78+
element.toggleClass(className, value);
79+
});
80+
}
81+
82+
_observeBooleanAttr('border');
83+
_observeBooleanAttr('fw');
84+
_observeBooleanAttr('inverse');
85+
_observeBooleanAttr('spin');
86+
87+
/*** CONDITIONAL ATTRS ***/
88+
// automatically populate fa-li if DOM structure indicates
89+
element.toggleClass('fa-li',
90+
element.parent() &&
91+
element.parent().prop('tagName') === 'LI' &&
92+
element.parent().parent() &&
93+
element.parent().parent().hasClass('fa-ul') &&
94+
element.parent().children()[0] === element[0] &&
95+
attrs.list !== 'false' &&
96+
attrs.list !== false
97+
);
98+
99+
attrs.$observe('alt', function () {
100+
var altText = attrs.alt,
101+
altElem = element.next(),
102+
altElemClass = 'fa-alt-text';
103+
104+
if (altText) {
105+
element.removeAttr('alt');
106+
107+
// create the alt elem if one does not exist
108+
if (!altElem || !altElem.hasClass(altElemClass)) {
109+
element.after('<span class="sr-only fa-alt-text"></span>');
110+
altElem = element.next();
111+
}
112+
113+
altElem.text(altText);
114+
} else if (altElem && altElem.hasClass(altElemClass)) {
115+
// kill the alt elem if we used to have alt text, but now we don't
116+
altElem.remove();
117+
}
118+
});
119+
}
120+
};
121+
})
122+
.directive('faStack', function () {
123+
return {
124+
restrict: 'E',
125+
transclude: true,
126+
template: '<span ng-transclude class="fa-stack fa-lg"></span>',
127+
replace: true,
128+
link: function (scope, element, attrs) {
129+
130+
/*** STRING ATTRS ***/
131+
// keep a state of the current attrs so that when they change,
132+
// we can remove the old attrs before adding the new ones.
133+
var currentClasses = {};
134+
135+
// generic function to bind string attrs
136+
function _observeStringAttr (attr, baseClass) {
137+
var className;
138+
139+
attrs.$observe(attr, function () {
140+
baseClass = baseClass || 'fa-' + attr;
141+
element.removeClass(currentClasses[attr]);
142+
if (attrs[attr]) {
143+
className = [baseClass, attrs[attr]].join('-');
144+
element.addClass(className);
145+
currentClasses[attr] = className;
146+
}
147+
});
148+
}
149+
150+
_observeStringAttr('size');
151+
152+
/**
153+
* size can be passed "large" or an integer
154+
*/
155+
attrs.$observe('size', function () {
156+
var className;
157+
158+
element.removeClass(currentClasses.size);
159+
160+
if (attrs.size === 'large') {
161+
className = 'fa-lg';
162+
} else if (!isNaN(parseInt(attrs.size, 10))) {
163+
className = 'fa-' + attrs.size + 'x';
164+
}
165+
166+
element.addClass(className);
167+
currentClasses.size = className;
168+
});
169+
}
170+
};
171+
});

dist/angular-fontawesome.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-fontawesome",
3-
"version": "0.4.0",
3+
"version": "1.0.0",
44
"author": "Paul Marbach <[email protected]>",
55
"description": "Angular directive for FontAwesome",
66
"scripts": {

0 commit comments

Comments
 (0)