typus 3.1.0.rc9 → 3.1.0.rc10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/Gemfile +21 -20
  2. data/app/helpers/admin/resources/data_types/date_helper.rb +2 -2
  3. data/app/helpers/admin/resources/data_types/datetime_helper.rb +3 -3
  4. data/app/helpers/admin/resources/data_types/has_and_belongs_to_many_helper.rb +1 -1
  5. data/app/helpers/admin/resources/data_types/has_many_helper.rb +1 -1
  6. data/app/helpers/admin/resources/data_types/string_helper.rb +8 -8
  7. data/app/themes/default/assets/javascripts/typus.js +2 -3
  8. data/app/themes/default/assets/javascripts/typus/jquery.application.js +31 -27
  9. data/app/themes/default/assets/stylesheets/typus.css +2 -2
  10. data/app/themes/default/views/admin/templates/_text_with_ckeditor.html.erb +1 -1
  11. data/app/themes/default/views/admin/templates/_text_with_ckeditor_and_assets.html.erb +1 -1
  12. data/lib/typus/authentication/session.rb +7 -1
  13. data/lib/typus/controller/actions.rb +0 -13
  14. data/lib/typus/orm/active_record/search.rb +2 -2
  15. data/lib/typus/version.rb +1 -1
  16. data/typus.gemspec +1 -0
  17. data/vendor/assets/{images → fancybox}/blank.gif +0 -0
  18. data/vendor/assets/{images → fancybox}/fancy_close.png +0 -0
  19. data/vendor/assets/{images → fancybox}/fancy_loading.png +0 -0
  20. data/vendor/assets/{images → fancybox}/fancy_nav_left.png +0 -0
  21. data/vendor/assets/{images → fancybox}/fancy_nav_right.png +0 -0
  22. data/vendor/assets/{images → fancybox}/fancy_shadow_e.png +0 -0
  23. data/vendor/assets/{images → fancybox}/fancy_shadow_n.png +0 -0
  24. data/vendor/assets/{images → fancybox}/fancy_shadow_ne.png +0 -0
  25. data/vendor/assets/{images → fancybox}/fancy_shadow_nw.png +0 -0
  26. data/vendor/assets/{images → fancybox}/fancy_shadow_s.png +0 -0
  27. data/vendor/assets/{images → fancybox}/fancy_shadow_se.png +0 -0
  28. data/vendor/assets/{images → fancybox}/fancy_shadow_sw.png +0 -0
  29. data/vendor/assets/{images → fancybox}/fancy_shadow_w.png +0 -0
  30. data/vendor/assets/{images → fancybox}/fancy_title_left.png +0 -0
  31. data/vendor/assets/{images → fancybox}/fancy_title_main.png +0 -0
  32. data/vendor/assets/{images → fancybox}/fancy_title_over.png +0 -0
  33. data/vendor/assets/{images → fancybox}/fancy_title_right.png +0 -0
  34. data/vendor/assets/{images → fancybox}/fancybox-x.png +0 -0
  35. data/vendor/assets/{images → fancybox}/fancybox-y.png +0 -0
  36. data/vendor/assets/{images → fancybox}/fancybox.png +0 -0
  37. data/vendor/assets/fancybox/jquery.easing-1.3.pack.js +72 -0
  38. data/vendor/assets/{stylesheets → fancybox}/jquery.fancybox-1.3.4.css +0 -0
  39. data/vendor/assets/fancybox/jquery.fancybox-1.3.4.js +1156 -0
  40. data/vendor/assets/{javascripts → fancybox}/jquery.fancybox-1.3.4.pack.js +0 -0
  41. data/vendor/assets/fancybox/jquery.mousewheel-3.0.4.pack.js +14 -0
  42. data/vendor/assets/{javascripts → jquery-searchField}/jquery.searchField.js +0 -0
  43. data/vendor/assets/{javascripts → jquery-tokeninput}/jquery.tokeninput.js +0 -0
  44. data/vendor/assets/{stylesheets → jquery-tokeninput}/token-input.css +0 -0
  45. metadata +57 -44
  46. data/vendor/assets/javascripts/jquery.rails.autocomplete.js +0 -32
