(function webpackUniversalModuleDefinition(root, factory) {
	if(typeof exports === 'object' && typeof module === 'object')
		module.exports = factory();
	else if(typeof define === 'function' && define.amd)
		define([], factory);
	else if(typeof exports === 'object')
		exports["utils"] = factory();
	else
		root["utils"] = factory();
})(window, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 734);
/******/ })
/************************************************************************/
/******/ ({

/***/ 734:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./components/lib/utils/validate.js
const Utils = {
  /*路由地址 */
  isExternal(path) {
    return /^(https?:|mailto:|tel:)/.test(path);
  },
  /**子路由是http開頭的，前面會帶有#/父集路由名 */
  isExternalChild(path) {
    return /^(\/https?:|mailto:|tel:)/.test(path);
  },
  /**
   * @description 校验密码是否小于6位
   * @param value
   * @returns {boolean},
   */
  isPassword(value) {
    return value.length >= 6;
  },
  /* */
  validUsername(str) {
    const valid_map = ['admin', 'editor'];
    return valid_map.indexOf(str.trim()) >= 0;
  },
  /* 合法uri*/
  validURL(url) {
    const reg =
      /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;
    return reg.test(url);
  },
  /* 小写字母*/
  validLowerCase(str) {
    const reg = /^[a-z]+$/;
    return reg.test(str);
  },
  /* 大写字母*/
  validUpperCase(str) {
    const reg = /^[A-Z]+$/;
    return reg.test(str);
  },
  /* 大小写字母*/
  validAlphabets(str) {
    const reg = /^[A-Za-z]+$/;
    return reg.test(str);
  },
  /**
   * 八位數工號驗證
   */
  validEmpNo(no) {
    const rgx = /^\d{8}$/;
    return rgx.test(no);
  },
  /**
   * 邮箱
   */
  validEmail(no) {
    const rgx = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
    return rgx.test(no);
  },
  /**
   * 手机号-内陆（86）
   */
  validPhone1(no) {
    const rgx = /^1[3456789]\d{9}$/;
    return rgx.test(no);
  },
  /**
   * 手机号-港澳台（除86外）
   */
  validPhone2(no) {
    const rgx = /^[0-9]*$/;
    return rgx.test(no);
  },
  /**
   * 账号
   */
  validAccount(no) {
    const rgx = /^[a-zA-Z][a-zA-Z0-9_]{3,15}$/;
    return rgx.test(no);
  },
  /**
   * 密码 6~128位并且大小写字母、数字、特殊字符三项中有两项
   */
  validPwd(no) {
    const rgx =
      /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]{6,128}$/;
    return rgx.test(no);
  },
  /**
 * 允许所有大写英文，
  允许所有小写英文，
  允许所有数字
  允许电脑键盘上支持的所有符号：
  包含半角符号（俗称英文符号）：`-=[ ] \ ; ' , . / ~!@#$%^&*()_+{}|:"<> ?
  包含全角符号（俗称中文符号）：·-=【】、；‘’，。、~！@#￥%…&*（）—+{}|：“《》？
  以及空格

  禁止：中文和其它非国际标准字符

  长度限制：最少6位，最长128位
  复杂度规则：大写英文、小写英文、数字、符号 ，这4个条件中必须满足4选3（也可以4个都满足），空格允许在头尾
 */

  validPwdLarge(no) {
    const rgx =
      /^(?=(?:.*[A-Z])(?:.*[a-z])(?:.*\d))(?=(?:.*[A-Za-z\d])?(?:.*[-=[\]\\\;'.,\/~!@#$%^&*()_+{}|:"<>?·\-=【】、；‘’，。、~！@#￥%…&*（）—+{}|：“《》？]))[\x20-\x7e\u00a1-\uffff]{6,128}$/;
    return rgx.test(no);
  },
  /**
   * 验证码
   */
  validCode(no) {
    const rgx = /^\d{6}$/;
    return rgx.test(no);
  },
  /**
   * 邮政编码
   */
  validZipCode(no) {
    const rgx = /^[0-9]*$/;
    return rgx.test(no);
  },
  /**
   * 正整数
   */
  validPositiveInt(no) {
    const rgx = /^[1-9]\d*$/;
    return rgx.test(no);
  },
  /**
   * 大於等於0的整数
   */
  validPositiveInts(no) {
    const rgx = /^[0-9]\d*$/;
    return rgx.test(no);
  },
  /**
   * 大于等于0，小数点后保留2位小数
   */
  validTwoPoint(no) {
    const rgx = /^(0|[1-9]\d*)(\.\d{1,2})?$/;
    return rgx.test(no);
  },
  /**
   * 大于等于0，小数点后保留1位小数
   */
  validOnePoint(no) {
    const rgx = /^(0|[1-9]\d*)(\.\d{1})?$/;
    return rgx.test(no);
  },
  /**
   * 菜单名称（中文英文数字）
   */
  validMenuTitle(no) {
    const rgx = /^[\u4e00-\u9fa5a-zA-Z0-9]+$/;
    return rgx.test(no);
  },
  /**
   * 地址正则（/、英文、数字、_、-）
   */
  validPath(no) {
    const rgx = /^\/[-_a-zA-Z0-9\/]+$/;
    return rgx.test(no);
  },
  /**
   * 系统参数正则(英文、数字、_）
   */
  validParam(no) {
    const rgx = /^[_a-zA-Z0-9]+$/;
    return rgx.test(no);
  },
  // /**
  //  * 座机（数字和-）
  //  */
  // validHeadFax(no) {
  //   const rgx = /^[0][1-9]{2,3}-[0-9]{5,10}$/
  //   return rgx.test(no)
  // },
  // /**
  //  * 传真号码
  //  */
  // validFax(no) {
  //   const rgx = /^(?:\d{3,4}-)?\d{7,8}(?:-\d{1,6})?$/
  //   return rgx.test(no)
  // },
  /**
   * 座机（数字和-）
   */
  validHeadFax(no) {
    const rgx = /^[0-9-]{1,20}$/;
    return rgx.test(no);
  },
  /**
   * 传真号码
   */
  validFax(no) {
    const rgx = /^[0-9-]{1,20}$/;
    return rgx.test(no);
  },
  /**
   * 编号（数字和字母）
   */
  validUserNo(no) {
    const rgx = /^[a-zA-Z0-9]+$/;
    return rgx.test(no);
  },
  /**
   * 团队码
   */
  validTeamNo(no) {
    const rgx = /^[a-zA-Z0-9]{15}$/;
    return rgx.test(no);
  },
  /**
   * @description 判断是否为数字
   * @param value
   * @returns {boolean},
   */
  isNumber(value) {
    const reg = /^[0-9]*$/;
    return reg.test(value);
  },
  /**
   * @description 判断是否是名称
   * @param value
   * @returns {boolean},
   */
  isName(value) {
    const reg = /^[\u4e00-\u9fa5a-zA-Z0-9]+$/;
    return reg.test(value);
  },
  /**
   * @description 判断是否为IP
   * @param ip
   * @returns {boolean},
   */
  isIP(ip) {
    const reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
    return reg.test(ip);
  },
  /**
   * @description 判断是否是传统网站
   * @param url
   * @returns {boolean},
   */
  isUrl(url) {
    const reg =
      /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;
    return reg.test(url);
  },
  /**
   * @description 判断是否是小写字母
   * @param value
   * @returns {boolean},
   */
  isLowerCase(value) {
    const reg = /^[a-z]+$/;
    return reg.test(value);
  },
  /**
   * @description 判断是否是大写字母
   * @param value
   * @returns {boolean},
   */
  isUpperCase(value) {
    const reg = /^[A-Z]+$/;
    return reg.test(value);
  },
  /**
   * @description 判断是否是大写字母开头
   * @param value
   * @returns {boolean},
   */
  isAlphabets(value) {
    const reg = /^[A-Za-z]+$/;
    return reg.test(value);
  },
  /**
   * @description 判断是否是字符串
   * @param value
   * @returns {boolean},
   */
  isString(value) {
    return typeof value === 'string' || value instanceof String;
  },
  /**
   * @description 判断是否是数组
   * @param arg
   */
  isArray(arg) {
    if (typeof Array.isArray === 'undefined') {
      return Object.prototype.toString.call(arg) === '[object Array]';
    }
    return Array.isArray(arg);
  },
  /**
   * @description 判断是否是端口号
   * @param value
   * @returns {boolean},
   */
  isPort(value) {
    const reg = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/;
    return reg.test(value);
  },
  /**
   * @description 判断是否是手机号
   * @param value
   * @returns {boolean},
   */
  isPhone(value) {
    const reg = /^1\d{10}$/;
    return reg.test(value);
  },
  /**
   * @description 判断是否是身份证号(第二代)
   * @param value
   * @returns {boolean},
   */
  isIdCard(value) {
    const reg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
    return reg.test(value);
  },
  /**
   * @description 判断是否是邮箱
   * @param value
   * @returns {boolean},
   */
  isEmail(value) {
    const reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    return reg.test(value);
  },
  /**
   * @description 判断是否中文
   * @param value
   * @returns {boolean},
   */
  isChina(value) {
    const reg = /^[\u4E00-\u9FA5]{2,4}$/;
    return reg.test(value);
  },
  isKey(value) {
    const reg = /[-a-zA-Z]*/;
    return reg.test(value);
  },
  /**
   * @description 判断是否为空
   * @param value
   * @returns {boolean},
   */
  isBlank(value) {
    return value === null || false || value === '' || value.trim() === '' || value.toLocaleLowerCase().trim() === 'null';
  },
  /**
   * @description 判断是否为固话
   * @param value
   * @returns {boolean},
   */
  isTel(value) {
    const reg = /^(400|800)([0-9\\-]{7,10})|(([0-9]{4}|[0-9]{3})([- ])?)?([0-9]{7,8})(([- 转])*([0-9]{1,4}))?$/;
    return reg.test(value);
  },
  /**
   * @description 判断是否为数字且最多两位小数
   * @param value
   * @returns {boolean},
   */
  isNum(value) {
    const reg = /^\d+(\.\d{1,2})?$/;
    return reg.test(value);
  },
  /**
   * @description 判断是否为json
   * @param value
   * @returns {boolean},
   */
  isJson(value) {
    if (typeof value === 'string') {
      const obj = JSON.parse(value);
      return !!(typeof obj === 'object' && obj);
    }
    return false;
  },
  attrLengthValidator(rule, value, callback) {
    if (value) {
      var intValue = parseInt(value);
      if (intValue > 0) {
        callback();
      } else {
        callback(new Error('值只能是正整数'));
      }
    } else {
      callback();
    }
  },
  isInterWord(rule, value, callback) {
    let re = /^[0-9]+$/;
    if (re.test(value)) {
      callback();
    } else {
      callback(new Error('请输入正整数'));
    }
  },
  isDate(rule, value, callback) {
    let re = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;
    if (re.test(value)) {
      callback();
    } else {
      callback(new Error('日期格式错误'));
    }
  },
  isColumnKey(rule, value, callback) {
    var reg2 = /(^_([a-zA-Z0-9]_?)*$)|(^[a-zA-Z](_?[a-zA-Z0-9])*_?$)/;
    if (!reg2.test(value)) {
      return callback(new Error('您输入的数据库字段名称：“' + value + '”格式不正确；提示：【首位可以是字母以及下划线。首位之后可以是字母，数字以及下划线。下划线后不能接下划线】'));
    } else {
      return callback();
    }
  },
  /**
   * 机种（数字和字母 和 -）
   */
  validMachine(no) {
    const rgx = /^[a-zA-Z0-9\-]+$/;
    return rgx.test(no);
  }
};
/* harmony default export */ var validate = (Utils);

// CONCATENATED MODULE: ./components/lib/utils/index.js


/* harmony default export */ var utils = __webpack_exports__["default"] = ({
  Utils: validate
});

/***/ })

/******/ })["default"];
});