-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/pages/components/Input.vue b/docs/src/pages/components/Input.vue
index 5d6248e..679ad39 100644
--- a/docs/src/pages/components/Input.vue
+++ b/docs/src/pages/components/Input.vue
@@ -77,6 +77,12 @@
Sets the type. Default text
+
+ debounce
+ Number
+ Debounce the change and input events emission. Default 300ms
+
+
disabled
Boolean
@@ -121,6 +127,12 @@
A required model object to bind the value.
+
+ debounce
+ Number
+ Debounce the change and input events emission. Default 300ms
+
+
disabled
Boolean
diff --git a/package.json b/package.json
index 45a1587..c49a3e2 100644
--- a/package.json
+++ b/package.json
@@ -63,13 +63,13 @@
"css-mqpacker": "^5.0.1",
"date-fns": "^1.28.0",
"element.scrollintoviewifneeded-polyfill": "^1.0.1",
- "eslint": "^3.16.1",
"eslint-friendly-formatter": "^2.0.7",
"eslint-loader": "^1.6.3",
"eslint-plugin-html": "^2.0.1",
+ "eslint": "^3.16.1",
"eventsource-polyfill": "^0.9.6",
"express": "^4.15.0",
- "extract-text-webpack-plugin": "^2.0.0",
+ "extract-text-webpack-plugin": "^2.1.0",
"file-loader": "^0.10.1",
"friendly-errors-webpack-plugin": "^1.6.1",
"highlight.js": "^9.9.0",
diff --git a/src/components/mdDatePicker/mdDatePicker.scss b/src/components/mdDatePicker/mdDatePicker.scss
index ab23e91..605c02e 100644
--- a/src/components/mdDatePicker/mdDatePicker.scss
+++ b/src/components/mdDatePicker/mdDatePicker.scss
@@ -8,6 +8,12 @@ $month-small-width: 280px;
display: flex;
flex: 1;
+ &.md-disabled {
+ .md-icon {
+ cursor: default;
+ }
+ }
+
.md-icon {
cursor: pointer;
}
diff --git a/src/components/mdDatePicker/mdDatePicker.vue b/src/components/mdDatePicker/mdDatePicker.vue
index 372dd43..5736a8f 100644
--- a/src/components/mdDatePicker/mdDatePicker.vue
+++ b/src/components/mdDatePicker/mdDatePicker.vue
@@ -1,5 +1,5 @@
-
+
event
{
diff --git a/src/components/mdInputContainer/common.js b/src/components/mdInputContainer/common.js
index 605000e..944cfa1 100644
--- a/src/components/mdInputContainer/common.js
+++ b/src/components/mdInputContainer/common.js
@@ -1,11 +1,21 @@
export default {
props: {
value: [String, Number, Date],
+ debounce: {
+ type: Number,
+ default: 3E2
+ },
disabled: Boolean,
required: Boolean,
maxlength: [Number, String],
+ name: String,
placeholder: String
},
+ data() {
+ return {
+ timeout: 0
+ };
+ },
watch: {
value() {
this.updateValues();
@@ -28,6 +38,16 @@ export default {
this.parentContainer.enableCounter = this.maxlength > 0;
this.parentContainer.counterLength = this.maxlength;
},
+ lazyEventEmitter() {
+ if (this.timeout) {
+ window.clearTimeout(this.timeout);
+ }
+
+ this.timeout = window.setTimeout(() => {
+ this.$emit('change', this.$el.value);
+ this.$emit('input', this.$el.value);
+ }, this.debounce);
+ },
setParentValue(value) {
this.parentContainer.setValue(value || this.$el.value);
},
@@ -62,8 +82,7 @@ export default {
},
onInput($event) {
this.updateValues();
- this.$emit('change', this.$el.value, $event);
- this.$emit($event.type, this.$el.value, $event);
+ this.lazyEventEmitter();
}
}
};
diff --git a/src/components/mdSpinner/mdSpinner.vue b/src/components/mdSpinner/mdSpinner.vue
index 253b9fe..dec8965 100644
--- a/src/components/mdSpinner/mdSpinner.vue
+++ b/src/components/mdSpinner/mdSpinner.vue
@@ -2,7 +2,7 @@