trusty-cms 3.1.8 → 3.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ } );