* add `defaultvalue` to `Field` types
* add `defaultValue` to constants; turn into functions for time values
* update constant imports/calls in view components
* use `defaultValue`s in `ParamInput`
* change `Clear` to `Reset`to better reflect actions
* make `defaultValue` optional rather than `undefined`
* update forgotten constants
* add `defaultValue` to boolean input
* change `101010` to `000000`
* add `prefix` property to types
* implement `prefix` for `ParamInput`s
* change `paramField` to `prop`
* add `onEditDrawerClose` to `resetParams`
* `ViewParamsEditor` omits default values
* undo close on reset
* move `useSettings` into `ViewWrapper`
* change `settings` to include `undefined`
* refactor: unlock changing port in UI
* Change server port (#464)
* Ability to save custom port
* Launch server on custom port & pass that port to electron
* Add serverPort validation
* Prevent changing port in docker
---------
Co-authored-by: Snehanshu Phukon <snehanshu@mamboemm.com>
---------
Co-authored-by: স্নেহাংশু ফুকন <hello@snehanshu.com>
Co-authored-by: Snehanshu Phukon <snehanshu@mamboemm.com>
* fix: bug with applying delays
* fix: show delay data only in production screens
* chore: cover delay with feature test
* refactor: simplify type assertion
* use zustand store in `ContextMenuContext`
* add `withDivider` prop to context menu `Option`
* add `isDisabled` prop to `Option`
* create `eventIdSwapping` store
* create swapping context menu options
* fix `key` in ContextMenu
* address `tanstack-eslint` errors
* create initial `requestEventSwap` event
* create initial `swapEvents` action
* use `swapEvents` in `EventBlock`
* move from `emitError` to `logAxiosError`
* remove extra curly brace from Copy ID
* add `clearEventId` func
* finalize context menu swapping logic
* write optimistic swapping logic
* remove unused import and type out handler in `rundownController`
* create `rundownSwapValidator`
* move index increase to `EventBlock`
* move swapping logic from `id` to `index`
* create `swapEvents` endpoint
* move `useEventIdSwapping` hook into its own file
* revert to using event `id`
* logic now uses indexes to swap events
* add `todo` to `swapEvents`
* revert index increment
* create `swapOntimeEvents` and export in `index.ts`
* use `swapOntimeEvents` in frontend & server
* update import path
* remove extra `setCached`
* refactor: extract utilities and types
* refactor: extract and simplify progress bar logic
* refactor: duration validation handles midnight
* fix: prevent stale event loader
* refactor: consider next event in timer invalidation
* refactor: reload changes on changed roll target
* refactor: timer load accounts for midnight
* fix: issues with midnight on roll
* refactor: prevent stale secondary event