feat: backend-supplied id cards on profile page

feat: SCIdCard thing
This commit is contained in:
2023-08-21 12:49:57 +02:00
parent 905ebf8c59
commit 1f62b5c5b0
30 changed files with 635 additions and 162 deletions

View File

@@ -21,6 +21,30 @@ import {SCISO8601Date} from '../../general/time.js';
*/
export type SCISO8601DateRange = SCRange<SCISO8601Date>;
/**
* Checks if a value is inside a range
* @param value the value to check
* @param range the range
*/
export function isInRange<T>(value: T, range: SCRange<T>): boolean {
return (
(range.lt == undefined ? (range.lte == undefined ? true : range.lte >= value) : range.lt > value) &&
(range.gt == undefined ? (range.gte == undefined ? true : range.gte <= value) : range.gt < value)
);
}
/**
* Format a range
* @example '0..4'
* @example '1=..=3'
* @example '0..=3'
*/
export function formatRange<T>(range: SCRange<T>): string {
return `${range.gt ?? range.gte}${range.gte == undefined ? '' : '='}..${range.lte == undefined ? '' : '='}${
range.lt ?? range.lte
}`;
}
/**
* Generic range type
*/