nexus site path corrected
[portal.git] / ecomp-portal-FE / client / bower_components / jquery / src / manipulation / buildFragment.js
1 define( [
2         "../core",
3         "./var/rtagName",
4         "./var/rscriptType",
5         "./wrapMap",
6         "./getAll",
7         "./setGlobalEval"
8 ], function( jQuery, rtagName, rscriptType, wrapMap, getAll, setGlobalEval ) {
9
10 var rhtml = /<|&#?\w+;/;
11
12 function buildFragment( elems, context, scripts, selection, ignored ) {
13         var elem, tmp, tag, wrap, contains, j,
14                 fragment = context.createDocumentFragment(),
15                 nodes = [],
16                 i = 0,
17                 l = elems.length;
18
19         for ( ; i < l; i++ ) {
20                 elem = elems[ i ];
21
22                 if ( elem || elem === 0 ) {
23
24                         // Add nodes directly
25                         if ( jQuery.type( elem ) === "object" ) {
26
27                                 // Support: Android<4.1, PhantomJS<2
28                                 // push.apply(_, arraylike) throws on ancient WebKit
29                                 jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
30
31                         // Convert non-html into a text node
32                         } else if ( !rhtml.test( elem ) ) {
33                                 nodes.push( context.createTextNode( elem ) );
34
35                         // Convert html into DOM nodes
36                         } else {
37                                 tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
38
39                                 // Deserialize a standard representation
40                                 tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
41                                 wrap = wrapMap[ tag ] || wrapMap._default;
42                                 tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
43
44                                 // Descend through wrappers to the right content
45                                 j = wrap[ 0 ];
46                                 while ( j-- ) {
47                                         tmp = tmp.lastChild;
48                                 }
49
50                                 // Support: Android<4.1, PhantomJS<2
51                                 // push.apply(_, arraylike) throws on ancient WebKit
52                                 jQuery.merge( nodes, tmp.childNodes );
53
54                                 // Remember the top-level container
55                                 tmp = fragment.firstChild;
56
57                                 // Ensure the created nodes are orphaned (#12392)
58                                 tmp.textContent = "";
59                         }
60                 }
61         }
62
63         // Remove wrapper from fragment
64         fragment.textContent = "";
65
66         i = 0;
67         while ( ( elem = nodes[ i++ ] ) ) {
68
69                 // Skip elements already in the context collection (trac-4087)
70                 if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
71                         if ( ignored ) {
72                                 ignored.push( elem );
73                         }
74                         continue;
75                 }
76
77                 contains = jQuery.contains( elem.ownerDocument, elem );
78
79                 // Append to fragment
80                 tmp = getAll( fragment.appendChild( elem ), "script" );
81
82                 // Preserve script evaluation history
83                 if ( contains ) {
84                         setGlobalEval( tmp );
85                 }
86
87                 // Capture executables
88                 if ( scripts ) {
89                         j = 0;
90                         while ( ( elem = tmp[ j++ ] ) ) {
91                                 if ( rscriptType.test( elem.type || "" ) ) {
92                                         scripts.push( elem );
93                                 }
94                         }
95                 }
96         }
97
98         return fragment;
99 }
100
101 return buildFragment;
102 } );