diff --git a/dist/js/material.js b/dist/js/material.js
index 216f0e54..edb2de20 100644
--- a/dist/js/material.js
+++ b/dist/js/material.js
@@ -21,6 +21,13 @@
$.material = {
"options": {
+ // These options set what will be started by $.material.init()
+ "ripples": true,
+ "checkbox": true,
+ "togglebutton": true,
+ "radio": true,
+ "arrive": true,
+
"withRipples": [
".btn:not(.btn-link)",
".card-image",
@@ -128,53 +135,72 @@
"ripples": function(selector) {
$.ripples({"target": (selector) ? selector : this.options.withRipples});
},
- "init": function() {
- if ($.ripples) {
- this.ripples();
- }
- this.input();
- this.checkbox();
- this.togglebutton();
- this.radio();
+ "autofill": function() {
- if (document.arrive) {
- document.arrive("input, textarea, select", function() {
- $.material.init();
+ // This part of code will detect autofill when the page is loading (username and password inputs for example)
+ var loading = setInterval(function() {
+ $("input[type!=checkbox]").each(function() {
+ if ($(this).val() && $(this).val() !== $(this).attr("value")) {
+ $(this).trigger("change");
+ }
});
- }
+ }, 100);
- // Detect autofill
- (function() {
- // This part of code will detect autofill when the page is loading (username and password inputs for example)
- var loading = setInterval(function() {
- $("input[type!=checkbox]").each(function() {
- if ($(this).val() && $(this).val() !== $(this).attr("value")) {
+ // After 10 seconds we are quite sure all the needed inputs are autofilled then we can stop checking them
+ setTimeout(function() {
+ clearInterval(loading);
+ }, 10000);
+ // Now we just listen on inputs of the focused form (because user can select from the autofill dropdown only when the input has focus)
+ var focused;
+ $(document)
+ .on("focus", "input", function() {
+ var $inputs = $(this).parents("form").find("input").not("[type=file]");
+ focused = setInterval(function() {
+ $inputs.each(function() {
+ if ($(this).val() !== $(this).attr("value")) {
$(this).trigger("change");
}
});
}, 100);
- // After 10 seconds we are quite sure all the needed inputs are autofilled then we can stop checking them
- setTimeout(function() {
- clearInterval(loading);
- }, 10000);
- // Now we just listen on inputs of the focused form (because user can select from the autofill dropdown only when the input has focus)
- var focused;
- $(document)
- .on("focus", "input", function() {
- var $inputs = $(this).parents("form").find("input").not("[type=file]");
- focused = setInterval(function() {
- $inputs.each(function() {
- if ($(this).val() !== $(this).attr("value")) {
- $(this).trigger("change");
- }
- });
- }, 100);
- })
- .on("blur", "input", function() {
- clearInterval(focused);
- });
+ })
+ .on("blur", "input", function() {
+ clearInterval(focused);
+ });
+ },
+ "init": function() {
+ if ($.ripples && this.options.ripples) {
+ this.ripples();
+ }
+ if (this.options.input) {
+ this.input();
+ }
+ if (this.options.checkbox) {
+ this.checkbox();
+ }
+ if (this.options.togglebutton) {
+ this.togglebutton();
+ }
+ if (this.options.radio) {
+ this.radio();
+ }
+ if (this.options.autofill) {
+ this.autofill();
+ }
- })();
+ if (document.arrive && this.options.arrive) {
+ $(document).arrive(this.options.inputElements, function() {
+ $.material.input($(this));
+ });
+ $(document).arrive(this.options.checkboxElements, function() {
+ $.material.checkbox($(this));
+ });
+ $(document).arrive(this.options.radioElements, function() {
+ $.material.radio($(this));
+ });
+ $(document).arrive(this.options.togglebuttonElements, function() {
+ $.material.togglebutton($(this));
+ });
+ }
}
};
diff --git a/dist/js/material.min.js b/dist/js/material.min.js
index 9c3fa34e..2181cac8 100644
--- a/dist/js/material.min.js
+++ b/dist/js/material.min.js
@@ -1,2 +1,2 @@
-!function(a){function b(a){return"undefined"==typeof a.which?!0:"number"==typeof a.which&&a.which>0?!a.ctrlKey&&!a.metaKey&&!a.altKey&&8!=a.which:!1}a.expr[":"].notmdproc=function(b){return a(b).data("mdproc")?!1:!0},a.material={options:{withRipples:[".btn:not(.btn-link)",".card-image",".navbar a:not(.withoutripple)",".dropdown-menu a",".nav-tabs a:not(.withoutripple)",".withripple"].join(","),inputElements:"input.form-control, textarea.form-control, select.form-control",checkboxElements:".checkbox > label > input[type=checkbox]",togglebuttonElements:".togglebutton > label > input[type=checkbox]",radioElements:".radio > label > input[type=radio]"},checkbox:function(b){a(b?b:this.options.checkboxElements).filter(":notmdproc").data("mdproc",!0).after("")},togglebutton:function(b){a(b?b:this.options.togglebuttonElements).filter(":notmdproc").data("mdproc",!0).after("")},radio:function(b){a(b?b:this.options.radioElements).filter(":notmdproc").data("mdproc",!0).after("")},input:function(c){a(c?c:this.options.inputElements).filter(":notmdproc").data("mdproc",!0).each(function(){var b=a(this);if(b.wrap("
"),b.after(""),b.hasClass("floating-label")){var c=b.attr("placeholder");b.attr("placeholder",null).removeClass("floating-label"),b.after(""+c+"
")}if(b.attr("data-hint")&&b.after(""+b.attr("data-hint")+"
"),(null===b.val()||"undefined"==b.val()||""===b.val())&&b.addClass("empty"),b.parent().next().is("[type=file]")){b.parent().addClass("fileinput");var d=b.parent().next().detach();b.after(d)}}),a(document).on("change",".checkbox input[type=checkbox]",function(){a(this).blur()}).on("keydown paste",".form-control",function(c){b(c)&&a(this).removeClass("empty")}).on("keyup change",".form-control",function(){var b=a(this);""===b.val()?b.addClass("empty"):b.removeClass("empty")}).on("focus",".form-control-wrapper.fileinput",function(){a(this).find("input").addClass("focus")}).on("blur",".form-control-wrapper.fileinput",function(){a(this).find("input").removeClass("focus")}).on("change",".form-control-wrapper.fileinput [type=file]",function(){var b="";a.each(a(this)[0].files,function(a,c){console.log(c),b+=c.name+", "}),b=b.substring(0,b.length-2),b?a(this).prev().removeClass("empty"):a(this).prev().addClass("empty"),a(this).prev().val(b)})},ripples:function(b){a.ripples({target:b?b:this.options.withRipples})},init:function(){a.ripples&&this.ripples(),this.input(),this.checkbox(),this.togglebutton(),this.radio(),document.arrive&&document.arrive("input, textarea, select",function(){a.material.init()}),function(){var b=setInterval(function(){a("input[type!=checkbox]").each(function(){a(this).val()&&a(this).val()!==a(this).attr("value")&&a(this).trigger("change")})},100);setTimeout(function(){clearInterval(b)},1e4);var c;a(document).on("focus","input",function(){var b=a(this).parents("form").find("input").not("[type=file]");c=setInterval(function(){b.each(function(){a(this).val()!==a(this).attr("value")&&a(this).trigger("change")})},100)}).on("blur","input",function(){clearInterval(c)})}()}}}(jQuery);
+!function(a){function b(a){return"undefined"==typeof a.which?!0:"number"==typeof a.which&&a.which>0?!a.ctrlKey&&!a.metaKey&&!a.altKey&&8!=a.which:!1}a.expr[":"].notmdproc=function(b){return a(b).data("mdproc")?!1:!0},a.material={options:{ripples:!0,checkbox:!0,togglebutton:!0,radio:!0,arrive:!0,withRipples:[".btn:not(.btn-link)",".card-image",".navbar a:not(.withoutripple)",".dropdown-menu a",".nav-tabs a:not(.withoutripple)",".withripple"].join(","),inputElements:"input.form-control, textarea.form-control, select.form-control",checkboxElements:".checkbox > label > input[type=checkbox]",togglebuttonElements:".togglebutton > label > input[type=checkbox]",radioElements:".radio > label > input[type=radio]"},checkbox:function(b){a(b?b:this.options.checkboxElements).filter(":notmdproc").data("mdproc",!0).after("")},togglebutton:function(b){a(b?b:this.options.togglebuttonElements).filter(":notmdproc").data("mdproc",!0).after("")},radio:function(b){a(b?b:this.options.radioElements).filter(":notmdproc").data("mdproc",!0).after("")},input:function(c){a(c?c:this.options.inputElements).filter(":notmdproc").data("mdproc",!0).each(function(){var b=a(this);if(b.wrap(""),b.after(""),b.hasClass("floating-label")){var c=b.attr("placeholder");b.attr("placeholder",null).removeClass("floating-label"),b.after(""+c+"
")}if(b.attr("data-hint")&&b.after(""+b.attr("data-hint")+"
"),(null===b.val()||"undefined"==b.val()||""===b.val())&&b.addClass("empty"),b.parent().next().is("[type=file]")){b.parent().addClass("fileinput");var d=b.parent().next().detach();b.after(d)}}),a(document).on("change",".checkbox input[type=checkbox]",function(){a(this).blur()}).on("keydown paste",".form-control",function(c){b(c)&&a(this).removeClass("empty")}).on("keyup change",".form-control",function(){var b=a(this);""===b.val()?b.addClass("empty"):b.removeClass("empty")}).on("focus",".form-control-wrapper.fileinput",function(){a(this).find("input").addClass("focus")}).on("blur",".form-control-wrapper.fileinput",function(){a(this).find("input").removeClass("focus")}).on("change",".form-control-wrapper.fileinput [type=file]",function(){var b="";a.each(a(this)[0].files,function(a,c){console.log(c),b+=c.name+", "}),b=b.substring(0,b.length-2),b?a(this).prev().removeClass("empty"):a(this).prev().addClass("empty"),a(this).prev().val(b)})},ripples:function(b){a.ripples({target:b?b:this.options.withRipples})},autofill:function(){var b=setInterval(function(){a("input[type!=checkbox]").each(function(){a(this).val()&&a(this).val()!==a(this).attr("value")&&a(this).trigger("change")})},100);setTimeout(function(){clearInterval(b)},1e4);var c;a(document).on("focus","input",function(){var b=a(this).parents("form").find("input").not("[type=file]");c=setInterval(function(){b.each(function(){a(this).val()!==a(this).attr("value")&&a(this).trigger("change")})},100)}).on("blur","input",function(){clearInterval(c)})},init:function(){a.ripples&&this.options.ripples&&this.ripples(),this.options.input&&this.input(),this.options.checkbox&&this.checkbox(),this.options.togglebutton&&this.togglebutton(),this.options.radio&&this.radio(),this.options.autofill&&this.autofill(),document.arrive&&this.options.arrive&&(a(document).arrive(this.options.inputElements,function(){a.material.input(a(this))}),a(document).arrive(this.options.checkboxElements,function(){a.material.checkbox(a(this))}),a(document).arrive(this.options.radioElements,function(){a.material.radio(a(this))}),a(document).arrive(this.options.togglebuttonElements,function(){a.material.togglebutton(a(this))}))}}}(jQuery);
//# sourceMappingURL=material.min.js.map
diff --git a/dist/js/material.min.js.map b/dist/js/material.min.js.map
index 2ccfaa14..608696ec 100644
--- a/dist/js/material.min.js.map
+++ b/dist/js/material.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"material.min.js","sources":["material.js"],"names":["$","_isChar","evt","which","ctrlKey","metaKey","altKey","expr","notmdproc","obj","data","material","options","withRipples","join","inputElements","checkboxElements","togglebuttonElements","radioElements","checkbox","selector","this","filter","after","togglebutton","radio","input","each","$this","wrap","hasClass","placeholder","attr","removeClass","val","addClass","parent","next","is","$input","detach","document","on","blur","e","find","value","files","i","file","console","log","name","substring","length","prev","ripples","target","init","arrive","loading","setInterval","trigger","setTimeout","clearInterval","focused","$inputs","parents","not","jQuery"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"material.min.js","sources":["material.js"],"names":["$","_isChar","evt","which","ctrlKey","metaKey","altKey","expr","notmdproc","obj","data","material","options","ripples","checkbox","togglebutton","radio","arrive","withRipples","join","inputElements","checkboxElements","togglebuttonElements","radioElements","selector","this","filter","after","input","each","$this","wrap","hasClass","placeholder","attr","removeClass","val","addClass","parent","next","is","$input","detach","document","on","blur","e","find","value","files","i","file","console","log","name","substring","length","prev","target","autofill","loading","setInterval","trigger","setTimeout","clearInterval","focused","$inputs","parents","not","init","jQuery"],"mappings":"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"}
\ No newline at end of file
diff --git a/scripts/material.js b/scripts/material.js
index 216f0e54..edb2de20 100644
--- a/scripts/material.js
+++ b/scripts/material.js
@@ -21,6 +21,13 @@
$.material = {
"options": {
+ // These options set what will be started by $.material.init()
+ "ripples": true,
+ "checkbox": true,
+ "togglebutton": true,
+ "radio": true,
+ "arrive": true,
+
"withRipples": [
".btn:not(.btn-link)",
".card-image",
@@ -128,53 +135,72 @@
"ripples": function(selector) {
$.ripples({"target": (selector) ? selector : this.options.withRipples});
},
- "init": function() {
- if ($.ripples) {
- this.ripples();
- }
- this.input();
- this.checkbox();
- this.togglebutton();
- this.radio();
+ "autofill": function() {
- if (document.arrive) {
- document.arrive("input, textarea, select", function() {
- $.material.init();
+ // This part of code will detect autofill when the page is loading (username and password inputs for example)
+ var loading = setInterval(function() {
+ $("input[type!=checkbox]").each(function() {
+ if ($(this).val() && $(this).val() !== $(this).attr("value")) {
+ $(this).trigger("change");
+ }
});
- }
+ }, 100);
- // Detect autofill
- (function() {
- // This part of code will detect autofill when the page is loading (username and password inputs for example)
- var loading = setInterval(function() {
- $("input[type!=checkbox]").each(function() {
- if ($(this).val() && $(this).val() !== $(this).attr("value")) {
+ // After 10 seconds we are quite sure all the needed inputs are autofilled then we can stop checking them
+ setTimeout(function() {
+ clearInterval(loading);
+ }, 10000);
+ // Now we just listen on inputs of the focused form (because user can select from the autofill dropdown only when the input has focus)
+ var focused;
+ $(document)
+ .on("focus", "input", function() {
+ var $inputs = $(this).parents("form").find("input").not("[type=file]");
+ focused = setInterval(function() {
+ $inputs.each(function() {
+ if ($(this).val() !== $(this).attr("value")) {
$(this).trigger("change");
}
});
}, 100);
- // After 10 seconds we are quite sure all the needed inputs are autofilled then we can stop checking them
- setTimeout(function() {
- clearInterval(loading);
- }, 10000);
- // Now we just listen on inputs of the focused form (because user can select from the autofill dropdown only when the input has focus)
- var focused;
- $(document)
- .on("focus", "input", function() {
- var $inputs = $(this).parents("form").find("input").not("[type=file]");
- focused = setInterval(function() {
- $inputs.each(function() {
- if ($(this).val() !== $(this).attr("value")) {
- $(this).trigger("change");
- }
- });
- }, 100);
- })
- .on("blur", "input", function() {
- clearInterval(focused);
- });
+ })
+ .on("blur", "input", function() {
+ clearInterval(focused);
+ });
+ },
+ "init": function() {
+ if ($.ripples && this.options.ripples) {
+ this.ripples();
+ }
+ if (this.options.input) {
+ this.input();
+ }
+ if (this.options.checkbox) {
+ this.checkbox();
+ }
+ if (this.options.togglebutton) {
+ this.togglebutton();
+ }
+ if (this.options.radio) {
+ this.radio();
+ }
+ if (this.options.autofill) {
+ this.autofill();
+ }
- })();
+ if (document.arrive && this.options.arrive) {
+ $(document).arrive(this.options.inputElements, function() {
+ $.material.input($(this));
+ });
+ $(document).arrive(this.options.checkboxElements, function() {
+ $.material.checkbox($(this));
+ });
+ $(document).arrive(this.options.radioElements, function() {
+ $.material.radio($(this));
+ });
+ $(document).arrive(this.options.togglebuttonElements, function() {
+ $.material.togglebutton($(this));
+ });
+ }
}
};