data/Gemfile CHANGED
@@ -3,13 +3,14 @@ source 'http://rubygems.org'
3
3
  # Specify your gem's dependencies in typus.gemspec
4
4
  gemspec
5
5
 
6
- gem 'sqlite3'
7
- gem 'jquery-rails'
6
+ gem "sqlite3"
7
+ gem "jquery-rails"
8
+ gem "ckeditor-rails", "0.0.2"
8
9
 
9
10
  # And this stuff needed for the demo application.
10
- gem 'acts_as_list'
11
- gem 'acts_as_tree'
12
- gem 'factory_girl'
11
+ gem "acts_as_list"
12
+ gem "acts_as_tree"
13
+ gem "factory_girl"
13
14
  gem "rails-trash", "~> 1.1.1"
14
15
 
15
16
  # Asset Management
@@ -18,42 +19,42 @@ gem "rack-cache", :require => "rack/cache"
18
19
  gem "paperclip"
19
20
 
20
21
  group :test do
21
- gem 'shoulda-context'
22
- gem 'mocha' # Make sure mocha is loaded at the end ...
22
+ gem "shoulda-context"
23
+ gem "mocha" # Make sure mocha is loaded at the end ...
23
24
  end
24
25
 
25
26
  group :development, :test do
26
27
 
27
28
  platforms :jruby do
28
- gem 'activerecord-jdbc-adapter', :require => false
29
+ gem "activerecord-jdbc-adapter", :require => false
29
30
 
30
- gem 'jdbc-mysql'
31
- gem 'jdbc-postgres'
32
- gem 'jdbc-sqlite3'
31
+ gem "jdbc-mysql"
32
+ gem "jdbc-postgres"
33
+ gem "jdbc-sqlite3"
33
34
 
34
- gem 'jruby-openssl' # JRuby limited openssl loaded. http://jruby.org/openssl
35
+ gem "jruby-openssl" # JRuby limited openssl loaded. http://jruby.org/openssl
35
36
  end
36
37
 
37
38
  platforms :ruby do
38
- gem 'mysql2'
39
- gem 'pg'
40
- gem 'sqlite3'
39
+ gem "mysql2"
40
+ gem "pg"
41
+ gem "sqlite3"
41
42
  end
42
43
 
43
44
  end
44
45
 
45
46
  group :production do
46
47
 
47
- # gem 'mongoid'
48
+ # gem "mongoid"
48
49
 
49
50
  platforms :jruby do
50
- gem 'activerecord-jdbc-adapter'
51
- gem 'jdbc-sqlite3'
51
+ gem "activerecord-jdbc-adapter"
52
+ gem "jdbc-sqlite3"
52
53
  end
53
54
 
54
55
  platforms :ruby do
55
- # gem 'bson_ext'
56
- gem 'sqlite3'
56
+ # gem "bson_ext"
57
+ gem "sqlite3"
57
58
  end
58
59
 
59
60
  end
@@ -6,7 +6,7 @@ module Admin::Resources::DataTypes::DateHelper
6
6
  items += values.map { |v| [Typus::I18n.t(v.humanize), v] }
7
7
  end
8
8
 
9
- alias :datetime_filter :date_filter
10
- alias :timestamp_filter :date_filter
9
+ alias_method :datetime_filter, :date_filter
10
+ alias_method :timestamp_filter, :date_filter
11
11
 
12
12
  end
@@ -6,9 +6,9 @@ module Admin::Resources::DataTypes::DatetimeHelper
6
6
  end
7
7
  end
8
8
 
9
- alias :table_date_field :table_datetime_field
10
- alias :table_time_field :table_datetime_field
11
- alias :table_timestamp_field :table_datetime_field
9
+ alias_method :table_date_field, :table_datetime_field
10
+ alias_method :table_time_field, :table_datetime_field
11
+ alias_method :table_timestamp_field, :table_datetime_field
12
12
 
13
13
  def display_datetime(item, attribute)
14
14
  I18n.l(item.send(attribute), :format => @resource.typus_date_format(attribute))
