Merge "Add qtip job to pod zte-virtual6"
[releng.git] / utils / test / testapi / 3rd_party / static / testapi-ui / assets / lib / jquery / src / wrap.js
1 define( [
2         "./core",
3         "./core/init",
4         "./manipulation", // clone
5         "./traversing" // parent, contents
6 ], function( jQuery ) {
7
8 "use strict";
9
10 jQuery.fn.extend( {
11         wrapAll: function( html ) {
12                 var wrap;
13
14                 if ( this[ 0 ] ) {
15                         if ( jQuery.isFunction( html ) ) {
16                                 html = html.call( this[ 0 ] );
17                         }
18
19                         // The elements to wrap the target around
20                         wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
21
22                         if ( this[ 0 ].parentNode ) {
23                                 wrap.insertBefore( this[ 0 ] );
24                         }
25
26                         wrap.map( function() {
27                                 var elem = this;
28
29                                 while ( elem.firstElementChild ) {
30                                         elem = elem.firstElementChild;
31                                 }
32
33                                 return elem;
34                         } ).append( this );
35                 }
36
37                 return this;
38         },
39
40         wrapInner: function( html ) {
41                 if ( jQuery.isFunction( html ) ) {
42                         return this.each( function( i ) {
43                                 jQuery( this ).wrapInner( html.call( this, i ) );
44                         } );
45                 }
46
47                 return this.each( function() {
48                         var self = jQuery( this ),
49                                 contents = self.contents();
50
51                         if ( contents.length ) {
52                                 contents.wrapAll( html );
53
54                         } else {
55                                 self.append( html );
56                         }
57                 } );
58         },
59
60         wrap: function( html ) {
61                 var isFunction = jQuery.isFunction( html );
62
63                 return this.each( function( i ) {
64                         jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
65                 } );
66         },
67
68         unwrap: function( selector ) {
69                 this.parent( selector ).not( "body" ).each( function() {
70                         jQuery( this ).replaceWith( this.childNodes );
71                 } );
72                 return this;
73         }
74 } );
75
76 return jQuery;
77 } );