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,179 @@
1
+ define( [
2
+ "./core",
3
+ "./core/access",
4
+ "./data/var/dataPriv",
5
+ "./data/var/dataUser"
6
+ ], function( jQuery, access, dataPriv, dataUser ) {
7
+
8
+ "use strict";
9
+
10
+ // Implementation Summary
11
+ //
12
+ // 1. Enforce API surface and semantic compatibility with 1.9.x branch
13
+ // 2. Improve the module's maintainability by reducing the storage
14
+ // paths to a single mechanism.
15
+ // 3. Use the same single mechanism to support "private" and "user" data.
16
+ // 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
17
+ // 5. Avoid exposing implementation details on user objects (eg. expando properties)
18
+ // 6. Provide a clear path for implementation upgrade to WeakMap in 2014
19
+
20
+ var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
21
+ rmultiDash = /[A-Z]/g;
22
+
23
+ function getData( data ) {
24
+ if ( data === "true" ) {
25
+ return true;
26
+ }
27
+
28
+ if ( data === "false" ) {
29
+ return false;
30
+ }
31
+
32
+ if ( data === "null" ) {
33
+ return null;
34
+ }
35
+
36
+ // Only convert to a number if it doesn't change the string
37
+ if ( data === +data + "" ) {
38
+ return +data;
39
+ }
40
+
41
+ if ( rbrace.test( data ) ) {
42
+ return JSON.parse( data );
43
+ }
44
+
45
+ return data;
46
+ }
47
+
48
+ function dataAttr( elem, key, data ) {
49
+ var name;
50
+
51
+ // If nothing was found internally, try to fetch any
52
+ // data from the HTML5 data-* attribute
53
+ if ( data === undefined && elem.nodeType === 1 ) {
54
+ name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
55
+ data = elem.getAttribute( name );
56
+
57
+ if ( typeof data === "string" ) {
58
+ try {
59
+ data = getData( data );
60
+ } catch ( e ) {}
61
+
62
+ // Make sure we set the data so it isn't changed later
63
+ dataUser.set( elem, key, data );
64
+ } else {
65
+ data = undefined;
66
+ }
67
+ }
68
+ return data;
69
+ }
70
+
71
+ jQuery.extend( {
72
+ hasData: function( elem ) {
73
+ return dataUser.hasData( elem ) || dataPriv.hasData( elem );
74
+ },
75
+
76
+ data: function( elem, name, data ) {
77
+ return dataUser.access( elem, name, data );
78
+ },
79
+
80
+ removeData: function( elem, name ) {
81
+ dataUser.remove( elem, name );
82
+ },
83
+
84
+ // TODO: Now that all calls to _data and _removeData have been replaced
85
+ // with direct calls to dataPriv methods, these can be deprecated.
86
+ _data: function( elem, name, data ) {
87
+ return dataPriv.access( elem, name, data );
88
+ },
89
+
90
+ _removeData: function( elem, name ) {
91
+ dataPriv.remove( elem, name );
92
+ }
93
+ } );
94
+
95
+ jQuery.fn.extend( {
96
+ data: function( key, value ) {
97
+ var i, name, data,
98
+ elem = this[ 0 ],
99
+ attrs = elem && elem.attributes;
100
+
101
+ // Gets all values
102
+ if ( key === undefined ) {
103
+ if ( this.length ) {
104
+ data = dataUser.get( elem );
105
+
106
+ if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
107
+ i = attrs.length;
108
+ while ( i-- ) {
109
+
110
+ // Support: IE 11 only
111
+ // The attrs elements can be null (#14894)
112
+ if ( attrs[ i ] ) {
113
+ name = attrs[ i ].name;
114
+ if ( name.indexOf( "data-" ) === 0 ) {
115
+ name = jQuery.camelCase( name.slice( 5 ) );
116
+ dataAttr( elem, name, data[ name ] );
117
+ }
118
+ }
119
+ }
120
+ dataPriv.set( elem, "hasDataAttrs", true );
121
+ }
122
+ }
123
+
124
+ return data;
125
+ }
126
+
127
+ // Sets multiple values
128
+ if ( typeof key === "object" ) {
129
+ return this.each( function() {
130
+ dataUser.set( this, key );
131
+ } );
132
+ }
133
+
134
+ return access( this, function( value ) {
135
+ var data;
136
+
137
+ // The calling jQuery object (element matches) is not empty
138
+ // (and therefore has an element appears at this[ 0 ]) and the
139
+ // `value` parameter was not undefined. An empty jQuery object
140
+ // will result in `undefined` for elem = this[ 0 ] which will
141
+ // throw an exception if an attempt to read a data cache is made.
142
+ if ( elem && value === undefined ) {
143
+
144
+ // Attempt to get data from the cache
145
+ // The key will always be camelCased in Data
146
+ data = dataUser.get( elem, key );
147
+ if ( data !== undefined ) {
148
+ return data;
149
+ }
150
+
151
+ // Attempt to "discover" the data in
152
+ // HTML5 custom data-* attrs
153
+ data = dataAttr( elem, key );
154
+ if ( data !== undefined ) {
155
+ return data;
156
+ }
157
+
158
+ // We tried really hard, but the data doesn't exist.
159
+ return;
160
+ }
161
+
162
+ // Set the data...
163
+ this.each( function() {
164
+
165
+ // We always store the camelCased key
166
+ dataUser.set( this, key, value );
167
+ } );
168
+ }, null, value, arguments.length > 1, null, true );
169
+ },
170
+
171
+ removeData: function( key ) {
172
+ return this.each( function() {
173
+ dataUser.remove( this, key );
174
+ } );
175
+ }
176
+ } );
177
+
178
+ return jQuery;
179
+ } );
@@ -0,0 +1,21 @@
1
+ define( [
2
+ "../core",
3
+ "../deferred"
4
+ ], function( jQuery ) {
5
+
6
+ "use strict";
7
+
8
+ // These usually indicate a programmer mistake during development,
9
+ // warn about them ASAP rather than swallowing them by default.
10
+ var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
11
+
12
+ jQuery.Deferred.exceptionHook = function( error, stack ) {
13
+
14
+ // Support: IE 8 - 9 only
15
+ // Console exists when dev tools are open, which can happen at any time
16
+ if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
17
+ window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
18
+ }
19
+ };
20
+
21
+ } );
@@ -0,0 +1,391 @@
1
+ define( [
2
+ "./core",
3
+ "./var/slice",
4
+ "./callbacks"
5
+ ], function( jQuery, slice ) {
6
+
7
+ "use strict";
8
+
9
+ function Identity( v ) {
10
+ return v;
11
+ }
12
+ function Thrower( ex ) {
13
+ throw ex;
14
+ }
15
+
16
+ function adoptValue( value, resolve, reject, noValue ) {
17
+ var method;
18
+
19
+ try {
20
+
21
+ // Check for promise aspect first to privilege synchronous behavior
22
+ if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
23
+ method.call( value ).done( resolve ).fail( reject );
24
+
25
+ // Other thenables
26
+ } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
27
+ method.call( value, resolve, reject );
28
+
29
+ // Other non-thenables
30
+ } else {
31
+
32
+ // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
33
+ // * false: [ value ].slice( 0 ) => resolve( value )
34
+ // * true: [ value ].slice( 1 ) => resolve()
35
+ resolve.apply( undefined, [ value ].slice( noValue ) );
36
+ }
37
+
38
+ // For Promises/A+, convert exceptions into rejections
39
+ // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
40
+ // Deferred#then to conditionally suppress rejection.
41
+ } catch ( value ) {
42
+
43
+ // Support: Android 4.0 only
44
+ // Strict mode functions invoked without .call/.apply get global-object context
45
+ reject.apply( undefined, [ value ] );
46
+ }
47
+ }
48
+
49
+ jQuery.extend( {
50
+
51
+ Deferred: function( func ) {
52
+ var tuples = [
53
+
54
+ // action, add listener, callbacks,
55
+ // ... .then handlers, argument index, [final state]
56
+ [ "notify", "progress", jQuery.Callbacks( "memory" ),
57
+ jQuery.Callbacks( "memory" ), 2 ],
58
+ [ "resolve", "done", jQuery.Callbacks( "once memory" ),
59
+ jQuery.Callbacks( "once memory" ), 0, "resolved" ],
60
+ [ "reject", "fail", jQuery.Callbacks( "once memory" ),
61
+ jQuery.Callbacks( "once memory" ), 1, "rejected" ]
62
+ ],
63
+ state = "pending",
64
+ promise = {
65
+ state: function() {
66
+ return state;
67
+ },
68
+ always: function() {
69
+ deferred.done( arguments ).fail( arguments );
70
+ return this;
71
+ },
72
+ "catch": function( fn ) {
73
+ return promise.then( null, fn );
74
+ },
75
+
76
+ // Keep pipe for back-compat
77
+ pipe: function( /* fnDone, fnFail, fnProgress */ ) {
78
+ var fns = arguments;
79
+
80
+ return jQuery.Deferred( function( newDefer ) {
81
+ jQuery.each( tuples, function( i, tuple ) {
82
+
83
+ // Map tuples (progress, done, fail) to arguments (done, fail, progress)
84
+ var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
85
+
86
+ // deferred.progress(function() { bind to newDefer or newDefer.notify })
87
+ // deferred.done(function() { bind to newDefer or newDefer.resolve })
88
+ // deferred.fail(function() { bind to newDefer or newDefer.reject })
89
+ deferred[ tuple[ 1 ] ]( function() {
90
+ var returned = fn && fn.apply( this, arguments );
91
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
92
+ returned.promise()
93
+ .progress( newDefer.notify )
94
+ .done( newDefer.resolve )
95
+ .fail( newDefer.reject );
96
+ } else {
97
+ newDefer[ tuple[ 0 ] + "With" ](
98
+ this,
99
+ fn ? [ returned ] : arguments
100
+ );
101
+ }
102
+ } );
103
+ } );
104
+ fns = null;
105
+ } ).promise();
106
+ },
107
+ then: function( onFulfilled, onRejected, onProgress ) {
108
+ var maxDepth = 0;
109
+ function resolve( depth, deferred, handler, special ) {
110
+ return function() {
111
+ var that = this,
112
+ args = arguments,
113
+ mightThrow = function() {
114
+ var returned, then;
115
+
116
+ // Support: Promises/A+ section 2.3.3.3.3
117
+ // https://promisesaplus.com/#point-59
118
+ // Ignore double-resolution attempts
119
+ if ( depth < maxDepth ) {
120
+ return;
121
+ }
122
+
123
+ returned = handler.apply( that, args );
124
+
125
+ // Support: Promises/A+ section 2.3.1
126
+ // https://promisesaplus.com/#point-48
127
+ if ( returned === deferred.promise() ) {
128
+ throw new TypeError( "Thenable self-resolution" );
129
+ }
130
+
131
+ // Support: Promises/A+ sections 2.3.3.1, 3.5
132
+ // https://promisesaplus.com/#point-54
133
+ // https://promisesaplus.com/#point-75
134
+ // Retrieve `then` only once
135
+ then = returned &&
136
+
137
+ // Support: Promises/A+ section 2.3.4
138
+ // https://promisesaplus.com/#point-64
139
+ // Only check objects and functions for thenability
140
+ ( typeof returned === "object" ||
141
+ typeof returned === "function" ) &&
142
+ returned.then;
143
+
144
+ // Handle a returned thenable
145
+ if ( jQuery.isFunction( then ) ) {
146
+
147
+ // Special processors (notify) just wait for resolution
148
+ if ( special ) {
149
+ then.call(
150
+ returned,
151
+ resolve( maxDepth, deferred, Identity, special ),
152
+ resolve( maxDepth, deferred, Thrower, special )
153
+ );
154
+
155
+ // Normal processors (resolve) also hook into progress
156
+ } else {
157
+
158
+ // ...and disregard older resolution values
159
+ maxDepth++;
160
+
161
+ then.call(
162
+ returned,
163
+ resolve( maxDepth, deferred, Identity, special ),
164
+ resolve( maxDepth, deferred, Thrower, special ),
165
+ resolve( maxDepth, deferred, Identity,
166
+ deferred.notifyWith )
167
+ );
168
+ }
169
+
170
+ // Handle all other returned values
171
+ } else {
172
+
173
+ // Only substitute handlers pass on context
174
+ // and multiple values (non-spec behavior)
175
+ if ( handler !== Identity ) {
176
+ that = undefined;
177
+ args = [ returned ];
178
+ }
179
+
180
+ // Process the value(s)
181
+ // Default process is resolve
182
+ ( special || deferred.resolveWith )( that, args );
183
+ }
184
+ },
185
+
186
+ // Only normal processors (resolve) catch and reject exceptions
187
+ process = special ?
188
+ mightThrow :
189
+ function() {
190
+ try {
191
+ mightThrow();
192
+ } catch ( e ) {
193
+
194
+ if ( jQuery.Deferred.exceptionHook ) {
195
+ jQuery.Deferred.exceptionHook( e,
196
+ process.stackTrace );
197
+ }
198
+
199
+ // Support: Promises/A+ section 2.3.3.3.4.1
200
+ // https://promisesaplus.com/#point-61
201
+ // Ignore post-resolution exceptions
202
+ if ( depth + 1 >= maxDepth ) {
203
+
204
+ // Only substitute handlers pass on context
205
+ // and multiple values (non-spec behavior)
206
+ if ( handler !== Thrower ) {
207
+ that = undefined;
208
+ args = [ e ];
209
+ }
210
+
211
+ deferred.rejectWith( that, args );
212
+ }
213
+ }
214
+ };
215
+
216
+ // Support: Promises/A+ section 2.3.3.3.1
217
+ // https://promisesaplus.com/#point-57
218
+ // Re-resolve promises immediately to dodge false rejection from
219
+ // subsequent errors
220
+ if ( depth ) {
221
+ process();
222
+ } else {
223
+
224
+ // Call an optional hook to record the stack, in case of exception
225
+ // since it's otherwise lost when execution goes async
226
+ if ( jQuery.Deferred.getStackHook ) {
227
+ process.stackTrace = jQuery.Deferred.getStackHook();
228
+ }
229
+ window.setTimeout( process );
230
+ }
231
+ };
232
+ }
233
+
234
+ return jQuery.Deferred( function( newDefer ) {
235
+
236
+ // progress_handlers.add( ... )
237
+ tuples[ 0 ][ 3 ].add(
238
+ resolve(
239
+ 0,
240
+ newDefer,
241
+ jQuery.isFunction( onProgress ) ?
242
+ onProgress :
243
+ Identity,
244
+ newDefer.notifyWith
245
+ )
246
+ );
247
+
248
+ // fulfilled_handlers.add( ... )
249
+ tuples[ 1 ][ 3 ].add(
250
+ resolve(
251
+ 0,
252
+ newDefer,
253
+ jQuery.isFunction( onFulfilled ) ?
254
+ onFulfilled :
255
+ Identity
256
+ )
257
+ );
258
+
259
+ // rejected_handlers.add( ... )
260
+ tuples[ 2 ][ 3 ].add(
261
+ resolve(
262
+ 0,
263
+ newDefer,
264
+ jQuery.isFunction( onRejected ) ?
265
+ onRejected :
266
+ Thrower
267
+ )
268
+ );
269
+ } ).promise();
270
+ },
271
+
272
+ // Get a promise for this deferred
273
+ // If obj is provided, the promise aspect is added to the object
274
+ promise: function( obj ) {
275
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
276
+ }
277
+ },
278
+ deferred = {};
279
+
280
+ // Add list-specific methods
281
+ jQuery.each( tuples, function( i, tuple ) {
282
+ var list = tuple[ 2 ],
283
+ stateString = tuple[ 5 ];
284
+
285
+ // promise.progress = list.add
286
+ // promise.done = list.add
287
+ // promise.fail = list.add
288
+ promise[ tuple[ 1 ] ] = list.add;
289
+
290
+ // Handle state
291
+ if ( stateString ) {
292
+ list.add(
293
+ function() {
294
+
295
+ // state = "resolved" (i.e., fulfilled)
296
+ // state = "rejected"
297
+ state = stateString;
298
+ },
299
+
300
+ // rejected_callbacks.disable
301
+ // fulfilled_callbacks.disable
302
+ tuples[ 3 - i ][ 2 ].disable,
303
+
304
+ // progress_callbacks.lock
305
+ tuples[ 0 ][ 2 ].lock
306
+ );
307
+ }
308
+
309
+ // progress_handlers.fire
310
+ // fulfilled_handlers.fire
311
+ // rejected_handlers.fire
312
+ list.add( tuple[ 3 ].fire );
313
+
314
+ // deferred.notify = function() { deferred.notifyWith(...) }
315
+ // deferred.resolve = function() { deferred.resolveWith(...) }
316
+ // deferred.reject = function() { deferred.rejectWith(...) }
317
+ deferred[ tuple[ 0 ] ] = function() {
318
+ deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
319
+ return this;
320
+ };
321
+
322
+ // deferred.notifyWith = list.fireWith
323
+ // deferred.resolveWith = list.fireWith
324
+ // deferred.rejectWith = list.fireWith
325
+ deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
326
+ } );
327
+
328
+ // Make the deferred a promise
329
+ promise.promise( deferred );
330
+
331
+ // Call given func if any
332
+ if ( func ) {
333
+ func.call( deferred, deferred );
334
+ }
335
+
336
+ // All done!
337
+ return deferred;
338
+ },
339
+
340
+ // Deferred helper
341
+ when: function( singleValue ) {
342
+ var
343
+
344
+ // count of uncompleted subordinates
345
+ remaining = arguments.length,
346
+
347
+ // count of unprocessed arguments
348
+ i = remaining,
349
+
350
+ // subordinate fulfillment data
351
+ resolveContexts = Array( i ),
352
+ resolveValues = slice.call( arguments ),
353
+
354
+ // the master Deferred
355
+ master = jQuery.Deferred(),
356
+
357
+ // subordinate callback factory
358
+ updateFunc = function( i ) {
359
+ return function( value ) {
360
+ resolveContexts[ i ] = this;
361
+ resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
362
+ if ( !( --remaining ) ) {
363
+ master.resolveWith( resolveContexts, resolveValues );
364
+ }
365
+ };
366
+ };
367
+
368
+ // Single- and empty arguments are adopted like Promise.resolve
369
+ if ( remaining <= 1 ) {
370
+ adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
371
+ !remaining );
372
+
373
+ // Use .then() to unwrap secondary thenables (cf. gh-3000)
374
+ if ( master.state() === "pending" ||
375
+ jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
376
+
377
+ return master.then();
378
+ }
379
+ }
380
+
381
+ // Multiple arguments are aggregated like Promise.all array elements
382
+ while ( i-- ) {
383
+ adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
384
+ }
385
+
386
+ return master.promise();
387
+ }
388
+ } );
389
+
390
+ return jQuery;
391
+ } );
@@ -0,0 +1,40 @@
1
+ define( [
2
+ "./core",
3
+ "./core/nodeName"
4
+ ], function( jQuery, nodeName ) {
5
+
6
+ "use strict";
7
+
8
+ jQuery.fn.extend( {
9
+
10
+ bind: function( types, data, fn ) {
11
+ return this.on( types, null, data, fn );
12
+ },
13
+ unbind: function( types, fn ) {
14
+ return this.off( types, null, fn );
15
+ },
16
+
17
+ delegate: function( selector, types, data, fn ) {
18
+ return this.on( types, selector, data, fn );
19
+ },
20
+ undelegate: function( selector, types, fn ) {
21
+
22
+ // ( namespace ) or ( selector, types [, fn] )
23
+ return arguments.length === 1 ?
24
+ this.off( selector, "**" ) :
25
+ this.off( types, selector || "**", fn );
26
+ }
27
+ } );
28
+
29
+ jQuery.holdReady = function( hold ) {
30
+ if ( hold ) {
31
+ jQuery.readyWait++;
32
+ } else {
33
+ jQuery.ready( true );
34
+ }
35
+ };
36
+ jQuery.isArray = Array.isArray;
37
+ jQuery.parseJSON = JSON.parse;
38
+ jQuery.nodeName = nodeName;
39
+
40
+ } );
@@ -0,0 +1,56 @@
1
+ define( [
2
+ "./core",
3
+ "./core/access",
4
+ "./css"
5
+ ], function( jQuery, access ) {
6
+
7
+ "use strict";
8
+
9
+ // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
10
+ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
11
+ jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
12
+ function( defaultExtra, funcName ) {
13
+
14
+ // Margin is only for outerHeight, outerWidth
15
+ jQuery.fn[ funcName ] = function( margin, value ) {
16
+ var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
17
+ extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
18
+
19
+ return access( this, function( elem, type, value ) {
20
+ var doc;
21
+
22
+ if ( jQuery.isWindow( elem ) ) {
23
+
24
+ // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
25
+ return funcName.indexOf( "outer" ) === 0 ?
26
+ elem[ "inner" + name ] :
27
+ elem.document.documentElement[ "client" + name ];
28
+ }
29
+
30
+ // Get document width or height
31
+ if ( elem.nodeType === 9 ) {
32
+ doc = elem.documentElement;
33
+
34
+ // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
35
+ // whichever is greatest
36
+ return Math.max(
37
+ elem.body[ "scroll" + name ], doc[ "scroll" + name ],
38
+ elem.body[ "offset" + name ], doc[ "offset" + name ],
39
+ doc[ "client" + name ]
40
+ );
41
+ }
42
+
43
+ return value === undefined ?
44
+
45
+ // Get width or height on the element, requesting but not forcing parseFloat
46
+ jQuery.css( elem, type, extra ) :
47
+
48
+ // Set width or height on the element
49
+ jQuery.style( elem, type, value, extra );
50
+ }, type, chainable ? margin : undefined, chainable );
51
+ };
52
+ } );
53
+ } );
54
+
55
+ return jQuery;
56
+ } );