jquerypp-rails 1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +7 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +24 -0
- data/Rakefile +2 -0
- data/jquerypp-rails.gemspec +20 -0
- data/lib/jquerypp/generators/jquerypp/install/install_generator.rb +49 -0
- data/lib/jquerypp/rails/engine.rb +8 -0
- data/lib/jquerypp/rails/version.rb +6 -0
- data/lib/jquerypp/rails.rb +8 -0
- data/lib/jquerypp-rails.rb +1 -0
- data/vendor/assets/javascripts/jquerypp.js +5419 -0
- data/vendor/assets/javascripts/lib/jquery.animate.js +326 -0
- data/vendor/assets/javascripts/lib/jquery.compare.js +75 -0
- data/vendor/assets/javascripts/lib/jquery.cookie.js +118 -0
- data/vendor/assets/javascripts/lib/jquery.dimensions.js +191 -0
- data/vendor/assets/javascripts/lib/jquery.event.default.js +115 -0
- data/vendor/assets/javascripts/lib/jquery.event.destroyed.js +23 -0
- data/vendor/assets/javascripts/lib/jquery.event.drag.js +727 -0
- data/vendor/assets/javascripts/lib/jquery.event.drop.js +457 -0
- data/vendor/assets/javascripts/lib/jquery.event.fastfix.js +95 -0
- data/vendor/assets/javascripts/lib/jquery.event.hover.js +266 -0
- data/vendor/assets/javascripts/lib/jquery.event.key.js +156 -0
- data/vendor/assets/javascripts/lib/jquery.event.livehack.js +174 -0
- data/vendor/assets/javascripts/lib/jquery.event.pause.js +92 -0
- data/vendor/assets/javascripts/lib/jquery.event.resize.js +47 -0
- data/vendor/assets/javascripts/lib/jquery.event.swipe.js +133 -0
- data/vendor/assets/javascripts/lib/jquery.fills.js +249 -0
- data/vendor/assets/javascripts/lib/jquery.form_params.js +167 -0
- data/vendor/assets/javascripts/lib/jquery.lang.json.js +196 -0
- data/vendor/assets/javascripts/lib/jquery.lang.vector.js +214 -0
- data/vendor/assets/javascripts/lib/jquery.range.js +861 -0
- data/vendor/assets/javascripts/lib/jquery.selection.js +232 -0
- data/vendor/assets/javascripts/lib/jquery.styles.js +103 -0
- data/vendor/assets/javascripts/lib/jquery.within.js +94 -0
- metadata +81 -0
@@ -0,0 +1,196 @@
|
|
1
|
+
// - jquery.lang.json.js
|
2
|
+
(function($){
|
3
|
+
/**
|
4
|
+
* @page jQuery.toJSON jQuery.toJSON
|
5
|
+
* @parent jquerymx.lang
|
6
|
+
*
|
7
|
+
* jQuery.toJSON( json-serializble )
|
8
|
+
*
|
9
|
+
* Converts the given argument into a JSON respresentation.
|
10
|
+
*
|
11
|
+
* If an object has a "toJSON" function, that will
|
12
|
+
* be used to get the representation.
|
13
|
+
* Non-integer/string keys are skipped in the
|
14
|
+
* object, as are keys that point to a function.
|
15
|
+
*
|
16
|
+
* json-serializble:
|
17
|
+
* The *thing* to be converted.
|
18
|
+
*/
|
19
|
+
$.toJSON = function(o, replacer, space, recurse)
|
20
|
+
{
|
21
|
+
if (typeof(JSON) == 'object' && JSON.stringify)
|
22
|
+
return JSON.stringify(o, replacer, space);
|
23
|
+
|
24
|
+
if (!recurse && $.isFunction(replacer))
|
25
|
+
o = replacer("", o);
|
26
|
+
|
27
|
+
if (typeof space == "number")
|
28
|
+
space = " ".substring(0, space);
|
29
|
+
space = (typeof space == "string") ? space.substring(0, 10) : "";
|
30
|
+
|
31
|
+
var type = typeof(o);
|
32
|
+
|
33
|
+
if (o === null)
|
34
|
+
return "null";
|
35
|
+
|
36
|
+
if (type == "undefined" || type == "function")
|
37
|
+
return undefined;
|
38
|
+
|
39
|
+
if (type == "number" || type == "boolean")
|
40
|
+
return o + "";
|
41
|
+
|
42
|
+
if (type == "string")
|
43
|
+
return $.quoteString(o);
|
44
|
+
|
45
|
+
if (type == 'object')
|
46
|
+
{
|
47
|
+
if (typeof o.toJSON == "function")
|
48
|
+
return $.toJSON( o.toJSON(), replacer, space, true );
|
49
|
+
|
50
|
+
if (o.constructor === Date)
|
51
|
+
{
|
52
|
+
var month = o.getUTCMonth() + 1;
|
53
|
+
if (month < 10) month = '0' + month;
|
54
|
+
|
55
|
+
var day = o.getUTCDate();
|
56
|
+
if (day < 10) day = '0' + day;
|
57
|
+
|
58
|
+
var year = o.getUTCFullYear();
|
59
|
+
|
60
|
+
var hours = o.getUTCHours();
|
61
|
+
if (hours < 10) hours = '0' + hours;
|
62
|
+
|
63
|
+
var minutes = o.getUTCMinutes();
|
64
|
+
if (minutes < 10) minutes = '0' + minutes;
|
65
|
+
|
66
|
+
var seconds = o.getUTCSeconds();
|
67
|
+
if (seconds < 10) seconds = '0' + seconds;
|
68
|
+
|
69
|
+
var milli = o.getUTCMilliseconds();
|
70
|
+
if (milli < 100) milli = '0' + milli;
|
71
|
+
if (milli < 10) milli = '0' + milli;
|
72
|
+
|
73
|
+
return '"' + year + '-' + month + '-' + day + 'T' +
|
74
|
+
hours + ':' + minutes + ':' + seconds +
|
75
|
+
'.' + milli + 'Z"';
|
76
|
+
}
|
77
|
+
|
78
|
+
var process = ($.isFunction(replacer)) ?
|
79
|
+
function (k, v) { return replacer(k, v); } :
|
80
|
+
function (k, v) { return v; },
|
81
|
+
nl = (space) ? "\n" : "",
|
82
|
+
sp = (space) ? " " : "";
|
83
|
+
|
84
|
+
if (o.constructor === Array)
|
85
|
+
{
|
86
|
+
var ret = [];
|
87
|
+
for (var i = 0; i < o.length; i++)
|
88
|
+
ret.push(( $.toJSON( process(i, o[i]), replacer, space, true ) || "null" ).replace(/^/gm, space));
|
89
|
+
|
90
|
+
return "[" + nl + ret.join("," + nl) + nl + "]";
|
91
|
+
}
|
92
|
+
|
93
|
+
var pairs = [], proplist;
|
94
|
+
if ($.isArray(replacer)) {
|
95
|
+
proplist = $.map(replacer, function (v) {
|
96
|
+
return (typeof v == "string" || typeof v == "number") ?
|
97
|
+
v + "" :
|
98
|
+
null;
|
99
|
+
});
|
100
|
+
}
|
101
|
+
for (var k in o) {
|
102
|
+
var name, val, type = typeof k;
|
103
|
+
|
104
|
+
if (proplist && $.inArray(k + "", proplist) == -1)
|
105
|
+
continue;
|
106
|
+
|
107
|
+
if (type == "number")
|
108
|
+
name = '"' + k + '"';
|
109
|
+
else if (type == "string")
|
110
|
+
name = $.quoteString(k);
|
111
|
+
else
|
112
|
+
continue; //skip non-string or number keys
|
113
|
+
|
114
|
+
val = $.toJSON( process(k, o[k]), replacer, space, true );
|
115
|
+
|
116
|
+
if (typeof val == "undefined")
|
117
|
+
continue; //skip pairs where the value is a function.
|
118
|
+
|
119
|
+
pairs.push((name + ":" + sp + val).replace(/^/gm, space));
|
120
|
+
}
|
121
|
+
|
122
|
+
return "{" + nl + pairs.join("," + nl) + nl + "}";
|
123
|
+
}
|
124
|
+
};
|
125
|
+
|
126
|
+
/**
|
127
|
+
* @function jQuery.evalJSON
|
128
|
+
* Evaluates a given piece of json source.
|
129
|
+
**/
|
130
|
+
$.evalJSON = function(src)
|
131
|
+
{
|
132
|
+
if (typeof(JSON) == 'object' && JSON.parse)
|
133
|
+
return JSON.parse(src);
|
134
|
+
return eval("(" + src + ")");
|
135
|
+
};
|
136
|
+
|
137
|
+
/**
|
138
|
+
* @function jQuery.secureEvalJSON
|
139
|
+
* Evals JSON in a way that is *more* secure.
|
140
|
+
**/
|
141
|
+
$.secureEvalJSON = function(src)
|
142
|
+
{
|
143
|
+
if (typeof(JSON) == 'object' && JSON.parse)
|
144
|
+
return JSON.parse(src);
|
145
|
+
|
146
|
+
var filtered = src;
|
147
|
+
filtered = filtered.replace(/\\["\\\/bfnrtu]/g, '@');
|
148
|
+
filtered = filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']');
|
149
|
+
filtered = filtered.replace(/(?:^|:|,)(?:\s*\[)+/g, '');
|
150
|
+
|
151
|
+
if (/^[\],:{}\s]*$/.test(filtered))
|
152
|
+
return eval("(" + src + ")");
|
153
|
+
else
|
154
|
+
throw new SyntaxError("Error parsing JSON, source is not valid.");
|
155
|
+
};
|
156
|
+
|
157
|
+
/**
|
158
|
+
* @function jQuery.quoteString
|
159
|
+
*
|
160
|
+
* Returns a string-repr of a string, escaping quotes intelligently.
|
161
|
+
* Mostly a support function for toJSON.
|
162
|
+
*
|
163
|
+
* Examples:
|
164
|
+
*
|
165
|
+
* jQuery.quoteString("apple") //-> "apple"
|
166
|
+
*
|
167
|
+
* jQuery.quoteString('"Where are we going?", she asked.')
|
168
|
+
* // -> "\"Where are we going?\", she asked."
|
169
|
+
**/
|
170
|
+
$.quoteString = function(string)
|
171
|
+
{
|
172
|
+
if (string.match(_escapeable))
|
173
|
+
{
|
174
|
+
return '"' + string.replace(_escapeable, function (a)
|
175
|
+
{
|
176
|
+
var c = _meta[a];
|
177
|
+
if (typeof c === 'string') return c;
|
178
|
+
c = a.charCodeAt();
|
179
|
+
return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
|
180
|
+
}) + '"';
|
181
|
+
}
|
182
|
+
return '"' + string + '"';
|
183
|
+
};
|
184
|
+
|
185
|
+
var _escapeable = /["\\\x00-\x1f\x7f-\x9f]/g;
|
186
|
+
|
187
|
+
var _meta = {
|
188
|
+
'\b': '\\b',
|
189
|
+
'\t': '\\t',
|
190
|
+
'\n': '\\n',
|
191
|
+
'\f': '\\f',
|
192
|
+
'\r': '\\r',
|
193
|
+
'"' : '\\"',
|
194
|
+
'\\': '\\\\'
|
195
|
+
};
|
196
|
+
})(jQuery)
|
@@ -0,0 +1,214 @@
|
|
1
|
+
// - jquery.lang.vector.js
|
2
|
+
(function($){
|
3
|
+
var getSetZero = function(v){ return v !== undefined ? (this.array[0] = v) : this.array[0] },
|
4
|
+
getSetOne = function(v){ return v !== undefined ? (this.array[1] = v) : this.array[1]};
|
5
|
+
|
6
|
+
/**
|
7
|
+
* @class jQuery.Vector
|
8
|
+
* @parent jquerypp
|
9
|
+
*
|
10
|
+
* `jQuery.Vector` represents a multi dimensional vector with shorthand methods for
|
11
|
+
* working with two dimensions.
|
12
|
+
*
|
13
|
+
* It is mainly used in [jQuery.event.drag drag] & [jQuery.event.drop drop] events.
|
14
|
+
*
|
15
|
+
* @constructor creates a new vector instance from the arguments. Example:
|
16
|
+
*
|
17
|
+
* new jQuery.Vector(1,2)
|
18
|
+
*/
|
19
|
+
$.Vector = function(arr) {
|
20
|
+
var array = $.isArray(arr) ? arr : $.makeArray(arguments);
|
21
|
+
this.update(array);
|
22
|
+
};
|
23
|
+
$.Vector.prototype =
|
24
|
+
/* @Prototype*/
|
25
|
+
{
|
26
|
+
/**
|
27
|
+
* Applys the function to every item in the vector and returns a new vector.
|
28
|
+
*
|
29
|
+
* @param {Function} f The function to apply
|
30
|
+
* @return {jQuery.Vector} A new $.Vector instance
|
31
|
+
*/
|
32
|
+
app: function( f ) {
|
33
|
+
var i, newArr = [];
|
34
|
+
|
35
|
+
for ( i = 0; i < this.array.length; i++ ) {
|
36
|
+
newArr.push(f(this.array[i], i));
|
37
|
+
}
|
38
|
+
return new $.Vector(newArr);
|
39
|
+
},
|
40
|
+
/**
|
41
|
+
* Adds two vectors together and returns a new instance. Example:
|
42
|
+
*
|
43
|
+
* new $.Vector(1,2).plus(2,3) //-> (3, 5)
|
44
|
+
* new $.Vector(3,5).plus(new Vector(4,5)) //-> (7, 10)
|
45
|
+
*
|
46
|
+
* @return {$.Vector}
|
47
|
+
*/
|
48
|
+
plus: function() {
|
49
|
+
var i, args = arguments[0] instanceof $.Vector ? arguments[0].array : $.makeArray(arguments),
|
50
|
+
arr = this.array.slice(0),
|
51
|
+
vec = new $.Vector();
|
52
|
+
for ( i = 0; i < args.length; i++ ) {
|
53
|
+
arr[i] = (arr[i] ? arr[i] : 0) + args[i];
|
54
|
+
}
|
55
|
+
return vec.update(arr);
|
56
|
+
},
|
57
|
+
/**
|
58
|
+
* Subtract one vector from another and returns a new instance. Example:
|
59
|
+
*
|
60
|
+
* new $.Vector(4, 5).minus(2, 1) //-> (2, 4)
|
61
|
+
*
|
62
|
+
* @return {jQuery.Vector}
|
63
|
+
*/
|
64
|
+
minus: function() {
|
65
|
+
var i, args = arguments[0] instanceof $.Vector ? arguments[0].array : $.makeArray(arguments),
|
66
|
+
arr = this.array.slice(0),
|
67
|
+
vec = new $.Vector();
|
68
|
+
for ( i = 0; i < args.length; i++ ) {
|
69
|
+
arr[i] = (arr[i] ? arr[i] : 0) - args[i];
|
70
|
+
}
|
71
|
+
return vec.update(arr);
|
72
|
+
},
|
73
|
+
/**
|
74
|
+
* Returns the current vector if it is equal to the vector passed in.
|
75
|
+
*
|
76
|
+
* `null` if otherwise.
|
77
|
+
*
|
78
|
+
* @return {jQuery.Vector}
|
79
|
+
*/
|
80
|
+
equals: function() {
|
81
|
+
var i, args = arguments[0] instanceof $.Vector ? arguments[0].array : $.makeArray(arguments),
|
82
|
+
arr = this.array.slice(0),
|
83
|
+
vec = new $.Vector();
|
84
|
+
for ( i = 0; i < args.length; i++ ) {
|
85
|
+
if ( arr[i] != args[i] ) {
|
86
|
+
return null;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
return vec.update(arr);
|
90
|
+
},
|
91
|
+
/**
|
92
|
+
* Returns the first value of the vector.
|
93
|
+
* You can also access the same value through the following aliases the
|
94
|
+
* [jQuery.Vector.prototype.left vector.left()] and [jQuery.Vector.prototype.left vector.width()]
|
95
|
+
* aliases.
|
96
|
+
*
|
97
|
+
* For example:
|
98
|
+
*
|
99
|
+
* var v = new $.Vector(2, 5);
|
100
|
+
* v.x() //-> 2
|
101
|
+
* v.left() //-> 2
|
102
|
+
* v.width() //-> 2
|
103
|
+
*
|
104
|
+
* @return {Number} The first value of the vector
|
105
|
+
*/
|
106
|
+
x: getSetZero,
|
107
|
+
/**
|
108
|
+
* @hide
|
109
|
+
* Alias for [jQuery.Vector.prototype.x].
|
110
|
+
*
|
111
|
+
* @return {Number}
|
112
|
+
*/
|
113
|
+
left: getSetZero,
|
114
|
+
/**
|
115
|
+
* @hide
|
116
|
+
* Alias for [jQuery.Vector.prototype.x].
|
117
|
+
*
|
118
|
+
* @return {Number}
|
119
|
+
*/
|
120
|
+
width: getSetZero,
|
121
|
+
/**
|
122
|
+
* Returns the second value of the vector.
|
123
|
+
* You can also access the same value through the [jQuery.Vector.prototype.top vector.top()]
|
124
|
+
* and [jQuery.Vector.prototype.height vector.height()] aliases.
|
125
|
+
*
|
126
|
+
* For example:
|
127
|
+
*
|
128
|
+
* var v = new $.Vector(2, 5);
|
129
|
+
* v.y() //-> 5
|
130
|
+
* v.top() //-> 5
|
131
|
+
* v.height() //-> 5
|
132
|
+
*
|
133
|
+
* @return {Number} The first value of the vector
|
134
|
+
*/
|
135
|
+
y: getSetOne,
|
136
|
+
/**
|
137
|
+
* @hide
|
138
|
+
* Alias for [jQuery.Vector.prototype.y].
|
139
|
+
*
|
140
|
+
* @return {Number}
|
141
|
+
*/
|
142
|
+
top: getSetOne,
|
143
|
+
/**
|
144
|
+
* @hide
|
145
|
+
* Alias for [jQuery.Vector.prototype.y].
|
146
|
+
*
|
147
|
+
* @return {Number}
|
148
|
+
*/
|
149
|
+
height: getSetOne,
|
150
|
+
/**
|
151
|
+
* Returns a string representation of the vector in the form of (x,y,...)
|
152
|
+
*
|
153
|
+
* var v = new $.Vector(4, 6, 1, 3);
|
154
|
+
* v.toString() //-> (4, 6, 1, 3)
|
155
|
+
*
|
156
|
+
* @return {String}
|
157
|
+
*/
|
158
|
+
toString: function() {
|
159
|
+
return "(" + this.array.join(', ') + ")";
|
160
|
+
},
|
161
|
+
/**
|
162
|
+
* Replaces the vectors contents
|
163
|
+
*
|
164
|
+
* var v = new $.Vector(2, 3);
|
165
|
+
*
|
166
|
+
* @param {Object} array
|
167
|
+
*/
|
168
|
+
update: function( array ) {
|
169
|
+
var i;
|
170
|
+
if ( this.array ) {
|
171
|
+
for ( i = 0; i < this.array.length; i++ ) {
|
172
|
+
delete this.array[i];
|
173
|
+
}
|
174
|
+
}
|
175
|
+
this.array = array;
|
176
|
+
for ( i = 0; i < array.length; i++ ) {
|
177
|
+
this[i] = this.array[i];
|
178
|
+
}
|
179
|
+
return this;
|
180
|
+
}
|
181
|
+
};
|
182
|
+
|
183
|
+
$.Event.prototype.vector = function() {
|
184
|
+
var
|
185
|
+
// Get the first touch element for touch events
|
186
|
+
touches = "ontouchend" in document && this.originalEvent.touches.length ? this.originalEvent.touches[0] : this;
|
187
|
+
if ( this.originalEvent.synthetic ) {
|
188
|
+
var doc = document.documentElement,
|
189
|
+
body = document.body;
|
190
|
+
return new $.Vector(touches.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0),
|
191
|
+
touches.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0));
|
192
|
+
} else {
|
193
|
+
return new $.Vector(touches.pageX, touches.pageY);
|
194
|
+
}
|
195
|
+
};
|
196
|
+
|
197
|
+
$.fn.offsetv = function() {
|
198
|
+
if ( this[0] == window ) {
|
199
|
+
return new $.Vector(window.pageXOffset ? window.pageXOffset : document.documentElement.scrollLeft, window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop);
|
200
|
+
} else {
|
201
|
+
var offset = this.offset();
|
202
|
+
return new $.Vector(offset.left, offset.top);
|
203
|
+
}
|
204
|
+
};
|
205
|
+
|
206
|
+
$.fn.dimensionsv = function( which ) {
|
207
|
+
if ( this[0] == window || !which ) {
|
208
|
+
return new $.Vector(this.width(), this.height());
|
209
|
+
}
|
210
|
+
else {
|
211
|
+
return new $.Vector(this[which + "Width"](), this[which + "Height"]());
|
212
|
+
}
|
213
|
+
};
|
214
|
+
})(jQuery)
|