META-INF.resources.scripts.vendor.plugins.forms.jquery.tagsinput.min.js Maven / Gradle / Ivy
(function ( a ) {
var b = new Array;
var c = new Array;
a.fn.doAutosize = function ( b ) {
var c = a( this ).data( "minwidth" ), d = a( this ).data( "maxwidth" ), e = "", f = a( this ), g = a( "#" + a( this ).data( "tester_id" ) );
if ( e === (e = f.val()) ) {
return
}
var h = e.replace( /&/g, "&" ).replace( /\s/g, " " ).replace( //g, ">" );
g.html( h );
var i = g.width(), j = i + b.comfortZone >= c ? i + b.comfortZone : c, k = f.width(), l = j < k && j >= c || j > c && j < d;
if ( l ) {
f.width( j )
}
};
a.fn.resetAutosize = function ( b ) {
var c = a( this ).data( "minwidth" ) || b.minInputWidth || a( this ).width(), d = a( this ).data( "maxwidth" ) || b.maxInputWidth || a( this ).closest( ".tagsinput" ).width() - b.inputPadding, e = "", f = a( this ), g = a( " " ).css( {position: "absolute", top: -9999, left: -9999, width: "auto", fontSize: f.css( "fontSize" ), fontFamily: f.css( "fontFamily" ), fontWeight: f.css( "fontWeight" ), letterSpacing: f.css( "letterSpacing" ), whiteSpace: "nowrap"} ), h = a( this ).attr( "id" ) + "_autosize_tester";
if ( !a( "#" + h ).length > 0 ) {
g.attr( "id", h );
g.appendTo( "body" )
}
f.data( "minwidth", c );
f.data( "maxwidth", d );
f.data( "tester_id", h );
f.css( "width", c )
};
a.fn.addTag = function ( d, e ) {
e = jQuery.extend( {focus: false, callback: true}, e );
this.each( function () {
var f = a( this ).attr( "id" );
var g = a( this ).val().split( b[f] );
if ( g[0] == "" ) {
g = new Array
}
d = jQuery.trim( d );
if ( e.unique ) {
var h = a( g ).tagExist( d );
if ( h == true ) {
a( "#" + f + "_tag" ).addClass( "not_valid" )
}
} else {
var h = false
}
if ( d != "" && h != true ) {
a( "" ).addClass( "tag" ).append( a( "" ).text( d ).append( " " ), a( "", {href: "#", title: "Removing tag", text: "x"} ).click( function () {
return a( "#" + f ).removeTag( escape( d ) )
} ) ).insertBefore( "#" + f + "_addTag" );
g.push( d );
a( "#" + f + "_tag" ).val( "" );
if ( e.focus ) {
a( "#" + f + "_tag" ).focus()
} else {
a( "#" + f + "_tag" ).blur()
}
a.fn.tagsInput.updateTagsField( this, g );
if ( e.callback && c[f] && c[f]["onAddTag"] ) {
var i = c[f]["onAddTag"];
i.call( this, d )
}
if ( c[f] && c[f]["onChange"] ) {
var j = g.length;
var i = c[f]["onChange"];
i.call( this, a( this ), g[j - 1] )
}
}
} );
return false
};
a.fn.removeTag = function ( d ) {
d = unescape( d );
this.each( function () {
var e = a( this ).attr( "id" );
var f = a( this ).val().split( b[e] );
a( "#" + e + "_tagsinput .tag" ).remove();
str = "";
for ( i = 0; i < f.length; i++ ) {
if ( f[i] != d ) {
str = str + b[e] + f[i]
}
}
a.fn.tagsInput.importTags( this, str );
if ( c[e] && c[e]["onRemoveTag"] ) {
var g = c[e]["onRemoveTag"];
g.call( this, d )
}
} );
return false
};
a.fn.tagExist = function ( b ) {
return jQuery.inArray( b, a( this ) ) >= 0
};
a.fn.importTags = function ( b ) {
id = a( this ).attr( "id" );
a( "#" + id + "_tagsinput .tag" ).remove();
a.fn.tagsInput.importTags( this, b )
};
a.fn.tagsInput = function ( d ) {
var e = jQuery.extend( {interactive: true, defaultText: "add a tag", minChars: 0, autocomplete: {selectFirst: false}, hide: true, delimiter: ",", unique: true, removeWithBackspace: true, placeholderColor: "#666666", autosize: true, comfortZone: 20, inputPadding: 6 * 2}, d );
this.each( function () {
if ( e.hide ) {
a( this ).hide()
}
var d = a( this ).attr( "id" );
var f = jQuery.extend( {pid: d, real_input: "#" + d, holder: "#" + d + "_tagsinput", input_wrapper: "#" + d + "_addTag", fake_input: "#" + d + "_tag"}, e );
b[d] = f.delimiter;
if ( e.onAddTag || e.onRemoveTag || e.onChange ) {
c[d] = new Array;
c[d]["onAddTag"] = e.onAddTag;
c[d]["onRemoveTag"] = e.onRemoveTag;
c[d]["onChange"] = e.onChange
}
var g = ' ';
a( g ).insertAfter( this );
a( f.holder ).css( "width", e.width );
a( f.holder ).css( "height", e.height );
if ( a( f.real_input ).val() != "" ) {
a.fn.tagsInput.importTags( a( f.real_input ), a( f.real_input ).val() )
}
if ( e.interactive ) {
a( f.fake_input ).val( a( f.fake_input ).attr( "data-default" ) );
a( f.fake_input ).css( "color", e.placeholderColor );
a( f.fake_input ).resetAutosize( e );
a( f.holder ).bind( "click", f, function ( b ) {
a( b.data.fake_input ).focus()
} );
a( f.fake_input ).bind( "focus", f, function ( b ) {
if ( a( b.data.fake_input ).val() == a( b.data.fake_input ).attr( "data-default" ) ) {
a( b.data.fake_input ).val( "" )
}
a( b.data.fake_input ).css( "color", "#000000" )
} );
if ( e.autocomplete_url != undefined ) {
autocomplete_options = {source: e.autocomplete_url};
for ( attrname in e.autocomplete ) {
autocomplete_options[attrname] = e.autocomplete[attrname]
}
if ( jQuery.Autocompleter !== undefined ) {
a( f.fake_input ).autocomplete( e.autocomplete_url, e.autocomplete );
a( f.fake_input ).bind( "result", f, function ( b, c, f ) {
if ( c ) {
a( "#" + d ).addTag( c[0] + "", {focus: true, unique: e.unique} )
}
} )
} else if ( jQuery.ui.autocomplete !== undefined ) {
a( f.fake_input ).autocomplete( autocomplete_options );
a( f.fake_input ).bind( "autocompleteselect", f, function ( b, c ) {
a( b.data.real_input ).addTag( c.item.value, {focus: true, unique: e.unique} );
return false
} )
}
} else {
a( f.fake_input ).bind( "blur", f, function ( b ) {
var c = a( this ).attr( "data-default" );
if ( a( b.data.fake_input ).val() != "" && a( b.data.fake_input ).val() != c ) {
if ( b.data.minChars <= a( b.data.fake_input ).val().length && (!b.data.maxChars || b.data.maxChars >= a( b.data.fake_input ).val().length) ) {
a( b.data.real_input ).addTag( a( b.data.fake_input ).val(), {focus: true, unique: e.unique} )
}
} else {
a( b.data.fake_input ).val( a( b.data.fake_input ).attr( "data-default" ) );
a( b.data.fake_input ).css( "color", e.placeholderColor )
}
return false
} )
}
a( f.fake_input ).bind( "keypress", f, function ( b ) {
if ( b.which == b.data.delimiter.charCodeAt( 0 ) || b.which == 13 ) {
b.preventDefault();
if ( b.data.minChars <= a( b.data.fake_input ).val().length && (!b.data.maxChars || b.data.maxChars >= a( b.data.fake_input ).val().length) ) {
a( b.data.real_input ).addTag( a( b.data.fake_input ).val(), {focus: true, unique: e.unique} );
}
a( b.data.fake_input ).resetAutosize( e );
return false
} else if ( b.data.autosize ) {
a( b.data.fake_input ).doAutosize( e )
}
} );
f.removeWithBackspace && a( f.fake_input ).bind( "keydown", function ( b ) {
if ( b.keyCode == 8 && a( this ).val() == "" ) {
b.preventDefault();
var c = a( this ).closest( ".tagsinput" ).find( ".tag:last" ).text();
var d = a( this ).attr( "id" ).replace( /_tag$/, "" );
c = c.replace( /[\s]+x$/, "" );
a( "#" + d ).removeTag( escape( c ) );
a( this ).trigger( "focus" )
}
} );
a( f.fake_input ).blur();
if ( f.unique ) {
a( f.fake_input ).keydown( function ( b ) {
if ( b.keyCode == 8 || String.fromCharCode( b.which ).match( /\w+|[áéíóúÁÉÍÓÚñÑ,/]+/ ) ) {
a( this ).removeClass( "not_valid" )
}
} )
}
}
return false
} );
return this
};
a.fn.tagsInput.updateTagsField = function ( c, d ) {
var e = a( c ).attr( "id" );
a( c ).val( d.join( b[e] ) )
};
a.fn.tagsInput.importTags = function ( d, e ) {
a( d ).val( "" );
var f = a( d ).attr( "id" );
var g = e.split( b[f] );
for ( i = 0; i < g.length; i++ ) {
a( d ).addTag( g[i], {focus: false, callback: false} )
}
if ( c[f] && c[f]["onChange"] ) {
var h = c[f]["onChange"];
h.call( d, d, g[i] )
}
}
})( jQuery );