@taiga-ui/kit
Version:
Taiga UI Angular main components kit
33 lines • 5.28 kB
JavaScript
/**
* Adjusts the entered time by omitting only suitable values for hours and minutes
* @returns time as a string
*/
export function tuiCreateAutoCorrectedTimePipe(timeMode) {
if (timeMode === void 0) { timeMode = 'HH:MM'; }
var timeFormatArray = ['HH', 'MM', 'SS', 'MS'];
var maxValue = { HH: 23, MM: 59, SS: 59, MS: 999 };
return function (conformedValue) {
var indexesOfPipedChars = [];
var conformedValueArr = conformedValue.split('');
timeFormatArray.forEach(function (format) {
var position = timeMode.indexOf(format);
var 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);
}
});
var isInvalid = timeFormatArray.some(function (format) {
return parseInt(conformedValue.substr(timeMode.indexOf(format), 2), 10) >
maxValue[format];
});
return isInvalid
? false
: {
value: conformedValueArr.join(''),
indexesOfPipedChars: indexesOfPipedChars,
};
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWF1dG8tY29ycmVjdGVkLXRpbWUtcGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvdXRpbHMvbWFzay8iLCJzb3VyY2VzIjpbImNyZWF0ZS1hdXRvLWNvcnJlY3RlZC10aW1lLXBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDhCQUE4QixDQUMxQyxRQUErQjtJQUEvQix5QkFBQSxFQUFBLGtCQUErQjtJQUUvQixJQUFNLGVBQWUsR0FBNkIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzRSxJQUFNLFFBQVEsR0FBRyxFQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUMsQ0FBQztJQUVuRCxPQUFPLFVBQUMsY0FBc0I7UUFDMUIsSUFBTSxtQkFBbUIsR0FBYSxFQUFFLENBQUM7UUFDekMsSUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRW5ELGVBQWUsQ0FBQyxPQUFPLENBQUMsVUFBQSxNQUFNO1lBQzFCLElBQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUMsSUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRTdFLElBQUksUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLGFBQWEsRUFBRTtnQkFDM0QsaUJBQWlCLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM5RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUM7Z0JBQ2xDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN0QztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FDbEMsVUFBQSxNQUFNO1lBQ0YsT0FBQSxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDaEUsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQURoQixDQUNnQixDQUN2QixDQUFDO1FBRUYsT0FBTyxTQUFTO1lBQ1osQ0FBQyxDQUFDLEtBQUs7WUFDUCxDQUFDLENBQUM7Z0JBQ0ksS0FBSyxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLG1CQUFtQixxQkFBQTthQUN0QixDQUFDO0lBQ1osQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHVpVGltZU1vZGV9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlUZXh0TWFza1BpcGVIYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbi8qKlxuICogQWRqdXN0cyB0aGUgZW50ZXJlZCB0aW1lIGJ5IG9taXR0aW5nIG9ubHkgc3VpdGFibGUgdmFsdWVzIOKAi+KAi2ZvciBob3VycyBhbmQgbWludXRlc1xuICogQHJldHVybnMgdGltZSBhcyBhIHN0cmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZFRpbWVQaXBlKFxuICAgIHRpbWVNb2RlOiBUdWlUaW1lTW9kZSA9ICdISDpNTScsXG4pOiBUdWlUZXh0TWFza1BpcGVIYW5kbGVyIHtcbiAgICBjb25zdCB0aW1lRm9ybWF0QXJyYXk6IFsnSEgnLCAnTU0nLCAnU1MnLCAnTVMnXSA9IFsnSEgnLCAnTU0nLCAnU1MnLCAnTVMnXTtcbiAgICBjb25zdCBtYXhWYWx1ZSA9IHtISDogMjMsIE1NOiA1OSwgU1M6IDU5LCBNUzogOTk5fTtcblxuICAgIHJldHVybiAoY29uZm9ybWVkVmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBpbmRleGVzT2ZQaXBlZENoYXJzOiBudW1iZXJbXSA9IFtdO1xuICAgICAgICBjb25zdCBjb25mb3JtZWRWYWx1ZUFyciA9IGNvbmZvcm1lZFZhbHVlLnNwbGl0KCcnKTtcblxuICAgICAgICB0aW1lRm9ybWF0QXJyYXkuZm9yRWFjaChmb3JtYXQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aW1lTW9kZS5pbmRleE9mKGZvcm1hdCk7XG4gICAgICAgICAgICBjb25zdCBtYXhGaXJzdERpZ2l0ID0gcGFyc2VJbnQobWF4VmFsdWVbZm9ybWF0XS50b1N0cmluZygpLnN1YnN0cigwLCAxKSwgMTApO1xuXG4gICAgICAgICAgICBpZiAocGFyc2VJbnQoY29uZm9ybWVkVmFsdWVBcnJbcG9zaXRpb25dLCAxMCkgPiBtYXhGaXJzdERpZ2l0KSB7XG4gICAgICAgICAgICAgICAgY29uZm9ybWVkVmFsdWVBcnJbcG9zaXRpb24gKyAxXSA9IGNvbmZvcm1lZFZhbHVlQXJyW3Bvc2l0aW9uXTtcbiAgICAgICAgICAgICAgICBjb25mb3JtZWRWYWx1ZUFycltwb3NpdGlvbl0gPSAnMCc7XG4gICAgICAgICAgICAgICAgaW5kZXhlc09mUGlwZWRDaGFycy5wdXNoKHBvc2l0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgaXNJbnZhbGlkID0gdGltZUZvcm1hdEFycmF5LnNvbWUoXG4gICAgICAgICAgICBmb3JtYXQgPT5cbiAgICAgICAgICAgICAgICBwYXJzZUludChjb25mb3JtZWRWYWx1ZS5zdWJzdHIodGltZU1vZGUuaW5kZXhPZihmb3JtYXQpLCAyKSwgMTApID5cbiAgICAgICAgICAgICAgICBtYXhWYWx1ZVtmb3JtYXRdLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBpc0ludmFsaWRcbiAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvbmZvcm1lZFZhbHVlQXJyLmpvaW4oJycpLFxuICAgICAgICAgICAgICAgICAgaW5kZXhlc09mUGlwZWRDaGFycyxcbiAgICAgICAgICAgICAgfTtcbiAgICB9O1xufVxuIl19