include the compiled javascript in git for bower's sake
parent
3a540c5855
commit
29cf4d2859
@ -1,6 +1,3 @@
|
|||||||
node_modules
|
node_modules
|
||||||
angular-radians.js
|
|
||||||
.tmp
|
|
||||||
.sass-cache
|
|
||||||
app/components
|
app/components
|
||||||
components
|
components
|
||||||
|
@ -0,0 +1,67 @@
|
|||||||
|
(function() {
|
||||||
|
angular.module('radians', ['radians.contenteditable']);
|
||||||
|
|
||||||
|
}).call(this);
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var escapeRegexp, noImg;
|
||||||
|
|
||||||
|
escapeRegexp = function(str) {
|
||||||
|
return str.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
|
||||||
|
};
|
||||||
|
|
||||||
|
noImg = function(str) {
|
||||||
|
return str.replace(/<img[^>]*>/g, '');
|
||||||
|
};
|
||||||
|
|
||||||
|
angular.module('radians.contenteditable', []).directive('contenteditable', function() {
|
||||||
|
return {
|
||||||
|
require: 'ngModel',
|
||||||
|
link: function(scope, elmt, attrs, ctrl) {
|
||||||
|
var old_render;
|
||||||
|
old_render = ctrl.$render;
|
||||||
|
elmt.bind('input', function(e) {
|
||||||
|
return scope.$apply(function() {
|
||||||
|
return ctrl.$setViewValue(elmt.html());
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return ctrl.$render = function() {
|
||||||
|
var el, el2, range, sel;
|
||||||
|
if (old_render !== null) {
|
||||||
|
old_render();
|
||||||
|
}
|
||||||
|
elmt.html(ctrl.$viewValue);
|
||||||
|
el = elmt.get(0);
|
||||||
|
range = document.createRange();
|
||||||
|
sel = window.getSelection();
|
||||||
|
if (el.childNodes.length > 0) {
|
||||||
|
el2 = el.childNodes[el.childNodes.length - 1];
|
||||||
|
range.setStartAfter(el2);
|
||||||
|
} else {
|
||||||
|
range.setStartAfter(el);
|
||||||
|
}
|
||||||
|
range.collapse(true);
|
||||||
|
sel.removeAllRanges();
|
||||||
|
return sel.addRange(range);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}).filter('typeaheadHighlight', function() {
|
||||||
|
return function(matchItem, query) {
|
||||||
|
return matchItem;
|
||||||
|
};
|
||||||
|
}).filter('ignoreImg', function() {
|
||||||
|
return function(items, query) {
|
||||||
|
var item, _i, _len, _results;
|
||||||
|
_results = [];
|
||||||
|
for (_i = 0, _len = items.length; _i < _len; _i++) {
|
||||||
|
item = items[_i];
|
||||||
|
if (noImg(item).match(new RegExp(escapeRegexp(noImg(query)), 'gi'))) {
|
||||||
|
_results.push(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return _results;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
}).call(this);
|
Reference in New Issue