Permalink
Browse files

Removed vendor and renamed coffee folder

  • Loading branch information...
1 parent f827b6b commit 9eecea3522bf790eca078a5b5c4b514973ea68df Dean Sofer committed Apr 3, 2012
@@ -1,291 +0,0 @@
-/*
- Masked Input plugin for jQuery
- Copyright (c) 2007-2011 Josh Bush (digitalbush.com)
- Licensed under the MIT license (http://digitalbush.com/projects/masked-input-plugin/#license)
- Version: 1.3
-*/
-(function($) {
- var pasteEventName = ($.browser.msie ? 'paste' : 'input') + ".mask";
- var iPhone = (window.orientation != undefined);
-
- $.mask = {
- //Predefined character definitions
- definitions: {
- '9': "[0-9]",
- 'a': "[A-Za-z]",
- '*': "[A-Za-z0-9]"
- },
- dataName:"rawMaskFn"
- };
-
- $.fn.extend({
- //Helper Function for Caret positioning
- caret: function(begin, end) {
- if (this.length == 0) return;
- if (typeof begin == 'number') {
- end = (typeof end == 'number') ? end : begin;
- return this.each(function() {
- if (this.setSelectionRange) {
- this.setSelectionRange(begin, end);
- } else if (this.createTextRange) {
- var range = this.createTextRange();
- range.collapse(true);
- range.moveEnd('character', end);
- range.moveStart('character', begin);
- range.select();
- }
- });
- } else {
- if (this[0].setSelectionRange) {
- begin = this[0].selectionStart;
- end = this[0].selectionEnd;
- } else if (document.selection && document.selection.createRange) {
- var range = document.selection.createRange();
- begin = 0 - range.duplicate().moveStart('character', -100000);
- end = begin + range.text.length;
- }
- return { begin: begin, end: end };
- }
- },
- unmask: function() { return this.trigger("unmask"); },
- isMaskValid: function(){
- return $(this).data('mask-isvalid');
- },
- mask: function(mask, settings) {
- if (!mask && this.length > 0) {
- var input = $(this[0]);
- return input.data($.mask.dataName)();
- }
- settings = $.extend({
- placeholder: "_",
- completed: null
- }, settings);
-
- var defs = $.mask.definitions;
- var tests = [];
- var partialPosition = mask.length;
- var firstNonMaskPos = null;
- var len = mask.length;
-
- $.each(mask.split(""), function(i, c) {
- if (c == '?') {
- len--;
- partialPosition = i;
- } else if (defs[c]) {
- tests.push(new RegExp(defs[c]));
- if(firstNonMaskPos==null)
- firstNonMaskPos = tests.length - 1;
- } else {
- tests.push(null);
- }
- });
-
- return this.trigger("unmask").each(function() {
- var input = $(this);
- var buffer = $.map(mask.split(""), function(c, i) { if (c != '?') return defs[c] ? settings.placeholder : c });
- var focusText = input.val();
-
- function seekNext(pos) {
- while (++pos <= len && !tests[pos]);
- return pos;
- };
- function seekPrev(pos) {
- while (--pos >= 0 && !tests[pos]);
- return pos;
- };
-
- function shiftL(begin,end) {
- if(begin<0)
- return;
- for (var i = begin,j = seekNext(end); i < len; i++) {
- if (tests[i]) {
- if (j < len && tests[i].test(buffer[j])) {
- buffer[i] = buffer[j];
- buffer[j] = settings.placeholder;
- } else
- break;
- j = seekNext(j);
- }
- }
- writeBuffer();
- input.caret(Math.max(firstNonMaskPos, begin));
- };
-
- function shiftR(pos) {
- for (var i = pos, c = settings.placeholder; i < len; i++) {
- if (tests[i]) {
- var j = seekNext(i);
- var t = buffer[i];
- buffer[i] = c;
- if (j < len && tests[j].test(t))
- c = t;
- else
- break;
- }
- }
- };
-
- function keydownEvent(e) {
- var k=e.which;
-
- //backspace, delete, and escape get special treatment
- if(k == 8 || k == 46 || (iPhone && k == 127)){
- var pos = input.caret(),
- begin = pos.begin,
- end = pos.end;
-
- if(end-begin==0){
- begin=k!=46?seekPrev(begin):(end=seekNext(begin-1));
- end=k==46?seekNext(end):end;
- }
- clearBuffer(begin, end);
- shiftL(begin,end-1);
- isValid(); //twarogowski
-
- return false;
- } else if (k == 27) {//escape
- input.val(focusText);
- input.caret(0, checkVal());
- return false;
- }
- };
-
- function keypressEvent(e) {
- var k = e.which,
- pos = input.caret();
- if (e.ctrlKey || e.altKey || e.metaKey || k<32) {//Ignore
- return true;
- } else if (k) {
- if(pos.end-pos.begin!=0){
- clearBuffer(pos.begin, pos.end);
- shiftL(pos.begin, pos.end-1);
- isValid(); //twarogowski
- }
-
- var p = seekNext(pos.begin - 1);
- if (p < len) {
- var c = String.fromCharCode(k);
- if (tests[p].test(c)) {
- shiftR(p);
- buffer[p] = c;
- writeBuffer();
- var next = seekNext(p);
- input.caret(next);
- isValid(); //twarogowski
- if (settings.completed && next >= len)
- settings.completed.call(input);
- }
- }
- return false;
- }
- };
-
- function clearBuffer(start, end) {
- for (var i = start; i < end && i < len; i++) {
- if (tests[i])
- buffer[i] = settings.placeholder;
- }
- };
-
- function writeBuffer() { return input.val(buffer.join('')).val(); };
-
- function isValid(){
- var test = input.val();
- var lastMatch = -1;
- for (var i = 0, pos = 0; i < len; i++) {
- if (tests[i]) {
- buffer[i] = settings.placeholder;
- while (pos++ < test.length) {
- var c = test.charAt(pos - 1);
- if (tests[i].test(c)) {
- buffer[i] = c;
- lastMatch = i;
- break;
- }
- }
- if (pos > test.length)
- break;
- } else if (buffer[i] == test.charAt(pos) && i!=partialPosition) {
- pos++;
- lastMatch = i;
- }
- }
- var valid = (lastMatch + 1 >= partialPosition);
- input.data('mask-isvalid',valid);
- return valid;
- }
-
- function checkVal(allow) {
- //try to place characters where they belong
- var test = input.val();
- console.debug(test);
- var lastMatch = -1;
- for (var i = 0, pos = 0; i < len; i++) {
- if (tests[i]) {
- buffer[i] = settings.placeholder;
- while (pos++ < test.length) {
- var c = test.charAt(pos - 1);
- if (tests[i].test(c)) {
- buffer[i] = c;
- lastMatch = i;
- break;
- }
- }
- if (pos > test.length)
- break;
- } else if (buffer[i] == test.charAt(pos) && i!=partialPosition) {
- pos++;
- lastMatch = i;
- }
- }
- if (!allow && lastMatch + 1 < partialPosition) {
- input.val("");
- clearBuffer(0, len);
- } else if (allow || lastMatch + 1 >= partialPosition) {
- writeBuffer();
- if (!allow) input.val(input.val().substring(0, lastMatch + 1));
- }
- return (partialPosition ? i : firstNonMaskPos);
- };
-
- input.data($.mask.dataName,function(){
- return $.map(buffer, function(c, i) {
- return tests[i]&&c!=settings.placeholder ? c : null;
- }).join('');
- })
-
- if (!input.attr("readonly"))
- input
- .one("unmask", function() {
- input
- .unbind(".mask")
- .removeData($.mask.dataName);
- })
- .bind("focus.mask", function() {
- focusText = input.val();
- var pos = checkVal();
- writeBuffer();
- var moveCaret=function(){
- if (pos == mask.length)
- input.caret(0, pos);
- else
- input.caret(pos);
- };
- ($.browser.msie ? moveCaret:function(){setTimeout(moveCaret,0)})();
- })
- .bind("blur.mask", function() {
- checkVal();
- if (input.val() != focusText)
- input.change();
- })
- .bind("keydown.mask", keydownEvent)
- .bind("keypress.mask", keypressEvent)
- .bind(pasteEventName, function() {
- setTimeout(function() { input.caret(checkVal(true)); }, 0);
- });
-
- checkVal(); //Perform initial check for existing values
- });
- }
- });
-})(jQuery);
@@ -9,18 +9,18 @@ module.directive 'uiMask', ()->
# We override the render method to run the jQuery mask plugin
controller.$render = ()->
element.val(controller.$viewValue ? '')
- $(element).mask($scope.uiMask)
+ element.mask($scope.uiMask)
# Add a parser that extracts the masked value into the model but only if the mask is valid
controller.$parsers.push (value)->
- isValid = $(element).data('mask-isvalid')
+ isValid = element.data('mask-isvalid')
controller.$setValidity('mask', isValid)
if isValid
element.mask()
else
null
# When the element blurs, update the viewvalue
- $(element).bind 'blur', ()->
+ element.bind 'blur', ()->
$scope.$apply ()->
controller.$setViewValue(element.mask())
View
@@ -0,0 +1,37 @@
+(function() {
+ var module;
+
+ module = angular.module('ui.directives');
+
+ module.directive('uiMask', function() {
+ return {
+ require: 'ngModel',
+ scope: {
+ uiMask: 'evaluate'
+ },
+ link: function($scope, element, attrs, controller) {
+ controller.$render = function() {
+ var _ref;
+ element.val((_ref = controller.$viewValue) != null ? _ref : '');
+ return element.mask($scope.uiMask);
+ };
+ controller.$parsers.push(function(value) {
+ var isValid;
+ isValid = element.data('mask-isvalid');
+ controller.$setValidity('mask', isValid);
+ if (isValid) {
+ return element.mask();
+ } else {
+ return null;
+ }
+ });
+ return element.bind('blur', function() {
+ return $scope.$apply(function() {
+ return controller.$setViewValue(element.mask());
+ });
+ });
+ }
+ };
+ });
+
+}).call(this);

0 comments on commit 9eecea3

Please sign in to comment.