diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2021-11-10 01:40:22 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2021-11-10 01:40:22 +0100 |
commit | 410404cfdd54c083b6609fd52334e02d320145d7 (patch) | |
tree | ac934bde696f099590496d23bdd636f691f4c637 /static/components/vevent-dl.ts | |
parent | Basic event modification works again. (diff) | |
download | calp-410404cfdd54c083b6609fd52334e02d320145d7.tar.gz calp-410404cfdd54c083b6609fd52334e02d320145d7.tar.xz |
Re-modularize javascript.
This moves almost everything out of globals.ts, into sepparate files.
Things are still slightly to tightly coupled. But that is worked on.
Diffstat (limited to '')
-rw-r--r-- | static/components/vevent-dl.ts | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/static/components/vevent-dl.ts b/static/components/vevent-dl.ts new file mode 100644 index 00000000..a9e60d81 --- /dev/null +++ b/static/components/vevent-dl.ts @@ -0,0 +1,24 @@ +export { VEventDL } + +import { ComponentVEvent } from './vevent' +import { VEvent } from '../vevent' +import { makeElement } from '../lib' + +/* <vevent-dl /> */ +class VEventDL extends ComponentVEvent { + redraw(obj: VEvent) { + let dl = buildDescriptionList( + Array.from(obj.boundProperties) + .map(key => [key, obj.getProperty(key)])) + this.replaceChildren(dl); + } +} + +function buildDescriptionList(data: [string, any][]): HTMLElement { + let dl = document.createElement('dl'); + for (let [key, val] of data) { + dl.appendChild(makeElement('dt', { innerText: key })) + dl.appendChild(makeElement('dd', { innerText: val })) + } + return dl; +} |