public/js/plugins/input-mask/jquery.inputmask.js
function shiftL(start, end, c, maskJumps) {
                var buffer = getActiveBuffer();
                if (maskJumps !== false) //jumping over nonmask position
                    while (!isMask(start) && start - 1 >= 0) start--;
                for (var i = start; i < end && i < getMaskLength() ; i++) {
                    if (isMask(i)) {
                        setReTargetPlaceHolder(buffer, i);
                        var j = seekNext(i);
                        var p = getBufferElement(buffer, j);
                        if (p != getPlaceHolder(j)) {
                            if (j < getMaskLength() && isValid(i, p, true) !== false && getActiveTests()[determineTestPosition(i)].def == getActiveTests()[determineTestPosition(j)].def) {
                                setBufferElement(buffer, i, p, true);
                            } else {
                                if (isMask(i))
                                    break;
                            }
                        }
                    } else {
                        setReTargetPlaceHolder(buffer, i);
                    }
                }
                if (c != undefined)
                    setBufferElement(buffer, seekPrevious(end), c);

                if (getActiveMaskSet()["greedy"] == false) {
                    var trbuffer = truncateInput(buffer.join('')).split('');
                    buffer.length = trbuffer.length;
                    for (var i = 0, bl = buffer.length; i < bl; i++) {
                        buffer[i] = trbuffer[i];
                    }
                    if (buffer.length == 0) getActiveMaskSet()["buffer"] = getActiveBufferTemplate().slice();
                }
                return start; //return the used start position
            }
function shiftL(start, end, c, maskJumps) {
                var buffer = getActiveBuffer();
                if (maskJumps !== false) //jumping over nonmask position
                    while (!isMask(start) && start - 1 >= 0) start--;
                for (var i = start; i < end && i < getMaskLength() ; i++) {
                    if (isMask(i)) {
                        setReTargetPlaceHolder(buffer, i);
                        var j = seekNext(i);
                        var p = getBufferElement(buffer, j);
                        if (p != getPlaceHolder(j)) {
                            if (j < getMaskLength() && isValid(i, p, true) !== false && getActiveTests()[determineTestPosition(i)].def == getActiveTests()[determineTestPosition(j)].def) {
                                setBufferElement(buffer, i, p, true);
                            } else {
                                if (isMask(i))
                                    break;
                            }
                        }
                    } else {
                        setReTargetPlaceHolder(buffer, i);
                    }
                }
                if (c != undefined)
                    setBufferElement(buffer, seekPrevious(end), c);

                if (getActiveMaskSet()["greedy"] == false) {
                    var trbuffer = truncateInput(buffer.join('')).split('');
                    buffer.length = trbuffer.length;
                    for (var i = 0, bl = buffer.length; i < bl; i++) {
                        buffer[i] = trbuffer[i];
                    }
                    if (buffer.length == 0) getActiveMaskSet()["buffer"] = getActiveBufferTemplate().slice();
                }
                return start; //return the used start position
            }
function shiftL ( start , end , c , maskJumps ) { var buffer = getActiveBuffer ( ) ; if ( maskJumps !== false ) //jumping over nonmask position while ( ! isMask ( start ) && start - 1 >= 0 ) start -- ; for ( var i = start ; i < end && i < getMaskLength ( ) ; i ++ ) { if ( isMask ( i ) ) { setReTargetPlaceHolder ( buffer , i ) ; var j = seekNext ( i ) ; var p = getBufferElement ( buffer , j ) ; if ( p != getPlaceHolder ( j ) ) { if ( j < getMaskLength ( ) && isValid ( i , p , true ) !== false && getActiveTests ( ) [ determineTestPosition ( i ) ] . def == getActiveTests ( ) [ determineTestPosition ( j ) ] . def ) { setBufferElement ( buffer , i , p , true ) ; } else { if ( isMask ( i ) ) break ; } } } else { setReTargetPlaceHolder ( buffer , i ) ; } } if ( c != undefined ) setBufferElement ( buffer , seekPrevious ( end ) , c ) ; if ( getActiveMaskSet ( ) [ "greedy" ] == false ) { var trbuffer = truncateInput ( buffer . join ( '' ) ) . split ( '' ) ; buffer . length = trbuffer . length ; for ( var i = 0 , bl = buffer . length ; i < bl ; i ++ ) { buffer [ i ] = trbuffer [ i ] ; } if ( buffer . length == 0 ) getActiveMaskSet ( ) [ "buffer" ] = getActiveBufferTemplate ( ) . slice ( ) ; } return start ; //return the used start position }
shift chars to left from start to end and put c at end position if defined
shift chars to left from start to end and put c at end position if defined