ende 0.2.21 → 0.3.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.
- checksums.yaml +4 -4
- data/lib/assets/javascripts/aura/extensions/mask.js.coffee +125 -0
- data/lib/assets/javascripts/aura/extensions/rivets.js.coffee +1 -1
- data/lib/assets/javascripts/widgets/content/main.js.coffee +4 -4
- data/lib/assets/javascripts/widgets/viewer/main.js.coffee +7 -5
- data/lib/ende/version.rb +1 -1
- data/vendor/assets/javascripts/jquery/inputmask.extensions.js +122 -0
- data/vendor/assets/javascripts/jquery/inputmask.js +1613 -0
- data/vendor/assets/javascripts/jquery/inputmask.numeric.extensions.js +177 -0
- metadata +6 -2
@@ -0,0 +1,177 @@
|
|
1
|
+
/*
|
2
|
+
Input Mask plugin extensions
|
3
|
+
http://github.com/RobinHerbots/jquery.inputmask
|
4
|
+
Copyright (c) 2010 - 2014 Robin Herbots
|
5
|
+
Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
6
|
+
Version: 0.0.0
|
7
|
+
|
8
|
+
Optional extensions on the jquery.inputmask base
|
9
|
+
*/
|
10
|
+
(function ($) {
|
11
|
+
//number aliases
|
12
|
+
$.extend($.inputmask.defaults.aliases, {
|
13
|
+
'decimal': {
|
14
|
+
mask: "~",
|
15
|
+
placeholder: "",
|
16
|
+
repeat: "*",
|
17
|
+
greedy: false,
|
18
|
+
numericInput: false,
|
19
|
+
isNumeric: true,
|
20
|
+
digits: "*", //number of fractionalDigits
|
21
|
+
groupSeparator: "",//",", // | "."
|
22
|
+
radixPoint: ".",
|
23
|
+
groupSize: 3,
|
24
|
+
autoGroup: false,
|
25
|
+
allowPlus: true,
|
26
|
+
allowMinus: true,
|
27
|
+
//todo
|
28
|
+
integerDigits: "*", //number of integerDigits
|
29
|
+
defaultValue: "",
|
30
|
+
prefix: "",
|
31
|
+
suffix: "",
|
32
|
+
|
33
|
+
//todo
|
34
|
+
getMaskLength: function (buffer, greedy, repeat, currentBuffer, opts) { //custom getMaskLength to take the groupSeparator into account
|
35
|
+
var calculatedLength = buffer.length;
|
36
|
+
|
37
|
+
if (!greedy) {
|
38
|
+
if (repeat == "*") {
|
39
|
+
calculatedLength = currentBuffer.length + 1;
|
40
|
+
} else if (repeat > 1) {
|
41
|
+
calculatedLength += (buffer.length * (repeat - 1));
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator);
|
46
|
+
var escapedRadixPoint = $.inputmask.escapeRegex.call(this, opts.radixPoint);
|
47
|
+
var currentBufferStr = currentBuffer.join(''), strippedBufferStr = currentBufferStr.replace(new RegExp(escapedGroupSeparator, "g"), "").replace(new RegExp(escapedRadixPoint), ""),
|
48
|
+
groupOffset = currentBufferStr.length - strippedBufferStr.length;
|
49
|
+
return calculatedLength + groupOffset;
|
50
|
+
},
|
51
|
+
postFormat: function (buffer, pos, reformatOnly, opts) {
|
52
|
+
if (opts.groupSeparator == "") return pos;
|
53
|
+
var cbuf = buffer.slice(),
|
54
|
+
radixPos = $.inArray(opts.radixPoint, buffer);
|
55
|
+
if (!reformatOnly) {
|
56
|
+
cbuf.splice(pos, 0, "?"); //set position indicator
|
57
|
+
}
|
58
|
+
var bufVal = cbuf.join('');
|
59
|
+
if (opts.autoGroup || (reformatOnly && bufVal.indexOf(opts.groupSeparator) != -1)) {
|
60
|
+
var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator);
|
61
|
+
bufVal = bufVal.replace(new RegExp(escapedGroupSeparator, "g"), '');
|
62
|
+
var radixSplit = bufVal.split(opts.radixPoint);
|
63
|
+
bufVal = radixSplit[0];
|
64
|
+
var reg = new RegExp('([-\+]?[\\d\?]+)([\\d\?]{' + opts.groupSize + '})');
|
65
|
+
while (reg.test(bufVal)) {
|
66
|
+
bufVal = bufVal.replace(reg, '$1' + opts.groupSeparator + '$2');
|
67
|
+
bufVal = bufVal.replace(opts.groupSeparator + opts.groupSeparator, opts.groupSeparator);
|
68
|
+
}
|
69
|
+
if (radixSplit.length > 1)
|
70
|
+
bufVal += opts.radixPoint + radixSplit[1];
|
71
|
+
}
|
72
|
+
buffer.length = bufVal.length; //align the length
|
73
|
+
for (var i = 0, l = bufVal.length; i < l; i++) {
|
74
|
+
buffer[i] = bufVal.charAt(i);
|
75
|
+
}
|
76
|
+
var newPos = $.inArray("?", buffer);
|
77
|
+
if (!reformatOnly) buffer.splice(newPos, 1);
|
78
|
+
|
79
|
+
return reformatOnly ? pos : newPos;
|
80
|
+
},
|
81
|
+
regex: {
|
82
|
+
number: function (opts) {
|
83
|
+
var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator);
|
84
|
+
var escapedRadixPoint = $.inputmask.escapeRegex.call(this, opts.radixPoint);
|
85
|
+
var digitExpression = isNaN(opts.digits) ? opts.digits : '{0,' + opts.digits + '}';
|
86
|
+
var signedExpression = opts.allowPlus || opts.allowMinus ? "[" + (opts.allowPlus ? "\+" : "") + (opts.allowMinus ? "-" : "") + "]?" : "";
|
87
|
+
return new RegExp("^" + signedExpression + "(\\d+|\\d{1," + opts.groupSize + "}((" + escapedGroupSeparator + "\\d{" + opts.groupSize + "})?)+)(" + escapedRadixPoint + "\\d" + digitExpression + ")?$");
|
88
|
+
}
|
89
|
+
},
|
90
|
+
onKeyDown: function (e, buffer, opts) {
|
91
|
+
var $input = $(this), input = this;
|
92
|
+
if (e.keyCode == opts.keyCode.TAB) {
|
93
|
+
var radixPosition = $.inArray(opts.radixPoint, buffer);
|
94
|
+
if (radixPosition != -1) {
|
95
|
+
var masksets = $input.data('_inputmask')['masksets'];
|
96
|
+
var activeMasksetIndex = $input.data('_inputmask')['activeMasksetIndex'];
|
97
|
+
for (var i = 1; i <= opts.digits && i < opts.getMaskLength(masksets[activeMasksetIndex]["_buffer"], masksets[activeMasksetIndex]["greedy"], masksets[activeMasksetIndex]["repeat"], buffer, opts) ; i++) {
|
98
|
+
if (buffer[radixPosition + i] == undefined || buffer[radixPosition + i] == "") buffer[radixPosition + i] = "0";
|
99
|
+
}
|
100
|
+
input._valueSet(buffer.join(''));
|
101
|
+
}
|
102
|
+
} else if (e.keyCode == opts.keyCode.DELETE || e.keyCode == opts.keyCode.BACKSPACE) {
|
103
|
+
opts.postFormat(buffer, 0, true, opts);
|
104
|
+
input._valueSet(buffer.join(''));
|
105
|
+
return true;
|
106
|
+
}
|
107
|
+
},
|
108
|
+
definitions: {
|
109
|
+
'~': { //real number
|
110
|
+
validator: function (chrs, buffer, pos, strict, opts) {
|
111
|
+
if (chrs == "") return false;
|
112
|
+
if (!strict && pos <= 1 && buffer[0] === '0' && new RegExp("[\\d-]").test(chrs) && buffer.join('').length == 1) { //handle first char
|
113
|
+
buffer[0] = "";
|
114
|
+
return { "pos": 0 };
|
115
|
+
}
|
116
|
+
|
117
|
+
var cbuf = strict ? buffer.slice(0, pos) : buffer.slice();
|
118
|
+
|
119
|
+
cbuf.splice(pos, 0, chrs);
|
120
|
+
var bufferStr = cbuf.join('');
|
121
|
+
|
122
|
+
//strip groupseparator
|
123
|
+
var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator);
|
124
|
+
bufferStr = bufferStr.replace(new RegExp(escapedGroupSeparator, "g"), '');
|
125
|
+
|
126
|
+
var isValid = opts.regex.number(opts).test(bufferStr);
|
127
|
+
if (!isValid) {
|
128
|
+
//let's help the regex a bit
|
129
|
+
bufferStr += "0";
|
130
|
+
isValid = opts.regex.number(opts).test(bufferStr);
|
131
|
+
if (!isValid) {
|
132
|
+
//make a valid group
|
133
|
+
var lastGroupSeparator = bufferStr.lastIndexOf(opts.groupSeparator);
|
134
|
+
for (var i = bufferStr.length - lastGroupSeparator; i <= 3; i++) {
|
135
|
+
bufferStr += "0";
|
136
|
+
}
|
137
|
+
|
138
|
+
isValid = opts.regex.number(opts).test(bufferStr);
|
139
|
+
if (!isValid && !strict) {
|
140
|
+
if (chrs == opts.radixPoint) {
|
141
|
+
isValid = opts.regex.number(opts).test("0" + bufferStr + "0");
|
142
|
+
if (isValid) {
|
143
|
+
buffer[pos] = "0";
|
144
|
+
pos++;
|
145
|
+
return { "pos": pos };
|
146
|
+
}
|
147
|
+
}
|
148
|
+
}
|
149
|
+
}
|
150
|
+
}
|
151
|
+
|
152
|
+
if (isValid != false && !strict && chrs != opts.radixPoint) {
|
153
|
+
var newPos = opts.postFormat(buffer, pos, false, opts);
|
154
|
+
return { "pos": newPos };
|
155
|
+
}
|
156
|
+
|
157
|
+
return isValid;
|
158
|
+
},
|
159
|
+
cardinality: 1,
|
160
|
+
prevalidator: null
|
161
|
+
}
|
162
|
+
},
|
163
|
+
insertMode: true,
|
164
|
+
autoUnmask: false
|
165
|
+
},
|
166
|
+
'integer': {
|
167
|
+
regex: {
|
168
|
+
number: function (opts) {
|
169
|
+
var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator);
|
170
|
+
var signedExpression = opts.allowPlus || opts.allowMinus ? "[" + (opts.allowPlus ? "\+" : "") + (opts.allowMinus ? "-" : "") + "]?" : "";
|
171
|
+
return new RegExp("^" + signedExpression + "(\\d+|\\d{1," + opts.groupSize + "}((" + escapedGroupSeparator + "\\d{" + opts.groupSize + "})?)+)$");
|
172
|
+
}
|
173
|
+
},
|
174
|
+
alias: "decimal"
|
175
|
+
}
|
176
|
+
});
|
177
|
+
})(jQuery);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ende
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Heitor Salazar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,6 +72,7 @@ files:
|
|
72
72
|
- lib/assets/.gitkeep
|
73
73
|
- lib/assets/javascripts/aura/extensions/devise.js.coffee
|
74
74
|
- lib/assets/javascripts/aura/extensions/loader.js.coffee
|
75
|
+
- lib/assets/javascripts/aura/extensions/mask.js.coffee
|
75
76
|
- lib/assets/javascripts/aura/extensions/mediator.js
|
76
77
|
- lib/assets/javascripts/aura/extensions/models.js.coffee.erb
|
77
78
|
- lib/assets/javascripts/aura/extensions/rivets.js.coffee
|
@@ -136,6 +137,9 @@ files:
|
|
136
137
|
- vendor/assets/components/ende_build.css
|
137
138
|
- vendor/assets/components/ende_build.js
|
138
139
|
- vendor/assets/javascripts/ende/build.js
|
140
|
+
- vendor/assets/javascripts/jquery/inputmask.extensions.js
|
141
|
+
- vendor/assets/javascripts/jquery/inputmask.js
|
142
|
+
- vendor/assets/javascripts/jquery/inputmask.numeric.extensions.js
|
139
143
|
- vendor/assets/javascripts/jquery/inview.js
|
140
144
|
- vendor/assets/javascripts/lennon/lennon.js
|
141
145
|
- vendor/assets/javascripts/stampit/stampit.js
|