{"version":3,"file":"form-validator.mjs","sources":["../../../../../packages/components/form/src/form-validator.ts"],"sourcesContent":["import type { ModelValue } from './form'\n\n/** 校验器 */\nexport const validators = {\n  required(value: any, required: any) {\n    let msg = '该项是必填项'\n    if (Array.isArray(required)) {\n      ;[required, msg] = required\n    }\n\n    if (!required) return null\n\n    if (Array.isArray(value) && value.length < 1) {\n      return msg\n    }\n\n    const type = typeof value\n\n    if (type === 'string' && !value) {\n      return msg\n    }\n    if (value === null || value === undefined) {\n      return msg\n    }\n\n    return null\n  },\n\n  min(value: string | number | any[], min: number | [number, string]) {\n    let msg = ''\n    if (Array.isArray(min)) {\n      ;[min, msg] = min\n    }\n    const type = typeof value\n    if (!(Array.isArray(value) || type === 'number' || type === 'string')) {\n      return msg || `该项的类型应为: [string | number | Array], 而不是: ${type}`\n    }\n\n    if (type === 'number' && value < min) {\n      return msg || `该项的最小值应为: ${min}, 而不是: ${min}`\n    }\n    if (\n      (type === 'string' || Array.isArray(value)) &&\n      (value as any).length < min\n    ) {\n      return msg || `该项的最小长度应为: ${min}, 而不是: ${min}`\n    }\n\n    return null\n  },\n  max(value: ModelValue, max: number | [number, string]) {\n    let msg = ''\n    if (Array.isArray(max)) {\n      ;[max, msg] = max\n    }\n    const type = typeof value\n    if (!(Array.isArray(value) || type === 'number' || type === 'string')) {\n      return msg || `该项的类型应为: [string | number | Array], 而不是: ${type}`\n    }\n\n    if (type === 'number' && value > max) {\n      return msg || `该项的最大值应为: ${max}, 而不是: ${value}`\n    }\n    if (\n      (type === 'string' || Array.isArray(value)) &&\n      (value as any).length > max\n    ) {\n      return (\n        msg || `该项的最大长度应为:  ${max}, 而不是: ${(value as any).length}`\n      )\n    }\n\n    return null\n  },\n  len(value: string | any[], lenth: number | [number, string]) {\n    let msg = ''\n    if (Array.isArray(length)) {\n      ;[lenth, msg] = lenth\n    }\n    const type = typeof value\n\n    if (!(Array.isArray(value) || type === 'string')) {\n      return msg || `该项的类型应为: [string | Array], 而不是: ${type}`\n    }\n\n    if (value.length > lenth) {\n      return msg || `该项的长度应为: ${lenth}, 而不是: ${value.length}`\n    }\n\n    return null\n  },\n  match(value: string, pattern: RegExp | [RegExp, string]) {\n    let msg = ''\n    if (Array.isArray(pattern)) {\n      ;[pattern, msg] = pattern\n    }\n    const type = typeof value\n    if (type !== 'string') {\n      return msg || `该项的类型应为: [string], 而不是: ${type}`\n    }\n\n    if (!pattern.test(value)) {\n      return msg || `该项不匹配正则表达式: ${pattern}`\n    }\n\n    return null\n  },\n}\n"],"names":[],"mappings":"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"}