asva-vue-filters
Advanced tools
Comparing version 1.1.0 to 1.2.0
@@ -45,5 +45,3 @@ import _ from 'lodash' | ||
getFilterObject () { | ||
var filter = {} | ||
filter[this.name] = this.value | ||
return filter | ||
return getObject(this.name, this.value) | ||
}, | ||
@@ -55,3 +53,5 @@ /** | ||
setFilters (filters) { | ||
if (!(this.name in filters)) { | ||
let value = getProperty(this.name, filters) | ||
if (value === undefined) { | ||
this.value = this.defaultValue | ||
@@ -61,3 +61,3 @@ return | ||
this.value = filters[this.name] | ||
this.value = value | ||
this.changed() | ||
@@ -73,1 +73,41 @@ }, | ||
} | ||
function getObject(reference, value) { | ||
let parts = reference.split('.') | ||
let length = parts.length | ||
let result = {} | ||
let node = result | ||
for (let i = 0; i < length; i++) { | ||
if (i === length - 1) { | ||
node[parts[length - 1]] = value | ||
} else if (node === result) { | ||
node = createProperty(result, parts[i]) | ||
} else { | ||
node = createProperty(node, parts[i]) | ||
} | ||
} | ||
return result | ||
} | ||
function getProperty(reference, object) { | ||
let parts = reference.split('.') | ||
let length = parts.length | ||
let property = object[parts[0]] | ||
for (let i = 1; i < length; i++) { | ||
if (!_.isObject(property)) { | ||
return property | ||
} | ||
property = property[parts[i]] | ||
} | ||
return property | ||
} | ||
function createProperty(object, property) { | ||
let node = {} | ||
object[property] = node | ||
return node | ||
} |
@@ -46,3 +46,3 @@ import _ from 'lodash' | ||
if (this.$options.filters.storageName !== null) { | ||
let savedFilters = storage.getValue(storageName) | ||
let savedFilters = storage.getValue(this.$options.filters.storageName) | ||
this.filters.bus.$emit('set-filters', savedFilters) | ||
@@ -49,0 +49,0 @@ this.registerUpdate() |
{ | ||
"name": "asva-vue-filters", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"description": "Decoupled filter block for vue.js. Mixins and example components", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
39981
371