de-hardcode sch and led enumeration types from .html
publish raw type & pretty-string from .cpp indexed settings
de-fpstr string view references, use the object directly
publish 'faulty' schedule specs indexes, focus & report elems
ref. #2626
should fix faulty enum<->number references in selects
ref. #2628 - schedule types were numeric, while websocket delivered strings
Reference calendar time of other schedules, user-created named events
or the sun{rise,set} (when enabled)
For example
- '15m before sunset'
- '30m after cal#0'
- '1h15m after "foobar"'
Empty time spec is allowed, defaults to '1m'
'before sunrise' is the same as '1m before sunrise'
Internals are reworked to handle a more generalized 'Event' type, based
on the 'time point' and 'event' base classes fron sunrise and sunset
Sunrise and sunset should also track 'last' event as well as 'next
(not currently displayed anywhere, though)
revert set:/del: merge, do not allow to miss key pruning
allow certain fields to have 'unset' state via 'required' attribute
ensure 'unset' fields cannot be added to data payload
generate ui tooltip when 'unset' field is created in a group or erased by user
ref. #2612
* migrate to esbuild from terser, since now js source needs bundling
* (temporary?) hijack inline-source object handling to inline html files
* get rid of legacy removeIf comments in source in favour of explicit
removal either through bundling tree-shaking and / or manual module-*
class element removal w/ jsdom
* get rid of multi-layered custom checkboxes in favour of
`appearance: none` directly styling the `input` elem
also removes scripting part that was supposed to adjust for=... labels
* update to html-minifier-terser, up-to-date html-minifier fork
* update to iro.js 5.5.x, using npm to manage dependencies
* build script can now update resulting html output
(called after bundling stage, before minification)