quantum 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/quantum/version.rb +1 -1
- data/vendor/assets/javascripts/typer.js +260 -0
- data/vendor/assets/stylesheets/pagination.css.scss +2 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5286bf7e1895f14c74d07a865ff9f0338061307
|
4
|
+
data.tar.gz: 5b69d90c596fa5e86872895dc47813a8babae955
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 165770183fd965ab77e04319f842fb278086d565cf2dd2a5df385fefd4fd602f8d66ba644e35e3e9c4c97314942cb5f7e5468d78a14c29cf7235487f6f89b6de
|
7
|
+
data.tar.gz: 747fdd5de4277999540651ddc6d0f54c37ff26481b3bba3a0aea162393e7470fb07290e9bd11929ffc6c0d7bdbb723f617700810f25b092c46b313d2f7b555d2
|
data/lib/quantum/version.rb
CHANGED
@@ -0,0 +1,260 @@
|
|
1
|
+
String.prototype.rightChars = function(n){
|
2
|
+
if (n <= 0) {
|
3
|
+
return "";
|
4
|
+
}
|
5
|
+
else if (n > this.length) {
|
6
|
+
return this;
|
7
|
+
}
|
8
|
+
else {
|
9
|
+
return this.substring(this.length, this.length - n);
|
10
|
+
}
|
11
|
+
};
|
12
|
+
|
13
|
+
(function($) {
|
14
|
+
var
|
15
|
+
options = {
|
16
|
+
highlightSpeed : 20,
|
17
|
+
typeSpeed : 100,
|
18
|
+
clearDelay : 500,
|
19
|
+
typeDelay : 200,
|
20
|
+
clearOnHighlight : true,
|
21
|
+
typerDataAttr : 'data-typer-targets',
|
22
|
+
typerInterval : 2000
|
23
|
+
},
|
24
|
+
highlight,
|
25
|
+
clearText,
|
26
|
+
backspace,
|
27
|
+
type,
|
28
|
+
spanWithColor,
|
29
|
+
clearDelay,
|
30
|
+
typeDelay,
|
31
|
+
clearData,
|
32
|
+
isNumber,
|
33
|
+
typeWithAttribute,
|
34
|
+
getHighlightInterval,
|
35
|
+
getTypeInterval,
|
36
|
+
typerInterval;
|
37
|
+
|
38
|
+
spanWithColor = function(color, backgroundColor) {
|
39
|
+
if (color === 'rgba(0, 0, 0, 0)') {
|
40
|
+
color = 'rgb(255, 255, 255)';
|
41
|
+
}
|
42
|
+
|
43
|
+
return $('<span></span>')
|
44
|
+
.css('color', color)
|
45
|
+
.css('background-color', backgroundColor);
|
46
|
+
};
|
47
|
+
|
48
|
+
isNumber = function (n) {
|
49
|
+
return !isNaN(parseFloat(n)) && isFinite(n);
|
50
|
+
};
|
51
|
+
|
52
|
+
clearData = function ($e) {
|
53
|
+
$e.removeData([
|
54
|
+
'typePosition',
|
55
|
+
'highlightPosition',
|
56
|
+
'leftStop',
|
57
|
+
'rightStop',
|
58
|
+
'primaryColor',
|
59
|
+
'backgroundColor',
|
60
|
+
'text',
|
61
|
+
'typing'
|
62
|
+
]);
|
63
|
+
};
|
64
|
+
|
65
|
+
type = function ($e) {
|
66
|
+
var
|
67
|
+
// position = $e.data('typePosition'),
|
68
|
+
text = $e.data('text'),
|
69
|
+
oldLeft = $e.data('oldLeft'),
|
70
|
+
oldRight = $e.data('oldRight');
|
71
|
+
|
72
|
+
// if (!isNumber(position)) {
|
73
|
+
// position = $e.data('leftStop');
|
74
|
+
// }
|
75
|
+
|
76
|
+
if (!text || text.length === 0) {
|
77
|
+
clearData($e);
|
78
|
+
return;
|
79
|
+
}
|
80
|
+
|
81
|
+
|
82
|
+
$e.text(
|
83
|
+
oldLeft +
|
84
|
+
text.charAt(0) +
|
85
|
+
oldRight
|
86
|
+
).data({
|
87
|
+
oldLeft: oldLeft + text.charAt(0),
|
88
|
+
text: text.substring(1)
|
89
|
+
});
|
90
|
+
|
91
|
+
// $e.text($e.text() + text.substring(position, position + 1));
|
92
|
+
|
93
|
+
// $e.data('typePosition', position + 1);
|
94
|
+
|
95
|
+
setTimeout(function () {
|
96
|
+
type($e);
|
97
|
+
}, getTypeInterval());
|
98
|
+
};
|
99
|
+
|
100
|
+
clearText = function ($e) {
|
101
|
+
$e.find('span').remove();
|
102
|
+
|
103
|
+
setTimeout(function () {
|
104
|
+
type($e);
|
105
|
+
}, typeDelay());
|
106
|
+
};
|
107
|
+
|
108
|
+
highlight = function ($e) {
|
109
|
+
var
|
110
|
+
position = $e.data('highlightPosition'),
|
111
|
+
leftText,
|
112
|
+
highlightedText,
|
113
|
+
rightText;
|
114
|
+
|
115
|
+
if (!isNumber(position)) {
|
116
|
+
position = $e.data('rightStop') + 1;
|
117
|
+
}
|
118
|
+
|
119
|
+
if (position <= $e.data('leftStop')) {
|
120
|
+
setTimeout(function () {
|
121
|
+
clearText($e);
|
122
|
+
}, clearDelay());
|
123
|
+
return;
|
124
|
+
}
|
125
|
+
|
126
|
+
leftText = $e.text().substring(0, position - 1);
|
127
|
+
highlightedText = $e.text().substring(position - 1, $e.data('rightStop') + 1);
|
128
|
+
rightText = $e.text().substring($e.data('rightStop') + 1);
|
129
|
+
|
130
|
+
$e.html(leftText)
|
131
|
+
.append(
|
132
|
+
spanWithColor(
|
133
|
+
$e.data('backgroundColor'),
|
134
|
+
$e.data('primaryColor')
|
135
|
+
)
|
136
|
+
.append(highlightedText)
|
137
|
+
)
|
138
|
+
.append(rightText);
|
139
|
+
|
140
|
+
$e.data('highlightPosition', position - 1);
|
141
|
+
|
142
|
+
setTimeout(function () {
|
143
|
+
return highlight($e);
|
144
|
+
}, getHighlightInterval());
|
145
|
+
};
|
146
|
+
|
147
|
+
typeWithAttribute = function ($e) {
|
148
|
+
var targets;
|
149
|
+
|
150
|
+
if ($e.data('typing')) {
|
151
|
+
return;
|
152
|
+
}
|
153
|
+
|
154
|
+
try {
|
155
|
+
targets = JSON.parse($e.attr($.typer.options.typerDataAttr)).targets;
|
156
|
+
} catch (e) {}
|
157
|
+
|
158
|
+
if (typeof targets === "undefined") {
|
159
|
+
targets = $.map($e.attr($.typer.options.typerDataAttr).split(','), function (e) {
|
160
|
+
return $.trim(e);
|
161
|
+
});
|
162
|
+
}
|
163
|
+
|
164
|
+
$e.typeTo(targets[Math.floor(Math.random()*targets.length)]);
|
165
|
+
};
|
166
|
+
|
167
|
+
// Expose our options to the world.
|
168
|
+
$.typer = (function () {
|
169
|
+
return { options: options };
|
170
|
+
})();
|
171
|
+
|
172
|
+
$.extend($.typer, {
|
173
|
+
options: options
|
174
|
+
});
|
175
|
+
|
176
|
+
//-- Methods to attach to jQuery sets
|
177
|
+
|
178
|
+
$.fn.typer = function() {
|
179
|
+
var $elements = $(this);
|
180
|
+
|
181
|
+
return $elements.each(function () {
|
182
|
+
var $e = $(this);
|
183
|
+
|
184
|
+
if (typeof $e.attr($.typer.options.typerDataAttr) === "undefined") {
|
185
|
+
return;
|
186
|
+
}
|
187
|
+
|
188
|
+
typeWithAttribute($e);
|
189
|
+
setInterval(function () {
|
190
|
+
typeWithAttribute($e);
|
191
|
+
}, typerInterval());
|
192
|
+
});
|
193
|
+
};
|
194
|
+
|
195
|
+
$.fn.typeTo = function (newString) {
|
196
|
+
var
|
197
|
+
$e = $(this),
|
198
|
+
currentText = $e.text(),
|
199
|
+
i = 0,
|
200
|
+
j = 0;
|
201
|
+
|
202
|
+
if (currentText === newString) {
|
203
|
+
console.log("Our strings our equal, nothing to type");
|
204
|
+
return $e;
|
205
|
+
}
|
206
|
+
|
207
|
+
if (currentText !== $e.html()) {
|
208
|
+
console.error("Typer does not work on elements with child elements.");
|
209
|
+
return $e;
|
210
|
+
}
|
211
|
+
|
212
|
+
$e.data('typing', true);
|
213
|
+
|
214
|
+
while (currentText.charAt(i) === newString.charAt(i)) {
|
215
|
+
i++;
|
216
|
+
}
|
217
|
+
|
218
|
+
while (currentText.rightChars(j) === newString.rightChars(j)) {
|
219
|
+
j++;
|
220
|
+
}
|
221
|
+
|
222
|
+
newString = newString.substring(i, newString.length - j + 1);
|
223
|
+
|
224
|
+
$e.data({
|
225
|
+
oldLeft: currentText.substring(0, i),
|
226
|
+
oldRight: currentText.rightChars(j - 1),
|
227
|
+
leftStop: i,
|
228
|
+
rightStop: currentText.length - j,
|
229
|
+
primaryColor: $e.css('color'),
|
230
|
+
backgroundColor: $e.css('background-color'),
|
231
|
+
text: newString
|
232
|
+
});
|
233
|
+
|
234
|
+
highlight($e);
|
235
|
+
|
236
|
+
return $e;
|
237
|
+
};
|
238
|
+
|
239
|
+
//-- Helper methods. These can one day be customized further to include things like ranges of delays.
|
240
|
+
|
241
|
+
getHighlightInterval = function () {
|
242
|
+
return $.typer.options.highlightSpeed;
|
243
|
+
};
|
244
|
+
|
245
|
+
getTypeInterval = function () {
|
246
|
+
return $.typer.options.typeSpeed;
|
247
|
+
},
|
248
|
+
|
249
|
+
clearDelay = function () {
|
250
|
+
return $.typer.options.clearDelay;
|
251
|
+
},
|
252
|
+
|
253
|
+
typeDelay = function () {
|
254
|
+
return $.typer.options.typeDelay;
|
255
|
+
};
|
256
|
+
|
257
|
+
typerInterval = function () {
|
258
|
+
return $.typer.options.typerInterval;
|
259
|
+
};
|
260
|
+
})(jQuery);
|
@@ -41,12 +41,14 @@
|
|
41
41
|
.pagination ul > li.active:first-child {
|
42
42
|
border-bottom-left-radius: 2px;
|
43
43
|
border-top-left-radius: 2px;
|
44
|
+
border-left-width: 1px;
|
44
45
|
}
|
45
46
|
.pagination ul > li:last-child > a,
|
46
47
|
.pagination ul > li:last-child > span,
|
47
48
|
.pagination ul > li.active:last-child {
|
48
49
|
border-bottom-right-radius: 2px;
|
49
50
|
border-top-right-radius: 2px;
|
51
|
+
border-right-width: 1px;
|
50
52
|
}
|
51
53
|
.pagination-centered { text-align: center; }
|
52
54
|
.pagination-right { text-align: right; }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quantum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juan Gomez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -101,6 +101,7 @@ files:
|
|
101
101
|
- vendor/assets/javascripts/tooltip.js
|
102
102
|
- vendor/assets/javascripts/transitions.js
|
103
103
|
- vendor/assets/javascripts/typeahead.js
|
104
|
+
- vendor/assets/javascripts/typer.js
|
104
105
|
- vendor/assets/javascripts/wizard.js
|
105
106
|
- vendor/assets/stylesheets/ad.css.scss
|
106
107
|
- vendor/assets/stylesheets/alert.css.scss
|
@@ -157,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
158
|
version: '0'
|
158
159
|
requirements: []
|
159
160
|
rubyforge_project:
|
160
|
-
rubygems_version: 2.1.
|
161
|
+
rubygems_version: 2.1.3
|
161
162
|
signing_key:
|
162
163
|
specification_version: 4
|
163
164
|
summary: Quantum Responsive Web Framework
|