Browse Source

Merge branch 'filter-improvements'

- copy all properties from value options
- order options by natsort
master
parent
commit
67bcdbb78d
  1. 28
      src/CategoryOverpassFilter.js

28
src/CategoryOverpassFilter.js

@ -1,5 +1,6 @@
const OverpassLayer = require('overpass-layer')
const tabs = require('modulekit-tabs')
const natsort = require('natsort')
const state = require('./state')
const Filter = require('overpass-frontend').Filter
@ -69,13 +70,13 @@ class CategoryOverpassFilter {
let k = option.value
f.values[k] = {}
Array.from(option.attributes).forEach(attr => {
f.values[k][attr.name] = attr.value
})
if (option.textContent) {
f.values[k].name = option.textContent
}
if (option.hasAttribute('query')) {
f.values[k].query = option.getAttribute('query')
}
}
}
@ -100,6 +101,25 @@ class CategoryOverpassFilter {
}
}
}
if (!('sort' in f) || (f.sort === 'natsort')) {
let v = {}
let sorter = natsort()
let keys = Object.keys(f.values)
keys
.sort((a, b) => {
let weight = (f.values[a].weight || 0) - (f.values[b].weight || 0)
if (weight !== 0) {
return weight
}
return sorter(f.values[a].name, f.values[b].name)
})
.forEach(k => { v[k] = f.values[k] })
f.values = v
}
}
}

Loading…
Cancel
Save