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 | 2x | import type {SiteSpec} from '../../types'
import type Community from '../index'
import type {OutputDataTable} from './datatables'
import type {OutputInfo} from './info'
import type {OutputLegend} from './legend'
import type {OutputMap} from './map'
import type {OutputPlotly} from './plotly'
import type {OutputTable} from './table'
import type {OutputText} from './text'
type OutputTypes = 'info' | 'map' | 'plotly' | 'text' | 'datatable' | 'table' | 'legend'
export type SiteOutputs =
| OutputInfo
| OutputMap
| OutputPlotly
| OutputText
| OutputDataTable
| OutputTable
| OutputLegend
export type RegisteredOutputs = {[index: string]: SiteOutputs}
export abstract class BaseOutput {
type: OutputTypes
input = false
site: Community
view: string
e: HTMLElement
tab?: HTMLElement
id: string
note: string
color?: string
x?: string
y?: string
spec: {[index: string]: any} = {}
deferred = false
constructor(e: HTMLElement, site: Community) {
this.e = e
this.tab = 'tabpanel' === e.parentElement.getAttribute('role') ? e.parentElement : void 0
this.site = site
this.view = e.dataset.view || site.defaults.dataview
this.id = e.id || 'ui' + site.page.elementCount++
this.note = e.getAttribute('aria-description') || ''
this.type = e.dataset.autotype as OutputTypes
Iif (this.type in site.spec) {
const spec = site.spec[this.type as keyof SiteSpec] as SiteOutputs
Iif (this.id in spec) this.spec = (spec as any)[this.id]
}
}
}
|