UNPKG

im-angular-validators

Version:

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

44 lines 7.68 kB
import { IMComparatorOperatorEnum } from '../enums/comparator-operator.enum'; import { IMWorkingDateFormat } from '../constants/general.constant'; export const IMDateComparatorValidator = (config) => { return (control) => { if (config.comparingControlKey) { const comparingValue = control?.parent?.get(config.comparingControlKey)?.value; return getDateComparatorValidationError(control.value, comparingValue, config.comparingOperator); } else { return getDateComparatorValidationError(control.value, config.comparingValue, config.comparingOperator); } }; }; const getDateComparatorValidationError = (control_value, comparing_control_value, operator) => { if (control_value && comparing_control_value) { if (operatorCheckResolver[operator](control_value, comparing_control_value)) { return { dateComparatorError: { isInvalid: true, operator, comparingValue: comparing_control_value.format(IMWorkingDateFormat) } }; } } }; const operatorCheckResolver = { [IMComparatorOperatorEnum.equal]: (value, comparing_value) => { return !value.isSame(comparing_value); }, [IMComparatorOperatorEnum.greater]: (value, comparing_value) => { return !value.isAfter(comparing_value); }, [IMComparatorOperatorEnum.greaterEqual]: (value, comparing_value) => { return !value.isSame(comparing_value) && !value.isAfter(comparing_value); }, [IMComparatorOperatorEnum.less]: (value, comparing_value) => { return !value.isBefore(comparing_value); }, [IMComparatorOperatorEnum.lessEqual]: (value, comparing_value) => { return !value.isSame(comparing_value) && !value.isBefore(comparing_value); } }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1jb21wYXJhdG9yLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdmFsaWRhdG9ycy9zcmMvbGliL3ZhbGlkYXRvcnMvZGF0ZS1jb21wYXJhdG9yLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUkzRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUVsRSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLE1BQWdELEVBQWUsRUFBRTtJQUN6RyxPQUFPLENBQUMsT0FBd0IsRUFBb0IsRUFBRTtRQUNwRCxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRTtZQUM5QixNQUFNLGNBQWMsR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsRUFBRSxLQUFLLENBQUM7WUFDL0UsT0FBTyxnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNsRzthQUFNO1lBQ0wsT0FBTyxnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDekc7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLGdDQUFnQyxHQUNwQyxDQUFDLGFBQXFCLEVBQUUsdUJBQStCLEVBQUUsUUFBa0MsRUFBb0IsRUFBRTtJQUMvRyxJQUFJLGFBQWEsSUFBSSx1QkFBdUIsRUFBRTtRQUM1QyxJQUFJLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFO1lBQzNFLE9BQU87Z0JBQ0wsbUJBQW1CLEVBQUU7b0JBQ25CLFNBQVMsRUFBRSxJQUFJO29CQUNmLFFBQVE7b0JBQ1IsY0FBYyxFQUFFLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztpQkFDbEM7YUFDcEMsQ0FBQztTQUNIO0tBQ0Y7QUFDSCxDQUFDLENBQUM7QUFFSixNQUFNLHFCQUFxQixHQUFHO0lBQzVCLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFhLEVBQUUsZUFBdUIsRUFBRSxFQUFFO1FBQzNFLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBYSxFQUFFLGVBQXVCLEVBQUUsRUFBRTtRQUM3RSxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQWEsRUFBRSxlQUF1QixFQUFFLEVBQUU7UUFDbEYsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBYSxFQUFFLGVBQXVCLEVBQUUsRUFBRTtRQUMxRSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEtBQWEsRUFBRSxlQUF1QixFQUFFLEVBQUU7UUFDL0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7SU1Db21wYXJhdG9yT3BlcmF0b3JFbnVtfSBmcm9tICcuLi9lbnVtcy9jb21wYXJhdG9yLW9wZXJhdG9yLmVudW0nO1xyXG5pbXBvcnQge0lNRGF0ZUNvbXBhcmF0b3JWYWxpZGF0b3JDb25maWdJbnRlcmZhY2V9IGZyb20gJy4uL2ludGVyZmFjZXMvZGF0ZS1jb21wYXJhdG9yLWNvbmZpZ3VyYXRpb24uaW50ZXJmYWNlJztcclxuaW1wb3J0IHtJTURhdGVDb21wYXJhdG9yRXJyb3JJbnRlcmZhY2V9IGZyb20gJy4uL2ludGVyZmFjZXMvZGF0ZS1jb21wYXJhdG9yLWVycm9yLmludGVyZmFjZSc7XHJcbmltcG9ydCB7TW9tZW50fSBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQge0lNV29ya2luZ0RhdGVGb3JtYXR9IGZyb20gJy4uL2NvbnN0YW50cy9nZW5lcmFsLmNvbnN0YW50JztcclxuXHJcbmV4cG9ydCBjb25zdCBJTURhdGVDb21wYXJhdG9yVmFsaWRhdG9yID0gKGNvbmZpZzogSU1EYXRlQ29tcGFyYXRvclZhbGlkYXRvckNvbmZpZ0ludGVyZmFjZSk6IFZhbGlkYXRvckZuID0+IHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgPT4ge1xyXG4gICAgaWYgKGNvbmZpZy5jb21wYXJpbmdDb250cm9sS2V5KSB7XHJcbiAgICAgIGNvbnN0IGNvbXBhcmluZ1ZhbHVlID0gY29udHJvbD8ucGFyZW50Py5nZXQoY29uZmlnLmNvbXBhcmluZ0NvbnRyb2xLZXkpPy52YWx1ZTtcclxuICAgICAgcmV0dXJuIGdldERhdGVDb21wYXJhdG9yVmFsaWRhdGlvbkVycm9yKGNvbnRyb2wudmFsdWUsIGNvbXBhcmluZ1ZhbHVlLCBjb25maWcuY29tcGFyaW5nT3BlcmF0b3IpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGdldERhdGVDb21wYXJhdG9yVmFsaWRhdGlvbkVycm9yKGNvbnRyb2wudmFsdWUsIGNvbmZpZy5jb21wYXJpbmdWYWx1ZSwgY29uZmlnLmNvbXBhcmluZ09wZXJhdG9yKTtcclxuICAgIH1cclxuICB9O1xyXG59O1xyXG5cclxuY29uc3QgZ2V0RGF0ZUNvbXBhcmF0b3JWYWxpZGF0aW9uRXJyb3IgPVxyXG4gIChjb250cm9sX3ZhbHVlOiBNb21lbnQsIGNvbXBhcmluZ19jb250cm9sX3ZhbHVlOiBNb21lbnQsIG9wZXJhdG9yOiBJTUNvbXBhcmF0b3JPcGVyYXRvckVudW0pOiBWYWxpZGF0aW9uRXJyb3JzID0+IHtcclxuICAgIGlmIChjb250cm9sX3ZhbHVlICYmIGNvbXBhcmluZ19jb250cm9sX3ZhbHVlKSB7XHJcbiAgICAgIGlmIChvcGVyYXRvckNoZWNrUmVzb2x2ZXJbb3BlcmF0b3JdKGNvbnRyb2xfdmFsdWUsIGNvbXBhcmluZ19jb250cm9sX3ZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBkYXRlQ29tcGFyYXRvckVycm9yOiB7XHJcbiAgICAgICAgICAgIGlzSW52YWxpZDogdHJ1ZSxcclxuICAgICAgICAgICAgb3BlcmF0b3IsXHJcbiAgICAgICAgICAgIGNvbXBhcmluZ1ZhbHVlOiBjb21wYXJpbmdfY29udHJvbF92YWx1ZS5mb3JtYXQoSU1Xb3JraW5nRGF0ZUZvcm1hdClcclxuICAgICAgICAgIH0gYXMgSU1EYXRlQ29tcGFyYXRvckVycm9ySW50ZXJmYWNlXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG5jb25zdCBvcGVyYXRvckNoZWNrUmVzb2x2ZXIgPSB7XHJcbiAgW0lNQ29tcGFyYXRvck9wZXJhdG9yRW51bS5lcXVhbF06ICh2YWx1ZTogTW9tZW50LCBjb21wYXJpbmdfdmFsdWU6IE1vbWVudCkgPT4ge1xyXG4gICAgcmV0dXJuICF2YWx1ZS5pc1NhbWUoY29tcGFyaW5nX3ZhbHVlKTtcclxuICB9LFxyXG4gIFtJTUNvbXBhcmF0b3JPcGVyYXRvckVudW0uZ3JlYXRlcl06ICh2YWx1ZTogTW9tZW50LCBjb21wYXJpbmdfdmFsdWU6IE1vbWVudCkgPT4ge1xyXG4gICAgcmV0dXJuICF2YWx1ZS5pc0FmdGVyKGNvbXBhcmluZ192YWx1ZSk7XHJcbiAgfSxcclxuICBbSU1Db21wYXJhdG9yT3BlcmF0b3JFbnVtLmdyZWF0ZXJFcXVhbF06ICh2YWx1ZTogTW9tZW50LCBjb21wYXJpbmdfdmFsdWU6IE1vbWVudCkgPT4ge1xyXG4gICAgcmV0dXJuICF2YWx1ZS5pc1NhbWUoY29tcGFyaW5nX3ZhbHVlKSAmJiAhdmFsdWUuaXNBZnRlcihjb21wYXJpbmdfdmFsdWUpO1xyXG4gIH0sXHJcbiAgW0lNQ29tcGFyYXRvck9wZXJhdG9yRW51bS5sZXNzXTogKHZhbHVlOiBNb21lbnQsIGNvbXBhcmluZ192YWx1ZTogTW9tZW50KSA9PiB7XHJcbiAgICByZXR1cm4gIXZhbHVlLmlzQmVmb3JlKGNvbXBhcmluZ192YWx1ZSk7XHJcbiAgfSxcclxuICBbSU1Db21wYXJhdG9yT3BlcmF0b3JFbnVtLmxlc3NFcXVhbF06ICh2YWx1ZTogTW9tZW50LCBjb21wYXJpbmdfdmFsdWU6IE1vbWVudCkgPT4ge1xyXG4gICAgcmV0dXJuICF2YWx1ZS5pc1NhbWUoY29tcGFyaW5nX3ZhbHVlKSAmJiAhdmFsdWUuaXNCZWZvcmUoY29tcGFyaW5nX3ZhbHVlKTtcclxuICB9XHJcbn07XHJcbiJdfQ==