All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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 = '
'; if ( e.interactive ) { g = g + '' } g = 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 );




© 2015 - 2024 Weber Informatics LLC | Privacy Policy