UNPKG

@taiga-ui/kit

Version:
30 lines 5.15 kB
/** * Adjusts the entered time by omitting only suitable values ​​for hours and minutes * @returns time as a string */ export function tuiCreateAutoCorrectedTimePipe(timeMode = 'HH:MM') { const timeFormatArray = ['HH', 'MM', 'SS', 'MS']; const maxValue = { HH: 23, MM: 59, SS: 59, MS: 999 }; return (conformedValue) => { const indexesOfPipedChars = []; const conformedValueArr = conformedValue.split(''); timeFormatArray.forEach(format => { const position = timeMode.indexOf(format); const maxFirstDigit = parseInt(maxValue[format].toString().substr(0, 1), 10); if (parseInt(conformedValueArr[position], 10) > maxFirstDigit) { conformedValueArr[position + 1] = conformedValueArr[position]; conformedValueArr[position] = '0'; indexesOfPipedChars.push(position); } }); const isInvalid = timeFormatArray.some(format => parseInt(conformedValue.substr(timeMode.indexOf(format), 2), 10) > maxValue[format]); return isInvalid ? false : { value: conformedValueArr.join(''), indexesOfPipedChars, }; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWF1dG8tY29ycmVjdGVkLXRpbWUtcGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvdXRpbHMvbWFzay8iLCJzb3VyY2VzIjpbImNyZWF0ZS1hdXRvLWNvcnJlY3RlZC10aW1lLXBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDhCQUE4QixDQUMxQyxXQUF3QixPQUFPO0lBRS9CLE1BQU0sZUFBZSxHQUE2QixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNFLE1BQU0sUUFBUSxHQUFHLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBQyxDQUFDO0lBRW5ELE9BQU8sQ0FBQyxjQUFzQixFQUFFLEVBQUU7UUFDOUIsTUFBTSxtQkFBbUIsR0FBYSxFQUFFLENBQUM7UUFDekMsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRW5ELGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDN0IsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFN0UsSUFBSSxRQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsYUFBYSxFQUFFO2dCQUMzRCxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQztnQkFDbEMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3RDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUNsQyxNQUFNLENBQUMsRUFBRSxDQUNMLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2hFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FDdkIsQ0FBQztRQUVGLE9BQU8sU0FBUztZQUNaLENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFDO2dCQUNJLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxtQkFBbUI7YUFDdEIsQ0FBQztJQUNaLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R1aVRpbWVNb2RlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpVGV4dE1hc2tQaXBlSGFuZGxlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG4vKipcbiAqIEFkanVzdHMgdGhlIGVudGVyZWQgdGltZSBieSBvbWl0dGluZyBvbmx5IHN1aXRhYmxlIHZhbHVlcyDigIvigItmb3IgaG91cnMgYW5kIG1pbnV0ZXNcbiAqIEByZXR1cm5zIHRpbWUgYXMgYSBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWRUaW1lUGlwZShcbiAgICB0aW1lTW9kZTogVHVpVGltZU1vZGUgPSAnSEg6TU0nLFxuKTogVHVpVGV4dE1hc2tQaXBlSGFuZGxlciB7XG4gICAgY29uc3QgdGltZUZvcm1hdEFycmF5OiBbJ0hIJywgJ01NJywgJ1NTJywgJ01TJ10gPSBbJ0hIJywgJ01NJywgJ1NTJywgJ01TJ107XG4gICAgY29uc3QgbWF4VmFsdWUgPSB7SEg6IDIzLCBNTTogNTksIFNTOiA1OSwgTVM6IDk5OX07XG5cbiAgICByZXR1cm4gKGNvbmZvcm1lZFZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXhlc09mUGlwZWRDaGFyczogbnVtYmVyW10gPSBbXTtcbiAgICAgICAgY29uc3QgY29uZm9ybWVkVmFsdWVBcnIgPSBjb25mb3JtZWRWYWx1ZS5zcGxpdCgnJyk7XG5cbiAgICAgICAgdGltZUZvcm1hdEFycmF5LmZvckVhY2goZm9ybWF0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGltZU1vZGUuaW5kZXhPZihmb3JtYXQpO1xuICAgICAgICAgICAgY29uc3QgbWF4Rmlyc3REaWdpdCA9IHBhcnNlSW50KG1heFZhbHVlW2Zvcm1hdF0udG9TdHJpbmcoKS5zdWJzdHIoMCwgMSksIDEwKTtcblxuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGNvbmZvcm1lZFZhbHVlQXJyW3Bvc2l0aW9uXSwgMTApID4gbWF4Rmlyc3REaWdpdCkge1xuICAgICAgICAgICAgICAgIGNvbmZvcm1lZFZhbHVlQXJyW3Bvc2l0aW9uICsgMV0gPSBjb25mb3JtZWRWYWx1ZUFycltwb3NpdGlvbl07XG4gICAgICAgICAgICAgICAgY29uZm9ybWVkVmFsdWVBcnJbcG9zaXRpb25dID0gJzAnO1xuICAgICAgICAgICAgICAgIGluZGV4ZXNPZlBpcGVkQ2hhcnMucHVzaChwb3NpdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGlzSW52YWxpZCA9IHRpbWVGb3JtYXRBcnJheS5zb21lKFxuICAgICAgICAgICAgZm9ybWF0ID0+XG4gICAgICAgICAgICAgICAgcGFyc2VJbnQoY29uZm9ybWVkVmFsdWUuc3Vic3RyKHRpbWVNb2RlLmluZGV4T2YoZm9ybWF0KSwgMiksIDEwKSA+XG4gICAgICAgICAgICAgICAgbWF4VmFsdWVbZm9ybWF0XSxcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gaXNJbnZhbGlkXG4gICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBjb25mb3JtZWRWYWx1ZUFyci5qb2luKCcnKSxcbiAgICAgICAgICAgICAgICAgIGluZGV4ZXNPZlBpcGVkQ2hhcnMsXG4gICAgICAgICAgICAgIH07XG4gICAgfTtcbn1cbiJdfQ==