formikation 0.2.7
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 +7 -0
- data/.gitignore +13 -0
- data/CNAME +1 -0
- data/Gemfile +4 -0
- data/Gulpfile.js +122 -0
- data/LICENSE.txt +20 -0
- data/README.md +90 -0
- data/Rakefile +2 -0
- data/demo/index.html +229 -0
- data/demo/ready.js +3 -0
- data/dist/formikation.css +121 -0
- data/dist/formikation.js +254 -0
- data/dist/formikation.min.css +30 -0
- data/dist/formikation.min.js +12 -0
- data/dist/maps/formikation.js.min.map +1 -0
- data/dist/themes/fk-theme-default.css +111 -0
- data/dist/themes/fk-theme-switches.css +79 -0
- data/formikation.gemspec +23 -0
- data/index.html +126 -0
- data/lib/formikation.rb +6 -0
- data/lib/formikation/engine.rb +13 -0
- data/lib/formikation/version.rb +3 -0
- data/package.json +51 -0
- data/src/formikation.js +243 -0
- data/src/formikation.scss +118 -0
- data/src/themes/fk-theme-default.scss +118 -0
- data/src/themes/fk-theme-switches.scss +82 -0
- metadata +99 -0
data/demo/ready.js
ADDED
@@ -0,0 +1,121 @@
|
|
1
|
+
/*!
|
2
|
+
* Formikation 0.2.7
|
3
|
+
* Formikation is a simple jQuery plugin to beautify form inputs with some css.
|
4
|
+
*
|
5
|
+
* https://github.com/vortizhe/formikation
|
6
|
+
*
|
7
|
+
* Copyright 2016, Victor Ortiz. Licensed under MIT.
|
8
|
+
*
|
9
|
+
* Released on: July 12, 2016
|
10
|
+
*/
|
11
|
+
.formikation label {
|
12
|
+
display: block;
|
13
|
+
font-size: 14px;
|
14
|
+
line-height: 17px;
|
15
|
+
}
|
16
|
+
|
17
|
+
.formikation *:before,
|
18
|
+
.formikation *:after {
|
19
|
+
-webkit-box-sizing: border-box;
|
20
|
+
-moz-box-sizing: border-box;
|
21
|
+
box-sizing: border-box;
|
22
|
+
}
|
23
|
+
|
24
|
+
.formikation input[type=checkbox],
|
25
|
+
.formikation input[type=radio] {
|
26
|
+
margin: 0;
|
27
|
+
padding: 0;
|
28
|
+
cursor: pointer;
|
29
|
+
position: absolute;
|
30
|
+
left: -9999px;
|
31
|
+
}
|
32
|
+
|
33
|
+
.formikation .fk-radio,
|
34
|
+
.formikation .fk-check {
|
35
|
+
display: block;
|
36
|
+
position: relative;
|
37
|
+
display: inline-block;
|
38
|
+
}
|
39
|
+
|
40
|
+
.formikation .fk-radio:before,
|
41
|
+
.formikation .fk-check:before {
|
42
|
+
content: ' ';
|
43
|
+
display: inline-block;
|
44
|
+
vertical-align: middle;
|
45
|
+
}
|
46
|
+
|
47
|
+
.formikation .fk-radio:after,
|
48
|
+
.formikation .fk-check:after {
|
49
|
+
content: '';
|
50
|
+
display: block;
|
51
|
+
position: absolute;
|
52
|
+
background: #fff;
|
53
|
+
}
|
54
|
+
|
55
|
+
.formikation .fk-radio.checked:after, .formikation .fk-radio.checked:after,
|
56
|
+
.formikation .fk-check.checked:after,
|
57
|
+
.formikation .fk-check.checked:after {
|
58
|
+
content: ' ';
|
59
|
+
}
|
60
|
+
|
61
|
+
.formikation .fk-radio.disabled,
|
62
|
+
.formikation .fk-check.disabled {
|
63
|
+
opacity: 0.6;
|
64
|
+
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
|
65
|
+
}
|
66
|
+
|
67
|
+
.formikation .fk-radio:before, .formikation .fk-radio:after {
|
68
|
+
border-radius: 50%;
|
69
|
+
}
|
70
|
+
|
71
|
+
.formikation .fk-select {
|
72
|
+
display: block;
|
73
|
+
width: 100%;
|
74
|
+
font-size: 14px;
|
75
|
+
}
|
76
|
+
|
77
|
+
.formikation .fk-select .fk-select-label {
|
78
|
+
display: inline;
|
79
|
+
white-space: nowrap;
|
80
|
+
overflow: hidden;
|
81
|
+
text-overflow: ellipsis;
|
82
|
+
}
|
83
|
+
|
84
|
+
.formikation .fk-file-input {
|
85
|
+
display: block;
|
86
|
+
position: relative;
|
87
|
+
overflow: hidden;
|
88
|
+
width: 100%;
|
89
|
+
outline: 0;
|
90
|
+
font-size: 14px;
|
91
|
+
}
|
92
|
+
|
93
|
+
.formikation .fk-file-input:after {
|
94
|
+
content: attr(data-text);
|
95
|
+
display: block;
|
96
|
+
position: absolute;
|
97
|
+
right: 0;
|
98
|
+
border: 0;
|
99
|
+
outline: 0;
|
100
|
+
cursor: pointer;
|
101
|
+
}
|
102
|
+
|
103
|
+
.formikation .fk-file-input > p {
|
104
|
+
margin: 0;
|
105
|
+
padding: 0;
|
106
|
+
font-size: 14px;
|
107
|
+
line-height: 1.15;
|
108
|
+
}
|
109
|
+
|
110
|
+
.formikation .fk-file-input input[type=file] {
|
111
|
+
width: 100%;
|
112
|
+
height: 100%;
|
113
|
+
position: absolute;
|
114
|
+
left: 0;
|
115
|
+
top: 0;
|
116
|
+
opacity: 0;
|
117
|
+
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
118
|
+
z-index: 3;
|
119
|
+
cursor: pointer;
|
120
|
+
font-size: 14px;
|
121
|
+
}
|
data/dist/formikation.js
ADDED
@@ -0,0 +1,254 @@
|
|
1
|
+
/*!
|
2
|
+
* Formikation 0.2.7
|
3
|
+
* Formikation is a simple jQuery plugin to beautify form inputs with some css.
|
4
|
+
*
|
5
|
+
* https://github.com/vortizhe/formikation
|
6
|
+
*
|
7
|
+
* Copyright 2016, Victor Ortiz. Licensed under MIT.
|
8
|
+
*
|
9
|
+
* Released on: July 12, 2016
|
10
|
+
*/
|
11
|
+
|
12
|
+
formikation = {
|
13
|
+
|
14
|
+
// Internal variables / DOM caching / etc.
|
15
|
+
dat: {
|
16
|
+
els: null // elements
|
17
|
+
},
|
18
|
+
|
19
|
+
// Default settings / params
|
20
|
+
defaults: {
|
21
|
+
mapClass: true,
|
22
|
+
mapStyle: true
|
23
|
+
},
|
24
|
+
|
25
|
+
// Aquí se inicializa el tema de verdad
|
26
|
+
init: function(params) {
|
27
|
+
|
28
|
+
// filter out <= IE6
|
29
|
+
if (typeof document.body.style.maxHeight === 'undefined') {
|
30
|
+
return this;
|
31
|
+
}
|
32
|
+
|
33
|
+
// Merge the params to default
|
34
|
+
this.defaults = $.extend(this.defaults, params);
|
35
|
+
|
36
|
+
// Process elements in collection
|
37
|
+
this.dat.els.each( function(idx) {
|
38
|
+
// Check / radio
|
39
|
+
if ($(this).is(':checkbox, :radio')) {
|
40
|
+
formikation.processRadioCheck(this);
|
41
|
+
// Select
|
42
|
+
} else if ($(this).is('select')) {
|
43
|
+
formikation.processSelects(this);
|
44
|
+
// File input
|
45
|
+
} else if ($(this).is('input:file')) {
|
46
|
+
formikation.processInputFile(this);
|
47
|
+
// Nor to be processed
|
48
|
+
} else {
|
49
|
+
// Do nothing?
|
50
|
+
}
|
51
|
+
});
|
52
|
+
},
|
53
|
+
|
54
|
+
// Aquí se procesan los checks
|
55
|
+
processRadioCheck: function(el) {
|
56
|
+
var $el = $(el),
|
57
|
+
$label = $el.closest('label');
|
58
|
+
|
59
|
+
// Add class with sprite
|
60
|
+
if ($el.is(':checkbox')) {
|
61
|
+
$label.addClass('fk-check');
|
62
|
+
} else {
|
63
|
+
$label.addClass('fk-radio');
|
64
|
+
}
|
65
|
+
if (this.defaults.mapClass) {
|
66
|
+
$label.addClass($el.attr('class'));
|
67
|
+
}
|
68
|
+
if (this.defaults.mapStyle) {
|
69
|
+
$label.attr('style', $el.attr('style'));
|
70
|
+
}
|
71
|
+
|
72
|
+
$el.on('formikation.update', function() {
|
73
|
+
|
74
|
+
if ($el.prop('checked')) {
|
75
|
+
$el.closest('form').find(':radio[name="'+$el.attr('name')+'"]').closest('label').removeClass('checked');
|
76
|
+
$label.addClass('checked');
|
77
|
+
} else {
|
78
|
+
$label.removeClass('checked');
|
79
|
+
}
|
80
|
+
|
81
|
+
formikation.is_disabled($el, $label);
|
82
|
+
});
|
83
|
+
|
84
|
+
$el.on('click, change', function() {
|
85
|
+
$el.trigger('formikation.update');
|
86
|
+
});
|
87
|
+
|
88
|
+
$el.trigger('formikation.update');
|
89
|
+
},
|
90
|
+
|
91
|
+
// Process selects
|
92
|
+
processSelects: function(el) {
|
93
|
+
var
|
94
|
+
$el = $(el),
|
95
|
+
selectInnerSpan = $('<span />').addClass('fk-select-label'),
|
96
|
+
selectSpan = $('<span />'),
|
97
|
+
prefix = 'fk-select';
|
98
|
+
|
99
|
+
$el.after(selectSpan.append(selectInnerSpan));
|
100
|
+
|
101
|
+
selectSpan.addClass(prefix);
|
102
|
+
|
103
|
+
if (this.defaults.mapClass) {
|
104
|
+
selectSpan.addClass($el.attr('class'));
|
105
|
+
}
|
106
|
+
if (this.defaults.mapStyle) {
|
107
|
+
selectSpan.attr('style', $el.attr('style'));
|
108
|
+
}
|
109
|
+
|
110
|
+
$el.addClass('has-fk-select')
|
111
|
+
.on('formikation.update', function() {
|
112
|
+
formikation.changed($el,selectSpan);
|
113
|
+
formikation.updateSelectWH($el);
|
114
|
+
formikation.is_disabled($el, selectSpan);
|
115
|
+
})
|
116
|
+
.on('change', function() {
|
117
|
+
selectSpan.addClass(formikation.getClass($el, 'Changed'));
|
118
|
+
$el.trigger('formikation.update');
|
119
|
+
})
|
120
|
+
.on('keyup', function(e) {
|
121
|
+
if (!selectSpan.hasClass(formikation.getClass($el, 'Open'))) {
|
122
|
+
$el.blur();
|
123
|
+
$el.focus();
|
124
|
+
} else {
|
125
|
+
if (e.which==13||e.which==27) {
|
126
|
+
formikation.changed($el,selectSpan);
|
127
|
+
}
|
128
|
+
}
|
129
|
+
})
|
130
|
+
.on('mousedown', function(e) {
|
131
|
+
selectSpan.removeClass(formikation.getClass($el, 'Changed'));
|
132
|
+
})
|
133
|
+
.on('mouseup', function(e) {
|
134
|
+
if ( !selectSpan.hasClass(formikation.getClass($el, 'Open'))) {
|
135
|
+
// if FF and there are other selects open, just apply focus
|
136
|
+
if ($('.'+formikation.getClass($el, 'Open')).not(selectSpan).length>0 && typeof InstallTrigger !== 'undefined') {
|
137
|
+
$el.focus();
|
138
|
+
} else {
|
139
|
+
selectSpan.addClass(formikation.getClass($el, 'Open'));
|
140
|
+
e.stopPropagation();
|
141
|
+
$(document).one('mouseup.'+formikation.getClass($el, 'Open'), function(e) {
|
142
|
+
if ( e.target != $el.get(0) && $.inArray(e.target,$el.find('*').get()) < 0 ) {
|
143
|
+
$el.blur();
|
144
|
+
} else {
|
145
|
+
formikation.changed($el,selectSpan);
|
146
|
+
}
|
147
|
+
});
|
148
|
+
}
|
149
|
+
}
|
150
|
+
})
|
151
|
+
.focus(function() {
|
152
|
+
selectSpan.removeClass(formikation.getClass($el, '-changed')).addClass(formikation.getClass($el, '-focus'));
|
153
|
+
})
|
154
|
+
.blur(function() {
|
155
|
+
selectSpan.removeClass(formikation.getClass($el, '-focus')+' '+formikation.getClass($el, '-open'));
|
156
|
+
})
|
157
|
+
.hover(function() {
|
158
|
+
selectSpan.addClass(formikation.getClass($el, '-hover'));
|
159
|
+
}, function() {
|
160
|
+
selectSpan.removeClass(formikation.getClass($el, '-hover'));
|
161
|
+
})
|
162
|
+
.trigger('formikation.update');
|
163
|
+
},
|
164
|
+
|
165
|
+
// Process input file
|
166
|
+
processInputFile: function(el) {
|
167
|
+
var $div = $('<div class="fk-file-input">'),
|
168
|
+
$el = $(el),
|
169
|
+
text = $el.attr('data-text');
|
170
|
+
|
171
|
+
$el.on('change', function(e) {
|
172
|
+
var fn = $el.val().replace(/C:\\fakepath\\/i, '');
|
173
|
+
if (!fn) {
|
174
|
+
fn = text;
|
175
|
+
}
|
176
|
+
$el.prev('p').html(fn);
|
177
|
+
});
|
178
|
+
|
179
|
+
formikation.is_disabled($el, $div);
|
180
|
+
$el.wrap($div.attr('data-text', text)).parent().prepend('<p>' + text + '</p>');
|
181
|
+
},
|
182
|
+
|
183
|
+
// Updates select width to match span
|
184
|
+
updateSelectWH: function(sel) {
|
185
|
+
var $sel = $(sel),
|
186
|
+
$spa = $sel.next('span');
|
187
|
+
|
188
|
+
$sel.css({
|
189
|
+
'-webkit-appearance': 'menulist-button',
|
190
|
+
width: parseInt($spa.outerWidth(), 10),
|
191
|
+
height: parseInt($spa.outerHeight(), 10),
|
192
|
+
position: 'absolute',
|
193
|
+
opacity: 0,
|
194
|
+
fontSize: $spa.css('font-size')
|
195
|
+
});
|
196
|
+
},
|
197
|
+
|
198
|
+
// HELPERS FUNCTIONS UTILITIES ================
|
199
|
+
// Returns class depending on type adding suffix
|
200
|
+
getClass: function(el, suffix){
|
201
|
+
var prefix = (el.is('input:file')) ? 'fk-file' : 'fk-select';
|
202
|
+
return prefix + suffix;
|
203
|
+
},
|
204
|
+
|
205
|
+
// ?
|
206
|
+
changed: function($el,selectSpan) {
|
207
|
+
var currentSelected = $el.find(':selected'),
|
208
|
+
selectSpanInner = selectSpan.children(':first'),
|
209
|
+
html = currentSelected.html() || $el.val();
|
210
|
+
|
211
|
+
selectSpanInner.html(html);
|
212
|
+
|
213
|
+
if (currentSelected.prop('disabled')) {
|
214
|
+
selectSpan.addClass(formikation.getClass($el, 'fk-disable-option'));
|
215
|
+
} else {
|
216
|
+
selectSpan.removeClass(formikation.getClass($el, 'fk-disable-option'));
|
217
|
+
}
|
218
|
+
|
219
|
+
// Add placeholder class to span if:
|
220
|
+
// - Is first option && has NO value
|
221
|
+
// - Is first option && HAS value && value is empty
|
222
|
+
if (
|
223
|
+
$el[0].selectedIndex < 1 &&
|
224
|
+
( !currentSelected[0].hasAttribute('value') || currentSelected.val().length === 0 )
|
225
|
+
) {
|
226
|
+
selectSpanInner.addClass('fk-is-placeholder');
|
227
|
+
} else {
|
228
|
+
selectSpanInner.removeClass('fk-is-placeholder');
|
229
|
+
}
|
230
|
+
|
231
|
+
setTimeout(function() {
|
232
|
+
selectSpan.removeClass(formikation.getClass($el, 'Open'));
|
233
|
+
$(document).off('mouseup.'+formikation.getClass($el, 'Open'));
|
234
|
+
}, 60);
|
235
|
+
},
|
236
|
+
|
237
|
+
// Check if element is disabled
|
238
|
+
is_disabled: function($el, $target) {
|
239
|
+
if ($el.prop('disabled')) {
|
240
|
+
$target.addClass('disabled');
|
241
|
+
} else {
|
242
|
+
$target.removeClass('disabled');
|
243
|
+
}
|
244
|
+
}
|
245
|
+
|
246
|
+
};
|
247
|
+
|
248
|
+
// JQuery hooks
|
249
|
+
(function ($) {
|
250
|
+
$.fn.formikation = function(params) {
|
251
|
+
formikation.dat.els = this; // JQuery elements
|
252
|
+
formikation.init(params);
|
253
|
+
};
|
254
|
+
})(jQuery);
|
@@ -0,0 +1,30 @@
|
|
1
|
+
/*! Formikation 0.2.7 Formikation is a simple jQuery plugin to beautify form inputs with some css. https://github.com/vortizhe/formikation Copyright 2016, Victor Ortiz. Licensed under MIT. Released on: July 12, 2016 */
|
2
|
+
.formikation label { display: block; font-size: 14px; line-height: 17px; }
|
3
|
+
|
4
|
+
.formikation *:before, .formikation *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
|
5
|
+
|
6
|
+
.formikation input[type=checkbox], .formikation input[type=radio] { margin: 0; padding: 0; cursor: pointer; position: absolute; left: -9999px; }
|
7
|
+
|
8
|
+
.formikation .fk-radio, .formikation .fk-check { display: block; position: relative; display: inline-block; }
|
9
|
+
|
10
|
+
.formikation .fk-radio:before, .formikation .fk-check:before { content: ' '; display: inline-block; vertical-align: middle; }
|
11
|
+
|
12
|
+
.formikation .fk-radio:after, .formikation .fk-check:after { content: ''; display: block; position: absolute; background: #fff; }
|
13
|
+
|
14
|
+
.formikation .fk-radio.checked:after, .formikation .fk-radio.checked:after, .formikation .fk-check.checked:after, .formikation .fk-check.checked:after { content: ' '; }
|
15
|
+
|
16
|
+
.formikation .fk-radio.disabled, .formikation .fk-check.disabled { opacity: 0.6; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; }
|
17
|
+
|
18
|
+
.formikation .fk-radio:before, .formikation .fk-radio:after { border-radius: 50%; }
|
19
|
+
|
20
|
+
.formikation .fk-select { display: block; width: 100%; font-size: 14px; }
|
21
|
+
|
22
|
+
.formikation .fk-select .fk-select-label { display: inline; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
23
|
+
|
24
|
+
.formikation .fk-file-input { display: block; position: relative; overflow: hidden; width: 100%; outline: 0; font-size: 14px; }
|
25
|
+
|
26
|
+
.formikation .fk-file-input:after { content: attr(data-text); display: block; position: absolute; right: 0; border: 0; outline: 0; cursor: pointer; }
|
27
|
+
|
28
|
+
.formikation .fk-file-input > p { margin: 0; padding: 0; font-size: 14px; line-height: 1.15; }
|
29
|
+
|
30
|
+
.formikation .fk-file-input input[type=file] { width: 100%; height: 100%; position: absolute; left: 0; top: 0; opacity: 0; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; z-index: 3; cursor: pointer; font-size: 14px; }
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/*!
|
2
|
+
* Formikation 0.2.7
|
3
|
+
* Formikation is a simple jQuery plugin to beautify form inputs with some css.
|
4
|
+
*
|
5
|
+
* https://github.com/vortizhe/formikation
|
6
|
+
*
|
7
|
+
* Copyright 2016, Victor Ortiz. Licensed under MIT.
|
8
|
+
*
|
9
|
+
* Released on: July 12, 2016
|
10
|
+
*/
|
11
|
+
formikation={dat:{els:null},defaults:{mapClass:!0,mapStyle:!0},init:function(t){return"undefined"==typeof document.body.style.maxHeight?this:(this.defaults=$.extend(this.defaults,t),void this.dat.els.each(function(t){$(this).is(":checkbox, :radio")?formikation.processRadioCheck(this):$(this).is("select")?formikation.processSelects(this):$(this).is("input:file")&&formikation.processInputFile(this)}))},processRadioCheck:function(t){var e=$(t),a=e.closest("label");e.is(":checkbox")?a.addClass("fk-check"):a.addClass("fk-radio"),this.defaults.mapClass&&a.addClass(e.attr("class")),this.defaults.mapStyle&&a.attr("style",e.attr("style")),e.on("formikation.update",function(){e.prop("checked")?(e.closest("form").find(':radio[name="'+e.attr("name")+'"]').closest("label").removeClass("checked"),a.addClass("checked")):a.removeClass("checked"),formikation.is_disabled(e,a)}),e.on("click, change",function(){e.trigger("formikation.update")}),e.trigger("formikation.update")},processSelects:function(t){var e=$(t),a=$("<span />").addClass("fk-select-label"),s=$("<span />"),i="fk-select";e.after(s.append(a)),s.addClass(i),this.defaults.mapClass&&s.addClass(e.attr("class")),this.defaults.mapStyle&&s.attr("style",e.attr("style")),e.addClass("has-fk-select").on("formikation.update",function(){formikation.changed(e,s),formikation.updateSelectWH(e),formikation.is_disabled(e,s)}).on("change",function(){s.addClass(formikation.getClass(e,"Changed")),e.trigger("formikation.update")}).on("keyup",function(t){s.hasClass(formikation.getClass(e,"Open"))?13!=t.which&&27!=t.which||formikation.changed(e,s):(e.blur(),e.focus())}).on("mousedown",function(t){s.removeClass(formikation.getClass(e,"Changed"))}).on("mouseup",function(t){s.hasClass(formikation.getClass(e,"Open"))||($("."+formikation.getClass(e,"Open")).not(s).length>0&&"undefined"!=typeof InstallTrigger?e.focus():(s.addClass(formikation.getClass(e,"Open")),t.stopPropagation(),$(document).one("mouseup."+formikation.getClass(e,"Open"),function(t){t.target!=e.get(0)&&$.inArray(t.target,e.find("*").get())<0?e.blur():formikation.changed(e,s)})))}).focus(function(){s.removeClass(formikation.getClass(e,"-changed")).addClass(formikation.getClass(e,"-focus"))}).blur(function(){s.removeClass(formikation.getClass(e,"-focus")+" "+formikation.getClass(e,"-open"))}).hover(function(){s.addClass(formikation.getClass(e,"-hover"))},function(){s.removeClass(formikation.getClass(e,"-hover"))}).trigger("formikation.update")},processInputFile:function(t){var e=$('<div class="fk-file-input">'),a=$(t),s=a.attr("data-text");a.on("change",function(t){var e=a.val().replace(/C:\\fakepath\\/i,"");e||(e=s),a.prev("p").html(e)}),formikation.is_disabled(a,e),a.wrap(e.attr("data-text",s)).parent().prepend("<p>"+s+"</p>")},updateSelectWH:function(t){var e=$(t),a=e.next("span");e.css({"-webkit-appearance":"menulist-button",width:parseInt(a.outerWidth(),10),height:parseInt(a.outerHeight(),10),position:"absolute",opacity:0,fontSize:a.css("font-size")})},getClass:function(t,e){var a=t.is("input:file")?"fk-file":"fk-select";return a+e},changed:function(t,e){var a=t.find(":selected"),s=e.children(":first"),i=a.html()||t.val();s.html(i),a.prop("disabled")?e.addClass(formikation.getClass(t,"fk-disable-option")):e.removeClass(formikation.getClass(t,"fk-disable-option")),t[0].selectedIndex<1&&(!a[0].hasAttribute("value")||0===a.val().length)?s.addClass("fk-is-placeholder"):s.removeClass("fk-is-placeholder"),setTimeout(function(){e.removeClass(formikation.getClass(t,"Open")),$(document).off("mouseup."+formikation.getClass(t,"Open"))},60)},is_disabled:function(t,e){t.prop("disabled")?e.addClass("disabled"):e.removeClass("disabled")}},function(t){t.fn.formikation=function(t){formikation.dat.els=this,formikation.init(t)}}(jQuery);
|
12
|
+
//# sourceMappingURL=maps/formikation.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["formikation.js"],"names":["formikation","dat","els","defaults","mapClass","mapStyle","init","params","document","body","style","maxHeight","this","$","extend","each","idx","is","processRadioCheck","processSelects","processInputFile","el","$el","$label","closest","addClass","attr","on","prop","find","removeClass","is_disabled","trigger","selectInnerSpan","selectSpan","prefix","after","append","changed","updateSelectWH","getClass","e","hasClass","which","blur","focus","not","length","InstallTrigger","stopPropagation","one","target","get","inArray","hover","$div","text","fn","val","replace","prev","html","wrap","parent","prepend","sel","$sel","$spa","next","css","-webkit-appearance","width","parseInt","outerWidth","height","outerHeight","position","opacity","fontSize","suffix","currentSelected","selectSpanInner","children","selectedIndex","hasAttribute","setTimeout","off","$target","jQuery"],"mappings":"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","file":"formikation.js","sourcesContent":["/*!\n * Formikation 0.2.7\n * Formikation is a simple jQuery plugin to beautify form inputs with some css.\n *\n * https://github.com/vortizhe/formikation\n *\n * Copyright 2016, Victor Ortiz. Licensed under MIT.\n *\n * Released on: July 12, 2016\n */\n\nformikation = {\n\n // Internal variables / DOM caching / etc.\n dat: {\n els: null // elements\n },\n\n // Default settings / params\n defaults: {\n mapClass: true,\n mapStyle: true\n },\n\n // Aquí se inicializa el tema de verdad\n init: function(params) {\n\n // filter out <= IE6\n if (typeof document.body.style.maxHeight === 'undefined') {\n return this;\n }\n\n // Merge the params to default\n this.defaults = $.extend(this.defaults, params);\n\n // Process elements in collection\n this.dat.els.each( function(idx) {\n // Check / radio\n if ($(this).is(':checkbox, :radio')) {\n formikation.processRadioCheck(this);\n // Select\n } else if ($(this).is('select')) {\n formikation.processSelects(this);\n // File input\n } else if ($(this).is('input:file')) {\n formikation.processInputFile(this);\n // Nor to be processed\n } else {\n // Do nothing?\n }\n });\n },\n\n // Aquí se procesan los checks\n processRadioCheck: function(el) {\n var $el = $(el),\n $label = $el.closest('label');\n\n // Add class with sprite\n if ($el.is(':checkbox')) {\n $label.addClass('fk-check');\n } else {\n $label.addClass('fk-radio');\n }\n if (this.defaults.mapClass) {\n $label.addClass($el.attr('class'));\n }\n if (this.defaults.mapStyle) {\n $label.attr('style', $el.attr('style'));\n }\n\n $el.on('formikation.update', function() {\n\n if ($el.prop('checked')) {\n $el.closest('form').find(':radio[name=\"'+$el.attr('name')+'\"]').closest('label').removeClass('checked');\n $label.addClass('checked');\n } else {\n $label.removeClass('checked');\n }\n\n formikation.is_disabled($el, $label);\n });\n\n $el.on('click, change', function() {\n $el.trigger('formikation.update');\n });\n\n $el.trigger('formikation.update');\n },\n\n // Process selects\n processSelects: function(el) {\n var\n $el = $(el),\n selectInnerSpan = $('<span />').addClass('fk-select-label'),\n selectSpan = $('<span />'),\n prefix = 'fk-select';\n\n $el.after(selectSpan.append(selectInnerSpan));\n\n selectSpan.addClass(prefix);\n\n if (this.defaults.mapClass) {\n selectSpan.addClass($el.attr('class'));\n }\n if (this.defaults.mapStyle) {\n selectSpan.attr('style', $el.attr('style'));\n }\n\n $el.addClass('has-fk-select')\n .on('formikation.update', function() {\n formikation.changed($el,selectSpan);\n formikation.updateSelectWH($el);\n formikation.is_disabled($el, selectSpan);\n })\n .on('change', function() {\n selectSpan.addClass(formikation.getClass($el, 'Changed'));\n $el.trigger('formikation.update');\n })\n .on('keyup', function(e) {\n if (!selectSpan.hasClass(formikation.getClass($el, 'Open'))) {\n $el.blur();\n $el.focus();\n } else {\n if (e.which==13||e.which==27) {\n formikation.changed($el,selectSpan);\n }\n }\n })\n .on('mousedown', function(e) {\n selectSpan.removeClass(formikation.getClass($el, 'Changed'));\n })\n .on('mouseup', function(e) {\n if ( !selectSpan.hasClass(formikation.getClass($el, 'Open'))) {\n // if FF and there are other selects open, just apply focus\n if ($('.'+formikation.getClass($el, 'Open')).not(selectSpan).length>0 && typeof InstallTrigger !== 'undefined') {\n $el.focus();\n } else {\n selectSpan.addClass(formikation.getClass($el, 'Open'));\n e.stopPropagation();\n $(document).one('mouseup.'+formikation.getClass($el, 'Open'), function(e) {\n if ( e.target != $el.get(0) && $.inArray(e.target,$el.find('*').get()) < 0 ) {\n $el.blur();\n } else {\n formikation.changed($el,selectSpan);\n }\n });\n }\n }\n })\n .focus(function() {\n selectSpan.removeClass(formikation.getClass($el, '-changed')).addClass(formikation.getClass($el, '-focus'));\n })\n .blur(function() {\n selectSpan.removeClass(formikation.getClass($el, '-focus')+' '+formikation.getClass($el, '-open'));\n })\n .hover(function() {\n selectSpan.addClass(formikation.getClass($el, '-hover'));\n }, function() {\n selectSpan.removeClass(formikation.getClass($el, '-hover'));\n })\n .trigger('formikation.update');\n },\n\n // Process input file\n processInputFile: function(el) {\n var $div = $('<div class=\"fk-file-input\">'),\n $el = $(el),\n text = $el.attr('data-text');\n\n $el.on('change', function(e) {\n var fn = $el.val().replace(/C:\\\\fakepath\\\\/i, '');\n if (!fn) {\n fn = text;\n }\n $el.prev('p').html(fn);\n });\n\n formikation.is_disabled($el, $div);\n $el.wrap($div.attr('data-text', text)).parent().prepend('<p>' + text + '</p>');\n },\n\n // Updates select width to match span\n updateSelectWH: function(sel) {\n var $sel = $(sel),\n $spa = $sel.next('span');\n\n $sel.css({\n '-webkit-appearance': 'menulist-button',\n width: parseInt($spa.outerWidth(), 10),\n height: parseInt($spa.outerHeight(), 10),\n position: 'absolute',\n opacity: 0,\n fontSize: $spa.css('font-size')\n });\n },\n\n // HELPERS FUNCTIONS UTILITIES ================\n // Returns class depending on type adding suffix\n getClass: function(el, suffix){\n var prefix = (el.is('input:file')) ? 'fk-file' : 'fk-select';\n return prefix + suffix;\n },\n\n // ?\n changed: function($el,selectSpan) {\n var currentSelected = $el.find(':selected'),\n selectSpanInner = selectSpan.children(':first'),\n html = currentSelected.html() || $el.val();\n\n selectSpanInner.html(html);\n\n if (currentSelected.prop('disabled')) {\n selectSpan.addClass(formikation.getClass($el, 'fk-disable-option'));\n } else {\n selectSpan.removeClass(formikation.getClass($el, 'fk-disable-option'));\n }\n\n // Add placeholder class to span if:\n // - Is first option && has NO value\n // - Is first option && HAS value && value is empty\n if (\n $el[0].selectedIndex < 1 &&\n ( !currentSelected[0].hasAttribute('value') || currentSelected.val().length === 0 )\n ) {\n selectSpanInner.addClass('fk-is-placeholder');\n } else {\n selectSpanInner.removeClass('fk-is-placeholder');\n }\n\n setTimeout(function() {\n selectSpan.removeClass(formikation.getClass($el, 'Open'));\n $(document).off('mouseup.'+formikation.getClass($el, 'Open'));\n }, 60);\n },\n\n // Check if element is disabled\n is_disabled: function($el, $target) {\n if ($el.prop('disabled')) {\n $target.addClass('disabled');\n } else {\n $target.removeClass('disabled');\n }\n }\n\n};\n\n// JQuery hooks\n(function ($) {\n $.fn.formikation = function(params) {\n formikation.dat.els = this; // JQuery elements\n formikation.init(params);\n };\n})(jQuery);\n"],"sourceRoot":"/source/"}
|
@@ -0,0 +1,111 @@
|
|
1
|
+
/*!
|
2
|
+
* Formikation 0.2.7
|
3
|
+
* Formikation is a simple jQuery plugin to beautify form inputs with some css.
|
4
|
+
*
|
5
|
+
* https://github.com/vortizhe/formikation
|
6
|
+
*
|
7
|
+
* Copyright 2016, Victor Ortiz. Licensed under MIT.
|
8
|
+
*
|
9
|
+
* Released on: July 12, 2016
|
10
|
+
*/
|
11
|
+
.fk-theme-default label {
|
12
|
+
padding-right: 16px;
|
13
|
+
margin-bottom: 0.5em;
|
14
|
+
}
|
15
|
+
|
16
|
+
.fk-theme-default label.fk-radio:before, .fk-theme-default label.fk-check:before {
|
17
|
+
content: ' ';
|
18
|
+
width: 20px;
|
19
|
+
height: 20px;
|
20
|
+
border: 1px solid #d8d8d8;
|
21
|
+
margin-top: -3px;
|
22
|
+
border-radius: 3px;
|
23
|
+
}
|
24
|
+
|
25
|
+
.fk-theme-default label.fk-radio:after, .fk-theme-default label.fk-check:after {
|
26
|
+
content: ' ';
|
27
|
+
width: 12px;
|
28
|
+
height: 12px;
|
29
|
+
left: 4px;
|
30
|
+
top: 2px;
|
31
|
+
border-radius: 3px;
|
32
|
+
-webkit-transition: all 0.3s ease;
|
33
|
+
-o-transition: all 0.3s ease;
|
34
|
+
transition: all 0.3s ease;
|
35
|
+
}
|
36
|
+
|
37
|
+
.fk-theme-default label.fk-radio:before, .fk-theme-default label.fk-radio:after {
|
38
|
+
border-radius: 50%;
|
39
|
+
}
|
40
|
+
|
41
|
+
.fk-theme-default label.checked.fk-radio:after, .fk-theme-default label.checked.fk-check:after {
|
42
|
+
background: #2f97e9;
|
43
|
+
}
|
44
|
+
|
45
|
+
.fk-theme-default .fk-select {
|
46
|
+
padding: 10px;
|
47
|
+
border: 1px solid #d8d8d8;
|
48
|
+
background: #fff;
|
49
|
+
border-radius: 3px;
|
50
|
+
line-height: 1.15;
|
51
|
+
}
|
52
|
+
|
53
|
+
.fk-theme-default .fk-select:after {
|
54
|
+
content: '\00bb';
|
55
|
+
display: block;
|
56
|
+
float: right;
|
57
|
+
padding: 10px 15px;
|
58
|
+
margin: -10px -15px;
|
59
|
+
-webkit-transform: rotate(90deg);
|
60
|
+
-ms-transform: rotate(90deg);
|
61
|
+
transform: rotate(90deg);
|
62
|
+
}
|
63
|
+
|
64
|
+
.fk-theme-default .fk-select .fk-select-label {
|
65
|
+
color: #666;
|
66
|
+
}
|
67
|
+
|
68
|
+
.fk-theme-default .fk-select .fk-select-label.fk-is-placeholder {
|
69
|
+
font-style: italic;
|
70
|
+
}
|
71
|
+
|
72
|
+
.fk-theme-default .fk-select.fk-select-focus {
|
73
|
+
border-color: #000;
|
74
|
+
}
|
75
|
+
|
76
|
+
.fk-theme-default .fk-select.fk-select-focus .fl-select-label {
|
77
|
+
color: #000;
|
78
|
+
}
|
79
|
+
|
80
|
+
.fk-theme-default .fk-select.disabled {
|
81
|
+
opacity: 0.6;
|
82
|
+
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
|
83
|
+
}
|
84
|
+
|
85
|
+
.fk-theme-default .has-fk-select {
|
86
|
+
width: 100%;
|
87
|
+
border: 0;
|
88
|
+
}
|
89
|
+
|
90
|
+
.fk-theme-default .fk-file-input {
|
91
|
+
padding: 10px;
|
92
|
+
background: #fff;
|
93
|
+
border: 1px solid #ccc;
|
94
|
+
border-radius: 3px;
|
95
|
+
line-height: 1.15;
|
96
|
+
}
|
97
|
+
|
98
|
+
.fk-theme-default .fk-file-input:after {
|
99
|
+
right: 3px;
|
100
|
+
top: 3px;
|
101
|
+
padding: 8px 10px;
|
102
|
+
text-align: center;
|
103
|
+
color: #fff;
|
104
|
+
background-color: #2f97e9;
|
105
|
+
border-radius: 3px;
|
106
|
+
line-height: 1;
|
107
|
+
}
|
108
|
+
|
109
|
+
.fk-theme-default .fk-file-input.disabled {
|
110
|
+
opacity: 0.6;
|
111
|
+
}
|