{"version":3,"file":"validator.mjs","sources":["../../../../../../../packages/components/cron-expression-builder/src/config/validator.ts"],"sourcesContent":["import CronParser from 'cron-parser'\r\nimport type { ValidatorRule } from 'ant-design-vue/lib/form/interface'\r\n\r\nconst cronRule: ValidatorRule = {\r\n  // eslint-disable-next-line no-empty-pattern\r\n  validator({}, value) {\r\n    // 没填写就不校验\r\n    if (!value) {\r\n      return Promise.resolve()\r\n    }\r\n    const values: string[] = value.split(' ').filter((item) => !!item)\r\n    if (values.length > 7) {\r\n      return Promise.reject('Cron表达式最多7项！')\r\n    }\r\n    // 检查第7项\r\n    let val: string = value\r\n    if (values.length === 7) {\r\n      const year = values[6]\r\n      if (year !== '*' && year !== '?') {\r\n        let yearValues: string[] = []\r\n        if (year.indexOf('-') >= 0) {\r\n          yearValues = year.split('-')\r\n        } else if (year.indexOf('/')) {\r\n          yearValues = year.split('/')\r\n        } else {\r\n          yearValues = [year]\r\n        }\r\n        // 判断是否都是数字\r\n        const checkYear = yearValues.some((item) => isNaN(Number(item)))\r\n        if (checkYear) {\r\n          return Promise.reject('Cron表达式参数[年]错误：' + year)\r\n        }\r\n      }\r\n      // 取其中的前六项\r\n      val = values.slice(0, 6).join(' ')\r\n    }\r\n    // 6位 没有年\r\n    // 5位没有秒、年\r\n    try {\r\n      const iter = CronParser.parseExpression(val)\r\n      iter.next()\r\n      return Promise.resolve()\r\n    } catch (e) {\r\n      return Promise.reject('Cron表达式错误：' + e)\r\n    }\r\n  }\r\n}\r\n\r\nexport default cronRule.validator\r\n"],"names":[],"mappings":";;;AAGA,MAAM,QAAA,GAA0B;AAAA;AAAA,EAE9B,SAAA,CAAU,EAAC,EAAG,KAAA,EAAO;AAEnB,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,OAAO,QAAQ,OAAA,EAAQ;AAAA,IACzB;AACA,IAAA,MAAM,MAAA,GAAmB,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA,CAAE,OAAO,CAAC,IAAA,KAAS,CAAC,CAAC,IAAI,CAAA;AACjE,IAAA,IAAI,MAAA,CAAO,SAAS,CAAA,EAAG;AACrB,MAAA,OAAO,OAAA,CAAQ,OAAO,iDAAc,CAAA;AAAA,IACtC;AAEA,IAAA,IAAI,GAAA,GAAc,KAAA;AAClB,IAAA,IAAI,MAAA,CAAO,WAAW,CAAA,EAAG;AACvB,MAAA,MAAM,IAAA,GAAO,OAAO,CAAC,CAAA;AACrB,MAAA,IAAI,IAAA,KAAS,GAAA,IAAO,IAAA,KAAS,GAAA,EAAK;AAChC,QAAA,IAAI,aAAuB,EAAC;AAC5B,QAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA,IAAK,CAAA,EAAG;AAC1B,UAAA,UAAA,GAAa,IAAA,CAAK,MAAM,GAAG,CAAA;AAAA,QAC7B,CAAA,MAAA,IAAW,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA,EAAG;AAC5B,UAAA,UAAA,GAAa,IAAA,CAAK,MAAM,GAAG,CAAA;AAAA,QAC7B,CAAA,MAAO;AACL,UAAA,UAAA,GAAa,CAAC,IAAI,CAAA;AAAA,QACpB;AAEA,QAAA,MAAM,SAAA,GAAY,WAAW,IAAA,CAAK,CAAC,SAAS,KAAA,CAAM,MAAA,CAAO,IAAI,CAAC,CAAC,CAAA;AAC/D,QAAA,IAAI,SAAA,EAAW;AACb,UAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,8DAAA,GAAoB,IAAI,CAAA;AAAA,QAChD;AAAA,MACF;AAEA,MAAA,GAAA,GAAM,OAAO,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,IACnC;AAGA,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,GAAO,UAAA,CAAW,eAAA,CAAgB,GAAG,CAAA;AAC3C,MAAA,IAAA,CAAK,IAAA,EAAK;AACV,MAAA,OAAO,QAAQ,OAAA,EAAQ;AAAA,IACzB,SAAS,CAAA,EAAG;AACV,MAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,0CAAA,GAAe,CAAC,CAAA;AAAA,IACxC;AAAA,EACF;AACF,CAAA;AAEA,gBAAe,QAAA,CAAS,SAAA;;;;"}