{"version":3,"sources":["jsdelivr-header.js","/npm/shengjs@2.0.8/dist/index.js"],"names":[],"mappings":"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","file":"/npm/shengjs@2.0.8/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/shengjs@2.0.8/dist/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","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar nanoid = require('nanoid');\n\nfunction randomStr(n) {\n  var str = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'abcdefghigklmnopqrstuvexyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-+%$';\n  var res = '';\n  var len = str.length;\n\n  for (var i = 0; i < n; i++) {\n    res += str[Math.floor(Math.random() * len)];\n  }\n\n  return res;\n}\n\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n\n  try {\n    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nfunction _construct(Parent, args, Class) {\n  if (_isNativeReflectConstruct()) {\n    _construct = Reflect.construct;\n  } else {\n    _construct = function _construct(Parent, args, Class) {\n      var a = [null];\n      a.push.apply(a, args);\n      var Constructor = Function.bind.apply(Parent, a);\n      var instance = new Constructor();\n      if (Class) _setPrototypeOf(instance, Class.prototype);\n      return instance;\n    };\n  }\n\n  return _construct.apply(null, arguments);\n}\n\nfunction _slicedToArray(arr, i) {\n  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n  var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n  if (_i == null) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n\n  var _s, _e;\n\n  try {\n    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n  return arr2;\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/**\r\n * @description: 睡眠函数\r\n * @param {number} number\r\n */\nvar sleep = /*#__PURE__*/function () {\n  var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(number) {\n    return regeneratorRuntime.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            return _context.abrupt(\"return\", new Promise(function (resolve) {\n              return setTimeout(resolve, number);\n            }));\n\n          case 1:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee);\n  }));\n\n  return function sleep(_x) {\n    return _ref.apply(this, arguments);\n  };\n}();\n\nfunction setLocal(key, value, time) {\n  var now = new Date(); // `item` is an object which contains the original value\n  // as well as the time when it's supposed to expire\n\n  var item = {\n    value: value,\n    expiry: now.getTime() + time\n  };\n  localStorage.setItem(key, JSON.stringify(item));\n}\n\nfunction getLocal(key) {\n  var itemStr = localStorage.getItem(key); // if the item doesn't exist, return null\n\n  if (!itemStr) {\n    return null;\n  }\n\n  var item = JSON.parse(itemStr);\n  var now = new Date(); // compare the expiry time of the item with the current time\n\n  if (now.getTime() > item.expiry) {\n    // If the item is expired, delete the item from storage\n    // and return null\n    localStorage.removeItem(key);\n    return null;\n  }\n\n  return item.value;\n}\n\nvar store = {\n  setLocal: setLocal,\n  getLocal: getLocal\n};\n // https://www.sohamkamani.com/blog/javascript-localstorage-with-time-expiry/#full-example\n\nfunction deepEqual(object1, object2) {\n  var keys1 = Object.keys(object1);\n  var keys2 = Object.keys(object2);\n\n  if (keys1.length !== keys2.length) {\n    return false;\n  }\n\n  for (var index = 0; index < keys1.length; index++) {\n    var val1 = object1[keys1[index]];\n    var val2 = object2[keys2[index]];\n    var areObjects = isObject(val1) && isObject(val2);\n\n    if (areObjects && !deepEqual(val1, val2) || !areObjects && val1 !== val2) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction isObject(object) {\n  return object != null && _typeof(object) === 'object';\n}\n\nfunction dateTominutes(string) {\n  if (!string) return 0;\n  var hasModifier = string.startsWith('-');\n\n  var _string$match = string.match(/\\d+/g),\n      _string$match2 = _slicedToArray(_string$match, 3),\n      day = _string$match2[0],\n      hours = _string$match2[1],\n      minutes = _string$match2[2];\n\n  var result = day * 24 * 60 + hours * 60 + minutes;\n\n  if (hasModifier) {\n    return -result;\n  }\n\n  return result;\n}\n\n/**\r\n * @description:\r\n * @param {Function} fn\r\n * @param {number} wait\r\n */\nfunction debounce(fn, wait) {\n  var timer = null;\n  return function () {\n    if (timer !== null) {\n      clearTimeout(timer);\n    }\n\n    timer = setTimeout(fn, wait);\n  };\n}\n\n/**\r\n * @description:\r\n * @param {Function} fn\r\n * @param {number} delay\r\n */\nfunction throttle(fn, delay) {\n  var flag = true;\n  return function () {\n    if (flag) {\n      flag = false;\n      fn.apply(void 0, arguments);\n      setTimeout(function () {\n        flag = true;\n      }, delay);\n    }\n  };\n}\n\nvar mapTag = '[object Map]';\nvar setTag = '[object Set]';\nvar arrayTag = '[object Array]';\nvar objectTag = '[object Object]';\nvar argsTag = '[object Arguments]';\nvar boolTag = '[object Boolean]';\nvar dateTag = '[object Date]';\nvar numberTag = '[object Number]';\nvar stringTag = '[object String]';\nvar symbolTag = '[object Symbol]';\nvar errorTag = '[object Error]';\nvar regexpTag = '[object RegExp]';\nvar funcTag = '[object Function]';\nvar deepTag = [mapTag, setTag, arrayTag, objectTag, argsTag];\n\nfunction forEach(array, iteratee) {\n  var index = -1;\n  var length = array.length;\n\n  while (++index < length) {\n    iteratee(array[index], index);\n  }\n\n  return array;\n}\n\nfunction isObject$1(target) {\n  var type = _typeof(target);\n\n  return target !== null && (type === 'object' || type === 'function');\n}\n\nfunction getType(target) {\n  return Object.prototype.toString.call(target);\n}\n\nfunction getInit(target) {\n  var Ctor = target.constructor;\n  return new Ctor();\n}\n\nfunction cloneSymbol(targe) {\n  return Object(Symbol.prototype.valueOf.call(targe));\n}\n\nfunction cloneReg(targe) {\n  var reFlags = /\\w*$/;\n  var result = new targe.constructor(targe.source, reFlags.exec(targe));\n  result.lastIndex = targe.lastIndex;\n  return result;\n}\n\nfunction cloneFunction(func) {\n  var bodyReg = /(?<={)(.|\\n)+(?=})/m;\n  var paramReg = /(?<=\\().+(?=\\)\\s+{)/;\n  var funcString = func.toString();\n\n  if (func.prototype) {\n    var param = paramReg.exec(funcString);\n    var body = bodyReg.exec(funcString);\n\n    if (body) {\n      if (param) {\n        var paramArr = param[0].split(',');\n        return _construct(Function, _toConsumableArray(paramArr).concat([body[0]]));\n      } else {\n        return new Function(body[0]);\n      }\n    } else {\n      return null;\n    }\n  } else {\n    return eval(funcString);\n  }\n}\n\nfunction cloneOtherType(targe, type) {\n  var Ctor = targe.constructor;\n\n  switch (type) {\n    case boolTag:\n    case numberTag:\n    case stringTag:\n    case errorTag:\n    case dateTag:\n      return new Ctor(targe);\n\n    case regexpTag:\n      return cloneReg(targe);\n\n    case symbolTag:\n      return cloneSymbol(targe);\n\n    case funcTag:\n      return cloneFunction(targe);\n\n    default:\n      return null;\n  }\n}\n\nfunction clone(target) {\n  var map = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new WeakMap();\n\n  // 克隆原始类型\n  if (!isObject$1(target)) {\n    return target;\n  } // 初始化\n\n\n  var type = getType(target);\n  var cloneTarget;\n\n  if (deepTag.includes(type)) {\n    cloneTarget = getInit(target);\n  } else {\n    return cloneOtherType(target, type);\n  } // 防止循环引用\n\n\n  if (map.get(target)) {\n    return map.get(target);\n  }\n\n  map.set(target, cloneTarget); // 克隆set\n\n  if (type === setTag) {\n    target.forEach(function (value) {\n      cloneTarget.add(clone(value, map));\n    });\n    return cloneTarget;\n  } // 克隆map\n\n\n  if (type === mapTag) {\n    target.forEach(function (value, key) {\n      cloneTarget.set(key, clone(value, map));\n    });\n    return cloneTarget;\n  } // 克隆对象和数组\n\n\n  var keys = type === arrayTag ? undefined : Object.keys(target);\n  forEach(keys || target, function (value, key) {\n    if (keys) {\n      key = value;\n    }\n\n    cloneTarget[key] = clone(target[key], map);\n  });\n  return cloneTarget;\n}\n// https://juejin.cn/post/6844903929705136141\n\n/**\r\n * @description:\r\n * @param {string} url\r\n * @param {function} callback\r\n */\nfunction loadJS(url, callback) {\n  if (!url) {\n    throw new Error('loadJs 请输入连接');\n  }\n\n  var script = document.createElement('script');\n  script.type = 'text/javascript';\n\n  script.onload = function () {\n    callback === null || callback === void 0 ? void 0 : callback();\n  };\n\n  script.src = url;\n  document.getElementsByTagName('head')[0].appendChild(script);\n}\n\n/**\r\n * @description:\r\n * @param {*} objUrl\r\n */\nfunction objToUrl(objUrl) {\n  // 如果只有 url 一个参数那么直接返回 url\n  if (Object.keys(objUrl).length === 1 && Object.keys(objUrl)[0] === 'url') {\n    return objUrl.url;\n  }\n\n  var path = \"\".concat(objUrl.url, \"?\");\n\n  for (var item in objUrl) {\n    if (item !== 'url' && objUrl[item]) {\n      path += \"\".concat(item, \"=\").concat(encodeURIComponent(objUrl[item]), \"&\");\n    }\n  } // 把 最后一个 & 截取掉\n\n\n  return path.substring(0, path.lastIndexOf('&'));\n}\n// console.log(objToUrl(url))\n\n/**\r\n * @description:\r\n * @param {*} baseUrl\r\n */\nfunction urlToObj(baseUrl) {\n  if (!baseUrl || !baseUrl.split('?')[1]) {\n    return baseUrl;\n  }\n\n  var path = baseUrl.split('?')[0]; //   name=gxl&value=123 解析成 ['name=gxl','value=123']\n\n  var urlParams = baseUrl.split('?')[1].split('&');\n  var obj = {};\n  obj.url = path;\n\n  for (var i = 0; i < urlParams.length; i++) {\n    var tmpArr = urlParams[i].split('=');\n    obj[decodeURIComponent(tmpArr[0])] = decodeURIComponent(tmpArr[1]);\n  }\n\n  return obj;\n}\n\nfunction clearParams(args) {\n  //  判断参数是否是对象\n  if (Object.prototype.toString.call(args) !== '[object Object]') {\n    return {};\n  }\n\n  var result = args;\n\n  for (var key in result) {\n    if (result[key] === '' || result[key] === undefined) {\n      delete result[key];\n    } // 如果属性还是个对象\n\n\n    if (Object.prototype.toString.call(result[key]) === '[object Object]') {\n      // 值如果是空对象那么直接删除\n      if (JSON.stringify(result[key]) === '{}') {\n        delete result[key];\n      } // 递归遍历\n\n\n      clearParams(result[key]);\n    }\n  }\n\n  return result;\n}\n\nfunction getDataType(value) {\n  if (!value) {\n    throw new Error('请传入需要返回类型的数据');\n  }\n\n  return Object.prototype.toString.call(value).slice(8, -1);\n}\n\nObject.defineProperty(exports, 'uuid', {\n  enumerable: true,\n  get: function () {\n    return nanoid.nanoid;\n  }\n});\nexports.clearParams = clearParams;\nexports.dateTominutes = dateTominutes;\nexports.debounce = debounce;\nexports.deepEqual = deepEqual;\nexports.deepcopy = clone;\nexports.getDataType = getDataType;\nexports.loadJS = loadJS;\nexports.objToUrl = objToUrl;\nexports.randomStr = randomStr;\nexports.sleep = sleep;\nexports.store = store;\nexports.throttle = throttle;\nexports.urlToObj = urlToObj;\n"]}