UNPKG

@decidables/prospectable-elements

Version:

prospectable-elements: Web Components for visualizing Cumulative Prospect Theory

108 lines (95 loc) 4.75 kB
import { css, unsafeCSS, } from 'lit'; import * as d3 from 'd3'; import {DecidablesElement} from '@decidables/decidables-elements'; import {colors} from './colors.yml'; /* ProspectableElement Base Class - Not intended for instantiation! <sdt-element> */ export default class ProspectableElement extends DecidablesElement { static get properties() { return { interactive: { attribute: 'interactive', type: Boolean, reflect: true, }, }; } constructor() { super(); this.interactive = false; } static get colors() { return colors; } static get lights() { return Object.keys(ProspectableElement.colors).reduce((acc, cur) => { acc[cur] = d3.interpolateRgb(ProspectableElement.colors[cur], '#ffffff')(0.5); return acc; }, {}); } static get darks() { return Object.keys(ProspectableElement.colors).reduce((acc, cur) => { acc[cur] = d3.interpolateRgb(ProspectableElement.colors[cur], '#000000')(0.5); return acc; }, {}); } static get styles() { return [ super.styles, css` :host { ---color-x: var(--color-x, ${unsafeCSS(this.colors.x)}); ---color-a: var(--color-a, ${unsafeCSS(this.colors.a)}); ---color-l: var(--color-l, ${unsafeCSS(this.colors.l)}); ---color-v: var(--color-v, ${unsafeCSS(this.colors.v)}); ---color-p: var(--color-p, ${unsafeCSS(this.colors.p)}); ---color-g: var(--color-g, ${unsafeCSS(this.colors.g)}); ---color-w: var(--color-w, ${unsafeCSS(this.colors.w)}); ---color-u: var(--color-u, ${unsafeCSS(this.colors.u)}); ---color-chosen: var(--color-chosen, ${unsafeCSS(this.colors.chosen)}); ---color-better: var(--color-better, ${unsafeCSS(this.colors.better)}); ---color-worse: var(--color-worse, ${unsafeCSS(this.colors.worse)}); ---color-even: var(--color-even, ${unsafeCSS(this.colors.even)}); ---color-correct: var(--color-correct, ${unsafeCSS(this.colors.correct)}); ---color-error: var(--color-error, ${unsafeCSS(this.colors.error)}); ---color-nr: var(--color-nr, ${unsafeCSS(this.colors.nr)}); ---color-x-light: var(--color-x-light, ${unsafeCSS(this.lights.x)}); ---color-a-light: var(--color-a-light, ${unsafeCSS(this.lights.a)}); ---color-l-light: var(--color-l-light, ${unsafeCSS(this.lights.l)}); ---color-v-light: var(--color-v-light, ${unsafeCSS(this.lights.v)}); ---color-p-light: var(--color-p-light, ${unsafeCSS(this.lights.p)}); ---color-g-light: var(--color-g-light, ${unsafeCSS(this.lights.g)}); ---color-w-light: var(--color-w-light, ${unsafeCSS(this.lights.w)}); ---color-u-light: var(--color-u-light, ${unsafeCSS(this.lights.u)}); ---color-chosen-light: var(--color-chosen-light, ${unsafeCSS(this.lights.chosen)}); ---color-better-light: var(--color-better-light, ${unsafeCSS(this.lights.better)}); ---color-worse-light: var(--color-worse-light, ${unsafeCSS(this.lights.worse)}); ---color-even-light: var(--color-even-light, ${unsafeCSS(this.lights.even)}); ---color-correct-light: var(--color-correct-light, ${unsafeCSS(this.lights.correct)}); ---color-error-light: var(--color-error-light, ${unsafeCSS(this.lights.error)}); ---color-nr-light: var(--color-nr-light, ${unsafeCSS(this.lights.nr)}); ---color-x-dark: var(--color-x-dark, ${unsafeCSS(this.darks.x)}); ---color-a-dark: var(--color-a-dark, ${unsafeCSS(this.darks.a)}); ---color-l-dark: var(--color-l-dark, ${unsafeCSS(this.darks.l)}); ---color-v-dark: var(--color-v-dark, ${unsafeCSS(this.darks.v)}); ---color-p-dark: var(--color-p-dark, ${unsafeCSS(this.darks.p)}); ---color-g-dark: var(--color-g-dark, ${unsafeCSS(this.darks.g)}); ---color-w-dark: var(--color-w-dark, ${unsafeCSS(this.darks.w)}); ---color-u-dark: var(--color-u-dark, ${unsafeCSS(this.darks.u)}); ---color-chosen-dark: var(--color-chosen-dark, ${unsafeCSS(this.darks.chosen)}); ---color-better-dark: var(--color-better-dark, ${unsafeCSS(this.darks.better)}); ---color-worse-dark: var(--color-worse-dark, ${unsafeCSS(this.darks.worse)}); ---color-even-dark: var(--color-even-dark, ${unsafeCSS(this.darks.even)}); ---color-correct-dark: var(--color-correct-dark, ${unsafeCSS(this.darks.correct)}); ---color-error-dark: var(--color-error-dark, ${unsafeCSS(this.darks.error)}); ---color-nr-dark: var(--color-nr-dark, ${unsafeCSS(this.darks.nr)}); } `, ]; } }