{"remainingRequest":"D:\\源码\\vue-element-admin-master\\node_modules\\babel-loader\\lib\\index.js!D:\\源码\\vue-element-admin-master\\node_modules\\eslint-loader\\index.js??ref--13-0!D:\\源码\\vue-element-admin-master\\src\\utils\\index.js","dependencies":[{"path":"D:\\源码\\vue-element-admin-master\\src\\utils\\index.js","mtime":1649647926000},{"path":"D:\\源码\\vue-element-admin-master\\babel.config.js","mtime":1649647926000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF90eXBlb2YgZnJvbSAiRDovXHU2RTkwXHU3ODAxL3Z1ZS1lbGVtZW50LWFkbWluLW1hc3Rlci9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudGVzdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnN0aWNreS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnBhZC1zdGFydC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmpvaW4uanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zcGxpdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZyb20uanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zZXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLm1hdGNoLmpzIjsKCi8qKgogKiBDcmVhdGVkIGJ5IFBhbkppYUNoZW4gb24gMTYvMTEvMTguCiAqLwoKLyoqCiAqIFBhcnNlIHRoZSB0aW1lIHRvIHN0cmluZwogKiBAcGFyYW0geyhPYmplY3R8c3RyaW5nfG51bWJlcil9IHRpbWUKICogQHBhcmFtIHtzdHJpbmd9IGNGb3JtYXQKICogQHJldHVybnMge3N0cmluZyB8IG51bGx9CiAqLwpleHBvcnQgZnVuY3Rpb24gcGFyc2VUaW1lKHRpbWUsIGNGb3JtYXQpIHsKICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCB8fCAhdGltZSkgewogICAgcmV0dXJuIG51bGw7CiAgfQoKICB2YXIgZm9ybWF0ID0gY0Zvcm1hdCB8fCAne3l9LXttfS17ZH0ge2h9OntpfTp7c30nOwogIHZhciBkYXRlOwoKICBpZiAoX3R5cGVvZih0aW1lKSA9PT0gJ29iamVjdCcpIHsKICAgIGRhdGUgPSB0aW1lOwogIH0gZWxzZSB7CiAgICBpZiAodHlwZW9mIHRpbWUgPT09ICdzdHJpbmcnKSB7CiAgICAgIGlmICgvXlswLTldKyQvLnRlc3QodGltZSkpIHsKICAgICAgICAvLyBzdXBwb3J0ICIxNTQ4MjIxNDkwNjM4IgogICAgICAgIHRpbWUgPSBwYXJzZUludCh0aW1lKTsKICAgICAgfSBlbHNlIHsKICAgICAgICAvLyBzdXBwb3J0IHNhZmFyaQogICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQzMTA5NTMvaW52YWxpZC1kYXRlLWluLXNhZmFyaQogICAgICAgIHRpbWUgPSB0aW1lLnJlcGxhY2UobmV3IFJlZ0V4cCgvLS9nbSksICcvJyk7CiAgICAgIH0KICAgIH0KCiAgICBpZiAodHlwZW9mIHRpbWUgPT09ICdudW1iZXInICYmIHRpbWUudG9TdHJpbmcoKS5sZW5ndGggPT09IDEwKSB7CiAgICAgIHRpbWUgPSB0aW1lICogMTAwMDsKICAgIH0KCiAgICBkYXRlID0gbmV3IERhdGUodGltZSk7CiAgfQoKICB2YXIgZm9ybWF0T2JqID0gewogICAgeTogZGF0ZS5nZXRGdWxsWWVhcigpLAogICAgbTogZGF0ZS5nZXRNb250aCgpICsgMSwKICAgIGQ6IGRhdGUuZ2V0RGF0ZSgpLAogICAgaDogZGF0ZS5nZXRIb3VycygpLAogICAgaTogZGF0ZS5nZXRNaW51dGVzKCksCiAgICBzOiBkYXRlLmdldFNlY29uZHMoKSwKICAgIGE6IGRhdGUuZ2V0RGF5KCkKICB9OwogIHZhciB0aW1lX3N0ciA9IGZvcm1hdC5yZXBsYWNlKC97KFt5bWRoaXNhXSkrfS9nLCBmdW5jdGlvbiAocmVzdWx0LCBrZXkpIHsKICAgIHZhciB2YWx1ZSA9IGZvcm1hdE9ialtrZXldOyAvLyBOb3RlOiBnZXREYXkoKSByZXR1cm5zIDAgb24gU3VuZGF5CgogICAgaWYgKGtleSA9PT0gJ2EnKSB7CiAgICAgIHJldHVybiBbJ+aXpScsICfkuIAnLCAn5LqMJywgJ+S4iScsICflm5snLCAn5LqUJywgJ+WFrSddW3ZhbHVlXTsKICAgIH0KCiAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpOwogIH0pOwogIHJldHVybiB0aW1lX3N0cjsKfQovKioKICogQHBhcmFtIHtudW1iZXJ9IHRpbWUKICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbgogKiBAcmV0dXJucyB7c3RyaW5nfQogKi8KCmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUaW1lKHRpbWUsIG9wdGlvbikgewogIGlmICgoJycgKyB0aW1lKS5sZW5ndGggPT09IDEwKSB7CiAgICB0aW1lID0gcGFyc2VJbnQodGltZSkgKiAxMDAwOwogIH0gZWxzZSB7CiAgICB0aW1lID0gK3RpbWU7CiAgfQoKICB2YXIgZCA9IG5ldyBEYXRlKHRpbWUpOwogIHZhciBub3cgPSBEYXRlLm5vdygpOwogIHZhciBkaWZmID0gKG5vdyAtIGQpIC8gMTAwMDsKCiAgaWYgKGRpZmYgPCAzMCkgewogICAgcmV0dXJuICfliJrliJonOwogIH0gZWxzZSBpZiAoZGlmZiA8IDM2MDApIHsKICAgIC8vIGxlc3MgMSBob3VyCiAgICByZXR1cm4gTWF0aC5jZWlsKGRpZmYgLyA2MCkgKyAn5YiG6ZKf5YmNJzsKICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwICogMjQpIHsKICAgIHJldHVybiBNYXRoLmNlaWwoZGlmZiAvIDM2MDApICsgJ+Wwj+aXtuWJjSc7CiAgfSBlbHNlIGlmIChkaWZmIDwgMzYwMCAqIDI0ICogMikgewogICAgcmV0dXJuICcx5aSp5YmNJzsKICB9CgogIGlmIChvcHRpb24pIHsKICAgIHJldHVybiBwYXJzZVRpbWUodGltZSwgb3B0aW9uKTsKICB9IGVsc2UgewogICAgcmV0dXJuIGQuZ2V0TW9udGgoKSArIDEgKyAn5pyIJyArIGQuZ2V0RGF0ZSgpICsgJ+aXpScgKyBkLmdldEhvdXJzKCkgKyAn5pe2JyArIGQuZ2V0TWludXRlcygpICsgJ+WIhic7CiAgfQp9Ci8qKgogKiBAcGFyYW0ge3N0cmluZ30gdXJsCiAqIEByZXR1cm5zIHtPYmplY3R9CiAqLwoKZXhwb3J0IGZ1bmN0aW9uIGdldFF1ZXJ5T2JqZWN0KHVybCkgewogIHVybCA9IHVybCA9PSBudWxsID8gd2luZG93LmxvY2F0aW9uLmhyZWYgOiB1cmw7CiAgdmFyIHNlYXJjaCA9IHVybC5zdWJzdHJpbmcodXJsLmxhc3RJbmRleE9mKCc/JykgKyAxKTsKICB2YXIgb2JqID0ge307CiAgdmFyIHJlZyA9IC8oW14/Jj1dKyk9KFtePyY9XSopL2c7CiAgc2VhcmNoLnJlcGxhY2UocmVnLCBmdW5jdGlvbiAocnMsICQxLCAkMikgewogICAgdmFyIG5hbWUgPSBkZWNvZGVVUklDb21wb25lbnQoJDEpOwogICAgdmFyIHZhbCA9IGRlY29kZVVSSUNvbXBvbmVudCgkMik7CiAgICB2YWwgPSBTdHJpbmcodmFsKTsKICAgIG9ialtuYW1lXSA9IHZhbDsKICAgIHJldHVybiByczsKICB9KTsKICByZXR1cm4gb2JqOwp9Ci8qKgogKiBAcGFyYW0ge3N0cmluZ30gaW5wdXQgdmFsdWUKICogQHJldHVybnMge251bWJlcn0gb3V0cHV0IHZhbHVlCiAqLwoKZXhwb3J0IGZ1bmN0aW9uIGJ5dGVMZW5ndGgoc3RyKSB7CiAgLy8gcmV0dXJucyB0aGUgYnl0ZSBsZW5ndGggb2YgYW4gdXRmOCBzdHJpbmcKICB2YXIgcyA9IHN0ci5sZW5ndGg7CgogIGZvciAodmFyIGkgPSBzdHIubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgIHZhciBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7CiAgICBpZiAoY29kZSA+IDB4N2YgJiYgY29kZSA8PSAweDdmZikgcysrO2Vsc2UgaWYgKGNvZGUgPiAweDdmZiAmJiBjb2RlIDw9IDB4ZmZmZikgcyArPSAyOwogICAgaWYgKGNvZGUgPj0gMHhEQzAwICYmIGNvZGUgPD0gMHhERkZGKSBpLS07CiAgfQoKICByZXR1cm4gczsKfQovKioKICogQHBhcmFtIHtBcnJheX0gYWN0dWFsCiAqIEByZXR1cm5zIHtBcnJheX0KICovCgpleHBvcnQgZnVuY3Rpb24gY2xlYW5BcnJheShhY3R1YWwpIHsKICB2YXIgbmV3QXJyYXkgPSBbXTsKCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3R1YWwubGVuZ3RoOyBpKyspIHsKICAgIGlmIChhY3R1YWxbaV0pIHsKICAgICAgbmV3QXJyYXkucHVzaChhY3R1YWxbaV0pOwogICAgfQogIH0KCiAgcmV0dXJuIG5ld0FycmF5Owp9Ci8qKgogKiBAcGFyYW0ge09iamVjdH0ganNvbgogKiBAcmV0dXJucyB7QXJyYXl9CiAqLwoKZXhwb3J0IGZ1bmN0aW9uIHBhcmFtKGpzb24pIHsKICBpZiAoIWpzb24pIHJldHVybiAnJzsKICByZXR1cm4gY2xlYW5BcnJheShPYmplY3Qua2V5cyhqc29uKS5tYXAoZnVuY3Rpb24gKGtleSkgewogICAgaWYgKGpzb25ba2V5XSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gJyc7CiAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGtleSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoanNvbltrZXldKTsKICB9KSkuam9pbignJicpOwp9Ci8qKgogKiBAcGFyYW0ge3N0cmluZ30gdXJsCiAqIEByZXR1cm5zIHtPYmplY3R9CiAqLwoKZXhwb3J0IGZ1bmN0aW9uIHBhcmFtMk9iaih1cmwpIHsKICB2YXIgc2VhcmNoID0gZGVjb2RlVVJJQ29tcG9uZW50KHVybC5zcGxpdCgnPycpWzFdKS5yZXBsYWNlKC9cKy9nLCAnICcpOwoKICBpZiAoIXNlYXJjaCkgewogICAgcmV0dXJuIHt9OwogIH0KCiAgdmFyIG9iaiA9IHt9OwogIHZhciBzZWFyY2hBcnIgPSBzZWFyY2guc3BsaXQoJyYnKTsKICBzZWFyY2hBcnIuZm9yRWFjaChmdW5jdGlvbiAodikgewogICAgdmFyIGluZGV4ID0gdi5pbmRleE9mKCc9Jyk7CgogICAgaWYgKGluZGV4ICE9PSAtMSkgewogICAgICB2YXIgbmFtZSA9IHYuc3Vic3RyaW5nKDAsIGluZGV4KTsKICAgICAgdmFyIHZhbCA9IHYuc3Vic3RyaW5nKGluZGV4ICsgMSwgdi5sZW5ndGgpOwogICAgICBvYmpbbmFtZV0gPSB2YWw7CiAgICB9CiAgfSk7CiAgcmV0dXJuIG9iajsKfQovKioKICogQHBhcmFtIHtzdHJpbmd9IHZhbAogKiBAcmV0dXJucyB7c3RyaW5nfQogKi8KCmV4cG9ydCBmdW5jdGlvbiBodG1sMlRleHQodmFsKSB7CiAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogIGRpdi5pbm5lckhUTUwgPSB2YWw7CiAgcmV0dXJuIGRpdi50ZXh0Q29udGVudCB8fCBkaXYuaW5uZXJUZXh0Owp9Ci8qKgogKiBNZXJnZXMgdHdvIG9iamVjdHMsIGdpdmluZyB0aGUgbGFzdCBvbmUgcHJlY2VkZW5jZQogKiBAcGFyYW0ge09iamVjdH0gdGFyZ2V0CiAqIEBwYXJhbSB7KE9iamVjdHxBcnJheSl9IHNvdXJjZQogKiBAcmV0dXJucyB7T2JqZWN0fQogKi8KCmV4cG9ydCBmdW5jdGlvbiBvYmplY3RNZXJnZSh0YXJnZXQsIHNvdXJjZSkgewogIGlmIChfdHlwZW9mKHRhcmdldCkgIT09ICdvYmplY3QnKSB7CiAgICB0YXJnZXQgPSB7fTsKICB9CgogIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZSkpIHsKICAgIHJldHVybiBzb3VyY2Uuc2xpY2UoKTsKICB9CgogIE9iamVjdC5rZXlzKHNvdXJjZSkuZm9yRWFjaChmdW5jdGlvbiAocHJvcGVydHkpIHsKICAgIHZhciBzb3VyY2VQcm9wZXJ0eSA9IHNvdXJjZVtwcm9wZXJ0eV07CgogICAgaWYgKF90eXBlb2Yoc291cmNlUHJvcGVydHkpID09PSAnb2JqZWN0JykgewogICAgICB0YXJnZXRbcHJvcGVydHldID0gb2JqZWN0TWVyZ2UodGFyZ2V0W3Byb3BlcnR5XSwgc291cmNlUHJvcGVydHkpOwogICAgfSBlbHNlIHsKICAgICAgdGFyZ2V0W3Byb3BlcnR5XSA9IHNvdXJjZVByb3BlcnR5OwogICAgfQogIH0pOwogIHJldHVybiB0YXJnZXQ7Cn0KLyoqCiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQKICogQHBhcmFtIHtzdHJpbmd9IGNsYXNzTmFtZQogKi8KCmV4cG9ydCBmdW5jdGlvbiB0b2dnbGVDbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpIHsKICBpZiAoIWVsZW1lbnQgfHwgIWNsYXNzTmFtZSkgewogICAgcmV0dXJuOwogIH0KCiAgdmFyIGNsYXNzU3RyaW5nID0gZWxlbWVudC5jbGFzc05hbWU7CiAgdmFyIG5hbWVJbmRleCA9IGNsYXNzU3RyaW5nLmluZGV4T2YoY2xhc3NOYW1lKTsKCiAgaWYgKG5hbWVJbmRleCA9PT0gLTEpIHsKICAgIGNsYXNzU3RyaW5nICs9ICcnICsgY2xhc3NOYW1lOwogIH0gZWxzZSB7CiAgICBjbGFzc1N0cmluZyA9IGNsYXNzU3RyaW5nLnN1YnN0cigwLCBuYW1lSW5kZXgpICsgY2xhc3NTdHJpbmcuc3Vic3RyKG5hbWVJbmRleCArIGNsYXNzTmFtZS5sZW5ndGgpOwogIH0KCiAgZWxlbWVudC5jbGFzc05hbWUgPSBjbGFzc1N0cmluZzsKfQovKioKICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKICogQHJldHVybnMge0RhdGV9CiAqLwoKZXhwb3J0IGZ1bmN0aW9uIGdldFRpbWUodHlwZSkgewogIGlmICh0eXBlID09PSAnc3RhcnQnKSB7CiAgICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSAzNjAwICogMTAwMCAqIDI0ICogOTA7CiAgfSBlbHNlIHsKICAgIHJldHVybiBuZXcgRGF0ZShuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpKTsKICB9Cn0KLyoqCiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMKICogQHBhcmFtIHtudW1iZXJ9IHdhaXQKICogQHBhcmFtIHtib29sZWFufSBpbW1lZGlhdGUKICogQHJldHVybiB7Kn0KICovCgpleHBvcnQgZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCwgaW1tZWRpYXRlKSB7CiAgdmFyIHRpbWVvdXQsIGFyZ3MsIGNvbnRleHQsIHRpbWVzdGFtcCwgcmVzdWx0OwoKICB2YXIgbGF0ZXIgPSBmdW5jdGlvbiBsYXRlcigpIHsKICAgIC8vIOaNruS4iuS4gOasoeinpuWPkeaXtumXtOmXtOmalAogICAgdmFyIGxhc3QgPSArbmV3IERhdGUoKSAtIHRpbWVzdGFtcDsgLy8g5LiK5qyh6KKr5YyF6KOF5Ye95pWw6KKr6LCD55So5pe26Ze06Ze06ZqUIGxhc3Qg5bCP5LqO6K6+5a6a5pe26Ze06Ze06ZqUIHdhaXQKCiAgICBpZiAobGFzdCA8IHdhaXQgJiYgbGFzdCA+IDApIHsKICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQobGF0ZXIsIHdhaXQgLSBsYXN0KTsKICAgIH0gZWxzZSB7CiAgICAgIHRpbWVvdXQgPSBudWxsOyAvLyDlpoLmnpzorr7lrprkuLppbW1lZGlhdGU9PT10cnVl77yM5Zug5Li65byA5aeL6L6555WM5bey57uP6LCD55So6L+H5LqG5q2k5aSE5peg6ZyA6LCD55SoCgogICAgICBpZiAoIWltbWVkaWF0ZSkgewogICAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7CiAgICAgICAgaWYgKCF0aW1lb3V0KSBjb250ZXh0ID0gYXJncyA9IG51bGw7CiAgICAgIH0KICAgIH0KICB9OwoKICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7CiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07CiAgICB9CgogICAgY29udGV4dCA9IHRoaXM7CiAgICB0aW1lc3RhbXAgPSArbmV3IERhdGUoKTsKICAgIHZhciBjYWxsTm93ID0gaW1tZWRpYXRlICYmICF0aW1lb3V0OyAvLyDlpoLmnpzlu7bml7bkuI3lrZjlnKjvvIzph43mlrDorr7lrprlu7bml7YKCiAgICBpZiAoIXRpbWVvdXQpIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGxhdGVyLCB3YWl0KTsKCiAgICBpZiAoY2FsbE5vdykgewogICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpOwogICAgICBjb250ZXh0ID0gYXJncyA9IG51bGw7CiAgICB9CgogICAgcmV0dXJuIHJlc3VsdDsKICB9Owp9Ci8qKgogKiBUaGlzIGlzIGp1c3QgYSBzaW1wbGUgdmVyc2lvbiBvZiBkZWVwIGNvcHkKICogSGFzIGEgbG90IG9mIGVkZ2UgY2FzZXMgYnVnCiAqIElmIHlvdSB3YW50IHRvIHVzZSBhIHBlcmZlY3QgZGVlcCBjb3B5LCB1c2UgbG9kYXNoJ3MgXy5jbG9uZURlZXAKICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZQogKiBAcmV0dXJucyB7T2JqZWN0fQogKi8KCmV4cG9ydCBmdW5jdGlvbiBkZWVwQ2xvbmUoc291cmNlKSB7CiAgaWYgKCFzb3VyY2UgJiYgX3R5cGVvZihzb3VyY2UpICE9PSAnb2JqZWN0JykgewogICAgdGhyb3cgbmV3IEVycm9yKCdlcnJvciBhcmd1bWVudHMnLCAnZGVlcENsb25lJyk7CiAgfQoKICB2YXIgdGFyZ2V0T2JqID0gc291cmNlLmNvbnN0cnVjdG9yID09PSBBcnJheSA/IFtdIDoge307CiAgT2JqZWN0LmtleXMoc291cmNlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXlzKSB7CiAgICBpZiAoc291cmNlW2tleXNdICYmIF90eXBlb2Yoc291cmNlW2tleXNdKSA9PT0gJ29iamVjdCcpIHsKICAgICAgdGFyZ2V0T2JqW2tleXNdID0gZGVlcENsb25lKHNvdXJjZVtrZXlzXSk7CiAgICB9IGVsc2UgewogICAgICB0YXJnZXRPYmpba2V5c10gPSBzb3VyY2Vba2V5c107CiAgICB9CiAgfSk7CiAgcmV0dXJuIHRhcmdldE9iajsKfQovKioKICogQHBhcmFtIHtBcnJheX0gYXJyCiAqIEByZXR1cm5zIHtBcnJheX0KICovCgpleHBvcnQgZnVuY3Rpb24gdW5pcXVlQXJyKGFycikgewogIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQoYXJyKSk7Cn0KLyoqCiAqIEByZXR1cm5zIHtzdHJpbmd9CiAqLwoKZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVuaXF1ZVN0cmluZygpIHsKICB2YXIgdGltZXN0YW1wID0gK25ldyBEYXRlKCkgKyAnJzsKICB2YXIgcmFuZG9tTnVtID0gcGFyc2VJbnQoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDY1NTM2KSArICcnOwogIHJldHVybiAoKyhyYW5kb21OdW0gKyB0aW1lc3RhbXApKS50b1N0cmluZygzMik7Cn0KLyoqCiAqIENoZWNrIGlmIGFuIGVsZW1lbnQgaGFzIGEgY2xhc3MKICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxtCiAqIEBwYXJhbSB7c3RyaW5nfSBjbHMKICogQHJldHVybnMge2Jvb2xlYW59CiAqLwoKZXhwb3J0IGZ1bmN0aW9uIGhhc0NsYXNzKGVsZSwgY2xzKSB7CiAgcmV0dXJuICEhZWxlLmNsYXNzTmFtZS5tYXRjaChuZXcgUmVnRXhwKCcoXFxzfF4pJyArIGNscyArICcoXFxzfCQpJykpOwp9Ci8qKgogKiBBZGQgY2xhc3MgdG8gZWxlbWVudAogKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbG0KICogQHBhcmFtIHtzdHJpbmd9IGNscwogKi8KCmV4cG9ydCBmdW5jdGlvbiBhZGRDbGFzcyhlbGUsIGNscykgewogIGlmICghaGFzQ2xhc3MoZWxlLCBjbHMpKSBlbGUuY2xhc3NOYW1lICs9ICcgJyArIGNsczsKfQovKioKICogUmVtb3ZlIGNsYXNzIGZyb20gZWxlbWVudAogKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbG0KICogQHBhcmFtIHtzdHJpbmd9IGNscwogKi8KCmV4cG9ydCBmdW5jdGlvbiByZW1vdmVDbGFzcyhlbGUsIGNscykgewogIGlmIChoYXNDbGFzcyhlbGUsIGNscykpIHsKICAgIHZhciByZWcgPSBuZXcgUmVnRXhwKCcoXFxzfF4pJyArIGNscyArICcoXFxzfCQpJyk7CiAgICBlbGUuY2xhc3NOYW1lID0gZWxlLmNsYXNzTmFtZS5yZXBsYWNlKHJlZywgJyAnKTsKICB9Cn0="},{"version":3,"names":["parseTime","time","cFormat","arguments","length","format","date","test","parseInt","replace","RegExp","toString","Date","formatObj","y","getFullYear","m","getMonth","d","getDate","h","getHours","i","getMinutes","s","getSeconds","a","getDay","time_str","result","key","value","padStart","formatTime","option","now","diff","Math","ceil","getQueryObject","url","window","location","href","search","substring","lastIndexOf","obj","reg","rs","$1","$2","name","decodeURIComponent","val","String","byteLength","str","code","charCodeAt","cleanArray","actual","newArray","push","param","json","Object","keys","map","undefined","encodeURIComponent","join","param2Obj","split","searchArr","forEach","v","index","indexOf","html2Text","div","document","createElement","innerHTML","textContent","innerText","objectMerge","target","source","Array","isArray","slice","property","sourceProperty","toggleClass","element","className","classString","nameIndex","substr","getTime","type","toDateString","debounce","func","wait","immediate","timeout","args","context","timestamp","later","last","setTimeout","apply","callNow","deepClone","Error","targetObj","constructor","uniqueArr","arr","from","Set","createUniqueString","randomNum","random","hasClass","ele","cls","match","addClass","removeClass"],"sources":["D:/源码/vue-element-admin-master/src/utils/index.js"],"sourcesContent":["/**\n * Created by PanJiaChen on 16/11/18.\n */\n\n/**\n * Parse the time to string\n * @param {(Object|string|number)} time\n * @param {string} cFormat\n * @returns {string | null}\n */\nexport function parseTime(time, cFormat) {\n if (arguments.length === 0 || !time) {\n return null\n }\n const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'\n let date\n if (typeof time === 'object') {\n date = time\n } else {\n if ((typeof time === 'string')) {\n if ((/^[0-9]+$/.test(time))) {\n // support \"1548221490638\"\n time = parseInt(time)\n } else {\n // support safari\n // https://stackoverflow.com/questions/4310953/invalid-date-in-safari\n time = time.replace(new RegExp(/-/gm), '/')\n }\n }\n\n if ((typeof time === 'number') && (time.toString().length === 10)) {\n time = time * 1000\n }\n date = new Date(time)\n }\n const formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n }\n const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {\n const value = formatObj[key]\n // Note: getDay() returns 0 on Sunday\n if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }\n return value.toString().padStart(2, '0')\n })\n return time_str\n}\n\n/**\n * @param {number} time\n * @param {string} option\n * @returns {string}\n */\nexport function formatTime(time, option) {\n if (('' + time).length === 10) {\n time = parseInt(time) * 1000\n } else {\n time = +time\n }\n const d = new Date(time)\n const now = Date.now()\n\n const diff = (now - d) / 1000\n\n if (diff < 30) {\n return '刚刚'\n } else if (diff < 3600) {\n // less 1 hour\n return Math.ceil(diff / 60) + '分钟前'\n } else if (diff < 3600 * 24) {\n return Math.ceil(diff / 3600) + '小时前'\n } else if (diff < 3600 * 24 * 2) {\n return '1天前'\n }\n if (option) {\n return parseTime(time, option)\n } else {\n return (\n d.getMonth() +\n 1 +\n '月' +\n d.getDate() +\n '日' +\n d.getHours() +\n '时' +\n d.getMinutes() +\n '分'\n )\n }\n}\n\n/**\n * @param {string} url\n * @returns {Object}\n */\nexport function getQueryObject(url) {\n url = url == null ? window.location.href : url\n const search = url.substring(url.lastIndexOf('?') + 1)\n const obj = {}\n const reg = /([^?&=]+)=([^?&=]*)/g\n search.replace(reg, (rs, $1, $2) => {\n const name = decodeURIComponent($1)\n let val = decodeURIComponent($2)\n val = String(val)\n obj[name] = val\n return rs\n })\n return obj\n}\n\n/**\n * @param {string} input value\n * @returns {number} output value\n */\nexport function byteLength(str) {\n // returns the byte length of an utf8 string\n let s = str.length\n for (var i = str.length - 1; i >= 0; i--) {\n const code = str.charCodeAt(i)\n if (code > 0x7f && code <= 0x7ff) s++\n else if (code > 0x7ff && code <= 0xffff) s += 2\n if (code >= 0xDC00 && code <= 0xDFFF) i--\n }\n return s\n}\n\n/**\n * @param {Array} actual\n * @returns {Array}\n */\nexport function cleanArray(actual) {\n const newArray = []\n for (let i = 0; i < actual.length; i++) {\n if (actual[i]) {\n newArray.push(actual[i])\n }\n }\n return newArray\n}\n\n/**\n * @param {Object} json\n * @returns {Array}\n */\nexport function param(json) {\n if (!json) return ''\n return cleanArray(\n Object.keys(json).map(key => {\n if (json[key] === undefined) return ''\n return encodeURIComponent(key) + '=' + encodeURIComponent(json[key])\n })\n ).join('&')\n}\n\n/**\n * @param {string} url\n * @returns {Object}\n */\nexport function param2Obj(url) {\n const search = decodeURIComponent(url.split('?')[1]).replace(/\\+/g, ' ')\n if (!search) {\n return {}\n }\n const obj = {}\n const searchArr = search.split('&')\n searchArr.forEach(v => {\n const index = v.indexOf('=')\n if (index !== -1) {\n const name = v.substring(0, index)\n const val = v.substring(index + 1, v.length)\n obj[name] = val\n }\n })\n return obj\n}\n\n/**\n * @param {string} val\n * @returns {string}\n */\nexport function html2Text(val) {\n const div = document.createElement('div')\n div.innerHTML = val\n return div.textContent || div.innerText\n}\n\n/**\n * Merges two objects, giving the last one precedence\n * @param {Object} target\n * @param {(Object|Array)} source\n * @returns {Object}\n */\nexport function objectMerge(target, source) {\n if (typeof target !== 'object') {\n target = {}\n }\n if (Array.isArray(source)) {\n return source.slice()\n }\n Object.keys(source).forEach(property => {\n const sourceProperty = source[property]\n if (typeof sourceProperty === 'object') {\n target[property] = objectMerge(target[property], sourceProperty)\n } else {\n target[property] = sourceProperty\n }\n })\n return target\n}\n\n/**\n * @param {HTMLElement} element\n * @param {string} className\n */\nexport function toggleClass(element, className) {\n if (!element || !className) {\n return\n }\n let classString = element.className\n const nameIndex = classString.indexOf(className)\n if (nameIndex === -1) {\n classString += '' + className\n } else {\n classString =\n classString.substr(0, nameIndex) +\n classString.substr(nameIndex + className.length)\n }\n element.className = classString\n}\n\n/**\n * @param {string} type\n * @returns {Date}\n */\nexport function getTime(type) {\n if (type === 'start') {\n return new Date().getTime() - 3600 * 1000 * 24 * 90\n } else {\n return new Date(new Date().toDateString())\n }\n}\n\n/**\n * @param {Function} func\n * @param {number} wait\n * @param {boolean} immediate\n * @return {*}\n */\nexport function debounce(func, wait, immediate) {\n let timeout, args, context, timestamp, result\n\n const later = function() {\n // 据上一次触发时间间隔\n const last = +new Date() - timestamp\n\n // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait\n if (last < wait && last > 0) {\n timeout = setTimeout(later, wait - last)\n } else {\n timeout = null\n // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用\n if (!immediate) {\n result = func.apply(context, args)\n if (!timeout) context = args = null\n }\n }\n }\n\n return function(...args) {\n context = this\n timestamp = +new Date()\n const callNow = immediate && !timeout\n // 如果延时不存在,重新设定延时\n if (!timeout) timeout = setTimeout(later, wait)\n if (callNow) {\n result = func.apply(context, args)\n context = args = null\n }\n\n return result\n }\n}\n\n/**\n * This is just a simple version of deep copy\n * Has a lot of edge cases bug\n * If you want to use a perfect deep copy, use lodash's _.cloneDeep\n * @param {Object} source\n * @returns {Object}\n */\nexport function deepClone(source) {\n if (!source && typeof source !== 'object') {\n throw new Error('error arguments', 'deepClone')\n }\n const targetObj = source.constructor === Array ? [] : {}\n Object.keys(source).forEach(keys => {\n if (source[keys] && typeof source[keys] === 'object') {\n targetObj[keys] = deepClone(source[keys])\n } else {\n targetObj[keys] = source[keys]\n }\n })\n return targetObj\n}\n\n/**\n * @param {Array} arr\n * @returns {Array}\n */\nexport function uniqueArr(arr) {\n return Array.from(new Set(arr))\n}\n\n/**\n * @returns {string}\n */\nexport function createUniqueString() {\n const timestamp = +new Date() + ''\n const randomNum = parseInt((1 + Math.random()) * 65536) + ''\n return (+(randomNum + timestamp)).toString(32)\n}\n\n/**\n * Check if an element has a class\n * @param {HTMLElement} elm\n * @param {string} cls\n * @returns {boolean}\n */\nexport function hasClass(ele, cls) {\n return !!ele.className.match(new RegExp('(\\\\s|^)' + cls + '(\\\\s|$)'))\n}\n\n/**\n * Add class to element\n * @param {HTMLElement} elm\n * @param {string} cls\n */\nexport function addClass(ele, cls) {\n if (!hasClass(ele, cls)) ele.className += ' ' + cls\n}\n\n/**\n * Remove class from element\n * @param {HTMLElement} elm\n * @param {string} cls\n */\nexport function removeClass(ele, cls) {\n if (hasClass(ele, cls)) {\n const reg = new RegExp('(\\\\s|^)' + cls + '(\\\\s|$)')\n ele.className = ele.className.replace(reg, ' ')\n }\n}\n"],"mappings":"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"}]}