baa73cdd7eb33cb4d995ba26e68414f4.json 28 KB

1
  1. {"remainingRequest":"E:\\item\\newItem\\admin\\node_modules\\babel-loader\\lib\\index.js!E:\\item\\newItem\\admin\\src\\libs\\tools.js","dependencies":[{"path":"E:\\item\\newItem\\admin\\src\\libs\\tools.js","mtime":1677828270182},{"path":"E:\\item\\newItem\\admin\\babel.config.js","mtime":1677828270071},{"path":"E:\\item\\newItem\\admin\\.babelrc","mtime":1677828270070},{"path":"E:\\item\\newItem\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\newItem\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJFOi9pdGVtL25ld0l0ZW0vYWRtaW4vbm9kZV9tb2R1bGVzL0B2dWUvYmFiZWwtcHJlc2V0LWFwcC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5mcm9tLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnNldC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zcGxpdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzIjsKLy8gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyB8IENSTUVCIFsgQ1JNRULotYvog73lvIDlj5HogIXvvIzliqnlipvkvIHkuJrlj5HlsZUgXQovLyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIHwgQ29weXJpZ2h0IChjKSAyMDE2fjIwMjMgaHR0cHM6Ly93d3cuY3JtZWIuY29tIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gfCBMaWNlbnNlZCBDUk1FQuW5tuS4jeaYr+iHqueUsei9r+S7tu+8jOacque7j+iuuOWPr+S4jeiDveWOu+aOiUNSTUVC55u45YWz54mI5p2DCi8vICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gfCBBdXRob3I6IENSTUVCIFRlYW0gPGFkbWluQGNybWViLmNvbT4KLy8gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpleHBvcnQgdmFyIGZvckVhY2ggPSBmdW5jdGlvbiBmb3JFYWNoKGFyciwgZm4pIHsKICBpZiAoIWFyci5sZW5ndGggfHwgIWZuKSByZXR1cm47CiAgdmFyIGkgPSAtMTsKICB2YXIgbGVuID0gYXJyLmxlbmd0aDsKCiAgd2hpbGUgKCsraSA8IGxlbikgewogICAgdmFyIGl0ZW0gPSBhcnJbaV07CiAgICBmbihpdGVtLCBpLCBhcnIpOwogIH0KfTsKLyoqDQogKiBAcGFyYW0ge0FycmF5fSBhcnIxDQogKiBAcGFyYW0ge0FycmF5fSBhcnIyDQogKiBAZGVzY3JpcHRpb24g5b6X5Yiw5Lik5Liq5pWw57uE55qE5Lqk6ZuGLCDkuKTkuKrmlbDnu4TnmoTlhYPntKDkuLrmlbDlgLzmiJblrZfnrKbkuLINCiAqLwoKZXhwb3J0IHZhciBnZXRJbnRlcnNlY3Rpb24gPSBmdW5jdGlvbiBnZXRJbnRlcnNlY3Rpb24oYXJyMSwgYXJyMikgewogIHZhciBsZW4gPSBNYXRoLm1pbihhcnIxLmxlbmd0aCwgYXJyMi5sZW5ndGgpOwogIHZhciBpID0gLTE7CiAgdmFyIHJlcyA9IFtdOwoKICB3aGlsZSAoKytpIDwgbGVuKSB7CiAgICB2YXIgaXRlbSA9IGFycjJbaV07CiAgICBpZiAoYXJyMS5pbmRleE9mKGl0ZW0pID4gLTEpIHJlcy5wdXNoKGl0ZW0pOwogIH0KCiAgcmV0dXJuIHJlczsKfTsKLyoqDQogKiBAcGFyYW0ge0FycmF5fSBhcnIxDQogKiBAcGFyYW0ge0FycmF5fSBhcnIyDQogKiBAZGVzY3JpcHRpb24g5b6X5Yiw5Lik5Liq5pWw57uE55qE5bm26ZuGLCDkuKTkuKrmlbDnu4TnmoTlhYPntKDkuLrmlbDlgLzmiJblrZfnrKbkuLINCiAqLwoKZXhwb3J0IHZhciBnZXRVbmlvbiA9IGZ1bmN0aW9uIGdldFVuaW9uKGFycjEsIGFycjIpIHsKICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkoYXJyMSksIF90b0NvbnN1bWFibGVBcnJheShhcnIyKSkpKTsKfTsKLyoqDQogKiBAcGFyYW0ge0FycmF5fSB0YXJnZXQg55uu5qCH5pWw57uEDQogKiBAcGFyYW0ge0FycmF5fSBhcnIg6ZyA6KaB5p+l6K+i55qE5pWw57uEDQogKiBAZGVzY3JpcHRpb24g5Yik5pat6KaB5p+l6K+i55qE5pWw57uE5piv5ZCm6Iez5bCR5pyJ5LiA5Liq5YWD57Sg5YyF5ZCr5Zyo55uu5qCH5pWw57uE5LitDQogKi8KCmV4cG9ydCB2YXIgaGFzT25lT2YgPSBmdW5jdGlvbiBoYXNPbmVPZih0YXJnZXRhcnIsIGFycikgewogIHJldHVybiB0YXJnZXRhcnIuc29tZShmdW5jdGlvbiAoXykgewogICAgcmV0dXJuIGFyci5pbmRleE9mKF8pID4gLTE7CiAgfSk7Cn07Ci8qKg0KICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSB2YWx1ZSDopoHpqozor4HnmoTlrZfnrKbkuLLmiJbmlbDlgLwNCiAqIEBwYXJhbSB7Kn0gdmFsaWRMaXN0IOeUqOadpemqjOivgeeahOWIl+ihqA0KICovCgpleHBvcnQgZnVuY3Rpb24gb25lT2YodmFsdWUsIHZhbGlkTGlzdCkgewogIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsaWRMaXN0Lmxlbmd0aDsgaSsrKSB7CiAgICBpZiAodmFsdWUgPT09IHZhbGlkTGlzdFtpXSkgewogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICB9CgogIHJldHVybiBmYWxzZTsKfQovKioNCiAqIEBwYXJhbSB7TnVtYmVyfSB0aW1lU3RhbXAg5Yik5pat5pe26Ze05oiz5qC85byP5piv5ZCm5piv5q+r56eSDQogKiBAcmV0dXJucyB7Qm9vbGVhbn0NCiAqLwoKdmFyIGlzTWlsbGlzZWNvbmQgPSBmdW5jdGlvbiBpc01pbGxpc2Vjb25kKHRpbWVTdGFtcCkgewogIHZhciB0aW1lU3RyID0gU3RyaW5nKHRpbWVTdGFtcCk7CiAgcmV0dXJuIHRpbWVTdHIubGVuZ3RoID4gMTA7Cn07Ci8qKg0KICogQHBhcmFtIHtOdW1iZXJ9IHRpbWVTdGFtcCDkvKDlhaXnmoTml7bpl7TmiLMNCiAqIEBwYXJhbSB7TnVtYmVyfSBjdXJyZW50VGltZSDlvZPliY3ml7bpl7Tml7bpl7TmiLMNCiAqIEByZXR1cm5zIHtCb29sZWFufSDkvKDlhaXnmoTml7bpl7TmiLPmmK/lkKbml6nkuo7lvZPliY3ml7bpl7TmiLMNCiAqLwoKCnZhciBpc0Vhcmx5ID0gZnVuY3Rpb24gaXNFYXJseSh0aW1lU3RhbXAsIGN1cnJlbnRUaW1lKSB7CiAgcmV0dXJuIHRpbWVTdGFtcCA8IGN1cnJlbnRUaW1lOwp9OwovKioNCiAqIEBwYXJhbSB7TnVtYmVyfSBudW0g5pWw5YC8DQogKiBAcmV0dXJucyB7U3RyaW5nfSDlpITnkIblkI7nmoTlrZfnrKbkuLINCiAqIEBkZXNjcmlwdGlvbiDlpoLmnpzkvKDlhaXnmoTmlbDlgLzlsI/kuo4xMO+8jOWNs+S9jeaVsOWPquaciTHkvY3vvIzliJnlnKjliY3pnaLooaXlhYUwDQogKi8KCgp2YXIgZ2V0SGFuZGxlZFZhbHVlID0gZnVuY3Rpb24gZ2V0SGFuZGxlZFZhbHVlKG51bSkgewogIHJldHVybiBudW0gPCAxMCA/ICcwJyArIG51bSA6IG51bTsKfTsKLyoqDQogKiBAcGFyYW0ge051bWJlcn0gdGltZVN0YW1wIOS8oOWFpeeahOaXtumXtOaIsw0KICogQHBhcmFtIHtOdW1iZXJ9IHN0YXJ0VHlwZSDopoHov5Tlm57nmoTml7bpl7TlrZfnrKbkuLLnmoTmoLzlvI/nsbvlnovvvIzkvKDlhaUneWVhcifliJnov5Tlm57lubTlvIDlpLTnmoTlrozmlbTml7bpl7QNCiAqLwoKCnZhciBnZXREYXRlID0gZnVuY3Rpb24gZ2V0RGF0ZSh0aW1lU3RhbXAsIHN0YXJ0VHlwZSkgewogIHZhciBkID0gbmV3IERhdGUodGltZVN0YW1wICogMTAwMCk7CiAgdmFyIHllYXIgPSBkLmdldEZ1bGxZZWFyKCk7CiAgdmFyIG1vbnRoID0gZ2V0SGFuZGxlZFZhbHVlKGQuZ2V0TW9udGgoKSArIDEpOwogIHZhciBkYXRlID0gZ2V0SGFuZGxlZFZhbHVlKGQuZ2V0RGF0ZSgpKTsKICB2YXIgaG91cnMgPSBnZXRIYW5kbGVkVmFsdWUoZC5nZXRIb3VycygpKTsKICB2YXIgbWludXRlcyA9IGdldEhhbmRsZWRWYWx1ZShkLmdldE1pbnV0ZXMoKSk7CiAgdmFyIHNlY29uZCA9IGdldEhhbmRsZWRWYWx1ZShkLmdldFNlY29uZHMoKSk7CiAgdmFyIHJlc1N0ciA9ICcnOwogIGlmIChzdGFydFR5cGUgPT09ICd5ZWFyJykgcmVzU3RyID0geWVhciArICctJyArIG1vbnRoICsgJy0nICsgZGF0ZSArICcgJyArIGhvdXJzICsgJzonICsgbWludXRlcyArICc6JyArIHNlY29uZDtlbHNlIHJlc1N0ciA9IG1vbnRoICsgJy0nICsgZGF0ZSArICcgJyArIGhvdXJzICsgJzonICsgbWludXRlczsKICByZXR1cm4gcmVzU3RyOwp9OwovKioNCiAqIEBwYXJhbSB7U3RyaW5nfE51bWJlcn0gdGltZVN0YW1wIOaXtumXtOaIsw0KICogQHJldHVybnMge1N0cmluZ30g55u45a+55pe26Ze05a2X56ym5LiyDQogKi8KCgpleHBvcnQgdmFyIGdldFJlbGF0aXZlVGltZSA9IGZ1bmN0aW9uIGdldFJlbGF0aXZlVGltZSh0aW1lU3RhbXApIHsKICAvLyDliKTmlq3lvZPliY3kvKDlhaXnmoTml7bpl7TmiLPmmK/np5LmoLzlvI/ov5jmmK/mr6vnp5IKICB2YXIgSVNfTUlMTElTRUNPTkQgPSBpc01pbGxpc2Vjb25kKHRpbWVTdGFtcCk7IC8vIOWmguaenOaYr+avq+enkuagvOW8j+WImei9rOS4uuenkuagvOW8jwoKICBpZiAoSVNfTUlMTElTRUNPTkQpIE1hdGguZmxvb3IodGltZVN0YW1wIC89IDEwMDApOyAvLyDkvKDlhaXnmoTml7bpl7TmiLPlj6/ku6XmmK/mlbDlgLzmiJblrZfnrKbkuLLnsbvlnovvvIzov5nph4znu5/kuIDovazkuLrmlbDlgLznsbvlnosKCiAgdGltZVN0YW1wID0gTnVtYmVyKHRpbWVTdGFtcCk7IC8vIOiOt+WPluW9k+WJjeaXtumXtOaXtumXtOaIswoKICB2YXIgY3VycmVudFRpbWUgPSBNYXRoLmZsb29yKERhdGUucGFyc2UobmV3IERhdGUoKSkgLyAxMDAwKTsgLy8g5Yik5pat5Lyg5YWl5pe26Ze05oiz5piv5ZCm5pep5LqO5b2T5YmN5pe26Ze05oizCgogIHZhciBJU19FQVJMWSA9IGlzRWFybHkodGltZVN0YW1wLCBjdXJyZW50VGltZSk7IC8vIOiOt+WPluS4pOS4quaXtumXtOaIs+W3ruWAvAoKICB2YXIgZGlmZiA9IGN1cnJlbnRUaW1lIC0gdGltZVN0YW1wOyAvLyDlpoLmnpxJU19FQVJMWeS4umZhbHNl5YiZ5beu5YC85Y+W5Y+NCgogIGlmICghSVNfRUFSTFkpIGRpZmYgPSAtZGlmZjsKICB2YXIgcmVzU3RyID0gJyc7CiAgdmFyIGRpclN0ciA9IElTX0VBUkxZID8gJ+WJjScgOiAn5ZCOJzsgLy8g5bCR5LqO562J5LqONTnnp5IKCiAgaWYgKGRpZmYgPD0gNTkpIHJlc1N0ciA9IGRpZmYgKyAn56eSJyArIGRpclN0cjsgLy8g5aSa5LqONTnnp5LvvIzlsJHkuo7nrYnkuo41OeWIhumSnzU556eSCiAgZWxzZSBpZiAoZGlmZiA+IDU5ICYmIGRpZmYgPD0gMzU5OSkgcmVzU3RyID0gTWF0aC5mbG9vcihkaWZmIC8gNjApICsgJ+WIhumSnycgKyBkaXJTdHI7IC8vIOWkmuS6jjU55YiG6ZKfNTnnp5LvvIzlsJHkuo7nrYnkuo4yM+Wwj+aXtjU55YiG6ZKfNTnnp5IKICBlbHNlIGlmIChkaWZmID4gMzU5OSAmJiBkaWZmIDw9IDg2Mzk5KSByZXNTdHIgPSBNYXRoLmZsb29yKGRpZmYgLyAzNjAwKSArICflsI/ml7YnICsgZGlyU3RyOyAvLyDlpJrkuo4yM+Wwj+aXtjU55YiG6ZKfNTnnp5LvvIzlsJHkuo7nrYnkuo4yOeWkqTU55YiG6ZKfNTnnp5IKICBlbHNlIGlmIChkaWZmID4gODYzOTkgJiYgZGlmZiA8PSAyNjIzODU5KSByZXNTdHIgPSBNYXRoLmZsb29yKGRpZmYgLyA4NjQwMCkgKyAn5aSpJyArIGRpclN0cjsgLy8g5aSa5LqOMjnlpKk1OeWIhumSnzU556eS77yM5bCR5LqOMzY05aSpMjPlsI/ml7Y1OeWIhumSnzU556eS77yM5LiU5Lyg5YWl55qE5pe26Ze05oiz5pep5LqO5b2T5YmNCiAgZWxzZSBpZiAoZGlmZiA+IDI2MjM4NTkgJiYgZGlmZiA8PSAzMTU2Nzg1OSAmJiBJU19FQVJMWSkgcmVzU3RyID0gZ2V0RGF0ZSh0aW1lU3RhbXApO2Vsc2UgcmVzU3RyID0gZ2V0RGF0ZSh0aW1lU3RhbXAsICd5ZWFyJyk7CiAgcmV0dXJuIHJlc1N0cjsKfTsKLyoqDQogKiBAcmV0dXJucyB7U3RyaW5nfSDlvZPliY3mtY/op4jlmajlkI3np7ANCiAqLwoKZXhwb3J0IHZhciBnZXRFeHBsb3JlciA9IGZ1bmN0aW9uIGdldEV4cGxvcmVyKCkgewogIHZhciB1YSA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50OwoKICB2YXIgaXNFeHBsb3JlciA9IGZ1bmN0aW9uIGlzRXhwbG9yZXIoZXhwKSB7CiAgICByZXR1cm4gdWEuaW5kZXhPZihleHApID4gLTE7CiAgfTsKCiAgaWYgKGlzRXhwbG9yZXIoJ01TSUUnKSkgcmV0dXJuICdJRSc7ZWxzZSBpZiAoaXNFeHBsb3JlcignRmlyZWZveCcpKSByZXR1cm4gJ0ZpcmVmb3gnO2Vsc2UgaWYgKGlzRXhwbG9yZXIoJ0Nocm9tZScpKSByZXR1cm4gJ0Nocm9tZSc7ZWxzZSBpZiAoaXNFeHBsb3JlcignT3BlcmEnKSkgcmV0dXJuICdPcGVyYSc7ZWxzZSBpZiAoaXNFeHBsb3JlcignU2FmYXJpJykpIHJldHVybiAnU2FmYXJpJzsKfTsKLyoqDQogKiBAZGVzY3JpcHRpb24g57uR5a6a5LqL5Lu2IG9uKGVsZW1lbnQsIGV2ZW50LCBoYW5kbGVyKQ0KICovCgpleHBvcnQgdmFyIG9uID0gZnVuY3Rpb24gKCkgewogIGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICByZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQsIGV2ZW50LCBoYW5kbGVyKSB7CiAgICAgIGlmIChlbGVtZW50ICYmIGV2ZW50ICYmIGhhbmRsZXIpIHsKICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGhhbmRsZXIsIGZhbHNlKTsKICAgICAgfQogICAgfTsKICB9IGVsc2UgewogICAgcmV0dXJuIGZ1bmN0aW9uIChlbGVtZW50LCBldmVudCwgaGFuZGxlcikgewogICAgICBpZiAoZWxlbWVudCAmJiBldmVudCAmJiBoYW5kbGVyKSB7CiAgICAgICAgZWxlbWVudC5hdHRhY2hFdmVudCgnb24nICsgZXZlbnQsIGhhbmRsZXIpOwogICAgICB9CiAgICB9OwogIH0KfSgpOwovKioNCiAqIEBkZXNjcmlwdGlvbiDop6Pnu5Hkuovku7Ygb2ZmKGVsZW1lbnQsIGV2ZW50LCBoYW5kbGVyKQ0KICovCgpleHBvcnQgdmFyIG9mZiA9IGZ1bmN0aW9uICgpIHsKICBpZiAoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcikgewogICAgcmV0dXJuIGZ1bmN0aW9uIChlbGVtZW50LCBldmVudCwgaGFuZGxlcikgewogICAgICBpZiAoZWxlbWVudCAmJiBldmVudCkgewogICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgaGFuZGxlciwgZmFsc2UpOwogICAgICB9CiAgICB9OwogIH0gZWxzZSB7CiAgICByZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQsIGV2ZW50LCBoYW5kbGVyKSB7CiAgICAgIGlmIChlbGVtZW50ICYmIGV2ZW50KSB7CiAgICAgICAgZWxlbWVudC5kZXRhY2hFdmVudCgnb24nICsgZXZlbnQsIGhhbmRsZXIpOwogICAgICB9CiAgICB9OwogIH0KfSgpOwovKioNCiAqIOWIpOaWreS4gOS4quWvueixoeaYr+WQpuWtmOWcqGtlee+8jOWmguaenOS8oOWFpeesrOS6jOS4quWPguaVsGtlee+8jOWImeaYr+WIpOaWrei/meS4qm9iauWvueixoeaYr+WQpuWtmOWcqGtleei/meS4quWxnuaApw0KICog5aaC5p6c5rKh5pyJ5Lyg5YWla2V56L+Z5Liq5Y+C5pWw77yM5YiZ5Yik5patb2Jq5a+56LGh5piv5ZCm5pyJ6ZSu5YC85a+5DQogKi8KCmV4cG9ydCB2YXIgaGFzS2V5ID0gZnVuY3Rpb24gaGFzS2V5KG9iaiwga2V5KSB7CiAgaWYgKGtleSkgcmV0dXJuIGtleSBpbiBvYmo7ZWxzZSB7CiAgICB2YXIga2V5c0FyciA9IE9iamVjdC5rZXlzKG9iaik7CiAgICByZXR1cm4ga2V5c0Fyci5sZW5ndGg7CiAgfQp9OwovKioNCiAqIEBwYXJhbSB7Kn0gb2JqMSDlr7nosaENCiAqIEBwYXJhbSB7Kn0gb2JqMiDlr7nosaENCiAqIEBkZXNjcmlwdGlvbiDliKTmlq3kuKTkuKrlr7nosaHmmK/lkKbnm7jnrYnvvIzov5nkuKTkuKrlr7nosaHnmoTlgLzlj6rog73mmK/mlbDlrZfmiJblrZfnrKbkuLINCiAqLwoKZXhwb3J0IHZhciBvYmpFcXVhbCA9IGZ1bmN0aW9uIG9iakVxdWFsKG9iajEsIG9iajIpIHsKICB2YXIga2V5c0FycjEgPSBPYmplY3Qua2V5cyhvYmoxKTsKICB2YXIga2V5c0FycjIgPSBPYmplY3Qua2V5cyhvYmoyKTsKICBpZiAoa2V5c0FycjEubGVuZ3RoICE9PSBrZXlzQXJyMi5sZW5ndGgpIHJldHVybiBmYWxzZTtlbHNlIGlmIChrZXlzQXJyMS5sZW5ndGggPT09IDAgJiYga2V5c0FycjIubGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZTsKICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8KICBlbHNlIHJldHVybiAha2V5c0FycjEuc29tZShmdW5jdGlvbiAoa2V5KSB7CiAgICByZXR1cm4gb2JqMVtrZXldICE9IG9iajJba2V5XTsKICB9KTsKfTsKLyoqDQogKiDljrvpmaTkuZjms5XorqHnrpflh7rnjrDlpJrkvY3lsI/mlbANCiAqIEBwYXJhbSBhcmcx6L+U5Zue5YC877yMYXJnMuS5mOS7peeahOWPguaVsA0KICovCgpleHBvcnQgdmFyIGFjY011bCA9IGZ1bmN0aW9uIGFjY011bChhcmcxLCBhcmcyKSB7CiAgdmFyIG0gPSAwLAogICAgICBzMSA9IGFyZzEudG9TdHJpbmcoKSwKICAgICAgczIgPSBhcmcyLnRvU3RyaW5nKCk7CgogIHRyeSB7CiAgICBtICs9IHMxLnNwbGl0KCcuJylbMV0ubGVuZ3RoOwogIH0gY2F0Y2ggKGUpIHt9CgogIHRyeSB7CiAgICBtICs9IHMyLnNwbGl0KCcuJylbMV0ubGVuZ3RoOwogIH0gY2F0Y2ggKGUpIHt9CgogIHJldHVybiBOdW1iZXIoczEucmVwbGFjZSgnLicsICcnKSkgKiBOdW1iZXIoczIucmVwbGFjZSgnLicsICcnKSkgLyBNYXRoLnBvdygxMCwgbSk7Cn07"},{"version":3,"names":["forEach","arr","fn","length","i","len","item","getIntersection","arr1","arr2","Math","min","res","indexOf","push","getUnion","Array","from","Set","hasOneOf","targetarr","some","_","oneOf","value","validList","isMillisecond","timeStamp","timeStr","String","isEarly","currentTime","getHandledValue","num","getDate","startType","d","Date","year","getFullYear","month","getMonth","date","hours","getHours","minutes","getMinutes","second","getSeconds","resStr","getRelativeTime","IS_MILLISECOND","floor","Number","parse","IS_EARLY","diff","dirStr","getExplorer","ua","window","navigator","userAgent","isExplorer","exp","on","document","addEventListener","element","event","handler","attachEvent","off","removeEventListener","detachEvent","hasKey","obj","key","keysArr","Object","keys","objEqual","obj1","obj2","keysArr1","keysArr2","accMul","arg1","arg2","m","s1","toString","s2","split","e","replace","pow"],"sources":["E:/item/newItem/admin/src/libs/tools.js"],"sourcesContent":["// +---------------------------------------------------------------------\r\n// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]\r\n// +---------------------------------------------------------------------\r\n// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.\r\n// +---------------------------------------------------------------------\r\n// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权\r\n// +---------------------------------------------------------------------\r\n// | Author: CRMEB Team <admin@crmeb.com>\r\n// +---------------------------------------------------------------------\r\n\r\nexport const forEach = (arr, fn) => {\r\n if (!arr.length || !fn) return;\r\n let i = -1;\r\n let len = arr.length;\r\n while (++i < len) {\r\n let item = arr[i];\r\n fn(item, i, arr);\r\n }\r\n};\r\n\r\n/**\r\n * @param {Array} arr1\r\n * @param {Array} arr2\r\n * @description 得到两个数组的交集, 两个数组的元素为数值或字符串\r\n */\r\nexport const getIntersection = (arr1, arr2) => {\r\n let len = Math.min(arr1.length, arr2.length);\r\n let i = -1;\r\n let res = [];\r\n while (++i < len) {\r\n const item = arr2[i];\r\n if (arr1.indexOf(item) > -1) res.push(item);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * @param {Array} arr1\r\n * @param {Array} arr2\r\n * @description 得到两个数组的并集, 两个数组的元素为数值或字符串\r\n */\r\nexport const getUnion = (arr1, arr2) => {\r\n return Array.from(new Set([...arr1, ...arr2]));\r\n};\r\n\r\n/**\r\n * @param {Array} target 目标数组\r\n * @param {Array} arr 需要查询的数组\r\n * @description 判断要查询的数组是否至少有一个元素包含在目标数组中\r\n */\r\nexport const hasOneOf = (targetarr, arr) => {\r\n return targetarr.some((_) => arr.indexOf(_) > -1);\r\n};\r\n\r\n/**\r\n * @param {String|Number} value 要验证的字符串或数值\r\n * @param {*} validList 用来验证的列表\r\n */\r\nexport function oneOf(value, validList) {\r\n for (let i = 0; i < validList.length; i++) {\r\n if (value === validList[i]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * @param {Number} timeStamp 判断时间戳格式是否是毫秒\r\n * @returns {Boolean}\r\n */\r\nconst isMillisecond = (timeStamp) => {\r\n const timeStr = String(timeStamp);\r\n return timeStr.length > 10;\r\n};\r\n\r\n/**\r\n * @param {Number} timeStamp 传入的时间戳\r\n * @param {Number} currentTime 当前时间时间戳\r\n * @returns {Boolean} 传入的时间戳是否早于当前时间戳\r\n */\r\nconst isEarly = (timeStamp, currentTime) => {\r\n return timeStamp < currentTime;\r\n};\r\n\r\n/**\r\n * @param {Number} num 数值\r\n * @returns {String} 处理后的字符串\r\n * @description 如果传入的数值小于10,即位数只有1位,则在前面补充0\r\n */\r\nconst getHandledValue = (num) => {\r\n return num < 10 ? '0' + num : num;\r\n};\r\n\r\n/**\r\n * @param {Number} timeStamp 传入的时间戳\r\n * @param {Number} startType 要返回的时间字符串的格式类型,传入'year'则返回年开头的完整时间\r\n */\r\nconst getDate = (timeStamp, startType) => {\r\n const d = new Date(timeStamp * 1000);\r\n const year = d.getFullYear();\r\n const month = getHandledValue(d.getMonth() + 1);\r\n const date = getHandledValue(d.getDate());\r\n const hours = getHandledValue(d.getHours());\r\n const minutes = getHandledValue(d.getMinutes());\r\n const second = getHandledValue(d.getSeconds());\r\n let resStr = '';\r\n if (startType === 'year') resStr = year + '-' + month + '-' + date + ' ' + hours + ':' + minutes + ':' + second;\r\n else resStr = month + '-' + date + ' ' + hours + ':' + minutes;\r\n return resStr;\r\n};\r\n\r\n/**\r\n * @param {String|Number} timeStamp 时间戳\r\n * @returns {String} 相对时间字符串\r\n */\r\nexport const getRelativeTime = (timeStamp) => {\r\n // 判断当前传入的时间戳是秒格式还是毫秒\r\n const IS_MILLISECOND = isMillisecond(timeStamp);\r\n // 如果是毫秒格式则转为秒格式\r\n if (IS_MILLISECOND) Math.floor((timeStamp /= 1000));\r\n // 传入的时间戳可以是数值或字符串类型,这里统一转为数值类型\r\n timeStamp = Number(timeStamp);\r\n // 获取当前时间时间戳\r\n const currentTime = Math.floor(Date.parse(new Date()) / 1000);\r\n // 判断传入时间戳是否早于当前时间戳\r\n const IS_EARLY = isEarly(timeStamp, currentTime);\r\n // 获取两个时间戳差值\r\n let diff = currentTime - timeStamp;\r\n // 如果IS_EARLY为false则差值取反\r\n if (!IS_EARLY) diff = -diff;\r\n let resStr = '';\r\n const dirStr = IS_EARLY ? '前' : '后';\r\n // 少于等于59秒\r\n if (diff <= 59) resStr = diff + '秒' + dirStr;\r\n // 多于59秒,少于等于59分钟59秒\r\n else if (diff > 59 && diff <= 3599) resStr = Math.floor(diff / 60) + '分钟' + dirStr;\r\n // 多于59分钟59秒,少于等于23小时59分钟59秒\r\n else if (diff > 3599 && diff <= 86399) resStr = Math.floor(diff / 3600) + '小时' + dirStr;\r\n // 多于23小时59分钟59秒,少于等于29天59分钟59秒\r\n else if (diff > 86399 && diff <= 2623859) resStr = Math.floor(diff / 86400) + '天' + dirStr;\r\n // 多于29天59分钟59秒,少于364天23小时59分钟59秒,且传入的时间戳早于当前\r\n else if (diff > 2623859 && diff <= 31567859 && IS_EARLY) resStr = getDate(timeStamp);\r\n else resStr = getDate(timeStamp, 'year');\r\n return resStr;\r\n};\r\n\r\n/**\r\n * @returns {String} 当前浏览器名称\r\n */\r\nexport const getExplorer = () => {\r\n const ua = window.navigator.userAgent;\r\n const isExplorer = (exp) => {\r\n return ua.indexOf(exp) > -1;\r\n };\r\n if (isExplorer('MSIE')) return 'IE';\r\n else if (isExplorer('Firefox')) return 'Firefox';\r\n else if (isExplorer('Chrome')) return 'Chrome';\r\n else if (isExplorer('Opera')) return 'Opera';\r\n else if (isExplorer('Safari')) return 'Safari';\r\n};\r\n\r\n/**\r\n * @description 绑定事件 on(element, event, handler)\r\n */\r\nexport const on = (function () {\r\n if (document.addEventListener) {\r\n return function (element, event, handler) {\r\n if (element && event && handler) {\r\n element.addEventListener(event, handler, false);\r\n }\r\n };\r\n } else {\r\n return function (element, event, handler) {\r\n if (element && event && handler) {\r\n element.attachEvent('on' + event, handler);\r\n }\r\n };\r\n }\r\n})();\r\n\r\n/**\r\n * @description 解绑事件 off(element, event, handler)\r\n */\r\nexport const off = (function () {\r\n if (document.removeEventListener) {\r\n return function (element, event, handler) {\r\n if (element && event) {\r\n element.removeEventListener(event, handler, false);\r\n }\r\n };\r\n } else {\r\n return function (element, event, handler) {\r\n if (element && event) {\r\n element.detachEvent('on' + event, handler);\r\n }\r\n };\r\n }\r\n})();\r\n\r\n/**\r\n * 判断一个对象是否存在key,如果传入第二个参数key,则是判断这个obj对象是否存在key这个属性\r\n * 如果没有传入key这个参数,则判断obj对象是否有键值对\r\n */\r\nexport const hasKey = (obj, key) => {\r\n if (key) return key in obj;\r\n else {\r\n let keysArr = Object.keys(obj);\r\n return keysArr.length;\r\n }\r\n};\r\n\r\n/**\r\n * @param {*} obj1 对象\r\n * @param {*} obj2 对象\r\n * @description 判断两个对象是否相等,这两个对象的值只能是数字或字符串\r\n */\r\nexport const objEqual = (obj1, obj2) => {\r\n const keysArr1 = Object.keys(obj1);\r\n const keysArr2 = Object.keys(obj2);\r\n if (keysArr1.length !== keysArr2.length) return false;\r\n else if (keysArr1.length === 0 && keysArr2.length === 0) return true;\r\n /* eslint-disable-next-line */ else return !keysArr1.some((key) => obj1[key] != obj2[key]);\r\n};\r\n\r\n/**\r\n * 去除乘法计算出现多位小数\r\n * @param arg1返回值,arg2乘以的参数\r\n */\r\nexport const accMul = (arg1, arg2) => {\r\n var m = 0,\r\n s1 = arg1.toString(),\r\n s2 = arg2.toString();\r\n try {\r\n m += s1.split('.')[1].length;\r\n } catch (e) {}\r\n try {\r\n m += s2.split('.')[1].length;\r\n } catch (e) {}\r\n return (Number(s1.replace('.', '')) * Number(s2.replace('.', ''))) / Math.pow(10, m);\r\n};\r\n"],"mappings":"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"}]}