trusty-cms 4.3.4 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (197) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -1
  3. data/Gemfile.lock +22 -12
  4. data/app/assets/stylesheets/admin/partials/_content.scss +1 -0
  5. data/app/controllers/admin/assets_controller.rb +5 -1
  6. data/app/models/asset.rb +39 -48
  7. data/app/models/asset_type.rb +6 -2
  8. data/app/views/admin/assets/edit.html.haml +5 -3
  9. data/config/database.yml +2 -2
  10. data/config/locales/en.yml +1 -0
  11. data/coverage/index.html +1 -1
  12. data/lib/trusty_cms/deprecation.rb +13 -0
  13. data/lib/trusty_cms.rb +1 -1
  14. data/node_modules/path-parse/index.js +17 -35
  15. data/node_modules/path-parse/package.json +1 -1
  16. data/node_modules/postcss/CHANGELOG.md +27 -0
  17. data/node_modules/postcss/README.md +21 -0
  18. data/node_modules/postcss/lib/at-rule.js +2 -4
  19. data/node_modules/postcss/lib/comment.js +2 -4
  20. data/node_modules/postcss/lib/container.js +27 -122
  21. data/node_modules/postcss/lib/css-syntax-error.js +5 -7
  22. data/node_modules/postcss/lib/declaration.js +2 -4
  23. data/node_modules/postcss/lib/input.js +3 -5
  24. data/node_modules/postcss/lib/lazy-result.js +10 -17
  25. data/node_modules/postcss/lib/map-generator.js +10 -17
  26. data/node_modules/postcss/lib/node.js +2 -4
  27. data/node_modules/postcss/lib/parser.js +2 -4
  28. data/node_modules/postcss/lib/postcss.d.ts +25 -19
  29. data/node_modules/postcss/lib/previous-map.js +17 -6
  30. data/node_modules/postcss/lib/processor.js +16 -15
  31. data/node_modules/postcss/lib/result.js +2 -4
  32. data/node_modules/postcss/lib/root.js +10 -17
  33. data/node_modules/postcss/lib/rule.js +2 -4
  34. data/node_modules/postcss/lib/stringifier.js +2 -4
  35. data/node_modules/postcss/lib/warning.js +2 -4
  36. data/node_modules/postcss/package.json +16 -12
  37. data/spec/dummy/log/test.log +542 -443
  38. data/spec/dummy/tmp/cache/747/A70/TrustyCms%3A%3AConfig +0 -0
  39. data/spec/dummy/tmp/cache/85C/FA0/TrustyCms.cache_mtime +1 -1
  40. data/trusty_cms.gemspec +2 -1
  41. data/vendor/extensions/clipped-extension/lib/clipped/engine.rb +1 -1
  42. metadata +31 -307
  43. data/config/initializers/interpolation.rb +0 -6
  44. data/node_modules/path-parse/test.js +0 -77
  45. data/node_modules/postcss/docs/api/assets/scripts.min.js +0 -8
  46. data/node_modules/postcss/docs/api/assets/styles.min.css +0 -1
  47. data/node_modules/postcss/docs/api/index.html +0 -22716
  48. data/spec/dummy/log/development.log +0 -158
  49. data/spec/dummy/node_modules/jquery/AUTHORS.txt +0 -327
  50. data/spec/dummy/node_modules/jquery/LICENSE.txt +0 -20
  51. data/spec/dummy/node_modules/jquery/README.md +0 -62
  52. data/spec/dummy/node_modules/jquery/bower.json +0 -14
  53. data/spec/dummy/node_modules/jquery/dist/jquery.js +0 -10872
  54. data/spec/dummy/node_modules/jquery/dist/jquery.min.js +0 -2
  55. data/spec/dummy/node_modules/jquery/dist/jquery.min.map +0 -1
  56. data/spec/dummy/node_modules/jquery/dist/jquery.slim.js +0 -8777
  57. data/spec/dummy/node_modules/jquery/dist/jquery.slim.min.js +0 -2
  58. data/spec/dummy/node_modules/jquery/dist/jquery.slim.min.map +0 -1
  59. data/spec/dummy/node_modules/jquery/external/sizzle/LICENSE.txt +0 -36
  60. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.js +0 -2478
  61. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.min.js +0 -3
  62. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.min.map +0 -1
  63. data/spec/dummy/node_modules/jquery/package.json +0 -117
  64. data/spec/dummy/node_modules/jquery/src/ajax/jsonp.js +0 -103
  65. data/spec/dummy/node_modules/jquery/src/ajax/load.js +0 -77
  66. data/spec/dummy/node_modules/jquery/src/ajax/script.js +0 -74
  67. data/spec/dummy/node_modules/jquery/src/ajax/var/location.js +0 -5
  68. data/spec/dummy/node_modules/jquery/src/ajax/var/nonce.js +0 -5
  69. data/spec/dummy/node_modules/jquery/src/ajax/var/rquery.js +0 -5
  70. data/spec/dummy/node_modules/jquery/src/ajax/xhr.js +0 -170
  71. data/spec/dummy/node_modules/jquery/src/ajax.js +0 -873
  72. data/spec/dummy/node_modules/jquery/src/attributes/attr.js +0 -141
  73. data/spec/dummy/node_modules/jquery/src/attributes/classes.js +0 -186
  74. data/spec/dummy/node_modules/jquery/src/attributes/prop.js +0 -143
  75. data/spec/dummy/node_modules/jquery/src/attributes/support.js +0 -33
  76. data/spec/dummy/node_modules/jquery/src/attributes/val.js +0 -191
  77. data/spec/dummy/node_modules/jquery/src/attributes.js +0 -13
  78. data/spec/dummy/node_modules/jquery/src/callbacks.js +0 -236
  79. data/spec/dummy/node_modules/jquery/src/core/DOMEval.js +0 -43
  80. data/spec/dummy/node_modules/jquery/src/core/access.js +0 -72
  81. data/spec/dummy/node_modules/jquery/src/core/camelCase.js +0 -23
  82. data/spec/dummy/node_modules/jquery/src/core/init.js +0 -129
  83. data/spec/dummy/node_modules/jquery/src/core/isAttached.js +0 -26
  84. data/spec/dummy/node_modules/jquery/src/core/nodeName.js +0 -13
  85. data/spec/dummy/node_modules/jquery/src/core/parseHTML.js +0 -65
  86. data/spec/dummy/node_modules/jquery/src/core/parseXML.js +0 -30
  87. data/spec/dummy/node_modules/jquery/src/core/ready-no-deferred.js +0 -97
  88. data/spec/dummy/node_modules/jquery/src/core/ready.js +0 -86
  89. data/spec/dummy/node_modules/jquery/src/core/readyException.js +0 -13
  90. data/spec/dummy/node_modules/jquery/src/core/stripAndCollapse.js +0 -14
  91. data/spec/dummy/node_modules/jquery/src/core/support.js +0 -20
  92. data/spec/dummy/node_modules/jquery/src/core/toType.js +0 -20
  93. data/spec/dummy/node_modules/jquery/src/core/var/rsingleTag.js +0 -7
  94. data/spec/dummy/node_modules/jquery/src/core.js +0 -400
  95. data/spec/dummy/node_modules/jquery/src/css/addGetHookIf.js +0 -26
  96. data/spec/dummy/node_modules/jquery/src/css/adjustCSS.js +0 -74
  97. data/spec/dummy/node_modules/jquery/src/css/curCSS.js +0 -65
  98. data/spec/dummy/node_modules/jquery/src/css/finalPropName.js +0 -42
  99. data/spec/dummy/node_modules/jquery/src/css/hiddenVisibleSelectors.js +0 -15
  100. data/spec/dummy/node_modules/jquery/src/css/showHide.js +0 -105
  101. data/spec/dummy/node_modules/jquery/src/css/support.js +0 -133
  102. data/spec/dummy/node_modules/jquery/src/css/var/cssExpand.js +0 -5
  103. data/spec/dummy/node_modules/jquery/src/css/var/getStyles.js +0 -17
  104. data/spec/dummy/node_modules/jquery/src/css/var/isHiddenWithinTree.js +0 -34
  105. data/spec/dummy/node_modules/jquery/src/css/var/rboxStyle.js +0 -7
  106. data/spec/dummy/node_modules/jquery/src/css/var/rnumnonpx.js +0 -7
  107. data/spec/dummy/node_modules/jquery/src/css/var/swap.js +0 -26
  108. data/spec/dummy/node_modules/jquery/src/css.js +0 -494
  109. data/spec/dummy/node_modules/jquery/src/data/Data.js +0 -162
  110. data/spec/dummy/node_modules/jquery/src/data/var/acceptData.js +0 -19
  111. data/spec/dummy/node_modules/jquery/src/data/var/dataPriv.js +0 -7
  112. data/spec/dummy/node_modules/jquery/src/data/var/dataUser.js +0 -7
  113. data/spec/dummy/node_modules/jquery/src/data.js +0 -180
  114. data/spec/dummy/node_modules/jquery/src/deferred/exceptionHook.js +0 -21
  115. data/spec/dummy/node_modules/jquery/src/deferred.js +0 -399
  116. data/spec/dummy/node_modules/jquery/src/deprecated/ajax-event-alias.js +0 -22
  117. data/spec/dummy/node_modules/jquery/src/deprecated/event.js +0 -48
  118. data/spec/dummy/node_modules/jquery/src/deprecated.js +0 -87
  119. data/spec/dummy/node_modules/jquery/src/dimensions.js +0 -57
  120. data/spec/dummy/node_modules/jquery/src/effects/Tween.js +0 -125
  121. data/spec/dummy/node_modules/jquery/src/effects/animatedSelector.js +0 -15
  122. data/spec/dummy/node_modules/jquery/src/effects.js +0 -701
  123. data/spec/dummy/node_modules/jquery/src/event/focusin.js +0 -58
  124. data/spec/dummy/node_modules/jquery/src/event/support.js +0 -11
  125. data/spec/dummy/node_modules/jquery/src/event/trigger.js +0 -201
  126. data/spec/dummy/node_modules/jquery/src/event.js +0 -892
  127. data/spec/dummy/node_modules/jquery/src/exports/amd.js +0 -26
  128. data/spec/dummy/node_modules/jquery/src/exports/global.js +0 -34
  129. data/spec/dummy/node_modules/jquery/src/jquery.js +0 -41
  130. data/spec/dummy/node_modules/jquery/src/manipulation/_evalUrl.js +0 -32
  131. data/spec/dummy/node_modules/jquery/src/manipulation/buildFragment.js +0 -106
  132. data/spec/dummy/node_modules/jquery/src/manipulation/getAll.js +0 -32
  133. data/spec/dummy/node_modules/jquery/src/manipulation/setGlobalEval.js +0 -22
  134. data/spec/dummy/node_modules/jquery/src/manipulation/support.js +0 -41
  135. data/spec/dummy/node_modules/jquery/src/manipulation/var/rscriptType.js +0 -5
  136. data/spec/dummy/node_modules/jquery/src/manipulation/var/rtagName.js +0 -8
  137. data/spec/dummy/node_modules/jquery/src/manipulation/wrapMap.js +0 -30
  138. data/spec/dummy/node_modules/jquery/src/manipulation.js +0 -480
  139. data/spec/dummy/node_modules/jquery/src/offset.js +0 -238
  140. data/spec/dummy/node_modules/jquery/src/queue/delay.js +0 -24
  141. data/spec/dummy/node_modules/jquery/src/queue.js +0 -145
  142. data/spec/dummy/node_modules/jquery/src/selector-native.js +0 -241
  143. data/spec/dummy/node_modules/jquery/src/selector-sizzle.js +0 -19
  144. data/spec/dummy/node_modules/jquery/src/selector.js +0 -3
  145. data/spec/dummy/node_modules/jquery/src/serialize.js +0 -136
  146. data/spec/dummy/node_modules/jquery/src/traversing/findFilter.js +0 -97
  147. data/spec/dummy/node_modules/jquery/src/traversing/var/dir.js +0 -22
  148. data/spec/dummy/node_modules/jquery/src/traversing/var/rneedsContext.js +0 -8
  149. data/spec/dummy/node_modules/jquery/src/traversing/var/siblings.js +0 -17
  150. data/spec/dummy/node_modules/jquery/src/traversing.js +0 -198
  151. data/spec/dummy/node_modules/jquery/src/var/ObjectFunctionString.js +0 -7
  152. data/spec/dummy/node_modules/jquery/src/var/arr.js +0 -5
  153. data/spec/dummy/node_modules/jquery/src/var/class2type.js +0 -6
  154. data/spec/dummy/node_modules/jquery/src/var/document.js +0 -5
  155. data/spec/dummy/node_modules/jquery/src/var/documentElement.js +0 -7
  156. data/spec/dummy/node_modules/jquery/src/var/flat.js +0 -16
  157. data/spec/dummy/node_modules/jquery/src/var/fnToString.js +0 -7
  158. data/spec/dummy/node_modules/jquery/src/var/getProto.js +0 -5
  159. data/spec/dummy/node_modules/jquery/src/var/hasOwn.js +0 -7
  160. data/spec/dummy/node_modules/jquery/src/var/indexOf.js +0 -7
  161. data/spec/dummy/node_modules/jquery/src/var/isFunction.js +0 -13
  162. data/spec/dummy/node_modules/jquery/src/var/isWindow.js +0 -8
  163. data/spec/dummy/node_modules/jquery/src/var/pnum.js +0 -5
  164. data/spec/dummy/node_modules/jquery/src/var/push.js +0 -7
  165. data/spec/dummy/node_modules/jquery/src/var/rcheckableType.js +0 -5
  166. data/spec/dummy/node_modules/jquery/src/var/rcssNum.js +0 -9
  167. data/spec/dummy/node_modules/jquery/src/var/rnothtmlwhite.js +0 -8
  168. data/spec/dummy/node_modules/jquery/src/var/slice.js +0 -7
  169. data/spec/dummy/node_modules/jquery/src/var/support.js +0 -6
  170. data/spec/dummy/node_modules/jquery/src/var/toString.js +0 -7
  171. data/spec/dummy/node_modules/jquery/src/wrap.js +0 -78
  172. data/spec/dummy/node_modules/jquery-ui-bundle/AUTHORS.txt +0 -333
  173. data/spec/dummy/node_modules/jquery-ui-bundle/LICENSE.txt +0 -43
  174. data/spec/dummy/node_modules/jquery-ui-bundle/external/jquery/jquery.js +0 -11008
  175. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_444444_256x240.png +0 -0
  176. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_555555_256x240.png +0 -0
  177. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_777620_256x240.png +0 -0
  178. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_777777_256x240.png +0 -0
  179. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_cc0000_256x240.png +0 -0
  180. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_ffffff_256x240.png +0 -0
  181. data/spec/dummy/node_modules/jquery-ui-bundle/index.html +0 -559
  182. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.css +0 -1312
  183. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.js +0 -18706
  184. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.min.css +0 -7
  185. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.min.js +0 -13
  186. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.structure.css +0 -886
  187. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.structure.min.css +0 -5
  188. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.theme.css +0 -443
  189. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.theme.min.css +0 -5
  190. data/spec/dummy/node_modules/jquery-ui-bundle/package.json +0 -33
  191. data/spec/dummy/node_modules/jquery-ujs/CONTRIBUTING.md +0 -109
  192. data/spec/dummy/node_modules/jquery-ujs/MIT-LICENSE +0 -20
  193. data/spec/dummy/node_modules/jquery-ujs/README.md +0 -86
  194. data/spec/dummy/node_modules/jquery-ujs/RELEASE.md +0 -23
  195. data/spec/dummy/node_modules/jquery-ujs/bower.json +0 -19
  196. data/spec/dummy/node_modules/jquery-ujs/package.json +0 -26
  197. data/spec/dummy/node_modules/jquery-ujs/src/rails.js +0 -555
