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,24 @@
1
+ define( [
2
+ "../core",
3
+ "../queue",
4
+ "../effects" // Delay is optional because of this dependency
5
+ ], function( jQuery ) {
6
+
7
+ "use strict";
8
+
9
+ // Based off of the plugin by Clint Helfers, with permission.
10
+ // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
11
+ jQuery.fn.delay = function( time, type ) {
12
+ time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
13
+ type = type || "fx";
14
+
15
+ return this.queue( type, function( next, hooks ) {
16
+ var timeout = window.setTimeout( next, time );
17
+ hooks.stop = function() {
18
+ window.clearTimeout( timeout );
19
+ };
20
+ } );
21
+ };
22
+
23
+ return jQuery.fn.delay;
24
+ } );
@@ -0,0 +1,145 @@
1
+ define( [
2
+ "./core",
3
+ "./data/var/dataPriv",
4
+ "./deferred",
5
+ "./callbacks"
6
+ ], function( jQuery, dataPriv ) {
7
+
8
+ "use strict";
9
+
10
+ jQuery.extend( {
11
+ queue: function( elem, type, data ) {
12
+ var queue;
13
+
14
+ if ( elem ) {
15
+ type = ( type || "fx" ) + "queue";
16
+ queue = dataPriv.get( elem, type );
17
+
18
+ // Speed up dequeue by getting out quickly if this is just a lookup
19
+ if ( data ) {
20
+ if ( !queue || Array.isArray( data ) ) {
21
+ queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
22
+ } else {
23
+ queue.push( data );
24
+ }
25
+ }
26
+ return queue || [];
27
+ }
28
+ },
29
+
30
+ dequeue: function( elem, type ) {
31
+ type = type || "fx";
32
+
33
+ var queue = jQuery.queue( elem, type ),
34
+ startLength = queue.length,
35
+ fn = queue.shift(),
36
+ hooks = jQuery._queueHooks( elem, type ),
37
+ next = function() {
38
+ jQuery.dequeue( elem, type );
39
+ };
40
+
41
+ // If the fx queue is dequeued, always remove the progress sentinel
42
+ if ( fn === "inprogress" ) {
43
+ fn = queue.shift();
44
+ startLength--;
45
+ }
46
+
47
+ if ( fn ) {
48
+
49
+ // Add a progress sentinel to prevent the fx queue from being
50
+ // automatically dequeued
51
+ if ( type === "fx" ) {
52
+ queue.unshift( "inprogress" );
53
+ }
54
+
55
+ // Clear up the last queue stop function
56
+ delete hooks.stop;
57
+ fn.call( elem, next, hooks );
58
+ }
59
+
60
+ if ( !startLength && hooks ) {
61
+ hooks.empty.fire();
62
+ }
63
+ },
64
+
65
+ // Not public - generate a queueHooks object, or return the current one
66
+ _queueHooks: function( elem, type ) {
67
+ var key = type + "queueHooks";
68
+ return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
69
+ empty: jQuery.Callbacks( "once memory" ).add( function() {
70
+ dataPriv.remove( elem, [ type + "queue", key ] );
71
+ } )
72
+ } );
73
+ }
74
+ } );
75
+
76
+ jQuery.fn.extend( {
77
+ queue: function( type, data ) {
78
+ var setter = 2;
79
+
80
+ if ( typeof type !== "string" ) {
81
+ data = type;
82
+ type = "fx";
83
+ setter--;
84
+ }
85
+
86
+ if ( arguments.length < setter ) {
87
+ return jQuery.queue( this[ 0 ], type );
88
+ }
89
+
90
+ return data === undefined ?
91
+ this :
92
+ this.each( function() {
93
+ var queue = jQuery.queue( this, type, data );
94
+
95
+ // Ensure a hooks for this queue
96
+ jQuery._queueHooks( this, type );
97
+
98
+ if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
99
+ jQuery.dequeue( this, type );
100
+ }
101
+ } );
102
+ },
103
+ dequeue: function( type ) {
104
+ return this.each( function() {
105
+ jQuery.dequeue( this, type );
106
+ } );
107
+ },
108
+ clearQueue: function( type ) {
109
+ return this.queue( type || "fx", [] );
110
+ },
111
+
112
+ // Get a promise resolved when queues of a certain type
113
+ // are emptied (fx is the type by default)
114
+ promise: function( type, obj ) {
115
+ var tmp,
116
+ count = 1,
117
+ defer = jQuery.Deferred(),
118
+ elements = this,
119
+ i = this.length,
120
+ resolve = function() {
121
+ if ( !( --count ) ) {
122
+ defer.resolveWith( elements, [ elements ] );
123
+ }
124
+ };
125
+
126
+ if ( typeof type !== "string" ) {
127
+ obj = type;
128
+ type = undefined;
129
+ }
130
+ type = type || "fx";
131
+
132
+ while ( i-- ) {
133
+ tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
134
+ if ( tmp && tmp.empty ) {
135
+ count++;
136
+ tmp.empty.add( resolve );
137
+ }
138
+ }
139
+ resolve();
140
+ return defer.promise( obj );
141
+ }
142
+ } );
143
+
144
+ return jQuery;
145
+ } );
@@ -0,0 +1,237 @@
1
+ define( [
2
+ "./core",
3
+ "./var/document",
4
+ "./var/documentElement",
5
+ "./var/hasOwn",
6
+ "./var/indexOf"
7
+ ], function( jQuery, document, documentElement, hasOwn, indexOf ) {
8
+
9
+ "use strict";
10
+
11
+ /*
12
+ * Optional (non-Sizzle) selector module for custom builds.
13
+ *
14
+ * Note that this DOES NOT SUPPORT many documented jQuery
15
+ * features in exchange for its smaller size:
16
+ *
17
+ * Attribute not equal selector
18
+ * Positional selectors (:first; :eq(n); :odd; etc.)
19
+ * Type selectors (:input; :checkbox; :button; etc.)
20
+ * State-based selectors (:animated; :visible; :hidden; etc.)
21
+ * :has(selector)
22
+ * :not(complex selector)
23
+ * custom selectors via Sizzle extensions
24
+ * Leading combinators (e.g., $collection.find("> *"))
25
+ * Reliable functionality on XML fragments
26
+ * Requiring all parts of a selector to match elements under context
27
+ * (e.g., $div.find("div > *") now matches children of $div)
28
+ * Matching against non-elements
29
+ * Reliable sorting of disconnected nodes
30
+ * querySelectorAll bug fixes (e.g., unreliable :focus on WebKit)
31
+ *
32
+ * If any of these are unacceptable tradeoffs, either use Sizzle or
33
+ * customize this stub for the project's specific needs.
34
+ */
35
+
36
+ var hasDuplicate, sortInput,
37
+ sortStable = jQuery.expando.split( "" ).sort( sortOrder ).join( "" ) === jQuery.expando,
38
+ matches = documentElement.matches ||
39
+ documentElement.webkitMatchesSelector ||
40
+ documentElement.mozMatchesSelector ||
41
+ documentElement.oMatchesSelector ||
42
+ documentElement.msMatchesSelector,
43
+
44
+ // CSS string/identifier serialization
45
+ // https://drafts.csswg.org/cssom/#common-serializing-idioms
46
+ rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,
47
+ fcssescape = function( ch, asCodePoint ) {
48
+ if ( asCodePoint ) {
49
+
50
+ // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
51
+ if ( ch === "\0" ) {
52
+ return "\uFFFD";
53
+ }
54
+
55
+ // Control characters and (dependent upon position) numbers get escaped as code points
56
+ return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
57
+ }
58
+
59
+ // Other potentially-special ASCII characters get backslash-escaped
60
+ return "\\" + ch;
61
+ };
62
+
63
+ function sortOrder( a, b ) {
64
+
65
+ // Flag for duplicate removal
66
+ if ( a === b ) {
67
+ hasDuplicate = true;
68
+ return 0;
69
+ }
70
+
71
+ // Sort on method existence if only one input has compareDocumentPosition
72
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
73
+ if ( compare ) {
74
+ return compare;
75
+ }
76
+
77
+ // Calculate position if both inputs belong to the same document
78
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
79
+ a.compareDocumentPosition( b ) :
80
+
81
+ // Otherwise we know they are disconnected
82
+ 1;
83
+
84
+ // Disconnected nodes
85
+ if ( compare & 1 ) {
86
+
87
+ // Choose the first element that is related to our preferred document
88
+ if ( a === document || a.ownerDocument === document &&
89
+ jQuery.contains( document, a ) ) {
90
+ return -1;
91
+ }
92
+ if ( b === document || b.ownerDocument === document &&
93
+ jQuery.contains( document, b ) ) {
94
+ return 1;
95
+ }
96
+
97
+ // Maintain original order
98
+ return sortInput ?
99
+ ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
100
+ 0;
101
+ }
102
+
103
+ return compare & 4 ? -1 : 1;
104
+ }
105
+
106
+ function uniqueSort( results ) {
107
+ var elem,
108
+ duplicates = [],
109
+ j = 0,
110
+ i = 0;
111
+
112
+ hasDuplicate = false;
113
+ sortInput = !sortStable && results.slice( 0 );
114
+ results.sort( sortOrder );
115
+
116
+ if ( hasDuplicate ) {
117
+ while ( ( elem = results[ i++ ] ) ) {
118
+ if ( elem === results[ i ] ) {
119
+ j = duplicates.push( i );
120
+ }
121
+ }
122
+ while ( j-- ) {
123
+ results.splice( duplicates[ j ], 1 );
124
+ }
125
+ }
126
+
127
+ // Clear input after sorting to release objects
128
+ // See https://github.com/jquery/sizzle/pull/225
129
+ sortInput = null;
130
+
131
+ return results;
132
+ }
133
+
134
+ function escape( sel ) {
135
+ return ( sel + "" ).replace( rcssescape, fcssescape );
136
+ }
137
+
138
+ jQuery.extend( {
139
+ uniqueSort: uniqueSort,
140
+ unique: uniqueSort,
141
+ escapeSelector: escape,
142
+ find: function( selector, context, results, seed ) {
143
+ var elem, nodeType,
144
+ i = 0;
145
+
146
+ results = results || [];
147
+ context = context || document;
148
+
149
+ // Same basic safeguard as Sizzle
150
+ if ( !selector || typeof selector !== "string" ) {
151
+ return results;
152
+ }
153
+
154
+ // Early return if context is not an element or document
155
+ if ( ( nodeType = context.nodeType ) !== 1 && nodeType !== 9 ) {
156
+ return [];
157
+ }
158
+
159
+ if ( seed ) {
160
+ while ( ( elem = seed[ i++ ] ) ) {
161
+ if ( jQuery.find.matchesSelector( elem, selector ) ) {
162
+ results.push( elem );
163
+ }
164
+ }
165
+ } else {
166
+ jQuery.merge( results, context.querySelectorAll( selector ) );
167
+ }
168
+
169
+ return results;
170
+ },
171
+ text: function( elem ) {
172
+ var node,
173
+ ret = "",
174
+ i = 0,
175
+ nodeType = elem.nodeType;
176
+
177
+ if ( !nodeType ) {
178
+
179
+ // If no nodeType, this is expected to be an array
180
+ while ( ( node = elem[ i++ ] ) ) {
181
+
182
+ // Do not traverse comment nodes
183
+ ret += jQuery.text( node );
184
+ }
185
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
186
+
187
+ // Use textContent for elements
188
+ return elem.textContent;
189
+ } else if ( nodeType === 3 || nodeType === 4 ) {
190
+ return elem.nodeValue;
191
+ }
192
+
193
+ // Do not include comment or processing instruction nodes
194
+
195
+ return ret;
196
+ },
197
+ contains: function( a, b ) {
198
+ var adown = a.nodeType === 9 ? a.documentElement : a,
199
+ bup = b && b.parentNode;
200
+ return a === bup || !!( bup && bup.nodeType === 1 && adown.contains( bup ) );
201
+ },
202
+ isXMLDoc: function( elem ) {
203
+
204
+ // documentElement is verified for cases where it doesn't yet exist
205
+ // (such as loading iframes in IE - #4833)
206
+ var documentElement = elem && ( elem.ownerDocument || elem ).documentElement;
207
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
208
+ },
209
+ expr: {
210
+ attrHandle: {},
211
+ match: {
212
+ bool: new RegExp( "^(?:checked|selected|async|autofocus|autoplay|controls|defer" +
213
+ "|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$", "i" ),
214
+ needsContext: /^[\x20\t\r\n\f]*[>+~]/
215
+ }
216
+ }
217
+ } );
218
+
219
+ jQuery.extend( jQuery.find, {
220
+ matches: function( expr, elements ) {
221
+ return jQuery.find( expr, null, null, elements );
222
+ },
223
+ matchesSelector: function( elem, expr ) {
224
+ return matches.call( elem, expr );
225
+ },
226
+ attr: function( elem, name ) {
227
+ var fn = jQuery.expr.attrHandle[ name.toLowerCase() ],
228
+
229
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
230
+ value = fn && hasOwn.call( jQuery.expr.attrHandle, name.toLowerCase() ) ?
231
+ fn( elem, name, jQuery.isXMLDoc( elem ) ) :
232
+ undefined;
233
+ return value !== undefined ? value : elem.getAttribute( name );
234
+ }
235
+ } );
236
+
237
+ } );
@@ -0,0 +1,19 @@
1
+ define( [
2
+ "./core",
3
+ "../external/sizzle/dist/sizzle"
4
+ ], function( jQuery, Sizzle ) {
5
+
6
+ "use strict";
7
+
8
+ jQuery.find = Sizzle;
9
+ jQuery.expr = Sizzle.selectors;
10
+
11
+ // Deprecated
12
+ jQuery.expr[ ":" ] = jQuery.expr.pseudos;
13
+ jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
14
+ jQuery.text = Sizzle.getText;
15
+ jQuery.isXMLDoc = Sizzle.isXML;
16
+ jQuery.contains = Sizzle.contains;
17
+ jQuery.escapeSelector = Sizzle.escape;
18
+
19
+ } );
@@ -0,0 +1,3 @@
1
+ define( [ "./selector-sizzle" ], function() {
2
+ "use strict";
3
+ } );
@@ -0,0 +1,130 @@
1
+ define( [
2
+ "./core",
3
+ "./manipulation/var/rcheckableType",
4
+ "./core/init",
5
+ "./traversing", // filter
6
+ "./attributes/prop"
7
+ ], function( jQuery, rcheckableType ) {
8
+
9
+ "use strict";
10
+
11
+ var
12
+ rbracket = /\[\]$/,
13
+ rCRLF = /\r?\n/g,
14
+ rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
15
+ rsubmittable = /^(?:input|select|textarea|keygen)/i;
16
+
17
+ function buildParams( prefix, obj, traditional, add ) {
18
+ var name;
19
+
20
+ if ( Array.isArray( obj ) ) {
21
+
22
+ // Serialize array item.
23
+ jQuery.each( obj, function( i, v ) {
24
+ if ( traditional || rbracket.test( prefix ) ) {
25
+
26
+ // Treat each array item as a scalar.
27
+ add( prefix, v );
28
+
29
+ } else {
30
+
31
+ // Item is non-scalar (array or object), encode its numeric index.
32
+ buildParams(
33
+ prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
34
+ v,
35
+ traditional,
36
+ add
37
+ );
38
+ }
39
+ } );
40
+
41
+ } else if ( !traditional && jQuery.type( obj ) === "object" ) {
42
+
43
+ // Serialize object item.
44
+ for ( name in obj ) {
45
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
46
+ }
47
+
48
+ } else {
49
+
50
+ // Serialize scalar item.
51
+ add( prefix, obj );
52
+ }
53
+ }
54
+
55
+ // Serialize an array of form elements or a set of
56
+ // key/values into a query string
57
+ jQuery.param = function( a, traditional ) {
58
+ var prefix,
59
+ s = [],
60
+ add = function( key, valueOrFunction ) {
61
+
62
+ // If value is a function, invoke it and use its return value
63
+ var value = jQuery.isFunction( valueOrFunction ) ?
64
+ valueOrFunction() :
65
+ valueOrFunction;
66
+
67
+ s[ s.length ] = encodeURIComponent( key ) + "=" +
68
+ encodeURIComponent( value == null ? "" : value );
69
+ };
70
+
71
+ // If an array was passed in, assume that it is an array of form elements.
72
+ if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
73
+
74
+ // Serialize the form elements
75
+ jQuery.each( a, function() {
76
+ add( this.name, this.value );
77
+ } );
78
+
79
+ } else {
80
+
81
+ // If traditional, encode the "old" way (the way 1.3.2 or older
82
+ // did it), otherwise encode params recursively.
83
+ for ( prefix in a ) {
84
+ buildParams( prefix, a[ prefix ], traditional, add );
85
+ }
86
+ }
87
+
88
+ // Return the resulting serialization
89
+ return s.join( "&" );
90
+ };
91
+
92
+ jQuery.fn.extend( {
93
+ serialize: function() {
94
+ return jQuery.param( this.serializeArray() );
95
+ },
96
+ serializeArray: function() {
97
+ return this.map( function() {
98
+
99
+ // Can add propHook for "elements" to filter or add form elements
100
+ var elements = jQuery.prop( this, "elements" );
101
+ return elements ? jQuery.makeArray( elements ) : this;
102
+ } )
103
+ .filter( function() {
104
+ var type = this.type;
105
+
106
+ // Use .is( ":disabled" ) so that fieldset[disabled] works
107
+ return this.name && !jQuery( this ).is( ":disabled" ) &&
108
+ rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
109
+ ( this.checked || !rcheckableType.test( type ) );
110
+ } )
111
+ .map( function( i, elem ) {
112
+ var val = jQuery( this ).val();
113
+
114
+ if ( val == null ) {
115
+ return null;
116
+ }
117
+
118
+ if ( Array.isArray( val ) ) {
119
+ return jQuery.map( val, function( val ) {
120
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
121
+ } );
122
+ }
123
+
124
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
125
+ } ).get();
126
+ }
127
+ } );
128
+
129
+ return jQuery;
130
+ } );
@@ -0,0 +1,106 @@
1
+ define( [
2
+ "../core",
3
+ "../var/indexOf",
4
+ "./var/rneedsContext",
5
+ "../selector"
6
+ ], function( jQuery, indexOf, rneedsContext ) {
7
+
8
+ "use strict";
9
+
10
+ var risSimple = /^.[^:#\[\.,]*$/;
11
+
12
+ // Implement the identical functionality for filter and not
13
+ function winnow( elements, qualifier, not ) {
14
+ if ( jQuery.isFunction( qualifier ) ) {
15
+ return jQuery.grep( elements, function( elem, i ) {
16
+ return !!qualifier.call( elem, i, elem ) !== not;
17
+ } );
18
+ }
19
+
20
+ // Single element
21
+ if ( qualifier.nodeType ) {
22
+ return jQuery.grep( elements, function( elem ) {
23
+ return ( elem === qualifier ) !== not;
24
+ } );
25
+ }
26
+
27
+ // Arraylike of elements (jQuery, arguments, Array)
28
+ if ( typeof qualifier !== "string" ) {
29
+ return jQuery.grep( elements, function( elem ) {
30
+ return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
31
+ } );
32
+ }
33
+
34
+ // Simple selector that can be filtered directly, removing non-Elements
35
+ if ( risSimple.test( qualifier ) ) {
36
+ return jQuery.filter( qualifier, elements, not );
37
+ }
38
+
39
+ // Complex selector, compare the two sets, removing non-Elements
40
+ qualifier = jQuery.filter( qualifier, elements );
41
+ return jQuery.grep( elements, function( elem ) {
42
+ return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
43
+ } );
44
+ }
45
+
46
+ jQuery.filter = function( expr, elems, not ) {
47
+ var elem = elems[ 0 ];
48
+
49
+ if ( not ) {
50
+ expr = ":not(" + expr + ")";
51
+ }
52
+
53
+ if ( elems.length === 1 && elem.nodeType === 1 ) {
54
+ return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
55
+ }
56
+
57
+ return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
58
+ return elem.nodeType === 1;
59
+ } ) );
60
+ };
61
+
62
+ jQuery.fn.extend( {
63
+ find: function( selector ) {
64
+ var i, ret,
65
+ len = this.length,
66
+ self = this;
67
+
68
+ if ( typeof selector !== "string" ) {
69
+ return this.pushStack( jQuery( selector ).filter( function() {
70
+ for ( i = 0; i < len; i++ ) {
71
+ if ( jQuery.contains( self[ i ], this ) ) {
72
+ return true;
73
+ }
74
+ }
75
+ } ) );
76
+ }
77
+
78
+ ret = this.pushStack( [] );
79
+
80
+ for ( i = 0; i < len; i++ ) {
81
+ jQuery.find( selector, self[ i ], ret );
82
+ }
83
+
84
+ return len > 1 ? jQuery.uniqueSort( ret ) : ret;
85
+ },
86
+ filter: function( selector ) {
87
+ return this.pushStack( winnow( this, selector || [], false ) );
88
+ },
89
+ not: function( selector ) {
90
+ return this.pushStack( winnow( this, selector || [], true ) );
91
+ },
92
+ is: function( selector ) {
93
+ return !!winnow(
94
+ this,
95
+
96
+ // If this is a positional/relative selector, check membership in the returned set
97
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
98
+ typeof selector === "string" && rneedsContext.test( selector ) ?
99
+ jQuery( selector ) :
100
+ selector || [],
101
+ false
102
+ ).length;
103
+ }
104
+ } );
105
+
106
+ } );
@@ -0,0 +1,22 @@
1
+ define( [
2
+ "../../core"
3
+ ], function( jQuery ) {
4
+
5
+ "use strict";
6
+
7
+ return function( elem, dir, until ) {
8
+ var matched = [],
9
+ truncate = until !== undefined;
10
+
11
+ while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
12
+ if ( elem.nodeType === 1 ) {
13
+ if ( truncate && jQuery( elem ).is( until ) ) {
14
+ break;
15
+ }
16
+ matched.push( elem );
17
+ }
18
+ }
19
+ return matched;
20
+ };
21
+
22
+ } );
@@ -0,0 +1,8 @@
1
+ define( [
2
+ "../../core",
3
+ "../../selector"
4
+ ], function( jQuery ) {
5
+ "use strict";
6
+
7
+ return jQuery.expr.match.needsContext;
8
+ } );