@@ -4,7 +4,7 @@ module Admin::Resources::DataTypes::HasAndBelongsToManyHelper
4
4
  item.send(attribute).map { |i| i.to_label }.join(", ")
5
5
  end
6
6
 
7
- alias :table_has_many_field :table_has_and_belongs_to_many_field
7
+ alias_method :table_has_many_field, :table_has_and_belongs_to_many_field
8
8
 
9
9
  def typus_form_has_and_belongs_to_many(field)
10
10
  setup_relationship(field)
@@ -9,7 +9,7 @@ module Admin::Resources::DataTypes::HasManyHelper
9
9
  items += resource.order(resource.typus_order_by).map { |v| [v.to_label, v.id] }
10
10
  end
11
11
 
12
- alias :has_and_belongs_to_many_filter :has_many_filter
12
+ alias_method :has_and_belongs_to_many_filter, :has_many_filter
13
13
 
14
14
  def typus_form_has_many(field)
15
15
  setup_relationship(field)
@@ -4,11 +4,11 @@ module Admin::Resources::DataTypes::StringHelper
4
4
  item.send(attribute)
5
5
  end
6
6
 
7
- alias_method :display_text, :display_string
8
- alias_method :display_position, :display_string
9
- alias_method :display_integer, :display_string
10
7
  alias_method :display_decimal, :display_string
11
8
  alias_method :display_float, :display_string
9
+ alias_method :display_integer, :display_string
10
+ alias_method :display_position, :display_string
11
+ alias_method :display_text, :display_string
12
12
 
13
13
  def string_filter(filter)
14
14
  values = set_context.send(filter.to_s).to_a
@@ -22,10 +22,10 @@ module Admin::Resources::DataTypes::StringHelper
22
22
  (raw_content = item.send(attribute)).present? ? raw_content : "—".html_safe
23
23
  end
24
24
 
25
- alias :table_decimal_field :table_string_field
26
- alias :table_float_field :table_string_field
27
- alias :table_integer_field :table_string_field
28
- alias :table_virtual_field :table_string_field
29
- alias :table_password_field :table_string_field
25
+ alias_method :table_decimal_field, :table_string_field
26
+ alias_method :table_float_field, :table_string_field
27
+ alias_method :table_integer_field, :table_string_field
28
+ alias_method :table_virtual_field, :table_string_field
29
+ alias_method :table_password_field, :table_string_field
30
30
 
31
31
  end
@@ -1,8 +1,7 @@
1
1
  //= require jquery
2
2
  //= require jquery_ujs
3
- //= require jquery.fancybox-1.3.4.pack.js
4
- //= require jquery.rails.autocomplete
3
+ //= require jquery.fancybox-1.3.4.pack
5
4
  //= require jquery.searchField
6
- //= require jquery.tokeninput.js
5
+ //= require jquery.tokeninput
7
6
  //= require typus/jquery.application
8
7
  //= require typus/application
@@ -1,44 +1,48 @@
1
+ var CKEDITOR_BASEPATH = '/assets/ckeditor/';
2
+
1
3
  $(document).ready(function() {
2
4
 
3
- $("#quicksearch").searchField();
5
+ $("#quicksearch").searchField();
4
6
 
5
- $('.resource :input', document.myForm).bind("change", function() { setConfirmUnload(true); });
7
+ $('.resource :input', document.myForm).bind("change", function() { setConfirmUnload(true); });
6
8
 
7
- $("a.fancybox").fancybox({
8
- 'titlePosition': 'over',
9
- 'type': 'image',
10
- 'centerOnScroll': true,
11
- 'scrolling': false,
12
- });
9
+ $("a.fancybox").fancybox({
10
+ 'titlePosition': 'over',
11
+ 'type': 'image',
12
+ 'centerOnScroll': true,
13
+ 'scrolling': false,
14
+ });
13
15
 
14
- $(".iframe").fancybox({
15
- 'width': 720,
16
- 'height': '90%',
17
- 'autoScale': false,
18
- 'transitionIn': 'none',
19
- 'transitionOut': 'none',
20
- 'type': 'iframe',
21
- 'centerOnScroll': true,
22
- 'scrolling': false,
23
- });
16
+ $(".iframe").fancybox({
17
+ 'width': 720,
18
+ 'height': '90%',
19
+ 'autoScale': false,
20
+ 'transitionIn': 'none',
21
+ 'transitionOut': 'none',
22
+ 'type': 'iframe',
23
+ 'centerOnScroll': true,
24
+ 'scrolling': false,
25
+ });
24
26
 
27
+ // This method is used by Typus::Controller::Bulk
25
28
  $(".action-toggle").click(function() {
26
- var status = this.checked;
27
- $('input.action-select').each(function() { this.checked = status; });
28
- $('.action-toggle').each(function() { this.checked = status; });
29
+ var status = this.checked;
30
+ $('input.action-select').each(function() { this.checked = status; });
31
+ $('.action-toggle').each(function() { this.checked = status; });
29
32
  });
30
33
 
31
- if ($('textarea.ckeditor').length > 0) {
32
- var data = $('textarea');
33
- $.each(data, function(i) { CKEDITOR.replace(data[i].id); });
34
- }
34
+ // This method is used by `text_with_ckeditor` template.
35
+ if ($('textarea.ckeditor').length > 0) {
36
+ var data = $('textarea');
37
+ $.each(data, function(i) { CKEDITOR.replace(data[i].id); });
38
+ }
35
39
 
36
40
  });
