1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- define(["filters/nodefilter"], function (nodefilter) {
- return function (name, key, value, f) {
- var negate = false
- var refresh
- function run(d) {
- var o = dictGet(d, key.slice(0))
- if (f)
- o = f(o)
- return o === value ? !negate : negate
- }
- function setRefresh(f) {
- refresh = f
- }
- function draw(el) {
- if (negate)
- el.parentNode.classList.add("not")
- else
- el.parentNode.classList.remove("not")
- }
- function render(el) {
- var label = document.createElement("label")
- label.textContent = name + " "
- var strong = document.createElement("strong")
- strong.textContent = value
- draw(el)
- label.appendChild(strong)
- label.onclick = function () {
- negate = !negate
- draw(el)
- if (refresh)
- refresh()
- }
- el.appendChild(label)
- }
- return { run: nodefilter(run),
- setRefresh: setRefresh,
- render: render
- }
- }
- })
|