From 7949fcdc683d07689bad5da5d20bfa3eeb5a6a46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Tue, 5 Sep 2023 01:25:00 +0200 Subject: Move frontend code to subdirectories, to simplify command line flags. --- static/formatters.ts | 75 ---------------------------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 static/formatters.ts (limited to 'static/formatters.ts') diff --git a/static/formatters.ts b/static/formatters.ts deleted file mode 100644 index e0018278..00000000 --- a/static/formatters.ts +++ /dev/null @@ -1,75 +0,0 @@ -export { - format -} - -import { makeElement } from './lib' -import { VEvent } from './vevent' - -type formatter = (e: HTMLElement, d: VEvent, s: any) => Promise - -declare global { - interface Window { - formatters: Map; - } -} - -let formatters: Map; -formatters = window.formatters = new Map(); - -async function format(targetElement: HTMLElement, data: VEvent, key: string): Promise { - let d = data.getProperty(key); - if (!d) return - let formatter = formatters.get(key.toLowerCase()); - if (formatter) { - try { - await formatter(targetElement, data, d); - } catch (error) { - console.warn('Formatter failed') - console.warn(error); - formatters.get('default')!(targetElement, data, d); - } - } else { - formatters.get('default')!(targetElement, data, d); - } -} - -formatters.set('categories', async (el, _, d) => { - for (let item of d) { - let q = encodeURIComponent( - `(member "${item}" (or (prop event (quote CATEGORIES)) (quote ())))`) - el.appendChild(makeElement('a', { - textContent: item, - href: `/search/?q=${q}`, - })) - } -}) - -async function format_time_tag(el: HTMLElement, ev: VEvent, d: any): Promise { - if (el instanceof HTMLTimeElement) { - if (d instanceof Date) { - let fmt = ''; - if (!d.utc) { - fmt += '~L'; - } - fmt += '~Y-~m-~d' - if (!d.dateonly) { - fmt += 'T~H:~M:~S' - } - el.dateTime = d.format(fmt); - } - } - - formatters.get('default')!(el, ev, d); -} - -formatters.set('dtstart', format_time_tag) -formatters.set('dtend', format_time_tag) - -formatters.set('default', async (el, _, d) => { - let fmt; - if ((fmt = el.dataset.fmt)) { - el.textContent = d.format(fmt); - } else { - el.textContent = d; - } -}) -- cgit v1.2.3