trusty-cms 3.1.8 → 3.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (215) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -1
  3. data/Gemfile.lock +13 -9
  4. data/app/assets/images/admin/move_higher.png +0 -0
  5. data/app/assets/images/admin/move_lower.png +0 -0
  6. data/app/assets/images/admin/move_to_bottom.png +0 -0
  7. data/app/assets/images/admin/move_to_top.png +0 -0
  8. data/app/assets/images/admin/remove.png +0 -0
  9. data/app/assets/stylesheets/admin/_multi_site_main.scss +85 -0
  10. data/app/assets/stylesheets/admin/_site_chooser.scss +76 -0
  11. data/app/assets/stylesheets/admin/main.scss +3 -0
  12. data/app/controllers/admin/sites_controller.rb +14 -0
  13. data/app/helpers/scoped_helper.rb +19 -0
  14. data/app/helpers/sites_helper.rb +10 -0
  15. data/app/models/site.rb +86 -0
  16. data/app/models/snippet.rb +23 -0
  17. data/app/models/snippet_finder.rb +24 -0
  18. data/app/models/snippet_tags.rb +80 -0
  19. data/app/users/_choose_site.html.haml +8 -0
  20. data/app/views/admin/layouts/_choose_site.html.haml +8 -0
  21. data/app/views/admin/layouts/_site_chooser.html.haml +11 -0
  22. data/app/views/admin/sites/_form.haml +50 -0
  23. data/app/views/admin/sites/edit.haml +7 -0
  24. data/app/views/admin/sites/index.haml +43 -0
  25. data/app/views/admin/sites/new.haml +7 -0
  26. data/app/views/admin/snippets/_choose_site.html.haml +6 -0
  27. data/app/views/{snippets → admin/snippets}/_form.html.haml +0 -0
  28. data/app/views/{snippets → admin/snippets}/_popups.html.haml +0 -0
  29. data/app/views/{snippets → admin/snippets}/edit.html.haml +0 -0
  30. data/app/views/{snippets → admin/snippets}/index.html.haml +0 -0
  31. data/app/views/{snippets → admin/snippets}/new.html.haml +0 -0
  32. data/app/views/{snippets → admin/snippets}/remove.html.haml +0 -0
  33. data/app/views/admin/users/_choose_site.html.haml +8 -0
  34. data/config/application.rb +0 -2
  35. data/config/initializers/trusty_cms_config.rb +6 -0
  36. data/config/routes.rb +8 -0
  37. data/coverage/index.html +3837 -2759
  38. data/db/migrate/006_remove_user_login_index.rb +8 -0
  39. data/db/migrate/010_create_sites.rb +13 -0
  40. data/db/migrate/011_add_order_to_sites.rb +9 -0
  41. data/db/migrate/022_add_admin_fields_to_sites.rb +17 -0
  42. data/db/migrate/023_add_sites.rb +13 -0
  43. data/db/migrate/024_site_abbreviation.rb +9 -0
  44. data/db/migrate/025_recreate_non_unique_index_on_snippets_name.rb +11 -0
  45. data/db/migrate/026_add_site_id_to_pages.rb +24 -0
  46. data/db/migrate/027_add_base_domain_to_sites.rb +9 -0
  47. data/lib/trusty_cms.rb +1 -1
  48. data/spec/dummy/db/schema.rb +20 -2
  49. data/spec/dummy/log/test.log +44621 -0
  50. data/spec/dummy/node_modules/jquery/AUTHORS.txt +301 -0
  51. data/spec/dummy/node_modules/jquery/LICENSE.txt +36 -0
  52. data/spec/dummy/node_modules/jquery/README.md +67 -0
  53. data/spec/dummy/node_modules/jquery/bower.json +14 -0
  54. data/spec/dummy/node_modules/jquery/dist/core.js +476 -0
  55. data/spec/dummy/node_modules/jquery/dist/jquery.js +10253 -0
  56. data/spec/dummy/node_modules/jquery/dist/jquery.min.js +4 -0
  57. data/spec/dummy/node_modules/jquery/dist/jquery.min.map +1 -0
  58. data/spec/dummy/node_modules/jquery/dist/jquery.slim.js +8160 -0
  59. data/spec/dummy/node_modules/jquery/dist/jquery.slim.min.js +4 -0
  60. data/spec/dummy/node_modules/jquery/dist/jquery.slim.min.map +1 -0
  61. data/spec/dummy/node_modules/jquery/external/sizzle/LICENSE.txt +36 -0
  62. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.js +2272 -0
  63. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  64. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  65. data/spec/dummy/node_modules/jquery/package.json +97 -0
  66. data/spec/dummy/node_modules/jquery/src/ajax/jsonp.js +102 -0
  67. data/spec/dummy/node_modules/jquery/src/ajax/load.js +76 -0
  68. data/spec/dummy/node_modules/jquery/src/ajax/parseXML.js +30 -0
  69. data/spec/dummy/node_modules/jquery/src/ajax/script.js +77 -0
  70. data/spec/dummy/node_modules/jquery/src/ajax/var/location.js +5 -0
  71. data/spec/dummy/node_modules/jquery/src/ajax/var/nonce.js +7 -0
  72. data/spec/dummy/node_modules/jquery/src/ajax/var/rquery.js +5 -0
  73. data/spec/dummy/node_modules/jquery/src/ajax/xhr.js +169 -0
  74. data/spec/dummy/node_modules/jquery/src/ajax.js +855 -0
  75. data/spec/dummy/node_modules/jquery/src/attributes/attr.js +141 -0
  76. data/spec/dummy/node_modules/jquery/src/attributes/classes.js +174 -0
  77. data/spec/dummy/node_modules/jquery/src/attributes/prop.js +143 -0
  78. data/spec/dummy/node_modules/jquery/src/attributes/support.js +33 -0
  79. data/spec/dummy/node_modules/jquery/src/attributes/val.js +190 -0
  80. data/spec/dummy/node_modules/jquery/src/attributes.js +13 -0
  81. data/spec/dummy/node_modules/jquery/src/callbacks.js +234 -0
  82. data/spec/dummy/node_modules/jquery/src/core/DOMEval.js +16 -0
  83. data/spec/dummy/node_modules/jquery/src/core/access.js +70 -0
  84. data/spec/dummy/node_modules/jquery/src/core/init.js +128 -0
  85. data/spec/dummy/node_modules/jquery/src/core/nodeName.js +13 -0
  86. data/spec/dummy/node_modules/jquery/src/core/parseHTML.js +65 -0
  87. data/spec/dummy/node_modules/jquery/src/core/ready-no-deferred.js +96 -0
  88. data/spec/dummy/node_modules/jquery/src/core/ready.js +86 -0
  89. data/spec/dummy/node_modules/jquery/src/core/readyException.js +13 -0
  90. data/spec/dummy/node_modules/jquery/src/core/stripAndCollapse.js +14 -0
  91. data/spec/dummy/node_modules/jquery/src/core/support.js +20 -0
  92. data/spec/dummy/node_modules/jquery/src/core/var/rsingleTag.js +6 -0
  93. data/spec/dummy/node_modules/jquery/src/core.js +476 -0
  94. data/spec/dummy/node_modules/jquery/src/css/addGetHookIf.js +26 -0
  95. data/spec/dummy/node_modules/jquery/src/css/adjustCSS.js +71 -0
  96. data/spec/dummy/node_modules/jquery/src/css/curCSS.js +65 -0
  97. data/spec/dummy/node_modules/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  98. data/spec/dummy/node_modules/jquery/src/css/showHide.js +105 -0
  99. data/spec/dummy/node_modules/jquery/src/css/support.js +89 -0
  100. data/spec/dummy/node_modules/jquery/src/css/var/cssExpand.js +5 -0
  101. data/spec/dummy/node_modules/jquery/src/css/var/getStyles.js +17 -0
  102. data/spec/dummy/node_modules/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  103. data/spec/dummy/node_modules/jquery/src/css/var/rmargin.js +5 -0
  104. data/spec/dummy/node_modules/jquery/src/css/var/rnumnonpx.js +7 -0
  105. data/spec/dummy/node_modules/jquery/src/css/var/swap.js +26 -0
  106. data/spec/dummy/node_modules/jquery/src/css.js +438 -0
  107. data/spec/dummy/node_modules/jquery/src/data/Data.js +161 -0
  108. data/spec/dummy/node_modules/jquery/src/data/var/acceptData.js +19 -0
  109. data/spec/dummy/node_modules/jquery/src/data/var/dataPriv.js +7 -0
  110. data/spec/dummy/node_modules/jquery/src/data/var/dataUser.js +7 -0
  111. data/spec/dummy/node_modules/jquery/src/data.js +179 -0
  112. data/spec/dummy/node_modules/jquery/src/deferred/exceptionHook.js +21 -0
  113. data/spec/dummy/node_modules/jquery/src/deferred.js +391 -0
  114. data/spec/dummy/node_modules/jquery/src/deprecated.js +40 -0
  115. data/spec/dummy/node_modules/jquery/src/dimensions.js +56 -0
  116. data/spec/dummy/node_modules/jquery/src/effects/Tween.js +123 -0
  117. data/spec/dummy/node_modules/jquery/src/effects/animatedSelector.js +15 -0
  118. data/spec/dummy/node_modules/jquery/src/effects.js +699 -0
  119. data/spec/dummy/node_modules/jquery/src/event/ajax.js +22 -0
  120. data/spec/dummy/node_modules/jquery/src/event/alias.js +29 -0
  121. data/spec/dummy/node_modules/jquery/src/event/focusin.js +55 -0
  122. data/spec/dummy/node_modules/jquery/src/event/support.js +11 -0
  123. data/spec/dummy/node_modules/jquery/src/event/trigger.js +185 -0
  124. data/spec/dummy/node_modules/jquery/src/event.js +746 -0
  125. data/spec/dummy/node_modules/jquery/src/exports/amd.js +26 -0
  126. data/spec/dummy/node_modules/jquery/src/exports/global.js +34 -0
  127. data/spec/dummy/node_modules/jquery/src/jquery.js +41 -0
  128. data/spec/dummy/node_modules/jquery/src/manipulation/_evalUrl.js +23 -0
  129. data/spec/dummy/node_modules/jquery/src/manipulation/buildFragment.js +104 -0
  130. data/spec/dummy/node_modules/jquery/src/manipulation/getAll.js +32 -0
  131. data/spec/dummy/node_modules/jquery/src/manipulation/setGlobalEval.js +22 -0
  132. data/spec/dummy/node_modules/jquery/src/manipulation/support.js +35 -0
  133. data/spec/dummy/node_modules/jquery/src/manipulation/var/rcheckableType.js +5 -0
  134. data/spec/dummy/node_modules/jquery/src/manipulation/var/rscriptType.js +5 -0
  135. data/spec/dummy/node_modules/jquery/src/manipulation/var/rtagName.js +5 -0
  136. data/spec/dummy/node_modules/jquery/src/manipulation/wrapMap.js +29 -0
  137. data/spec/dummy/node_modules/jquery/src/manipulation.js +488 -0
  138. data/spec/dummy/node_modules/jquery/src/offset.js +229 -0
  139. data/spec/dummy/node_modules/jquery/src/queue/delay.js +24 -0
  140. data/spec/dummy/node_modules/jquery/src/queue.js +145 -0
  141. data/spec/dummy/node_modules/jquery/src/selector-native.js +237 -0
  142. data/spec/dummy/node_modules/jquery/src/selector-sizzle.js +19 -0
  143. data/spec/dummy/node_modules/jquery/src/selector.js +3 -0
  144. data/spec/dummy/node_modules/jquery/src/serialize.js +130 -0
  145. data/spec/dummy/node_modules/jquery/src/traversing/findFilter.js +106 -0
  146. data/spec/dummy/node_modules/jquery/src/traversing/var/dir.js +22 -0
  147. data/spec/dummy/node_modules/jquery/src/traversing/var/rneedsContext.js +8 -0
  148. data/spec/dummy/node_modules/jquery/src/traversing/var/siblings.js +17 -0
  149. data/spec/dummy/node_modules/jquery/src/traversing.js +191 -0
  150. data/spec/dummy/node_modules/jquery/src/var/ObjectFunctionString.js +7 -0
  151. data/spec/dummy/node_modules/jquery/src/var/arr.js +5 -0
  152. data/spec/dummy/node_modules/jquery/src/var/class2type.js +6 -0
  153. data/spec/dummy/node_modules/jquery/src/var/concat.js +7 -0
  154. data/spec/dummy/node_modules/jquery/src/var/document.js +5 -0
  155. data/spec/dummy/node_modules/jquery/src/var/documentElement.js +7 -0
  156. data/spec/dummy/node_modules/jquery/src/var/fnToString.js +7 -0
  157. data/spec/dummy/node_modules/jquery/src/var/getProto.js +5 -0
  158. data/spec/dummy/node_modules/jquery/src/var/hasOwn.js +7 -0
  159. data/spec/dummy/node_modules/jquery/src/var/indexOf.js +7 -0
  160. data/spec/dummy/node_modules/jquery/src/var/pnum.js +5 -0
  161. data/spec/dummy/node_modules/jquery/src/var/push.js +7 -0
  162. data/spec/dummy/node_modules/jquery/src/var/rcssNum.js +9 -0
  163. data/spec/dummy/node_modules/jquery/src/var/rnothtmlwhite.js +8 -0
  164. data/spec/dummy/node_modules/jquery/src/var/slice.js +7 -0
  165. data/spec/dummy/node_modules/jquery/src/var/support.js +6 -0
  166. data/spec/dummy/node_modules/jquery/src/var/toString.js +7 -0
  167. data/spec/dummy/node_modules/jquery/src/wrap.js +77 -0
  168. data/spec/dummy/node_modules/jquery-ui-bundle/AUTHORS.txt +333 -0
  169. data/spec/dummy/node_modules/jquery-ui-bundle/LICENSE.txt +43 -0
  170. data/spec/dummy/node_modules/jquery-ui-bundle/external/jquery/jquery.js +11008 -0
  171. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_444444_256x240.png +0 -0
  172. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_555555_256x240.png +0 -0
  173. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_777620_256x240.png +0 -0
  174. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_777777_256x240.png +0 -0
  175. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_cc0000_256x240.png +0 -0
  176. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_ffffff_256x240.png +0 -0
  177. data/spec/dummy/node_modules/jquery-ui-bundle/index.html +559 -0
  178. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.css +1312 -0
  179. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.js +18706 -0
  180. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.min.css +7 -0
  181. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.min.js +13 -0
  182. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.structure.css +886 -0
  183. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.structure.min.css +5 -0
  184. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.theme.css +443 -0
  185. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.theme.min.css +5 -0
  186. data/spec/dummy/node_modules/jquery-ui-bundle/package.json +33 -0
  187. data/spec/dummy/node_modules/jquery-ujs/CONTRIBUTING.md +109 -0
  188. data/spec/dummy/node_modules/jquery-ujs/MIT-LICENSE +20 -0
  189. data/spec/dummy/node_modules/jquery-ujs/README.md +86 -0
  190. data/spec/dummy/node_modules/jquery-ujs/RELEASE.md +23 -0
  191. data/spec/dummy/node_modules/jquery-ujs/bower.json +19 -0
  192. data/spec/dummy/node_modules/jquery-ujs/package.json +26 -0
  193. data/spec/dummy/node_modules/jquery-ujs/src/rails.js +555 -0
  194. data/spec/dummy/tmp/cache/747/A70/TrustyCms%3A%3AConfig +0 -0
  195. data/spec/dummy/tmp/cache/85C/FA0/TrustyCms.cache_mtime +0 -0
  196. data/vendor/extensions/multi-site-extension/lib/multi_site/admin_ui.rb +45 -0
  197. data/vendor/extensions/multi-site-extension/lib/multi_site/application_controller_extensions.rb +40 -0
  198. data/vendor/extensions/multi-site-extension/lib/multi_site/application_controller_filter_extensions.rb +22 -0
  199. data/vendor/extensions/multi-site-extension/lib/multi_site/engine.rb +10 -0
  200. data/vendor/extensions/multi-site-extension/lib/multi_site/page_extensions.rb +81 -0
  201. data/vendor/extensions/multi-site-extension/lib/multi_site/pages_controller_extensions.rb +55 -0
  202. data/vendor/extensions/multi-site-extension/lib/multi_site/resource_controller_extensions.rb +42 -0
  203. data/vendor/extensions/multi-site-extension/lib/multi_site/route_extensions.rb +22 -0
  204. data/vendor/extensions/multi-site-extension/lib/multi_site/route_set_extensions.rb +17 -0
  205. data/vendor/extensions/multi-site-extension/lib/multi_site/scoped_model.rb +133 -0
  206. data/vendor/extensions/multi-site-extension/lib/multi_site/scoped_validation.rb +33 -0
  207. data/vendor/extensions/multi-site-extension/lib/multi_site/site_chooser_helper.rb +14 -0
  208. data/vendor/extensions/multi-site-extension/lib/multi_site/site_controller_extensions.rb +30 -0
  209. data/vendor/extensions/multi-site-extension/lib/tasks/multi_site_extension_tasks.rake +28 -0
  210. data/vendor/extensions/multi-site-extension/lib/tasks/scoped_admin_extension_tasks.rake +28 -0
  211. data/vendor/extensions/multi-site-extension/lib/trusty-multi-site-extension.rb +1 -0
  212. data/vendor/extensions/multi-site-extension/multi_site_extension.rb +61 -0
  213. data/vendor/extensions/snippets-extension/lib/trusty-snippets-extension.rb +0 -0
  214. data/vendor/extensions/snippets-extension/snippets_extension.rb +46 -0
  215. metadata +347 -8