@@ -1,701 +0,0 @@
1
- define( [
2
- "./core",
3
- "./core/camelCase",
4
- "./var/document",
5
- "./var/isFunction",
6
- "./var/rcssNum",
7
- "./var/rnothtmlwhite",
8
- "./css/var/cssExpand",
9
- "./css/var/isHiddenWithinTree",
10
- "./css/adjustCSS",
11
- "./data/var/dataPriv",
12
- "./css/showHide",
13
-
14
- "./core/init",
15
- "./queue",
16
- "./deferred",
17
- "./traversing",
18
- "./manipulation",
19
- "./css",
20
- "./effects/Tween"
21
- ], function( jQuery, camelCase, document, isFunction, rcssNum, rnothtmlwhite, cssExpand,
22
- isHiddenWithinTree, adjustCSS, dataPriv, showHide ) {
23
-
24
- "use strict";
25
-
26
- var
27
- fxNow, inProgress,
28
- rfxtypes = /^(?:toggle|show|hide)$/,
29
- rrun = /queueHooks$/;
30
-
31
- function schedule() {
32
- if ( inProgress ) {
33
- if ( document.hidden === false && window.requestAnimationFrame ) {
34
- window.requestAnimationFrame( schedule );
35
- } else {
36
- window.setTimeout( schedule, jQuery.fx.interval );
37
- }
38
-
39
- jQuery.fx.tick();
40
- }
41
- }
42
-
43
- // Animations created synchronously will run synchronously
44
- function createFxNow() {
45
- window.setTimeout( function() {
46
- fxNow = undefined;
47
- } );
48
- return ( fxNow = Date.now() );
49
- }
50
-
51
- // Generate parameters to create a standard animation
52
- function genFx( type, includeWidth ) {
53
- var which,
54
- i = 0,
55
- attrs = { height: type };
56
-
57
- // If we include width, step value is 1 to do all cssExpand values,
58
- // otherwise step value is 2 to skip over Left and Right
59
- includeWidth = includeWidth ? 1 : 0;
60
- for ( ; i < 4; i += 2 - includeWidth ) {
61
- which = cssExpand[ i ];
62
- attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
63
- }
64
-
65
- if ( includeWidth ) {
66
- attrs.opacity = attrs.width = type;
67
- }
68
-
69
- return attrs;
70
- }
71
-
72
- function createTween( value, prop, animation ) {
73
- var tween,
74
- collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
75
- index = 0,
76
- length = collection.length;
77
- for ( ; index < length; index++ ) {
78
- if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
79
-
80
- // We're done with this property
81
- return tween;
82
- }
83
- }
84
- }
85
-
86
- function defaultPrefilter( elem, props, opts ) {
87
- var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
88
- isBox = "width" in props || "height" in props,
89
- anim = this,
90
- orig = {},
91
- style = elem.style,
92
- hidden = elem.nodeType && isHiddenWithinTree( elem ),
93
- dataShow = dataPriv.get( elem, "fxshow" );
94
-
95
- // Queue-skipping animations hijack the fx hooks
96
- if ( !opts.queue ) {
97
- hooks = jQuery._queueHooks( elem, "fx" );
98
- if ( hooks.unqueued == null ) {
99
- hooks.unqueued = 0;
100
- oldfire = hooks.empty.fire;
101
- hooks.empty.fire = function() {
102
- if ( !hooks.unqueued ) {
103
- oldfire();
104
- }
105
- };
106
- }
107
- hooks.unqueued++;
108
-
109
- anim.always( function() {
110
-
111
- // Ensure the complete handler is called before this completes
112
- anim.always( function() {
113
- hooks.unqueued--;
114
- if ( !jQuery.queue( elem, "fx" ).length ) {
115
- hooks.empty.fire();
116
- }
117
- } );
118
- } );
119
- }
120
-
121
- // Detect show/hide animations
122
- for ( prop in props ) {
123
- value = props[ prop ];
124
- if ( rfxtypes.test( value ) ) {
125
- delete props[ prop ];
126
- toggle = toggle || value === "toggle";
127
- if ( value === ( hidden ? "hide" : "show" ) ) {
128
-
129
- // Pretend to be hidden if this is a "show" and
130
- // there is still data from a stopped show/hide
131
- if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
132
- hidden = true;
133
-
134
- // Ignore all other no-op show/hide data
135
- } else {
136
- continue;
137
- }
138
- }
139
- orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
140
- }
141
- }
142
-
143
- // Bail out if this is a no-op like .hide().hide()
144
- propTween = !jQuery.isEmptyObject( props );
145
- if ( !propTween && jQuery.isEmptyObject( orig ) ) {
146
- return;
147
- }
148
-
149
- // Restrict "overflow" and "display" styles during box animations
150
- if ( isBox && elem.nodeType === 1 ) {
151
-
152
- // Support: IE <=9 - 11, Edge 12 - 15
153
- // Record all 3 overflow attributes because IE does not infer the shorthand
154
- // from identically-valued overflowX and overflowY and Edge just mirrors
155
- // the overflowX value there.
156
- opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
157
-
158
- // Identify a display type, preferring old show/hide data over the CSS cascade
159
- restoreDisplay = dataShow && dataShow.display;
160
- if ( restoreDisplay == null ) {
161
- restoreDisplay = dataPriv.get( elem, "display" );
162
- }
163
- display = jQuery.css( elem, "display" );
164
- if ( display === "none" ) {
165
- if ( restoreDisplay ) {
166
- display = restoreDisplay;
167
- } else {
168
-
169
- // Get nonempty value(s) by temporarily forcing visibility
170
- showHide( [ elem ], true );
171
- restoreDisplay = elem.style.display || restoreDisplay;
172
- display = jQuery.css( elem, "display" );
173
- showHide( [ elem ] );
174
- }
175
- }
176
-
177
- // Animate inline elements as inline-block
178
- if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
179
- if ( jQuery.css( elem, "float" ) === "none" ) {
180
-
181
- // Restore the original display value at the end of pure show/hide animations
182
- if ( !propTween ) {
183
- anim.done( function() {
184
- style.display = restoreDisplay;
185
- } );
186
- if ( restoreDisplay == null ) {
187
- display = style.display;
188
- restoreDisplay = display === "none" ? "" : display;
189
- }
190
- }
191
- style.display = "inline-block";
192
- }
193
- }
194
- }
195
-
196
- if ( opts.overflow ) {
197
- style.overflow = "hidden";
198
- anim.always( function() {
199
- style.overflow = opts.overflow[ 0 ];
200
- style.overflowX = opts.overflow[ 1 ];
201
- style.overflowY = opts.overflow[ 2 ];
202
- } );
203
- }
204
-
205
- // Implement show/hide animations
206
- propTween = false;
207
- for ( prop in orig ) {
208
-
209
- // General show/hide setup for this element animation
210
- if ( !propTween ) {
211
- if ( dataShow ) {
212
- if ( "hidden" in dataShow ) {
213
- hidden = dataShow.hidden;
214
- }
215
- } else {
216
- dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
217
- }
218
-
219
- // Store hidden/visible for toggle so `.stop().toggle()` "reverses"
220
- if ( toggle ) {
221
- dataShow.hidden = !hidden;
222
- }
223
-
224
- // Show elements before animating them
225
- if ( hidden ) {
226
- showHide( [ elem ], true );
227
- }
228
-
229
- /* eslint-disable no-loop-func */
230
-
231
- anim.done( function() {
232
-
233
- /* eslint-enable no-loop-func */
234
-
235
- // The final step of a "hide" animation is actually hiding the element
236
- if ( !hidden ) {
237
- showHide( [ elem ] );
238
- }
239
- dataPriv.remove( elem, "fxshow" );
240
- for ( prop in orig ) {
241
- jQuery.style( elem, prop, orig[ prop ] );
242
- }
243
- } );
244
- }
245
-
246
- // Per-property setup
247
- propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
248
- if ( !( prop in dataShow ) ) {
249
- dataShow[ prop ] = propTween.start;
250
- if ( hidden ) {
251
- propTween.end = propTween.start;
252
- propTween.start = 0;
253
- }
254
- }
255
- }
256
- }
257
-
258
- function propFilter( props, specialEasing ) {
259
- var index, name, easing, value, hooks;
260
-
261
- // camelCase, specialEasing and expand cssHook pass
262
- for ( index in props ) {
263
- name = camelCase( index );
264
- easing = specialEasing[ name ];
265
- value = props[ index ];
266
- if ( Array.isArray( value ) ) {
267
- easing = value[ 1 ];
268
- value = props[ index ] = value[ 0 ];
269
- }
270
-
271
- if ( index !== name ) {
272
- props[ name ] = value;
273
- delete props[ index ];
274
- }
275
-
276
- hooks = jQuery.cssHooks[ name ];
277
- if ( hooks && "expand" in hooks ) {
278
- value = hooks.expand( value );
279
- delete props[ name ];
280
-
281
- // Not quite $.extend, this won't overwrite existing keys.
282
- // Reusing 'index' because we have the correct "name"
283
- for ( index in value ) {
284
- if ( !( index in props ) ) {
285
- props[ index ] = value[ index ];
286
- specialEasing[ index ] = easing;
287
- }
288
- }
289
- } else {
290
- specialEasing[ name ] = easing;
291
- }
292
- }
293
- }
294
-
295
- function Animation( elem, properties, options ) {
296
- var result,
297
- stopped,
298
- index = 0,
299
- length = Animation.prefilters.length,
300
- deferred = jQuery.Deferred().always( function() {
301
-
302
- // Don't match elem in the :animated selector
303
- delete tick.elem;
304
- } ),
305
- tick = function() {
306
- if ( stopped ) {
307
- return false;
308
- }
309
- var currentTime = fxNow || createFxNow(),
310
- remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
311
-
312
- // Support: Android 2.3 only
313
- // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
314
- temp = remaining / animation.duration || 0,
315
- percent = 1 - temp,
316
- index = 0,
317
- length = animation.tweens.length;
318
-
319
- for ( ; index < length; index++ ) {
320
- animation.tweens[ index ].run( percent );
321
- }
322
-
323
- deferred.notifyWith( elem, [ animation, percent, remaining ] );
324
-
325
- // If there's more to do, yield
326
- if ( percent < 1 && length ) {
327
- return remaining;
328
- }
329
-
330
- // If this was an empty animation, synthesize a final progress notification
331
- if ( !length ) {
332
- deferred.notifyWith( elem, [ animation, 1, 0 ] );
333
- }
334
-
335
- // Resolve the animation and report its conclusion
336
- deferred.resolveWith( elem, [ animation ] );
337
- return false;
338
- },
339
- animation = deferred.promise( {
340
- elem: elem,
341
- props: jQuery.extend( {}, properties ),
342
- opts: jQuery.extend( true, {
343
- specialEasing: {},
344
- easing: jQuery.easing._default
345
- }, options ),
346
- originalProperties: properties,
347
- originalOptions: options,
348
- startTime: fxNow || createFxNow(),
349
- duration: options.duration,
350
- tweens: [],
351
- createTween: function( prop, end ) {
352
- var tween = jQuery.Tween( elem, animation.opts, prop, end,
353
- animation.opts.specialEasing[ prop ] || animation.opts.easing );
354
- animation.tweens.push( tween );
355
- return tween;
356
- },
357
- stop: function( gotoEnd ) {
358
- var index = 0,
359
-
360
- // If we are going to the end, we want to run all the tweens
361
- // otherwise we skip this part
362
- length = gotoEnd ? animation.tweens.length : 0;
363
- if ( stopped ) {
364
- return this;
365
- }
366
- stopped = true;
367
- for ( ; index < length; index++ ) {
368
- animation.tweens[ index ].run( 1 );
369
- }
370
-
371
- // Resolve when we played the last frame; otherwise, reject
372
- if ( gotoEnd ) {
373
- deferred.notifyWith( elem, [ animation, 1, 0 ] );
374
- deferred.resolveWith( elem, [ animation, gotoEnd ] );
375
- } else {
376
- deferred.rejectWith( elem, [ animation, gotoEnd ] );
377
- }
378
- return this;
379
- }
380
- } ),
381
- props = animation.props;
382
-
383
- propFilter( props, animation.opts.specialEasing );
384
-
385
- for ( ; index < length; index++ ) {
386
- result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
387
- if ( result ) {
388
- if ( isFunction( result.stop ) ) {
389
- jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
390
- result.stop.bind( result );
391
- }
392
- return result;
393
- }
394
- }
395
-
396
- jQuery.map( props, createTween, animation );
397
-
398
- if ( isFunction( animation.opts.start ) ) {
399
- animation.opts.start.call( elem, animation );
400
- }
401
-
402
- // Attach callbacks from options
403
- animation
404
- .progress( animation.opts.progress )
405
- .done( animation.opts.done, animation.opts.complete )
406
- .fail( animation.opts.fail )
407
- .always( animation.opts.always );
408
-
409
- jQuery.fx.timer(
410
- jQuery.extend( tick, {
411
- elem: elem,
412
- anim: animation,
413
- queue: animation.opts.queue
414
- } )
415
- );
416
-
417
- return animation;
418
- }
419
-
420
- jQuery.Animation = jQuery.extend( Animation, {
421
-
422
- tweeners: {
423
- "*": [ function( prop, value ) {
424
- var tween = this.createTween( prop, value );
425
- adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
426
- return tween;
427
- } ]
428
- },
429
-
430
- tweener: function( props, callback ) {
431
- if ( isFunction( props ) ) {
432
- callback = props;
433
- props = [ "*" ];
434
- } else {
435
- props = props.match( rnothtmlwhite );
436
- }
437
-
438
- var prop,
439
- index = 0,
440
- length = props.length;
441
-
442
- for ( ; index < length; index++ ) {
443
- prop = props[ index ];
444
- Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
445
- Animation.tweeners[ prop ].unshift( callback );
446
- }
447
- },
448
-
449
- prefilters: [ defaultPrefilter ],
450
-
451
- prefilter: function( callback, prepend ) {
452
- if ( prepend ) {
453
- Animation.prefilters.unshift( callback );
454
- } else {
455
- Animation.prefilters.push( callback );
456
- }
457
- }
458
- } );
459
-
460
- jQuery.speed = function( speed, easing, fn ) {
461
- var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
462
- complete: fn || !fn && easing ||
463
- isFunction( speed ) && speed,
464
- duration: speed,
465
- easing: fn && easing || easing && !isFunction( easing ) && easing
466
- };
467
-
468
- // Go to the end state if fx are off
469
- if ( jQuery.fx.off ) {
470
- opt.duration = 0;
471
-
472
- } else {
473
- if ( typeof opt.duration !== "number" ) {
474
- if ( opt.duration in jQuery.fx.speeds ) {
475
- opt.duration = jQuery.fx.speeds[ opt.duration ];
476
-
477
- } else {
478
- opt.duration = jQuery.fx.speeds._default;
479
- }
480
- }
481
- }
482
-
483
- // Normalize opt.queue - true/undefined/null -> "fx"
484
- if ( opt.queue == null || opt.queue === true ) {
485
- opt.queue = "fx";
486
- }
487
-
488
- // Queueing
489
- opt.old = opt.complete;
490
-
491
- opt.complete = function() {
492
- if ( isFunction( opt.old ) ) {
493
- opt.old.call( this );
494
- }
495
-
496
- if ( opt.queue ) {
497
- jQuery.dequeue( this, opt.queue );
498
- }
499
- };
500
-
501
- return opt;
502
- };
503
-
504
- jQuery.fn.extend( {
505
- fadeTo: function( speed, to, easing, callback ) {
506
-
507
- // Show any hidden elements after setting opacity to 0
508
- return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
509
-
510
- // Animate to the value specified
511
- .end().animate( { opacity: to }, speed, easing, callback );
512
- },
513
- animate: function( prop, speed, easing, callback ) {
514
- var empty = jQuery.isEmptyObject( prop ),
515
- optall = jQuery.speed( speed, easing, callback ),
516
- doAnimation = function() {
517
-
518
- // Operate on a copy of prop so per-property easing won't be lost
519
- var anim = Animation( this, jQuery.extend( {}, prop ), optall );
520
-
521
- // Empty animations, or finishing resolves immediately
522
- if ( empty || dataPriv.get( this, "finish" ) ) {
523
- anim.stop( true );
524
- }
525
- };
526
- doAnimation.finish = doAnimation;
527
-
528
- return empty || optall.queue === false ?
529
- this.each( doAnimation ) :
530
- this.queue( optall.queue, doAnimation );
531
- },
532
- stop: function( type, clearQueue, gotoEnd ) {
533
- var stopQueue = function( hooks ) {
534
- var stop = hooks.stop;
535
- delete hooks.stop;
536
- stop( gotoEnd );
537
- };
538
-
539
- if ( typeof type !== "string" ) {
540
- gotoEnd = clearQueue;
541
- clearQueue = type;
542
- type = undefined;
543
- }
544
- if ( clearQueue ) {
545
- this.queue( type || "fx", [] );
546
- }
547
-
548
- return this.each( function() {
549
- var dequeue = true,
550
- index = type != null && type + "queueHooks",
551
- timers = jQuery.timers,
552
- data = dataPriv.get( this );
553
-
554
- if ( index ) {
555
- if ( data[ index ] && data[ index ].stop ) {
556
- stopQueue( data[ index ] );
557
- }
558
- } else {
559
- for ( index in data ) {
560
- if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
561
- stopQueue( data[ index ] );
562
- }
563
- }
564
- }
565
-
566
- for ( index = timers.length; index--; ) {
567
- if ( timers[ index ].elem === this &&
568
- ( type == null || timers[ index ].queue === type ) ) {
569
-
570
- timers[ index ].anim.stop( gotoEnd );
571
- dequeue = false;
572
- timers.splice( index, 1 );
573
- }
574
- }
575
-
576
- // Start the next in the queue if the last step wasn't forced.
577
- // Timers currently will call their complete callbacks, which
578
- // will dequeue but only if they were gotoEnd.
579
- if ( dequeue || !gotoEnd ) {
580
- jQuery.dequeue( this, type );
581
- }
582
- } );
583
- },
584
- finish: function( type ) {
585
- if ( type !== false ) {
586
- type = type || "fx";
587
- }
588
- return this.each( function() {
589
- var index,
590
- data = dataPriv.get( this ),
591
- queue = data[ type + "queue" ],
592
- hooks = data[ type + "queueHooks" ],
593
- timers = jQuery.timers,
594
- length = queue ? queue.length : 0;
595
-
596
- // Enable finishing flag on private data
597
- data.finish = true;
598
-
599
- // Empty the queue first
600
- jQuery.queue( this, type, [] );
601
-
602
- if ( hooks && hooks.stop ) {
603
- hooks.stop.call( this, true );
604
- }
605
-
606
- // Look for any active animations, and finish them
607
- for ( index = timers.length; index--; ) {
608
- if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
609
- timers[ index ].anim.stop( true );
610
- timers.splice( index, 1 );
611
- }
612
- }
613
-
614
- // Look for any animations in the old queue and finish them
615
- for ( index = 0; index < length; index++ ) {
616
- if ( queue[ index ] && queue[ index ].finish ) {
617
- queue[ index ].finish.call( this );
618
- }
619
- }
620
-
621
- // Turn off finishing flag
622
- delete data.finish;
623
- } );
624
- }
625
- } );
626
-
627
- jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) {
628
- var cssFn = jQuery.fn[ name ];
629
- jQuery.fn[ name ] = function( speed, easing, callback ) {
630
- return speed == null || typeof speed === "boolean" ?
631
- cssFn.apply( this, arguments ) :
632
- this.animate( genFx( name, true ), speed, easing, callback );
633
- };
634
- } );
635
-
636
- // Generate shortcuts for custom animations
637
- jQuery.each( {
638
- slideDown: genFx( "show" ),
639
- slideUp: genFx( "hide" ),
640
- slideToggle: genFx( "toggle" ),
641
- fadeIn: { opacity: "show" },
642
- fadeOut: { opacity: "hide" },
643
- fadeToggle: { opacity: "toggle" }
644
- }, function( name, props ) {
645
- jQuery.fn[ name ] = function( speed, easing, callback ) {
646
- return this.animate( props, speed, easing, callback );
647
- };
648
- } );
649
-
650
- jQuery.timers = [];
651
- jQuery.fx.tick = function() {
652
- var timer,
653
- i = 0,
654
- timers = jQuery.timers;
655
-
656
- fxNow = Date.now();
657
-
658
- for ( ; i < timers.length; i++ ) {
659
- timer = timers[ i ];
660
-
661
- // Run the timer and safely remove it when done (allowing for external removal)
662
- if ( !timer() && timers[ i ] === timer ) {
663
- timers.splice( i--, 1 );
664
- }
665
- }
666
-
667
- if ( !timers.length ) {
668
- jQuery.fx.stop();
669
- }
670
- fxNow = undefined;
671
- };
672
-
673
- jQuery.fx.timer = function( timer ) {
674
- jQuery.timers.push( timer );
675
- jQuery.fx.start();
676
- };
677
-
678
- jQuery.fx.interval = 13;
679
- jQuery.fx.start = function() {
680
- if ( inProgress ) {
681
- return;
682
- }
683
-
684
- inProgress = true;
685
- schedule();
686
- };
687
-
688
- jQuery.fx.stop = function() {
689
- inProgress = null;
690
- };
691
-
692
- jQuery.fx.speeds = {
693
- slow: 600,
694
- fast: 200,
695
-
696
- // Default speed
697
- _default: 400
698
- };
699
-
700
- return jQuery;
701
- } );