From 60d117e35d3cbec3543f7c159bb786dda79b166c Mon Sep 17 00:00:00 2001 From: Miljan Aleksic Date: Sat, 1 Jun 2019 20:17:31 +0200 Subject: [PATCH] refactor plus improvements - Removes field `change` event and `values` prop in favor of a more direct child/parent communication. - Adds `slot` support and `tag` prop allowing for more simple layout customizations. --- src/components/index.js | 7 ++ src/field.js | 9 +- src/fields.vue | 35 +++--- stories/components/FieldsCustom.vue | 10 -- stories/components/FieldsStory.vue | 163 +++++++++++++++------------- 5 files changed, 112 insertions(+), 112 deletions(-) create mode 100644 src/components/index.js delete mode 100644 stories/components/FieldsCustom.vue diff --git a/src/components/index.js b/src/components/index.js new file mode 100644 index 0000000..2efc7c9 --- /dev/null +++ b/src/components/index.js @@ -0,0 +1,7 @@ +export {default as FieldText} from './Text.vue'; +export {default as FieldTextarea} from './Textarea.vue'; +export {default as FieldRadio} from './Radio.vue'; +export {default as FieldCheckbox} from './Checkbox.vue'; +export {default as FieldSelect} from './Select.vue'; +export {default as FieldRange} from './Range.vue'; +export {default as FieldNumber} from './Number.vue'; diff --git a/src/field.js b/src/field.js index dcbd127..d3fda1a 100644 --- a/src/field.js +++ b/src/field.js @@ -9,11 +9,6 @@ export default { field: { type: Object, required: true - }, - - values: { - type: Object, - required: true } }, @@ -34,7 +29,7 @@ export default { get() { - const value = get(this.values, this.name); + const value = get(this.Fields.values, this.name); if (isUndefined(value) && !isUndefined(this.default)) { return this.value = this.default; @@ -44,7 +39,7 @@ export default { }, set(value) { - this.$emit('change', value, this); + this.Fields.change(value, this.field); } }, diff --git a/src/fields.vue b/src/fields.vue index 31f95b6..3899f3d 100644 --- a/src/fields.vue +++ b/src/fields.vue @@ -1,35 +1,25 @@