@@ -0,0 +1,488 @@
1
+ define( [
2
+ "./core",
3
+ "./var/concat",
4
+ "./var/push",
5
+ "./core/access",
6
+ "./manipulation/var/rcheckableType",
7
+ "./manipulation/var/rtagName",
8
+ "./manipulation/var/rscriptType",
9
+ "./manipulation/wrapMap",
10
+ "./manipulation/getAll",
11
+ "./manipulation/setGlobalEval",
12
+ "./manipulation/buildFragment",
13
+ "./manipulation/support",
14
+
15
+ "./data/var/dataPriv",
16
+ "./data/var/dataUser",
17
+ "./data/var/acceptData",
18
+ "./core/DOMEval",
19
+ "./core/nodeName",
20
+
21
+ "./core/init",
22
+ "./traversing",
23
+ "./selector",
24
+ "./event"
25
+ ], function( jQuery, concat, push, access,
26
+ rcheckableType, rtagName, rscriptType,
27
+ wrapMap, getAll, setGlobalEval, buildFragment, support,
28
+ dataPriv, dataUser, acceptData, DOMEval, nodeName ) {
29
+
30
+ "use strict";
31
+
32
+ var
33
+
34
+ /* eslint-disable max-len */
35
+
36
+ // See https://github.com/eslint/eslint/issues/3229
37
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
38
+
39
+ /* eslint-enable */
40
+
41
+ // Support: IE <=10 - 11, Edge 12 - 13
42
+ // In IE/Edge using regex groups here causes severe slowdowns.
43
+ // See https://connect.microsoft.com/IE/feedback/details/1736512/
44
+ rnoInnerhtml = /<script|<style|<link/i,
45
+
46
+ // checked="checked" or checked
47
+ rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
48
+ rscriptTypeMasked = /^true\/(.*)/,
49
+ rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
50
+
51
+ // Prefer a tbody over its parent table for containing new rows
52
+ function manipulationTarget( elem, content ) {
53
+ if ( nodeName( elem, "table" ) &&
54
+ nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
55
+
56
+ return jQuery( ">tbody", elem )[ 0 ] || elem;
57
+ }
58
+
59
+ return elem;
60
+ }
61
+
62
+ // Replace/restore the type attribute of script elements for safe DOM manipulation
63
+ function disableScript( elem ) {
64
+ elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
65
+ return elem;
66
+ }
67
+ function restoreScript( elem ) {
68
+ var match = rscriptTypeMasked.exec( elem.type );
69
+
70
+ if ( match ) {
71
+ elem.type = match[ 1 ];
72
+ } else {
73
+ elem.removeAttribute( "type" );
74
+ }
75
+
76
+ return elem;
77
+ }
78
+
79
+ function cloneCopyEvent( src, dest ) {
80
+ var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
81
+
82
+ if ( dest.nodeType !== 1 ) {
83
+ return;
84
+ }
85
+
86
+ // 1. Copy private data: events, handlers, etc.
87
+ if ( dataPriv.hasData( src ) ) {
88
+ pdataOld = dataPriv.access( src );
89
+ pdataCur = dataPriv.set( dest, pdataOld );
90
+ events = pdataOld.events;
91
+
92
+ if ( events ) {
93
+ delete pdataCur.handle;
94
+ pdataCur.events = {};
95
+
96
+ for ( type in events ) {
97
+ for ( i = 0, l = events[ type ].length; i < l; i++ ) {
98
+ jQuery.event.add( dest, type, events[ type ][ i ] );
99
+ }
100
+ }
101
+ }
102
+ }
103
+
104
+ // 2. Copy user data
105
+ if ( dataUser.hasData( src ) ) {
106
+ udataOld = dataUser.access( src );
107
+ udataCur = jQuery.extend( {}, udataOld );
108
+
109
+ dataUser.set( dest, udataCur );
110
+ }
111
+ }
112
+
113
+ // Fix IE bugs, see support tests
114
+ function fixInput( src, dest ) {
115
+ var nodeName = dest.nodeName.toLowerCase();
116
+
117
+ // Fails to persist the checked state of a cloned checkbox or radio button.
118
+ if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
119
+ dest.checked = src.checked;
120
+
121
+ // Fails to return the selected option to the default selected state when cloning options
122
+ } else if ( nodeName === "input" || nodeName === "textarea" ) {
123
+ dest.defaultValue = src.defaultValue;
124
+ }
125
+ }
126
+
127
+ function domManip( collection, args, callback, ignored ) {
128
+
129
+ // Flatten any nested arrays
130
+ args = concat.apply( [], args );
131
+
132
+ var fragment, first, scripts, hasScripts, node, doc,
133
+ i = 0,
134
+ l = collection.length,
135
+ iNoClone = l - 1,
136
+ value = args[ 0 ],
137
+ isFunction = jQuery.isFunction( value );
138
+
139
+ // We can't cloneNode fragments that contain checked, in WebKit
140
+ if ( isFunction ||
141
+ ( l > 1 && typeof value === "string" &&
142
+ !support.checkClone && rchecked.test( value ) ) ) {
143
+ return collection.each( function( index ) {
144
+ var self = collection.eq( index );
145
+ if ( isFunction ) {
146
+ args[ 0 ] = value.call( this, index, self.html() );
147
+ }
148
+ domManip( self, args, callback, ignored );
149
+ } );
150
+ }
151
+
152
+ if ( l ) {
153
+ fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
154
+ first = fragment.firstChild;
155
+
156
+ if ( fragment.childNodes.length === 1 ) {
157
+ fragment = first;
158
+ }
159
+
160
+ // Require either new content or an interest in ignored elements to invoke the callback
161
+ if ( first || ignored ) {
162
+ scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
163
+ hasScripts = scripts.length;
164
+
165
+ // Use the original fragment for the last item
166
+ // instead of the first because it can end up
167
+ // being emptied incorrectly in certain situations (#8070).
168
+ for ( ; i < l; i++ ) {
169
+ node = fragment;
170
+
171
+ if ( i !== iNoClone ) {
172
+ node = jQuery.clone( node, true, true );
173
+
174
+ // Keep references to cloned scripts for later restoration
175
+ if ( hasScripts ) {
176
+
177
+ // Support: Android <=4.0 only, PhantomJS 1 only
178
+ // push.apply(_, arraylike) throws on ancient WebKit
179
+ jQuery.merge( scripts, getAll( node, "script" ) );
180
+ }
181
+ }
182
+
183
+ callback.call( collection[ i ], node, i );
184
+ }
185
+
186
+ if ( hasScripts ) {
187
+ doc = scripts[ scripts.length - 1 ].ownerDocument;
188
+
189
+ // Reenable scripts
190
+ jQuery.map( scripts, restoreScript );
191
+
192
+ // Evaluate executable scripts on first document insertion
193
+ for ( i = 0; i < hasScripts; i++ ) {
194
+ node = scripts[ i ];
195
+ if ( rscriptType.test( node.type || "" ) &&
196
+ !dataPriv.access( node, "globalEval" ) &&
197
+ jQuery.contains( doc, node ) ) {
198
+
199
+ if ( node.src ) {
200
+
201
+ // Optional AJAX dependency, but won't run scripts if not present
202
+ if ( jQuery._evalUrl ) {
203
+ jQuery._evalUrl( node.src );
204
+ }
205
+ } else {
206
+ DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
207
+ }
208
+ }
209
+ }
210
+ }
211
+ }
212
+ }
213
+
214
+ return collection;
215
+ }
216
+
217
+ function remove( elem, selector, keepData ) {
218
+ var node,
219
+ nodes = selector ? jQuery.filter( selector, elem ) : elem,
220
+ i = 0;
221
+
222
+ for ( ; ( node = nodes[ i ] ) != null; i++ ) {
223
+ if ( !keepData && node.nodeType === 1 ) {
224
+ jQuery.cleanData( getAll( node ) );
225
+ }
226
+
227
+ if ( node.parentNode ) {
228
+ if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
229
+ setGlobalEval( getAll( node, "script" ) );
230
+ }
231
+ node.parentNode.removeChild( node );
232
+ }
233
+ }
234
+
235
+ return elem;
236
+ }
237
+
238
+ jQuery.extend( {
239
+ htmlPrefilter: function( html ) {
240
+ return html.replace( rxhtmlTag, "<$1></$2>" );
241
+ },
242
+
243
+ clone: function( elem, dataAndEvents, deepDataAndEvents ) {
244
+ var i, l, srcElements, destElements,
245
+ clone = elem.cloneNode( true ),
246
+ inPage = jQuery.contains( elem.ownerDocument, elem );
247
+
248
+ // Fix IE cloning issues
249
+ if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
250
+ !jQuery.isXMLDoc( elem ) ) {
251
+
252
+ // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
253
+ destElements = getAll( clone );
254
+ srcElements = getAll( elem );
255
+
256
+ for ( i = 0, l = srcElements.length; i < l; i++ ) {
257
+ fixInput( srcElements[ i ], destElements[ i ] );
258
+ }
259
+ }
260
+
261
+ // Copy the events from the original to the clone
262
+ if ( dataAndEvents ) {
263
+ if ( deepDataAndEvents ) {
264
+ srcElements = srcElements || getAll( elem );
265
+ destElements = destElements || getAll( clone );
266
+
267
+ for ( i = 0, l = srcElements.length; i < l; i++ ) {
268
+ cloneCopyEvent( srcElements[ i ], destElements[ i ] );
269
+ }
270
+ } else {
271
+ cloneCopyEvent( elem, clone );
272
+ }
273
+ }
274
+
275
+ // Preserve script evaluation history
276
+ destElements = getAll( clone, "script" );
277
+ if ( destElements.length > 0 ) {
278
+ setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
279
+ }
280
+
281
+ // Return the cloned set
282
+ return clone;
283
+ },
284
+
285
+ cleanData: function( elems ) {
286
+ var data, elem, type,
287
+ special = jQuery.event.special,
288
+ i = 0;
289
+
290
+ for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
291
+ if ( acceptData( elem ) ) {
292
+ if ( ( data = elem[ dataPriv.expando ] ) ) {
293
+ if ( data.events ) {
294
+ for ( type in data.events ) {
295
+ if ( special[ type ] ) {
296
+ jQuery.event.remove( elem, type );
297
+
298
+ // This is a shortcut to avoid jQuery.event.remove's overhead
299
+ } else {
300
+ jQuery.removeEvent( elem, type, data.handle );
301
+ }
302
+ }
303
+ }
304
+
305
+ // Support: Chrome <=35 - 45+
306
+ // Assign undefined instead of using delete, see Data#remove
307
+ elem[ dataPriv.expando ] = undefined;
308
+ }
309
+ if ( elem[ dataUser.expando ] ) {
310
+
311
+ // Support: Chrome <=35 - 45+
312
+ // Assign undefined instead of using delete, see Data#remove
313
+ elem[ dataUser.expando ] = undefined;
314
+ }
315
+ }
316
+ }
317
+ }
318
+ } );
319
+
320
+ jQuery.fn.extend( {
321
+ detach: function( selector ) {
322
+ return remove( this, selector, true );
323
+ },
324
+
325
+ remove: function( selector ) {
326
+ return remove( this, selector );
327
+ },
328
+
329
+ text: function( value ) {
330
+ return access( this, function( value ) {
331
+ return value === undefined ?
332
+ jQuery.text( this ) :
333
+ this.empty().each( function() {
334
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
335
+ this.textContent = value;
336
+ }
337
+ } );
338
+ }, null, value, arguments.length );
339
+ },
340
+
341
+ append: function() {
342
+ return domManip( this, arguments, function( elem ) {
343
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
344
+ var target = manipulationTarget( this, elem );
345
+ target.appendChild( elem );
346
+ }
347
+ } );
348
+ },
349
+
350
+ prepend: function() {
351
+ return domManip( this, arguments, function( elem ) {
352
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
353
+ var target = manipulationTarget( this, elem );
354
+ target.insertBefore( elem, target.firstChild );
355
+ }
356
+ } );
357
+ },
358
+
359
+ before: function() {
360
+ return domManip( this, arguments, function( elem ) {
361
+ if ( this.parentNode ) {
362
+ this.parentNode.insertBefore( elem, this );
363
+ }
364
+ } );
365
+ },
366
+
367
+ after: function() {
368
+ return domManip( this, arguments, function( elem ) {
369
+ if ( this.parentNode ) {
370
+ this.parentNode.insertBefore( elem, this.nextSibling );
371
+ }
372
+ } );
373
+ },
374
+
375
+ empty: function() {
376
+ var elem,
377
+ i = 0;
378
+
379
+ for ( ; ( elem = this[ i ] ) != null; i++ ) {
380
+ if ( elem.nodeType === 1 ) {
381
+
382
+ // Prevent memory leaks
383
+ jQuery.cleanData( getAll( elem, false ) );
384
+
385
+ // Remove any remaining nodes
386
+ elem.textContent = "";
387
+ }
388
+ }
389
+
390
+ return this;
391
+ },
392
+
393
+ clone: function( dataAndEvents, deepDataAndEvents ) {
394
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
395
+ deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
396
+
397
+ return this.map( function() {
398
+ return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
399
+ } );
400
+ },
401
+
402
+ html: function( value ) {
403
+ return access( this, function( value ) {
404
+ var elem = this[ 0 ] || {},
405
+ i = 0,
406
+ l = this.length;
407
+
408
+ if ( value === undefined && elem.nodeType === 1 ) {
409
+ return elem.innerHTML;
410
+ }
411
+
412
+ // See if we can take a shortcut and just use innerHTML
413
+ if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
414
+ !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
415
+
416
+ value = jQuery.htmlPrefilter( value );
417
+
418
+ try {
419
+ for ( ; i < l; i++ ) {
420
+ elem = this[ i ] || {};
421
+
422
+ // Remove element nodes and prevent memory leaks
423
+ if ( elem.nodeType === 1 ) {
424
+ jQuery.cleanData( getAll( elem, false ) );
425
+ elem.innerHTML = value;
426
+ }
427
+ }
428
+
429
+ elem = 0;
430
+
431
+ // If using innerHTML throws an exception, use the fallback method
432
+ } catch ( e ) {}
433
+ }
434
+
435
+ if ( elem ) {
436
+ this.empty().append( value );
437
+ }
438
+ }, null, value, arguments.length );
439
+ },
440
+
441
+ replaceWith: function() {
442
+ var ignored = [];
443
+
444
+ // Make the changes, replacing each non-ignored context element with the new content
445
+ return domManip( this, arguments, function( elem ) {
446
+ var parent = this.parentNode;
447
+
448
+ if ( jQuery.inArray( this, ignored ) < 0 ) {
449
+ jQuery.cleanData( getAll( this ) );
450
+ if ( parent ) {
451
+ parent.replaceChild( elem, this );
452
+ }
453
+ }
454
+
455
+ // Force callback invocation
456
+ }, ignored );
457
+ }
458
+ } );
459
+
460
+ jQuery.each( {
461
+ appendTo: "append",
462
+ prependTo: "prepend",
463
+ insertBefore: "before",
464
+ insertAfter: "after",
465
+ replaceAll: "replaceWith"
466
+ }, function( name, original ) {
467
+ jQuery.fn[ name ] = function( selector ) {
468
+ var elems,
469
+ ret = [],
470
+ insert = jQuery( selector ),
471
+ last = insert.length - 1,
472
+ i = 0;
473
+
474
+ for ( ; i <= last; i++ ) {
475
+ elems = i === last ? this : this.clone( true );
476
+ jQuery( insert[ i ] )[ original ]( elems );
477
+
478
+ // Support: Android <=4.0 only, PhantomJS 1 only
479
+ // .get() because push.apply(_, arraylike) throws on ancient WebKit
480
+ push.apply( ret, elems.get() );
481
+ }
482
+
483
+ return this.pushStack( ret );
484
+ };
485
+ } );
486
+
487
+ return jQuery;
488
+ } );
@@ -0,0 +1,229 @@
1
+ define( [
2
+ "./core",
3
+ "./core/access",
4
+ "./var/document",
5
+ "./var/documentElement",
6
+ "./css/var/rnumnonpx",
7
+ "./css/curCSS",
8
+ "./css/addGetHookIf",
9
+ "./css/support",
10
+ "./core/nodeName",
11
+
12
+ "./core/init",
13
+ "./css",
14
+ "./selector" // contains
15
+ ], function( jQuery, access, document, documentElement, rnumnonpx,
16
+ curCSS, addGetHookIf, support, nodeName ) {
17
+
18
+ "use strict";
19
+
20
+ jQuery.offset = {
21
+ setOffset: function( elem, options, i ) {
22
+ var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
23
+ position = jQuery.css( elem, "position" ),
24
+ curElem = jQuery( elem ),
25
+ props = {};
26
+
27
+ // Set position first, in-case top/left are set even on static elem
28
+ if ( position === "static" ) {
29
+ elem.style.position = "relative";
30
+ }
31
+
32
+ curOffset = curElem.offset();
33
+ curCSSTop = jQuery.css( elem, "top" );
34
+ curCSSLeft = jQuery.css( elem, "left" );
35
+ calculatePosition = ( position === "absolute" || position === "fixed" ) &&
36
+ ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
37
+
38
+ // Need to be able to calculate position if either
39
+ // top or left is auto and position is either absolute or fixed
40
+ if ( calculatePosition ) {
41
+ curPosition = curElem.position();
42
+ curTop = curPosition.top;
43
+ curLeft = curPosition.left;
44
+
45
+ } else {
46
+ curTop = parseFloat( curCSSTop ) || 0;
47
+ curLeft = parseFloat( curCSSLeft ) || 0;
48
+ }
49
+
50
+ if ( jQuery.isFunction( options ) ) {
51
+
52
+ // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
53
+ options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
54
+ }
55
+
56
+ if ( options.top != null ) {
57
+ props.top = ( options.top - curOffset.top ) + curTop;
58
+ }
59
+ if ( options.left != null ) {
60
+ props.left = ( options.left - curOffset.left ) + curLeft;
61
+ }
62
+
63
+ if ( "using" in options ) {
64
+ options.using.call( elem, props );
65
+
66
+ } else {
67
+ curElem.css( props );
68
+ }
69
+ }
70
+ };
71
+
72
+ jQuery.fn.extend( {
73
+ offset: function( options ) {
74
+
75
+ // Preserve chaining for setter
76
+ if ( arguments.length ) {
77
+ return options === undefined ?
78
+ this :
79
+ this.each( function( i ) {
80
+ jQuery.offset.setOffset( this, options, i );
81
+ } );
82
+ }
83
+
84
+ var doc, docElem, rect, win,
85
+ elem = this[ 0 ];
86
+
87
+ if ( !elem ) {
88
+ return;
89
+ }
90
+
91
+ // Return zeros for disconnected and hidden (display: none) elements (gh-2310)
92
+ // Support: IE <=11 only
93
+ // Running getBoundingClientRect on a
94
+ // disconnected node in IE throws an error
95
+ if ( !elem.getClientRects().length ) {
96
+ return { top: 0, left: 0 };
97
+ }
98
+
99
+ rect = elem.getBoundingClientRect();
100
+
101
+ doc = elem.ownerDocument;
102
+ docElem = doc.documentElement;
103
+ win = doc.defaultView;
104
+
105
+ return {
106
+ top: rect.top + win.pageYOffset - docElem.clientTop,
107
+ left: rect.left + win.pageXOffset - docElem.clientLeft
108
+ };
109
+ },
110
+
111
+ position: function() {
112
+ if ( !this[ 0 ] ) {
113
+ return;
114
+ }
115
+
116
+ var offsetParent, offset,
117
+ elem = this[ 0 ],
118
+ parentOffset = { top: 0, left: 0 };
119
+
120
+ // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
121
+ // because it is its only offset parent
122
+ if ( jQuery.css( elem, "position" ) === "fixed" ) {
123
+
124
+ // Assume getBoundingClientRect is there when computed position is fixed
125
+ offset = elem.getBoundingClientRect();
126
+
127
+ } else {
128
+
129
+ // Get *real* offsetParent
130
+ offsetParent = this.offsetParent();
131
+
132
+ // Get correct offsets
133
+ offset = this.offset();
134
+ if ( !nodeName( offsetParent[ 0 ], "html" ) ) {
135
+ parentOffset = offsetParent.offset();
136
+ }
137
+
138
+ // Add offsetParent borders
139
+ parentOffset = {
140
+ top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
141
+ left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
142
+ };
143
+ }
144
+
145
+ // Subtract parent offsets and element margins
146
+ return {
147
+ top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
148
+ left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
149
+ };
150
+ },
151
+
152
+ // This method will return documentElement in the following cases:
153
+ // 1) For the element inside the iframe without offsetParent, this method will return
154
+ // documentElement of the parent window
155
+ // 2) For the hidden or detached element
156
+ // 3) For body or html element, i.e. in case of the html node - it will return itself
157
+ //
158
+ // but those exceptions were never presented as a real life use-cases
159
+ // and might be considered as more preferable results.
160
+ //
161
+ // This logic, however, is not guaranteed and can change at any point in the future
162
+ offsetParent: function() {
163
+ return this.map( function() {
164
+ var offsetParent = this.offsetParent;
165
+
166
+ while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
167
+ offsetParent = offsetParent.offsetParent;
168
+ }
169
+
170
+ return offsetParent || documentElement;
171
+ } );
172
+ }
173
+ } );
174
+
175
+ // Create scrollLeft and scrollTop methods
176
+ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
177
+ var top = "pageYOffset" === prop;
178
+
179
+ jQuery.fn[ method ] = function( val ) {
180
+ return access( this, function( elem, method, val ) {
181
+
182
+ // Coalesce documents and windows
183
+ var win;
184
+ if ( jQuery.isWindow( elem ) ) {
185
+ win = elem;
186
+ } else if ( elem.nodeType === 9 ) {
187
+ win = elem.defaultView;
188
+ }
189
+
190
+ if ( val === undefined ) {
191
+ return win ? win[ prop ] : elem[ method ];
192
+ }
193
+
194
+ if ( win ) {
195
+ win.scrollTo(
196
+ !top ? val : win.pageXOffset,
197
+ top ? val : win.pageYOffset
198
+ );
199
+
200
+ } else {
201
+ elem[ method ] = val;
202
+ }
203
+ }, method, val, arguments.length );
204
+ };
205
+ } );
206
+
207
+ // Support: Safari <=7 - 9.1, Chrome <=37 - 49
208
+ // Add the top/left cssHooks using jQuery.fn.position
209
+ // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
210
+ // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
211
+ // getComputedStyle returns percent when specified for top/left/bottom/right;
212
+ // rather than make the css module depend on the offset module, just check for it here
213
+ jQuery.each( [ "top", "left" ], function( i, prop ) {
214
+ jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
215
+ function( elem, computed ) {
216
+ if ( computed ) {
217
+ computed = curCSS( elem, prop );
218
+
219
+ // If curCSS returns percentage, fallback to offset
220
+ return rnumnonpx.test( computed ) ?
221
+ jQuery( elem ).position()[ prop ] + "px" :
222
+ computed;
223
+ }
224
+ }
225
+ );
226
+ } );
227
+
228
+ return jQuery;
229
+ } );