@grafana/ui
Version:
Grafana Components Library
1 lines • 1.99 kB
Source Map (JSON)
{"version":3,"file":"validate.mjs","sources":["../../../src/utils/validate.ts"],"sourcesContent":["import { ValidationRule, ValidationEvents } from '../types/input';\n\nexport enum EventsWithValidation {\n onBlur = 'onBlur',\n onFocus = 'onFocus',\n onChange = 'onChange',\n}\n\nexport const validate = (value: string, validationRules: ValidationRule[]) => {\n const errors = validationRules.reduce<string[]>((acc, currRule) => {\n if (!currRule.rule(value)) {\n return acc.concat(currRule.errorMessage);\n }\n return acc;\n }, []);\n return errors.length > 0 ? errors : null;\n};\n\nexport const hasValidationEvent = (event: EventsWithValidation, validationEvents: ValidationEvents | undefined) => {\n return validationEvents && validationEvents[event];\n};\n\nexport const regexValidation = (pattern: string | RegExp, errorMessage?: string): ValidationRule => {\n return {\n rule: (valueToValidate: string) => {\n return !!valueToValidate.match(pattern);\n },\n errorMessage: errorMessage || 'Value is not valid',\n };\n};\n"],"names":["EventsWithValidation"],"mappings":";AAEO,IAAK,oBAAA,qBAAAA,qBAAAA,KAAL;AACL,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,sBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,sBAAA,UAAA,CAAA,GAAW,UAAA;AAHD,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;AAML,MAAM,QAAA,GAAW,CAAC,KAAA,EAAe,eAAA,KAAsC;AAC5E,EAAA,MAAM,MAAA,GAAS,eAAA,CAAgB,MAAA,CAAiB,CAAC,KAAK,QAAA,KAAa;AACjE,IAAA,IAAI,CAAC,QAAA,CAAS,IAAA,CAAK,KAAK,CAAA,EAAG;AACzB,MAAA,OAAO,GAAA,CAAI,MAAA,CAAO,QAAA,CAAS,YAAY,CAAA;AAAA,IACzC;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,OAAO,MAAA,CAAO,MAAA,GAAS,CAAA,GAAI,MAAA,GAAS,IAAA;AACtC;AAEO,MAAM,kBAAA,GAAqB,CAAC,KAAA,EAA6B,gBAAA,KAAmD;AACjH,EAAA,OAAO,gBAAA,IAAoB,iBAAiB,KAAK,CAAA;AACnD;AAEO,MAAM,eAAA,GAAkB,CAAC,OAAA,EAA0B,YAAA,KAA0C;AAClG,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,CAAC,eAAA,KAA4B;AACjC,MAAA,OAAO,CAAC,CAAC,eAAA,CAAgB,KAAA,CAAM,OAAO,CAAA;AAAA,IACxC,CAAA;AAAA,IACA,cAAc,YAAA,IAAgB;AAAA,GAChC;AACF;;;;"}