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.
data/demo/ready.js ADDED
@@ -0,0 +1,3 @@
1
+ $(function() {
2
+ $('.formikation').find('select, input:file, input:checkbox, input:radio').formikation();
3
+ });
@@ -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
+ }
@@ -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
+ }