UNPKG

im-angular-validators

Version:

This library will help you with lots of already written mostly used validators for Angular 2+ applications.

33 lines 6.62 kB
import { isNumber } from '../helpers/is-number.helper'; import { IMComparatorOperatorEnum } from '../enums/comparator-operator.enum'; export const IMNumberComparatorValidator = (config) => { return (control) => { if (config.comparingControlKey) { const comparingValue = control?.parent?.get(config.comparingControlKey)?.value; return getNumberComparatorValidationError(control.value, comparingValue, config.comparingOperator); } else { return getNumberComparatorValidationError(control.value, config.comparingValue, config.comparingOperator); } }; }; const getNumberComparatorValidationError = (control_value, comparing_control_value, operator) => { if (isNumber(control_value) && isNumber(comparing_control_value) && operatorCheckResolver[operator](control_value, comparing_control_value)) { return { numberComparatorError: { isInvalid: true, operator, comparingValue: comparing_control_value } }; } }; const operatorCheckResolver = { [IMComparatorOperatorEnum.equal]: (value, comparing_value) => value !== comparing_value, [IMComparatorOperatorEnum.greater]: (value, comparing_value) => value <= comparing_value, [IMComparatorOperatorEnum.greaterEqual]: (value, comparing_value) => value < comparing_value, [IMComparatorOperatorEnum.less]: (value, comparing_value) => value >= comparing_value, [IMComparatorOperatorEnum.lessEqual]: (value, comparing_value) => value > comparing_value }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWNvbXBhcmF0b3IudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci12YWxpZGF0b3JzL3NyYy9saWIvdmFsaWRhdG9ycy9udW1iZXItY29tcGFyYXRvci52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBSTNFLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsTUFBa0QsRUFBZSxFQUFFO0lBQzdHLE9BQU8sQ0FBQyxPQUF3QixFQUFvQixFQUFFO1FBQ3BELElBQUksTUFBTSxDQUFDLG1CQUFtQixFQUFFO1lBQzlCLE1BQU0sY0FBYyxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEtBQUssQ0FBQztZQUMvRSxPQUFPLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3BHO2FBQU07WUFDTCxPQUFPLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUMzRztJQUNILENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sa0NBQWtDLEdBQ3RDLENBQUMsYUFBcUIsRUFBRSx1QkFBK0IsRUFBRSxRQUFrQyxFQUFvQixFQUFFO0lBQy9HLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQztRQUM5RCxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLEVBQUUsdUJBQXVCLENBQUMsRUFBRTtRQUN2RSxPQUFPO1lBQ0wscUJBQXFCLEVBQUU7Z0JBQ3JCLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFFBQVE7Z0JBQ1IsY0FBYyxFQUFFLHVCQUF1QjthQUNKO1NBQ3RDLENBQUM7S0FDTDtBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0scUJBQXFCLEdBQUc7SUFDNUIsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQWEsRUFBRSxlQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssZUFBZTtJQUN2RyxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBYSxFQUFFLGVBQXVCLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxlQUFlO0lBQ3hHLENBQUMsd0JBQXdCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFhLEVBQUUsZUFBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLGVBQWU7SUFDNUcsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQWEsRUFBRSxlQUF1QixFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksZUFBZTtJQUNyRyxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsS0FBYSxFQUFFLGVBQXVCLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxlQUFlO0NBQzFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtpc051bWJlcn0gZnJvbSAnLi4vaGVscGVycy9pcy1udW1iZXIuaGVscGVyJztcclxuaW1wb3J0IHtJTUNvbXBhcmF0b3JPcGVyYXRvckVudW19IGZyb20gJy4uL2VudW1zL2NvbXBhcmF0b3Itb3BlcmF0b3IuZW51bSc7XHJcbmltcG9ydCB7SU1OdW1iZXJDb21wYXJhdG9yVmFsaWRhdG9yQ29uZmlnSW50ZXJmYWNlfSBmcm9tICcuLi9pbnRlcmZhY2VzL251bWJlci1jb21wYXJhdG9yLWNvbmZpZ3VyYXRpb24uaW50ZXJmYWNlJztcclxuaW1wb3J0IHtJTU51bWJlckNvbXBhcmF0b3JFcnJvckludGVyZmFjZX0gZnJvbSAnLi4vaW50ZXJmYWNlcy9udW1iZXItY29tcGFyYXRvci1lcnJvci5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IElNTnVtYmVyQ29tcGFyYXRvclZhbGlkYXRvciA9IChjb25maWc6IElNTnVtYmVyQ29tcGFyYXRvclZhbGlkYXRvckNvbmZpZ0ludGVyZmFjZSk6IFZhbGlkYXRvckZuID0+IHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgPT4ge1xyXG4gICAgaWYgKGNvbmZpZy5jb21wYXJpbmdDb250cm9sS2V5KSB7XHJcbiAgICAgIGNvbnN0IGNvbXBhcmluZ1ZhbHVlID0gY29udHJvbD8ucGFyZW50Py5nZXQoY29uZmlnLmNvbXBhcmluZ0NvbnRyb2xLZXkpPy52YWx1ZTtcclxuICAgICAgcmV0dXJuIGdldE51bWJlckNvbXBhcmF0b3JWYWxpZGF0aW9uRXJyb3IoY29udHJvbC52YWx1ZSwgY29tcGFyaW5nVmFsdWUsIGNvbmZpZy5jb21wYXJpbmdPcGVyYXRvcik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZ2V0TnVtYmVyQ29tcGFyYXRvclZhbGlkYXRpb25FcnJvcihjb250cm9sLnZhbHVlLCBjb25maWcuY29tcGFyaW5nVmFsdWUsIGNvbmZpZy5jb21wYXJpbmdPcGVyYXRvcik7XHJcbiAgICB9XHJcbiAgfTtcclxufTtcclxuXHJcbmNvbnN0IGdldE51bWJlckNvbXBhcmF0b3JWYWxpZGF0aW9uRXJyb3IgPVxyXG4gIChjb250cm9sX3ZhbHVlOiBudW1iZXIsIGNvbXBhcmluZ19jb250cm9sX3ZhbHVlOiBudW1iZXIsIG9wZXJhdG9yOiBJTUNvbXBhcmF0b3JPcGVyYXRvckVudW0pOiBWYWxpZGF0aW9uRXJyb3JzID0+IHtcclxuICAgIGlmIChpc051bWJlcihjb250cm9sX3ZhbHVlKSAmJiBpc051bWJlcihjb21wYXJpbmdfY29udHJvbF92YWx1ZSkgJiZcclxuICAgICAgb3BlcmF0b3JDaGVja1Jlc29sdmVyW29wZXJhdG9yXShjb250cm9sX3ZhbHVlLCBjb21wYXJpbmdfY29udHJvbF92YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbnVtYmVyQ29tcGFyYXRvckVycm9yOiB7XHJcbiAgICAgICAgICAgIGlzSW52YWxpZDogdHJ1ZSxcclxuICAgICAgICAgICAgb3BlcmF0b3IsXHJcbiAgICAgICAgICAgIGNvbXBhcmluZ1ZhbHVlOiBjb21wYXJpbmdfY29udHJvbF92YWx1ZVxyXG4gICAgICAgICAgfSBhcyBJTU51bWJlckNvbXBhcmF0b3JFcnJvckludGVyZmFjZVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn07XHJcblxyXG5jb25zdCBvcGVyYXRvckNoZWNrUmVzb2x2ZXIgPSB7XHJcbiAgW0lNQ29tcGFyYXRvck9wZXJhdG9yRW51bS5lcXVhbF06ICh2YWx1ZTogbnVtYmVyLCBjb21wYXJpbmdfdmFsdWU6IG51bWJlcikgPT4gdmFsdWUgIT09IGNvbXBhcmluZ192YWx1ZSxcclxuICBbSU1Db21wYXJhdG9yT3BlcmF0b3JFbnVtLmdyZWF0ZXJdOiAodmFsdWU6IG51bWJlciwgY29tcGFyaW5nX3ZhbHVlOiBudW1iZXIpID0+IHZhbHVlIDw9IGNvbXBhcmluZ192YWx1ZSxcclxuICBbSU1Db21wYXJhdG9yT3BlcmF0b3JFbnVtLmdyZWF0ZXJFcXVhbF06ICh2YWx1ZTogbnVtYmVyLCBjb21wYXJpbmdfdmFsdWU6IG51bWJlcikgPT4gdmFsdWUgPCBjb21wYXJpbmdfdmFsdWUsXHJcbiAgW0lNQ29tcGFyYXRvck9wZXJhdG9yRW51bS5sZXNzXTogKHZhbHVlOiBudW1iZXIsIGNvbXBhcmluZ192YWx1ZTogbnVtYmVyKSA9PiB2YWx1ZSA+PSBjb21wYXJpbmdfdmFsdWUsXHJcbiAgW0lNQ29tcGFyYXRvck9wZXJhdG9yRW51bS5sZXNzRXF1YWxdOiAodmFsdWU6IG51bWJlciwgY29tcGFyaW5nX3ZhbHVlOiBudW1iZXIpID0+IHZhbHVlID4gY29tcGFyaW5nX3ZhbHVlXHJcbn07XHJcbiJdfQ==