{"version":3,"file":"form.mjs","sources":["../../../../packages/util/form/validators.ts","../../../../packages/util/form/match-control.ts","../../../../packages/util/form/form.ts"],"sourcesContent":["import { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { isChinese, isColor, isDecimal, isIdCard, isInt, isIp, isMobile, isNum, isUrl } from '@yelon/util/format';\n\n/**\n * A set of validators for reactive forms\n *\n * 一套用于响应式表单的验证器\n */\nexport class _Validators {\n  /**\n   * Wheter is number\n   *\n   * 是否为数字\n   */\n  static num(control: AbstractControl): ValidationErrors | null {\n    return isNum(control.value) ? null : { num: true };\n  }\n\n  /**\n   * Wheter is integer\n   *\n   * 是否为整数\n   */\n  static int(control: AbstractControl): ValidationErrors | null {\n    return isInt(control.value) ? null : { int: true };\n  }\n\n  /**\n   * Wheter is decimal\n   *\n   * 是否为小数点数值\n   */\n  static decimal(control: AbstractControl): ValidationErrors | null {\n    return isDecimal(control.value) ? null : { decimal: true };\n  }\n\n  /**\n   * Wheter is People's Republic of China identity card\n   *\n   * 是否为中华人民共和国居民身份证\n   */\n  static idCard(control: AbstractControl): ValidationErrors | null {\n    return isIdCard(control.value) ? null : { idCard: true };\n  }\n\n  /**\n   * Wheter is china mobile (China)\n   *\n   * 是否为手机号（中国）\n   */\n  static mobile(control: AbstractControl): ValidationErrors | null {\n    return isMobile(control.value) ? null : { mobile: true };\n  }\n\n  /**\n   * Wheter is url address\n   *\n   * 是否URL地址\n   */\n  static url(control: AbstractControl): ValidationErrors | null {\n    return isUrl(control.value) ? null : { url: true };\n  }\n\n  /**\n   * Wheter is IPv4 address (Support v4, v6)\n   *\n   * 是否IP4地址（支持v4、v6）\n   */\n  static ip(control: AbstractControl): ValidationErrors | null {\n    return isIp(control.value) ? null : { ip: true };\n  }\n\n  /**\n   * Wheter is color\n   *\n   * 是否颜色代码值\n   */\n  static color(control: AbstractControl): ValidationErrors | null {\n    return isColor(control.value) ? null : { color: true };\n  }\n\n  /**\n   * Wheter is chinese\n   *\n   * 是否中文\n   */\n  static chinese(control: AbstractControl): ValidationErrors | null {\n    return isChinese(control.value) ? null : { chinese: true };\n  }\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\n/**\n * Match two control values\n *\n * 匹配两个控件值\n * ```ts\n * this.form = new FormGroup({\n *  pwd: new FormControl(''),\n *  repwd: new FormControl(''),\n * }, {\n *  validators: MatchControl('pwd', 'repwd'),\n * });\n * ```\n */\nexport function MatchControl(controlName: string, matchingControlName: string): ValidatorFn {\n  return (formGroup: AbstractControl) => {\n    const control = formGroup.get(controlName)!;\n    const matchingControl = formGroup.get(matchingControlName)!;\n    if (matchingControl.errors && !matchingControl.errors.matchControl) {\n      return null;\n    }\n    if (control.value !== matchingControl.value) {\n      matchingControl.setErrors({ matchControl: true });\n    } else {\n      matchingControl.setErrors(null);\n    }\n    return null;\n  };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAIA;;;;AAIG;MACU,WAAW,CAAA;AACtB;;;;AAIG;IACH,OAAO,GAAG,CAAC,OAAwB,EAAA;AACjC,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;;AAGpD;;;;AAIG;IACH,OAAO,GAAG,CAAC,OAAwB,EAAA;AACjC,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;;AAGpD;;;;AAIG;IACH,OAAO,OAAO,CAAC,OAAwB,EAAA;AACrC,QAAA,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;;AAG5D;;;;AAIG;IACH,OAAO,MAAM,CAAC,OAAwB,EAAA;AACpC,QAAA,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;;AAG1D;;;;AAIG;IACH,OAAO,MAAM,CAAC,OAAwB,EAAA;AACpC,QAAA,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;;AAG1D;;;;AAIG;IACH,OAAO,GAAG,CAAC,OAAwB,EAAA;AACjC,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;;AAGpD;;;;AAIG;IACH,OAAO,EAAE,CAAC,OAAwB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE;;AAGlD;;;;AAIG;IACH,OAAO,KAAK,CAAC,OAAwB,EAAA;AACnC,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;;AAGxD;;;;AAIG;IACH,OAAO,OAAO,CAAC,OAAwB,EAAA;AACrC,QAAA,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;;AAE7D;;ACxFD;;;;;;;;;;;;AAYG;AACa,SAAA,YAAY,CAAC,WAAmB,EAAE,mBAA2B,EAAA;IAC3E,OAAO,CAAC,SAA0B,KAAI;QACpC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAE;QAC3C,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAE;QAC3D,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE;AAClE,YAAA,OAAO,IAAI;;QAEb,IAAI,OAAO,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,EAAE;YAC3C,eAAe,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;;aAC5C;AACL,YAAA,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC;;AAEjC,QAAA,OAAO,IAAI;AACb,KAAC;AACH;;AC7BA;;AAEG;;;;"}