37
41
 
38
42
  function setConfirmUnload(on) {
39
- window.onbeforeunload = (on) ? unloadMessage : null;
43
+ window.onbeforeunload = (on) ? unloadMessage : null;
40
44
  }
41
45
 
42
46
  function unloadMessage() {
43
- return "You have entered new data on this page. If you navigate away from this page without first saving your data, the changes will be lost.";
47
+ return "You have entered new data on this page. If you navigate away from this page without first saving your data, the changes will be lost.";
44
48
  }
@@ -1,6 +1,6 @@
1
1
  /*
2
- *= require jquery.fancybox-1.3.4.css
3
- *= require token-input.css
2
+ *= require jquery.fancybox-1.3.4
3
+ *= require token-input
4
4
  *= require typus/reset
5
5
  *= require typus/screen
6
6
  *= require typus/pagination
@@ -1,5 +1,5 @@
1
1
  <% content_for :javascripts do %>
2
- <%= javascript_include_tag 'ckeditor' %>
2
+ <%= javascript_include_tag 'ckeditor/ckeditor' %>
3
3
  <% end %>
4
4
 
5
5
  <%
@@ -1,5 +1,5 @@
1
1
  <% content_for :javascripts do %>
2
- <%= javascript_include_tag 'ckeditor' %>
2
+ <%= javascript_include_tag 'ckeditor/ckeditor' %>
3
3
  <% end %>
4
4
 
5
5
  <%
@@ -59,7 +59,13 @@ module Typus
59
59
  # Admin can update himself except setting the status to false!. Other
60
60
  # users can update their profile as the attributes (role & status)
61
61
  # are protected.
62
- not_allowed if (admin_user.is_not_root? && !is_current_user) || current_user_is_root
62
+ status_changed = !(@item.status == params[@object_name][:status])
63
+ role_changed = !(@item.role == params[@object_name][:role])
64
+
65
+ root_changed_his_status_or_role = current_user_is_root && (status_changed || role_changed)
66
+ not_root_tries_to_change_another_user = admin_user.is_not_root? && !is_current_user
67
+
68
+ not_allowed if root_changed_his_status_or_role || not_root_tries_to_change_another_user
63
69
  end
64
70
  end
65
71
 
@@ -2,11 +2,6 @@ module Typus
2
2
  module Controller
3
3
  module Actions
4
4
 
5
- def self.included(base)
6
- # base.helper_method :resource_actions
7
- # base.helper_method :resources_actions
8
- end
9
-
10
5
  protected
11
6
 
12
7
  ##
@@ -44,10 +39,6 @@ module Typus
44
39
  @resource_actions = @resource_actions.concat([args]) unless args.empty?
45
40
  end
46
41
 
47
- # def resource_actions
48
- # @resource_actions ||= []
49
- # end
50
-
51
42
  ##
52
43
  # @resources_actions is used to build a list of custom actions which will
53
44
  # be appended beside "<h2></h2>" all the actions.
@@ -76,10 +67,6 @@ module Typus
76
67
  @resources_actions = @resources_actions.concat([args]) unless args.empty?
77
68
  end
78
69
 
79
- # def resources_actions
80
- # @resources_actions ||= []
81
- # end
82
-
83
70
  end
84
71
  end
85
72
  end
@@ -59,8 +59,8 @@ module Typus
59
59
  { key => value }
60
60
  end
61
61
 
62
- alias :build_integer_conditions :build_string_conditions
63
- alias :build_belongs_to_conditions :build_string_conditions
62
+ alias_method :build_integer_conditions, :build_string_conditions
63
+ alias_method :build_belongs_to_conditions, :build_string_conditions
64
64
 
65
65
  def build_has_many_conditions(key, value)
66
66
  # TODO: Detect the primary_key for this object.
@@ -1,3 +1,3 @@
1
1
  module Typus
2
- VERSION = "3.1.0.rc9"
2
+ VERSION = "3.1.0.rc10"
3
3
  end
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
21
21
  s.test_files = []
22
22
  s.require_paths = ["lib"]
23
23
 
24
+ s.add_development_dependency "ckeditor-rails", "0.0.2"
24
25
  s.add_development_dependency "dragonfly", "~> 0.9"
25
26
  s.add_development_dependency "jquery-rails"
26
27
  s.add_development_dependency "paperclip"
@@ -0,0 +1,72 @@
1
+ /*
2
+ * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
3
+ *
4
+ * Uses the built in easing capabilities added In jQuery 1.1
5
+ * to offer multiple easing options
6
+ *
7
+ * TERMS OF USE - jQuery Easing
8
+ *
9
+ * Open source under the BSD License.
10
+ *
11
+ * Copyright © 2008 George McGinley Smith
12
+ * All rights reserved.
13
+ *
14
+ * Redistribution and use in source and binary forms, with or without modification,
15
+ * are permitted provided that the following conditions are met:
16
+ *
17
+ * Redistributions of source code must retain the above copyright notice, this list of
18
+ * conditions and the following disclaimer.
19
+ * Redistributions in binary form must reproduce the above copyright notice, this list
20
+ * of conditions and the following disclaimer in the documentation and/or other materials
21
+ * provided with the distribution.
22
+ *
23
+ * Neither the name of the author nor the names of contributors may be used to endorse
24
+ * or promote products derived from this software without specific prior written permission.
25
+ *
26
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
27
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
28
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
29
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
31
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
32
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
33
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
34
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
35
+ *
36
+ */
37
+
38
+ // t: current time, b: begInnIng value, c: change In value, d: duration
39
+ eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('h.i[\'1a\']=h.i[\'z\'];h.O(h.i,{y:\'D\',z:9(x,t,b,c,d){6 h.i[h.i.y](x,t,b,c,d)},17:9(x,t,b,c,d){6 c*(t/=d)*t+b},D:9(x,t,b,c,d){6-c*(t/=d)*(t-2)+b},13:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t+b;6-c/2*((--t)*(t-2)-1)+b},X:9(x,t,b,c,d){6 c*(t/=d)*t*t+b},U:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t+1)+b},R:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t+b;6 c/2*((t-=2)*t*t+2)+b},N:9(x,t,b,c,d){6 c*(t/=d)*t*t*t+b},M:9(x,t,b,c,d){6-c*((t=t/d-1)*t*t*t-1)+b},L:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t+b;6-c/2*((t-=2)*t*t*t-2)+b},K:9(x,t,b,c,d){6 c*(t/=d)*t*t*t*t+b},J:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t*t*t+1)+b},I:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t*t+b;6 c/2*((t-=2)*t*t*t*t+2)+b},G:9(x,t,b,c,d){6-c*8.C(t/d*(8.g/2))+c+b},15:9(x,t,b,c,d){6 c*8.n(t/d*(8.g/2))+b},12:9(x,t,b,c,d){6-c/2*(8.C(8.g*t/d)-1)+b},Z:9(x,t,b,c,d){6(t==0)?b:c*8.j(2,10*(t/d-1))+b},Y:9(x,t,b,c,d){6(t==d)?b+c:c*(-8.j(2,-10*t/d)+1)+b},W:9(x,t,b,c,d){e(t==0)6 b;e(t==d)6 b+c;e((t/=d/2)<1)6 c/2*8.j(2,10*(t-1))+b;6 c/2*(-8.j(2,-10*--t)+2)+b},V:9(x,t,b,c,d){6-c*(8.o(1-(t/=d)*t)-1)+b},S:9(x,t,b,c,d){6 c*8.o(1-(t=t/d-1)*t)+b},Q:9(x,t,b,c,d){e((t/=d/2)<1)6-c/2*(8.o(1-t*t)-1)+b;6 c/2*(8.o(1-(t-=2)*t)+1)+b},P:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6-(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b},H:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6 a*8.j(2,-10*t)*8.n((t*d-s)*(2*8.g)/p)+c+b},T:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d/2)==2)6 b+c;e(!p)p=d*(.3*1.5);e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);e(t<1)6-.5*(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b;6 a*8.j(2,-10*(t-=1))*8.n((t*d-s)*(2*8.g)/p)*.5+c+b},F:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*(t/=d)*t*((s+1)*t-s)+b},E:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},16:9(x,t,b,c,d,s){e(s==u)s=1.l;e((t/=d/2)<1)6 c/2*(t*t*(((s*=(1.B))+1)*t-s))+b;6 c/2*((t-=2)*t*(((s*=(1.B))+1)*t+s)+2)+b},A:9(x,t,b,c,d){6 c-h.i.v(x,d-t,0,c,d)+b},v:9(x,t,b,c,d){e((t/=d)<(1/2.k)){6 c*(7.q*t*t)+b}m e(t<(2/2.k)){6 c*(7.q*(t-=(1.5/2.k))*t+.k)+b}m e(t<(2.5/2.k)){6 c*(7.q*(t-=(2.14/2.k))*t+.11)+b}m{6 c*(7.q*(t-=(2.18/2.k))*t+.19)+b}},1b:9(x,t,b,c,d){e(t<d/2)6 h.i.A(x,t*2,0,c,d)*.5+b;6 h.i.v(x,t*2-d,0,c,d)*.5+c*.5+b}});',62,74,'||||||return||Math|function|||||if|var|PI|jQuery|easing|pow|75|70158|else|sin|sqrt||5625|asin|||undefined|easeOutBounce|abs||def|swing|easeInBounce|525|cos|easeOutQuad|easeOutBack|easeInBack|easeInSine|easeOutElastic|easeInOutQuint|easeOutQuint|easeInQuint|easeInOutQuart|easeOutQuart|easeInQuart|extend|easeInElastic|easeInOutCirc|easeInOutCubic|easeOutCirc|easeInOutElastic|easeOutCubic|easeInCirc|easeInOutExpo|easeInCubic|easeOutExpo|easeInExpo||9375|easeInOutSine|easeInOutQuad|25|easeOutSine|easeInOutBack|easeInQuad|625|984375|jswing|easeInOutBounce'.split('|'),0,{}))
40
+
41
+ /*
42
+ *
43
+ * TERMS OF USE - EASING EQUATIONS
44
+ *
45
+ * Open source under the BSD License.
46
+ *
47
+ * Copyright © 2001 Robert Penner
48
+ * All rights reserved.
49
+ *
50
+ * Redistribution and use in source and binary forms, with or without modification,
51
+ * are permitted provided that the following conditions are met:
52
+ *
53
+ * Redistributions of source code must retain the above copyright notice, this list of
54
+ * conditions and the following disclaimer.
55
+ * Redistributions in binary form must reproduce the above copyright notice, this list
56
+ * of conditions and the following disclaimer in the documentation and/or other materials
57
+ * provided with the distribution.
58
+ *
59
+ * Neither the name of the author nor the names of contributors may be used to endorse
60
+ * or promote products derived from this software without specific prior written permission.
61
+ *
62
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
63
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
64
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
65
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
66
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
67
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
68
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
69
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
70
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
71
+ *
72
+ */