UNPKG

@ministryofjustice/hmpps-digital-prison-reporting-frontend

Version:

The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.

67 lines (66 loc) 1.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const setDateRangeValuesWithinMinMax = (filter, startValue, endValue) => { const { min, max } = filter; let start; if (min) { start = compareMin(min, startValue); } else { start = startValue; } let end; if (max) { end = compareMax(max, endValue); } else { end = endValue; } return { start, end, }; }; const compareMin = (min, dateValue) => { const minDate = new Date(min); const date = new Date(dateValue); return date < minDate ? min : dateValue; }; const compareMax = (max, dateValue) => { const maxDate = new Date(max); const date = new Date(dateValue); return date > maxDate ? max : dateValue; }; const getStartAndEndValueFromDefinition = (filter) => { const { min, max, defaultValue } = filter; let startValue; let endValue; if (min) startValue = min; if (max) endValue = max; const dateRegEx = /^\d{1,4}-\d{1,2}-\d{2,2} - \d{1,4}-\d{1,2}-\d{1,2}$/; let value; if (defaultValue && defaultValue.match(dateRegEx)) { ; [startValue, endValue] = defaultValue.split(' - '); value = setDateRangeValuesWithinMinMax(filter, startValue, endValue); } else if (defaultValue) { value = defaultValue; } else { value = setDateRangeValuesWithinMinMax(filter, startValue, endValue); } return value; }; function isDateRange(value) { return value.start !== undefined || value.end !== undefined; } exports.default = { compareMax, compareMin, isDateRange, setDateRangeValuesWithinMinMax, getStartAndEndValueFromDefinition, };