{"version":3,"sources":["jsdelivr-header.js","/npm/vue-form-check@1.0.9/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OCDO,UAAW,iBAElB,MAAM,QAAU,GACR,MAAM,OAAO,GACN,OAED,MAAM,UAAU,GAGjB,MAAM,SAAS,GACb,SAEF,MAAM,UAAU,GACd,UAEF,MAAM,SAAS,GACb,SAEF,MAAM,QAAQ,GACZ,QAEF,MAAM,SAAS,GACb,SAEF,MAAM,WAAW,GACf,WAGJ,SArBI,YAwBT,SAAW,CAAC,EAAO,KACrB,MAAM,EAAQ,EAAI,MAAM,KACxB,IAAI,EAAU,EACd,IAAK,IAAI,EAAI,EAAG,EAAS,EAAM,OAAQ,EAAI,IAAU,EAAG,CACpD,QAA0B,IAAtB,EAAQ,EAAM,IACd,OAGJ,EAAU,EAAQ,EAAM,GAC5B,CACA,OAAO,CAAO,EAiBZ,UAAY,CAAC,EAAS,EAAQ,KAChC,MAAM,EAAO,OAAO,KAAK,GACzB,IAAK,IAAI,EAAI,EAAG,EAAS,EAAK,OAAQ,EAAI,EAAQ,IAAK,CACnD,MAAM,EAAM,EAAK,GACX,EAAe,SAAS,EAAS,GACjC,EAAc,EAAO,GAErB,EAAW,MAAM,WAAW,EAAY,QACxC,EAAY,GAAY,EAAY,SACpC,EAAU,QAAQ,KAAkB,EAAY,KAChD,EAAa,EAAY,SACzB,EAAc,EAAY,WAAa,MAAM,QAAQ,GACrD,EAAa,MAAM,WAAW,EAAY,UAC1C,EAAc,GAAc,EAAY,SAAS,GACjD,EAAS,MAAM,SAAS,EAAY,MACpC,EAAU,GAAU,EAAY,KAAK,KAAK,GAChD,IAAI,GAAa,EAAjB,CAIA,IAAK,EACD,MAAO,CAAC,MAAO,EAAY,MAAO,KAAM,QAG5C,GAAI,IAAe,EACf,MAAO,CAAC,MAAO,EAAY,MAAO,KAAM,YAI5C,GAAI,IAAe,EACf,MAAO,CAAC,MAAO,EAAY,MAAO,KAAM,QAG5C,GAAI,IAAW,EACX,MAAO,CAAC,MAAO,EAAY,MAAO,KAAM,OAhB5C,CAmBJ,CACA,MAAO,CAAC,CAAC,EAGP,QAAU,CAAC,EAAK,KAClB,EAAI,UAAU,WAAa,SAAS,gBAGzB,CACX","file":"/npm/vue-form-check@1.0.9/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/vue-form-check@1.0.9/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\n * @file 表单验证\n * @author donghongyan\n */\n\nimport check from './check-method';\n\nconst getType = value => {\n    if (check.isNull(value)) {\n        return 'null';\n    }\n    else if (!check.isDefined(value)) {\n        return 'undefined';\n    }\n    else if (check.isString(value)) {\n        return 'string';\n    }\n    else if (check.isBoolean(value)) {\n        return 'boolean';\n    }\n    else if (check.isNumber(value)) {\n        return 'number';\n    }\n    else if (check.isArray(value)) {\n        return 'array';\n    }\n    else if (check.isRegExp(value)) {\n        return 'regexp';\n    }\n    else if (check.isFunction(value)) {\n        return 'function';\n    }\n\n    return 'object';\n};\n\nconst deepFind = (value, key) => {\n    const paths = key.split('.');\n    let current = value;\n    for (let i = 0, length = paths.length; i < length; ++i) {\n        if (current[paths[i]] === undefined) {\n            return undefined;\n        }\n\n        current = current[paths[i]];\n    }\n    return current;\n};\n\n/**\n * 依照配置项的顺序检查  depend -> type -> required -> callback -> rule\n *\n * @param {Object}  current 当前检查对象\n * @param {Object}  config 当前配置检查对象\n * @param {string}  config.alias 检查项别名\n * @param {string}  config.type 检查项类型\n * @param {boolean} config.required 检查项是否必须 true 检查；false 不检查\n \t\t\t\t\trequired 没有rule、callback的话，只检查非空；有rule、callback的话，加上非空一起检查\n \t\t\t\t\t!required 不进行非空检查，有rule的话，进行正则检查，callback和rule只存在一个\n * @param {RegExp}  config.rule 正则检查，检查项规则\n * @param {Function} config.callback 灵活性校验规则 true 通过；false 不通过 比rule强，如区间校验\n * @param {Function} config.depend 校验先决条件 true 校验本项；false 不检验本项\n */\nconst checkForm = (current, config, callback) => {\n    const keys = Object.keys(config);\n    for (let i = 0, length = keys.length; i < length; i++) {\n        const key = keys[i];\n        const currentValue = deepFind(current, key);\n        const currentRule = config[key];\n\n        const isDepend = check.isFunction(currentRule.depend);\n        const dependVal = isDepend && currentRule.depend();\n        const typeVal = getType(currentValue) === currentRule.type;\n        const isRequired = currentRule.required;\n        const requiredVal = currentRule.required && !check.isEmpty(currentValue);\n        const isCallback = check.isFunction(currentRule.callback);\n        const callbackVal = isCallback && currentRule.callback(currentValue);\n        const isRule = check.isRegExp(currentRule.rule);\n        const ruleVal = isRule && currentRule.rule.test(currentValue);\n        if (isDepend && !dependVal) {\n            continue;\n        }\n\n        if (!typeVal) {\n            return {alias: currentRule.alias, type: 'type'};\n        }\n\n        if (isRequired && !requiredVal) {\n            return {alias: currentRule.alias, type: 'required'};\n        }\n\n        // 这里回调写rule，是因为callback是自定义验证和正则验证没区别\n        if (isCallback && !callbackVal) {\n            return {alias: currentRule.alias, type: 'rule'};\n        }\n\n        if (isRule && !ruleVal) {\n            return {alias: currentRule.alias, type: 'rule'};\n        }\n\n    }\n    return {};\n};\n\nconst install = (Vue, options) => {\n    Vue.prototype.$checkForm = checkForm;\n};\n// 使用时mixin引入，用到上下文参数\nexport default {\n    install\n};\n"]}