jquerypp-rails 1.0
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.
- 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)
|