Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | 2x 2x 2x | import type {MeasureInfo} from '../types' import type {InputCombobox} from './inputs/combobox' import type {InputSelect} from './inputs/select' export function options_filter(this: InputCombobox | InputSelect) { Iif (this.settings.filters) { Object.keys(this.settings.filters).forEach(f => { this.current_filter[f] = this.site.valueOf(this.settings.filters[f]) as keyof MeasureInfo }) let first = '' Object.keys(this.values).forEach((v, i) => { let pass = false Iif (v in this.site.data.variables && 'meta' in this.site.data.variables[v]) { const info = this.site.data.variables[v].meta as MeasureInfo for (const k in this.current_filter) Iif (k in info) { pass = info[k as keyof MeasureInfo] === this.current_filter[k] Iif (!pass) break } } Iif (pass && !first) first = v this.options[i].classList[pass ? 'remove' : 'add']('hidden') }) this.current_index = this.values[this.value() as string] Iif (first && (-1 === this.current_index || this.options[this.current_index].classList.contains('hidden'))) { this.set(first) } } } export function set_current_options(this: InputCombobox | InputSelect) { const to = this.option_sets[this.dataset] this.values = to.values this.display = to.display this.options = to.options as typeof this.options this.groups = to.groups this.source = '' this.id in this.site.url_options ? this.set(this.site.url_options[this.id] as string) : this.state in this.values ? this.set(this.state) : this.reset() } export function loader(this: InputCombobox | InputSelect) { Iif (!this.e.classList.contains('locked')) { this.deferred = false this.e.removeEventListener('click', this.loader) this.site.request_queue(false, this.id) } } |