| 1 |
- {"remainingRequest":"E:\\item\\newItem\\admin\\node_modules\\babel-loader\\lib\\index.js!E:\\item\\newItem\\admin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\item\\newItem\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\item\\newItem\\admin\\node_modules\\iview-loader\\index.js??ref--0-2!E:\\item\\newItem\\admin\\src\\pages\\setting\\devise\\diyIndex.vue?vue&type=script&crossorigin=anonymous&lang=js&","dependencies":[{"path":"E:\\item\\newItem\\admin\\src\\pages\\setting\\devise\\diyIndex.vue","mtime":1677828270231},{"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},{"path":"E:\\item\\newItem\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\newItem\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000},{"path":"E:\\item\\newItem\\admin\\node_modules\\iview-loader\\index.js","mtime":1570440814000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRTovaXRlbS9uZXdJdGVtL2FkbWluL25vZGVfbW9kdWxlcy9AdnVlL2JhYmVsLXByZXNldC1hcHAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc29ydC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCmltcG9ydCB7IGNhdGVnb3J5TGlzdCBhcyBfY2F0ZWdvcnlMaXN0LCBnZXREaXlJbmZvLCBzYXZlRGl5LCBnZXRVcmwsIHNldERlZmF1bHQsIHJlY292ZXJ5IH0gZnJvbSAnQC9hcGkvZGl5JzsKaW1wb3J0IHZ1ZWRyYWdnYWJsZSBmcm9tICd2dWVkcmFnZ2FibGUnOwppbXBvcnQgbVBhZ2UgZnJvbSAnQC9jb21wb25lbnRzL21vYmlsZVBhZ2VEaXkvaW5kZXguanMnOwppbXBvcnQgbUNvbmZpZyBmcm9tICdAL2NvbXBvbmVudHMvbW9iaWxlQ29uZmlnRGl5L2luZGV4LmpzJzsKaW1wb3J0IGZvb3RQYWdlIGZyb20gJ0AvY29tcG9uZW50cy9wYWdlc0Zvb3QnOwppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnOwppbXBvcnQgaHRtbDJjYW52YXMgZnJvbSAnaHRtbDJjYW52YXMnOwp2YXIgaWRHbG9iYWwgPSAwOwpleHBvcnQgZGVmYXVsdCB7CiAgaW5qZWN0OiBbJ3JlbG9hZCddLAogIG5hbWU6ICdpbmRleC52dWUnLAogIGNvbXBvbmVudHM6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7CiAgICBmb290UGFnZTogZm9vdFBhZ2UsCiAgICBodG1sMmNhbnZhczogaHRtbDJjYW52YXMsCiAgICBkcmFnZ2FibGU6IHZ1ZWRyYWdnYWJsZQogIH0sIG1QYWdlKSwgbUNvbmZpZyksCiAgZmlsdGVyczogewogICAgZmlsdGVyVHh0OiBmdW5jdGlvbiBmaWx0ZXJUeHQodmFsKSB7CiAgICAgIGlmICh2YWwpIHsKICAgICAgICByZXR1cm4gdmFsID0gdmFsLnN1YnN0cigwLCB2YWwubGVuZ3RoIC0gMSk7CiAgICAgIH0KICAgIH0KICB9LAogIGNvbXB1dGVkOiBfb2JqZWN0U3ByZWFkKHt9LCBtYXBTdGF0ZSh7CiAgICB0aXRsZVR4dDogZnVuY3Rpb24gdGl0bGVUeHQoc3RhdGUpIHsKICAgICAgcmV0dXJuIHN0YXRlLm1vYmlsZENvbmZpZy5wYWdlVGl0bGUgfHwgJ+mmlumhtSc7CiAgICB9LAogICAgbmFtZVR4dDogZnVuY3Rpb24gbmFtZVR4dChzdGF0ZSkgewogICAgICByZXR1cm4gc3RhdGUubW9iaWxkQ29uZmlnLnBhZ2VOYW1lIHx8ICfmqKHmnb8nOwogICAgfSwKICAgIHNob3dUeHQ6IGZ1bmN0aW9uIHNob3dUeHQoc3RhdGUpIHsKICAgICAgcmV0dXJuIHN0YXRlLm1vYmlsZENvbmZpZy5wYWdlU2hvdzsKICAgIH0sCiAgICBjb2xvclR4dDogZnVuY3Rpb24gY29sb3JUeHQoc3RhdGUpIHsKICAgICAgcmV0dXJuIHN0YXRlLm1vYmlsZENvbmZpZy5wYWdlQ29sb3I7CiAgICB9LAogICAgcGljVHh0OiBmdW5jdGlvbiBwaWNUeHQoc3RhdGUpIHsKICAgICAgcmV0dXJuIHN0YXRlLm1vYmlsZENvbmZpZy5wYWdlUGljOwogICAgfSwKICAgIGNvbG9yUGlja2VyVHh0OiBmdW5jdGlvbiBjb2xvclBpY2tlclR4dChzdGF0ZSkgewogICAgICByZXR1cm4gc3RhdGUubW9iaWxkQ29uZmlnLnBhZ2VDb2xvclBpY2tlcjsKICAgIH0sCiAgICB0YWJWYWxUeHQ6IGZ1bmN0aW9uIHRhYlZhbFR4dChzdGF0ZSkgewogICAgICByZXR1cm4gc3RhdGUubW9iaWxkQ29uZmlnLnBhZ2VUYWJWYWw7CiAgICB9LAogICAgcGljVXJsVHh0OiBmdW5jdGlvbiBwaWNVcmxUeHQoc3RhdGUpIHsKICAgICAgcmV0dXJuIHN0YXRlLm1vYmlsZENvbmZpZy5wYWdlUGljVXJsOwogICAgfQogIH0pKSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgY2xpZW50SGVpZ2h0OiAnJywKICAgICAgLy/pobXpnaLliqjmgIHpq5jluqYKICAgICAgcm9sbEhlaWdodDogJycsCiAgICAgIGxlZnRNZW51OiBbXSwKICAgICAgLy8g5bem5L6n6I+c5Y2VCiAgICAgIGxDb25maWc6IFtdLAogICAgICAvLyDlt6bkvqfnu4Tku7YKICAgICAgbUNvbmZpZzogW10sCiAgICAgIC8vIOS4remXtOe7hOS7tua4suafkwogICAgICByQ29uZmlnOiBbXSwKICAgICAgLy8g5Y+z5L6n57uE5Lu26YWN572uCiAgICAgIGFjdGl2ZUNvbmZpZ05hbWU6ICcnLAogICAgICBwcm9wc09iajoge30sCiAgICAgIC8vIOe7hOS7tuS8oOmAkueahOaVsOaNriwKICAgICAgYWN0aXZlSW5kZXg6IC0xMDAsCiAgICAgIC8vIOmAieS4reeahOS4i+aghwogICAgICBudW1iZXI6IDAsCiAgICAgIHBhZ2VJZDogJycsCiAgICAgIHBhZ2VOYW1lOiAnJywKICAgICAgcGFnZVR5cGU6ICcnLAogICAgICBjYXRlZ29yeTogW10sCiAgICAgIHRhYkxpc3Q6IFt7CiAgICAgICAgdGl0bGU6ICfnu4Tku7blupMnLAogICAgICAgIGtleTogMAogICAgICB9LCB7CiAgICAgICAgdGl0bGU6ICfpobXpnaLpk77mjqUnLAogICAgICAgIGtleTogMQogICAgICB9XSwKICAgICAgdGFiQ3VyOiAwLAogICAgICB1cmxMaXN0OiBbXSwKICAgICAgZm9vdEFjdGl2ZTogZmFsc2UsCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICBpc1NlYXJjaDogZmFsc2UsCiAgICAgIGlzVGFiOiBmYWxzZSwKICAgICAgaXNGbGxvdzogZmFsc2UKICAgIH07CiAgfSwKICBiZWZvcmVSb3V0ZUxlYXZlOiBmdW5jdGlvbiBiZWZvcmVSb3V0ZUxlYXZlKHRvLCBmcm9tLCBuZXh0KSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwoKICAgIC8vIOWvvOiIquemu+W8gOivpee7hOS7tueahOWvueW6lOi3r+eUseaXtuiwg+eUqAogICAgLy8g5Y+v5Lul6K6/6Zeu57uE5Lu25a6e5L6LIGB0aGlzYAogICAgaWYgKHRvLm5hbWUgPT09ICdzZXR0aW5nX2RldmlzZScpIHsKICAgICAgdGhpcy4kTW9kYWwuY29uZmlybSh7CiAgICAgICAgdGl0bGU6ICfnoa7lrpropoHnprvlvIDlvZPliY3pobXlkJfvvJ8nLAogICAgICAgIGNvbnRlbnQ6ICfnprvlvIDliY3or7fnoa7orqTkv53lrZjmgqjnmoTorr7orqEnLAogICAgICAgIG9rVGV4dDogJ+S/neWtmOW5tuemu+W8gCcsCiAgICAgICAgY2FuY2VsVGV4dDogJ+emu+W8gCcsCiAgICAgICAgbG9hZGluZzogdHJ1ZSwKICAgICAgICBvbk9rOiBmdW5jdGlvbiBvbk9rKCkgewogICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIF90aGlzLnNhdmVDb25maWcoKTsKCiAgICAgICAgICAgIF90aGlzLiRNb2RhbC5yZW1vdmUoKTsKCiAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgIH0sIDE1MDApOwogICAgICAgIH0sCiAgICAgICAgb25DYW5jZWw6IGZ1bmN0aW9uIG9uQ2FuY2VsKCkgewogICAgICAgICAgbmV4dCgpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9IC8vIOaJp+ihjOi3r+eUsei3s+i9rAoKICB9LAogIGJlZm9yZUNyZWF0ZTogZnVuY3Rpb24gYmVmb3JlQ3JlYXRlKCkgewogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvdGl0bGVVcGRhdGEnLCAnJyk7CiAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9uYW1lVXBkYXRhJywgJycpOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvc2hvd1VwZGF0YScsIDEpOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvY29sb3JVcGRhdGEnLCAwKTsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3BpY1VwZGF0YScsIDApOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvcGlja2VyVXBkYXRhJywgJyNmNWY1ZjUnKTsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3JhZGlvVXBkYXRhJywgMCk7CiAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9waWN1cmxVcGRhdGEnLCAnJyk7CiAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9TRVRFTVBUWScpOwogIH0sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgIHRoaXMuY2F0ZWdvcnlMaXN0KCk7CiAgICB0aGlzLmdldFVybExpc3QoKTsKICAgIHRoaXMucGFnZUlkID0gdGhpcy4kcm91dGUucXVlcnkuaWQ7CiAgICB0aGlzLnBhZ2VOYW1lID0gdGhpcy4kcm91dGUucXVlcnkubmFtZTsKICAgIHRoaXMucGFnZVR5cGUgPSB0aGlzLiRyb3V0ZS5xdWVyeS50eXBlOwogICAgdGhpcy5sQ29uZmlnID0gdGhpcy5vYmpUb0FycihtUGFnZSk7CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzMiA9IHRoaXM7CgogICAgdmFyIGltZ0xpc3QgPSB7CiAgICAgIGltZ0xpc3Q6IFtyZXF1aXJlKCdAL2Fzc2V0cy9pbWFnZXMvZm9vdC0wMDUucG5nJyksIHJlcXVpcmUoJ0AvYXNzZXRzL2ltYWdlcy9mb290LTAwNi5wbmcnKV0sCiAgICAgIG5hbWU6ICfotK3nianovaYnLAogICAgICBsaW5rOiAnL3BhZ2VzL29yZGVyX2FkZGNhcnQvb3JkZXJfYWRkY2FydCcKICAgIH07CiAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgIF90aGlzMi4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvRk9PVEVSJywgewogICAgICAgIHRpdGxlOiAn5LiT6aKY6aG15piv5ZCm5pi+56S6JywKICAgICAgICBuYW1lOiBpbWdMaXN0CiAgICAgIH0pOwoKICAgICAgX3RoaXMyLmFycmF5U29ydCgpOwoKICAgICAgaWYgKF90aGlzMi5wYWdlSWQgIT0gMCkgewogICAgICAgIF90aGlzMi5nZXREZWZhdWx0Q29uZmlnKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX3RoaXMyLnNob3dUaXRsZSgpOwogICAgICB9CgogICAgICBfdGhpczIuY2xpZW50SGVpZ2h0ID0gIiIuY29uY2F0KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpIC0gNjUuODE7IC8v6I635Y+W5rWP6KeI5Zmo5Y+v6KeG5Yy65Z+f6auY5bqmCgogICAgICB2YXIgSCA9ICIiLmNvbmNhdChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAtIDE4MDsKICAgICAgX3RoaXMyLnJvbGxIZWlnaHQgPSBIID4gNjUwID8gNjUwIDogSDsKICAgICAgdmFyIHRoYXQgPSBfdGhpczI7CgogICAgICB3aW5kb3cub25yZXNpemUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdGhhdC5jbGllbnRIZWlnaHQgPSAiIi5jb25jYXQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkgLSA2NS44MTsKICAgICAgICB2YXIgSCA9ICIiLmNvbmNhdChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAtIDE4MDsKICAgICAgICB0aGF0LnJvbGxIZWlnaHQgPSBIID4gNjUwID8gNjUwIDogSDsKICAgICAgfTsKICAgIH0pOwogIH0sCiAgbWV0aG9kczogewogICAgbGVmdFJlbW92ZTogZnVuY3Rpb24gbGVmdFJlbW92ZShfcmVmKSB7CiAgICAgIHZhciB0byA9IF9yZWYudG8sCiAgICAgICAgICBmcm9tID0gX3JlZi5mcm9tLAogICAgICAgICAgaXRlbSA9IF9yZWYuaXRlbSwKICAgICAgICAgIGNsb25lID0gX3JlZi5jbG9uZSwKICAgICAgICAgIG9sZEluZGV4ID0gX3JlZi5vbGRJbmRleCwKICAgICAgICAgIG5ld0luZGV4ID0gX3JlZi5uZXdJbmRleDsKCiAgICAgIGlmICh0aGlzLmlzU2VhcmNoICYmIG5ld0luZGV4ID09IDApIHsKICAgICAgICBpZiAoaXRlbS5fdW5kZXJseWluZ192bV8ubmFtZSA9PSAnel93ZWNoYXRfYXR0ZW50aW9uJykgewogICAgICAgICAgdGhpcy5pc0ZsbG93ID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvQVJSQVlSRUFTVCcsIHRoaXMubUNvbmZpZ1swXS5udW0pOwogICAgICAgICAgdGhpcy5tQ29uZmlnLnNwbGljZSgwLCAxKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGlmICh0aGlzLmlzRmxsb3cgPSB0cnVlICYmIG5ld0luZGV4ID49IDEpIHsKICAgICAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9BUlJBWVJFQVNUJywgdGhpcy5tQ29uZmlnWzBdLm51bSk7CiAgICAgIH0KICAgIH0sCiAgICBvbk1vdmU6IGZ1bmN0aW9uIG9uTW92ZShlKSB7CiAgICAgIGlmIChlLnJlbGF0ZWRDb250ZXh0LmVsZW1lbnQubmFtZSA9PSAnc2VhcmNoX2JveCcpIHJldHVybiBmYWxzZTsKICAgICAgaWYgKGUucmVsYXRlZENvbnRleHQuZWxlbWVudC5uYW1lID09ICduYXZfYmFyJykgcmV0dXJuIGZhbHNlOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0sCiAgICBvbkNvcHk6IGZ1bmN0aW9uIG9uQ29weShjb3B5RGF0YSkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKCiAgICAgIHRoaXMuJGNvcHlUZXh0KGNvcHlEYXRhKS50aGVuKGZ1bmN0aW9uIChtZXNzYWdlKSB7CiAgICAgICAgX3RoaXMzLiRNZXNzYWdlLnN1Y2Nlc3MoJ+WkjeWItuaIkOWKnycpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgX3RoaXMzLiRNZXNzYWdlLmVycm9yKCflpI3liLblpLHotKUnKTsKICAgICAgfSk7CiAgICB9LAogICAgb25FcnJvcjogZnVuY3Rpb24gb25FcnJvcigpIHsKICAgICAgdGhpcy4kTWVzc2FnZS5lcnJvcign5aSN5Yi25aSx6LSlJyk7CiAgICB9LAogICAgLy/orr7nva7pu5jorqTmlbDmja4KICAgIHNldG1vcmVuOiBmdW5jdGlvbiBzZXRtb3JlbigpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CgogICAgICB0aGlzLiRNb2RhbC5jb25maXJtKHsKICAgICAgICB0aXRsZTogJ+S/neWtmOS4uum7mOiupOaVsOaNricsCiAgICAgICAgY29udGVudDogJ+aCqOehruWumuWwhuW9k+WJjeiuvuiuoeiuvuS4uum7mOiupOaVsOaNruWQl++8nycsCiAgICAgICAgb25PazogZnVuY3Rpb24gb25PaygpIHsKICAgICAgICAgIHNldERlZmF1bHQoX3RoaXM0LnBhZ2VJZCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgIF90aGlzNC4kTWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOwogICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICBfdGhpczQuJE1lc3NhZ2UuZXJyb3IoZXJyLm1zZyk7CiAgICAgICAgICB9KTsKICAgICAgICB9LAogICAgICAgIG9uQ2FuY2VsOiBmdW5jdGlvbiBvbkNhbmNlbCgpIHt9CiAgICAgIH0pOwogICAgfSwKICAgIC8v5oGi5aSN6buY6K6kCiAgICBnZXRtb3JlbjogZnVuY3Rpb24gZ2V0bW9yZW4oKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwoKICAgICAgdGhpcy4kTW9kYWwuY29uZmlybSh7CiAgICAgICAgdGl0bGU6ICfmgaLlpI3pu5jorqTmlbDmja4nLAogICAgICAgIGNvbnRlbnQ6ICfmgqjnoa7lrprmgaLlpI3kuLrkuYvliY3kv53lrZjnmoTpu5jorqTmlbDmja7lkJfvvJ8nLAogICAgICAgIG9uT2s6IGZ1bmN0aW9uIG9uT2soKSB7CiAgICAgICAgICByZWNvdmVyeShfdGhpczUucGFnZUlkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgX3RoaXM1LiRNZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CgogICAgICAgICAgICBfdGhpczUucmVsb2FkKCk7CiAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgIF90aGlzNS4kTWVzc2FnZS5lcnJvcihlcnIubXNnKTsKICAgICAgICAgIH0pOwogICAgICAgIH0sCiAgICAgICAgb25DYW5jZWw6IGZ1bmN0aW9uIG9uQ2FuY2VsKCkge30KICAgICAgfSk7CiAgICB9LAogICAgLy8g6I635Y+WdXJsCiAgICBnZXRVcmxMaXN0OiBmdW5jdGlvbiBnZXRVcmxMaXN0KCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKCiAgICAgIGdldFVybCgpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzNi51cmxMaXN0ID0gcmVzLmRhdGEudXJsOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDlt6bkvqd0YWIKICAgIGJpbmRUYWI6IGZ1bmN0aW9uIGJpbmRUYWIoaW5kZXgpIHsKICAgICAgdGhpcy50YWJDdXIgPSBpbmRleDsKICAgIH0sCiAgICAvLyDpobXpnaLmoIfpopjngrnlh7sKICAgIHNob3dUaXRsZTogZnVuY3Rpb24gc2hvd1RpdGxlKCkgewogICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gLTEwMDsKICAgICAgdmFyIG9iaiA9IHt9OwoKICAgICAgZm9yICh2YXIgaSBpbiBtQ29uZmlnKSB7CiAgICAgICAgaWYgKGkgPT0gJ3BhZ2VUaXRsZScpIHsKICAgICAgICAgIC8vIHRoaXMuckNvbmZpZyA9IG9iagogICAgICAgICAgb2JqID0gbUNvbmZpZ1tpXTsKICAgICAgICAgIG9iai5jb25maWdOYW1lID0gbUNvbmZpZ1tpXS5uYW1lOwogICAgICAgICAgb2JqLmNuYW1lID0gJ+mhtemdouiuvue9ric7CiAgICAgICAgfQogICAgICB9CgogICAgICB2YXIgYWJjID0gb2JqOwogICAgICB0aGlzLnJDb25maWcgPSBbXTsKICAgICAgdGhpcy5yQ29uZmlnWzBdID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKTsKICAgIH0sCiAgICAvLyDpobXpnaLlupXpg6jngrnlh7sKICAgIHNob3dGb290OiBmdW5jdGlvbiBzaG93Rm9vdCgpIHsKICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IC0xMDE7CiAgICAgIHZhciBvYmogPSB7fTsKCiAgICAgIGZvciAodmFyIGkgaW4gbUNvbmZpZykgewogICAgICAgIGlmIChpID09ICdwYWdlRm9vdCcpIHsKICAgICAgICAgIC8vIHRoaXMuckNvbmZpZyA9IG9iagogICAgICAgICAgb2JqID0gbUNvbmZpZ1tpXTsKICAgICAgICAgIG9iai5jb25maWdOYW1lID0gbUNvbmZpZ1tpXS5uYW1lOwogICAgICAgICAgb2JqLmNuYW1lID0gJ+W6lemDqOiPnOWNlSc7CiAgICAgICAgfQogICAgICB9CgogICAgICB2YXIgYWJjID0gb2JqOwogICAgICB0aGlzLnJDb25maWcgPSBbXTsKICAgICAgdGhpcy5yQ29uZmlnWzBdID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKTsKICAgIH0sCiAgICAvLyDlr7nosaHovazmlbDnu4QKICAgIG9ialRvQXJyOiBmdW5jdGlvbiBvYmpUb0FycihkYXRhKSB7CiAgICAgIHZhciBvYmogPSBPYmplY3Qua2V5cyhkYXRhKTsKICAgICAgdmFyIG0gPSBvYmoubWFwKGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICByZXR1cm4gZGF0YVtrZXldOwogICAgICB9KTsKICAgICAgcmV0dXJuIG07CiAgICB9LAogICAgbG9nOiBmdW5jdGlvbiBsb2coZXZ0KSB7CiAgICAgIC8vIOS4remXtOaLluaLveaOkuW6jwogICAgICBpZiAoZXZ0Lm1vdmVkKSB7CiAgICAgICAgaWYgKGV2dC5tb3ZlZC5lbGVtZW50Lm5hbWUgPT0gJ3NlYXJjaF9ib3gnKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy4kTWVzc2FnZS53YXJuaW5nKCfor6Xnu4Tku7bnpoHmraLmi5bmi70nKTsKICAgICAgICB9IC8vIGlmIChldnQubW92ZWQuZWxlbWVudC5uYW1lID09ICJuYXZfYmFyIikgewogICAgICAgIC8vICAgICByZXR1cm4gdGhpcy4kTWVzc2FnZS53YXJuaW5nKCLor6Xnu4Tku7bnpoHmraLmi5bmi70iKTsKICAgICAgICAvLyB9CgoKICAgICAgICBldnQubW92ZWQub2xkTnVtID0gdGhpcy5tQ29uZmlnW2V2dC5tb3ZlZC5vbGRJbmRleF0ubnVtOwogICAgICAgIGV2dC5tb3ZlZC5uZXdOdW0gPSB0aGlzLm1Db25maWdbZXZ0Lm1vdmVkLm5ld0luZGV4XS5udW07CiAgICAgICAgZXZ0Lm1vdmVkLnN0YXR1cyA9IGV2dC5tb3ZlZC5vbGRJbmRleCA+IGV2dC5tb3ZlZC5uZXdJbmRleDsKICAgICAgICB0aGlzLm1Db25maWcuZm9yRWFjaChmdW5jdGlvbiAoZWwsIGluZGV4KSB7CiAgICAgICAgICBlbC5udW0gPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAqIDEwMDAgKyBpbmRleDsKICAgICAgICB9KTsKICAgICAgICBldnQubW92ZWQubGlzdCA9IHRoaXMubUNvbmZpZzsKICAgICAgICB0aGlzLnJDb25maWcgPSBbXTsKICAgICAgICB2YXIgaXRlbSA9IGV2dC5tb3ZlZC5lbGVtZW50OwogICAgICAgIHZhciB0ZW1wSXRlbSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbSkpOwogICAgICAgIHRoaXMuckNvbmZpZy5wdXNoKHRlbXBJdGVtKTsKICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gZXZ0Lm1vdmVkLm5ld0luZGV4OwogICAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL1NFVENPTkZJR05BTUUnLCBpdGVtLm5hbWUpOwogICAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL2RlZmF1bHRBcnJheVNvcnQnLCBldnQubW92ZWQpOwogICAgICB9IC8vIOS7juW3puWQkeWPs+aLluaLveaOkuW6jwoKCiAgICAgIGlmIChldnQuYWRkZWQpIHsKICAgICAgICB2YXIgZGF0YSA9IGV2dC5hZGRlZC5lbGVtZW50OwogICAgICAgIHZhciBvYmogPSB7fTsKICAgICAgICB2YXIgdGltZXN0YW1wID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKiAxMDAwOwogICAgICAgIGRhdGEubnVtID0gdGltZXN0YW1wOwogICAgICAgIHRoaXMuYWN0aXZlQ29uZmlnTmFtZSA9IGRhdGEubmFtZTsKCiAgICAgICAgdmFyIF90ZW1wSXRlbSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOwoKICAgICAgICBfdGVtcEl0ZW0uaWQgPSAnaWQnICsgX3RlbXBJdGVtLm51bTsKICAgICAgICB0aGlzLm1Db25maWdbZXZ0LmFkZGVkLm5ld0luZGV4XSA9IF90ZW1wSXRlbTsKICAgICAgICB0aGlzLnJDb25maWcgPSBbXTsKICAgICAgICB0aGlzLnJDb25maWcucHVzaChfdGVtcEl0ZW0pOwogICAgICAgIHRoaXMubUNvbmZpZy5mb3JFYWNoKGZ1bmN0aW9uIChlbCwgaW5kZXgpIHsKICAgICAgICAgIGVsLm51bSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpICogMTAwMCArIGluZGV4OwogICAgICAgIH0pOwogICAgICAgIGV2dC5hZGRlZC5saXN0ID0gdGhpcy5tQ29uZmlnOwogICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBldnQuYWRkZWQubmV3SW5kZXg7IC8vIOS/neWtmOe7hOS7tuWQjeensAoKICAgICAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9TRVRDT05GSUdOQU1FJywgZGF0YS5uYW1lKTsKICAgICAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9kZWZhdWx0QXJyYXlTb3J0JywgZXZ0LmFkZGVkKTsKICAgICAgfQogICAgfSwKICAgIGNsb25lRG9nOiBmdW5jdGlvbiBjbG9uZURvZyhkYXRhKSB7CiAgICAgIC8vIHRoaXMubUNvbmZpZy5wdXNoKHRlbXBJdGVtKQogICAgICByZXR1cm4gX29iamVjdFNwcmVhZCh7fSwgZGF0YSk7CiAgICB9LAogICAgLy/mlbDnu4TlhYPntKDkupLmjaLkvY3nva4KICAgIHN3YXBBcnJheTogZnVuY3Rpb24gc3dhcEFycmF5KGFyciwgaW5kZXgxLCBpbmRleDIpIHsKICAgICAgYXJyW2luZGV4MV0gPSBhcnIuc3BsaWNlKGluZGV4MiwgMSwgYXJyW2luZGV4MV0pWzBdOwogICAgICByZXR1cm4gYXJyOwogICAgfSwKICAgIC8v54K55Ye75LiK5LiL56e75Yqo77ybCiAgICBtb3ZlUGFnZTogZnVuY3Rpb24gbW92ZVBhZ2UoaXRlbSwgaW5kZXgsIHR5cGUpIHsKICAgICAgaWYgKHR5cGUpIHsKICAgICAgICBpZiAoaW5kZXggPT0gMCkgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoaW5kZXggPT0gdGhpcy5tQ29uZmlnLmxlbmd0aCAtIDEpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGlmIChpdGVtLm5hbWUgPT0gJ3NlYXJjaF9ib3gnKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuJE1lc3NhZ2Uud2FybmluZygn6K+l57uE5Lu256aB5q2i56e75YqoJyk7CiAgICAgIH0gLy8gaWYgKGl0ZW0ubmFtZSA9PSAibmF2X2JhciIpIHsKICAgICAgLy8gICAgIHJldHVybiB0aGlzLiRNZXNzYWdlLndhcm5pbmcoIuivpee7hOS7tuemgeatouenu+WKqCIpOwogICAgICAvLyB9CgoKICAgICAgaWYgKHR5cGUpIHsKICAgICAgICAvLyBpZih0aGlzLm1Db25maWdbaW5kZXgtMV0ubmFtZSAgPT0gInNlYXJjaF9ib3giIHx8IHRoaXMubUNvbmZpZ1tpbmRleC0xXS5uYW1lICA9PSAibmF2X2JhciIpewogICAgICAgIGlmICh0aGlzLm1Db25maWdbaW5kZXggLSAxXS5uYW1lID09ICdzZWFyY2hfYm94JykgewogICAgICAgICAgcmV0dXJuIHRoaXMuJE1lc3NhZ2Uud2FybmluZygn5pCc57Si5qGG5b+F6aG75Li66aG26YOoJyk7CiAgICAgICAgfQoKICAgICAgICB0aGlzLnN3YXBBcnJheSh0aGlzLm1Db25maWcsIGluZGV4IC0gMSwgaW5kZXgpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuc3dhcEFycmF5KHRoaXMubUNvbmZpZywgaW5kZXgsIGluZGV4ICsgMSk7CiAgICAgIH0KCiAgICAgIHZhciBvYmogPSB7fTsKICAgICAgdGhpcy5yQ29uZmlnID0gW107CiAgICAgIG9iai5vbGRJbmRleCA9IGluZGV4OwoKICAgICAgaWYgKHR5cGUpIHsKICAgICAgICBvYmoubmV3SW5kZXggPSBpbmRleCAtIDE7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgb2JqLm5ld0luZGV4ID0gaW5kZXggKyAxOwogICAgICB9CgogICAgICB0aGlzLm1Db25maWcuZm9yRWFjaChmdW5jdGlvbiAoZWwsIGluZGV4KSB7CiAgICAgICAgZWwubnVtID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKiAxMDAwICsgaW5kZXg7CiAgICAgIH0pOwogICAgICB2YXIgdGVtcEl0ZW0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGl0ZW0pKTsKICAgICAgdGhpcy5yQ29uZmlnLnB1c2godGVtcEl0ZW0pOwogICAgICBvYmouZWxlbWVudCA9IGl0ZW07CiAgICAgIG9iai5saXN0ID0gdGhpcy5tQ29uZmlnOwoKICAgICAgaWYgKHR5cGUpIHsKICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaW5kZXggLSAxOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBpbmRleCArIDE7CiAgICAgIH0KCiAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL1NFVENPTkZJR05BTUUnLCBpdGVtLm5hbWUpOwogICAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9kZWZhdWx0QXJyYXlTb3J0Jywgb2JqKTsKICAgIH0sCiAgICAvLyDnu4Tku7bmt7vliqAKICAgIGFkZERvbUNvbjogZnVuY3Rpb24gYWRkRG9tQ29uKGl0ZW0sIHR5cGUsIGluZGV4KSB7CiAgICAgIGlmIChpdGVtLm5hbWUgPT0gJ3NlYXJjaF9ib3gnKSB7CiAgICAgICAgaWYgKHRoaXMuaXNTZWFyY2gpIHJldHVybiB0aGlzLiRNZXNzYWdlLmVycm9yKCfor6Xnu4Tku7blj6rog73mt7vliqDkuIDmrKEnKTsKICAgICAgICB0aGlzLmlzU2VhcmNoID0gdHJ1ZTsKICAgICAgfQoKICAgICAgaWYgKGl0ZW0ubmFtZSA9PSAnbmF2X2JhcicpIHsKICAgICAgICBpZiAodGhpcy5pc1RhYikgcmV0dXJuIHRoaXMuJE1lc3NhZ2UuZXJyb3IoJ+ivpee7hOS7tuWPquiDvea3u+WKoOS4gOasoScpOwogICAgICAgIHRoaXMuaXNUYWIgPSB0cnVlOwogICAgICB9CgogICAgICBpZEdsb2JhbCArPSAxOwogICAgICB2YXIgb2JqID0ge307CiAgICAgIHZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAqIDEwMDA7CiAgICAgIGl0ZW0ubnVtID0gIiIuY29uY2F0KHRpbWVzdGFtcCk7CiAgICAgIGl0ZW0uaWQgPSAiaWQiLmNvbmNhdCh0aW1lc3RhbXApOwogICAgICB0aGlzLmFjdGl2ZUNvbmZpZ05hbWUgPSBpdGVtLm5hbWU7CiAgICAgIHZhciB0ZW1wSXRlbSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbSkpOwoKICAgICAgaWYgKGl0ZW0ubmFtZSA9PSAnc2VhcmNoX2JveCcpIHsKICAgICAgICB0aGlzLnJDb25maWcgPSBbXTsKICAgICAgICB0aGlzLm1Db25maWcudW5zaGlmdCh0ZW1wSXRlbSk7CiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7CiAgICAgICAgdGhpcy5yQ29uZmlnLnB1c2godGVtcEl0ZW0pOwogICAgICB9IC8vIOWKqOaAgeaLluWKqOWPr+S4iuS8oOatpOmDqOWIhuS7o+eggQogICAgICBlbHNlIGlmIChpdGVtLm5hbWUgPT0gJ25hdl9iYXInKSB7CiAgICAgICAgdGhpcy5yQ29uZmlnID0gW107CgogICAgICAgIGlmICh0aGlzLm1Db25maWdbMF0gJiYgdGhpcy5tQ29uZmlnWzBdLm5hbWUgPT09ICdzZWFyY2hfYm94JykgewogICAgICAgICAgdGhpcy5tQ29uZmlnLnNwbGljZSgxLCAwLCB0ZW1wSXRlbSk7CiAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5tQ29uZmlnLnNwbGljZSgwLCAwLCB0ZW1wSXRlbSk7CiAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMDsKICAgICAgICB9CgogICAgICAgIHRoaXMuckNvbmZpZy5wdXNoKHRlbXBJdGVtKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAodHlwZSkgewogICAgICAgICAgdGhpcy5yQ29uZmlnID0gW107CiAgICAgICAgICB0aGlzLm1Db25maWcucHVzaCh0ZW1wSXRlbSk7CiAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gdGhpcy5tQ29uZmlnLmxlbmd0aCAtIDE7CiAgICAgICAgICB0aGlzLnJDb25maWcucHVzaCh0ZW1wSXRlbSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMubUNvbmZpZy5zcGxpY2UoaW5kZXggKyAxLCAwLCB0ZW1wSXRlbSk7CiAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaW5kZXg7CiAgICAgICAgfQogICAgICB9CgogICAgICB0aGlzLm1Db25maWcuZm9yRWFjaChmdW5jdGlvbiAoZWwsIGluZGV4KSB7CiAgICAgICAgZWwubnVtID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKiAxMDAwICsgaW5kZXg7CiAgICAgIH0pOyAvLyDkv53lrZjnu4Tku7blkI3np7AKCiAgICAgIG9iai5lbGVtZW50ID0gaXRlbTsKICAgICAgb2JqLmxpc3QgPSB0aGlzLm1Db25maWc7CiAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL1NFVENPTkZJR05BTUUnLCBpdGVtLm5hbWUpOwogICAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9kZWZhdWx0QXJyYXlTb3J0Jywgb2JqKTsKICAgIH0sCiAgICAvL+S4remXtOmhteeCueWHu+a3u+WKoOaooeWdl++8mwogICAgYmluZEFkZERvbTogZnVuY3Rpb24gYmluZEFkZERvbShpdGVtLCB0eXBlLCBpbmRleCkgewogICAgICB2YXIgaSA9IGl0ZW07CiAgICAgIHRoaXMubENvbmZpZy5mb3JFYWNoKGZ1bmN0aW9uIChqKSB7CiAgICAgICAgaWYgKGl0ZW0ubmFtZSA9PSBqLm5hbWUpIHsKICAgICAgICAgIGkgPSBqOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHRoaXMuYWRkRG9tQ29uKGksIHR5cGUsIGluZGV4KTsKICAgIH0sCiAgICAvL+W3pui+uemFjee9ruaooeWdl+eCueWHu+a3u+WKoO+8mwogICAgYWRkRG9tOiBmdW5jdGlvbiBhZGREb20oaXRlbSwgdHlwZSkgewogICAgICB0aGlzLmFkZERvbUNvbihpdGVtLCB0eXBlKTsKICAgIH0sCiAgICAvLyDngrnlh7vmmL7npLrnm7jlupTnmoTphY3nva4KICAgIGJpbmRjb25maWc6IGZ1bmN0aW9uIGJpbmRjb25maWcoaXRlbSwgaW5kZXgpIHsKICAgICAgdGhpcy5yQ29uZmlnID0gW107CiAgICAgIHZhciB0ZW1wSXRlbSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbSkpOwogICAgICB0aGlzLnJDb25maWcucHVzaCh0ZW1wSXRlbSk7CiAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBpbmRleDsKICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvU0VUQ09ORklHTkFNRScsIGl0ZW0ubmFtZSk7CiAgICB9LAogICAgLy8g57uE5Lu25Yig6ZmkCiAgICBiaW5kRGVsZXRlOiBmdW5jdGlvbiBiaW5kRGVsZXRlKGl0ZW0sIGtleSkgewogICAgICBpZiAoaXRlbS5uYW1lID09ICdzZWFyY2hfYm94JykgewogICAgICAgIHRoaXMuaXNTZWFyY2ggPSBmYWxzZTsKICAgICAgfQoKICAgICAgaWYgKGl0ZW0ubmFtZSA9PSAnbmF2X2JhcicpIHsKICAgICAgICB0aGlzLmlzVGFiID0gZmFsc2U7CiAgICAgIH0KCiAgICAgIHRoaXMubUNvbmZpZy5zcGxpY2Uoa2V5LCAxKTsKICAgICAgdGhpcy5yQ29uZmlnLnNwbGljZSgwLCAxKTsKCiAgICAgIGlmICh0aGlzLm1Db25maWcubGVuZ3RoICE9IGtleSkgewogICAgICAgIHRoaXMuckNvbmZpZy5wdXNoKHRoaXMubUNvbmZpZ1trZXldKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAodGhpcy5tQ29uZmlnLmxlbmd0aCkgewogICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGtleSAtIDE7CiAgICAgICAgICB0aGlzLnJDb25maWcucHVzaCh0aGlzLm1Db25maWdba2V5IC0gMV0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLnNob3dUaXRsZSgpOwogICAgICAgIH0KICAgICAgfSAvLyDliKDpmaTnrKzlh6DkuKrphY3nva4KCgogICAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9ERUxFVEVBUlJBWScsIGl0ZW0pOwogICAgfSwKICAgIC8vIOe7hOS7tui/lOWbngogICAgY29uZmlnOiBmdW5jdGlvbiBjb25maWcoZGF0YSkgewogICAgICB2YXIgcHJvcHNPYmogPSB0aGlzLnByb3BzT2JqOwogICAgICBwcm9wc09iai5kYXRhID0gZGF0YTsKICAgICAgcHJvcHNPYmoubmFtZSA9IHRoaXMuYWN0aXZlQ29uZmlnTmFtZTsKICAgIH0sCiAgICBhZGRTb3J0OiBmdW5jdGlvbiBhZGRTb3J0KGFyciwgaW5kZXgxLCBpbmRleDIpIHsKICAgICAgYXJyW2luZGV4MV0gPSBhcnIuc3BsaWNlKGluZGV4MiwgMSwgYXJyW2luZGV4MV0pWzBdOwogICAgICByZXR1cm4gYXJyOwogICAgfSwKICAgIC8vIOaVsOe7hOaOkuW6jwogICAgYXJyYXlTb3J0OiBmdW5jdGlvbiBhcnJheVNvcnQoKSB7CiAgICAgIHZhciB0ZW1wQXJyID0gW107CiAgICAgIHZhciBiYXNpcyA9IHsKICAgICAgICB0aXRsZTogJ+WfuuehgOe7hOS7ticsCiAgICAgICAgbGlzdDogW10sCiAgICAgICAgaXNPcGVuOiB0cnVlCiAgICAgIH07CiAgICAgIHZhciBtYXJrZXRpbmcgPSB7CiAgICAgICAgdGl0bGU6ICfokKXplIDnu4Tku7YnLAogICAgICAgIGxpc3Q6IFtdLAogICAgICAgIGlzT3BlbjogdHJ1ZQogICAgICB9OwogICAgICB2YXIgdG9vbCA9IHsKICAgICAgICB0aXRsZTogJ+W3peWFt+e7hOS7ticsCiAgICAgICAgbGlzdDogW10sCiAgICAgICAgaXNPcGVuOiB0cnVlCiAgICAgIH07CiAgICAgIHRoaXMubENvbmZpZy5tYXAoZnVuY3Rpb24gKGVsLCBpbmRleCkgewogICAgICAgIGlmIChlbC50eXBlID09IDApIHsKICAgICAgICAgIGJhc2lzLmxpc3QucHVzaChlbCk7CiAgICAgICAgfQoKICAgICAgICBpZiAoZWwudHlwZSA9PSAxKSB7CiAgICAgICAgICBtYXJrZXRpbmcubGlzdC5wdXNoKGVsKTsKICAgICAgICB9CgogICAgICAgIGlmIChlbC50eXBlID09IDIpIHsKICAgICAgICAgIHRvb2wubGlzdC5wdXNoKGVsKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICB0ZW1wQXJyLnB1c2goYmFzaXMsIG1hcmtldGluZywgdG9vbCk7CiAgICAgIHRoaXMubGVmdE1lbnUgPSB0ZW1wQXJyOwogICAgfSwKICAgIC8vIHRvSW1hZ2UodmFsKXsKICAgIC8vICAgICBodG1sMmNhbnZhcyh0aGlzLiRyZWZzLmltZ0NvbnRhaW5lcix7CiAgICAvLyAgICAgICAgIHVzZUNPUlM6dHJ1ZSwKICAgIC8vICAgICAgICAgbG9nZ2luZzp0cnVlLAogICAgLy8gICAgICAgICB0YWludFRlc3Q6IGZhbHNlLAogICAgLy8gICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IG51bGwKICAgIC8vICAgICB9KS50aGVuKChjYW52YXMpID0+IHsKICAgIC8vICAgICAgICAgbGV0IGltZ1VybCA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnKTsKICAgIC8vICAgICAgICAgdGhpcy5kaXlTYXZlRGF0ZSh2YWwsaW1nVXJsKQogICAgLy8gICAgIH0pOwogICAgLy8gfSwKICAgIGRpeVNhdmVEYXRlOiBmdW5jdGlvbiBkaXlTYXZlRGF0ZSh2YWwpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CgogICAgICBzYXZlRGl5KHRoaXMucGFnZUlkLCB7CiAgICAgICAgdHlwZTogdGhpcy5wYWdlVHlwZSwKICAgICAgICB2YWx1ZTogdmFsLAogICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlVHh0LAogICAgICAgIG5hbWU6IHRoaXMubmFtZVR4dCwKICAgICAgICBpc19zaG93OiB0aGlzLnNob3dUeHQgPyAxIDogMCwKICAgICAgICBpc19iZ19jb2xvcjogdGhpcy5jb2xvclR4dCA/IDEgOiAwLAogICAgICAgIGNvbG9yX3BpY2tlcjogdGhpcy5jb2xvclBpY2tlclR4dCwKICAgICAgICBiZ19waWM6IHRoaXMucGljVXJsVHh0LAogICAgICAgIGJnX3RhYl92YWw6IHRoaXMudGFiVmFsVHh0LAogICAgICAgIGlzX2JnX3BpYzogdGhpcy5waWNUeHQgPyAxIDogMAogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczcubG9hZGluZyA9IGZhbHNlOwogICAgICAgIF90aGlzNy5wYWdlSWQgPSByZXMuZGF0YS5pZDsKCiAgICAgICAgX3RoaXM3LiRNZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczcubG9hZGluZyA9IGZhbHNlOwoKICAgICAgICBfdGhpczcuJE1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOS/neWtmOmFjee9rgogICAgc2F2ZUNvbmZpZzogZnVuY3Rpb24gc2F2ZUNvbmZpZygpIHsKICAgICAgaWYgKHRoaXMubUNvbmZpZy5sZW5ndGggPT0gMCkgewogICAgICAgIHJldHVybiB0aGlzLiRNZXNzYWdlLmVycm9yKCfmmoLmnKrmt7vliqDku7vkvZXnu4Tku7bvvIzkv53lrZjlpLHotKXvvIEnKTsKICAgICAgfQoKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgdmFyIHZhbCA9IHRoaXMuJHN0b3JlLnN0YXRlLm1vYmlsZENvbmZpZy5kZWZhdWx0QXJyYXk7CgogICAgICBpZiAoIXRoaXMuZm9vdEFjdGl2ZSkgewogICAgICAgIHZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAqIDEwMDA7CiAgICAgICAgdmFsW3RpbWVzdGFtcF0gPSB0aGlzLiRzdG9yZS5zdGF0ZS5tb2JpbGRDb25maWcucGFnZUZvb3RlcjsKICAgICAgICB0aGlzLmZvb3RBY3RpdmUgPSB0cnVlOwogICAgICB9CgogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgdGhpcy5kaXlTYXZlRGF0ZSh2YWwpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDojrflj5bpu5jorqTphY3nva4KICAgIGdldERlZmF1bHRDb25maWc6IGZ1bmN0aW9uIGdldERlZmF1bHRDb25maWcoKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwoKICAgICAgZ2V0RGl5SW5mbyh0aGlzLnBhZ2VJZCkudGhlbihmdW5jdGlvbiAoX3JlZjIpIHsKICAgICAgICB2YXIgZGF0YSA9IF9yZWYyLmRhdGE7CiAgICAgICAgdmFyIG9iaiA9IHt9OwogICAgICAgIHZhciB0ZW1wQVJSID0gW107CgogICAgICAgIF90aGlzOC4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvdGl0bGVVcGRhdGEnLCBkYXRhLmluZm8udGl0bGUpOwoKICAgICAgICBfdGhpczguJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL25hbWVVcGRhdGEnLCBkYXRhLmluZm8ubmFtZSk7CgogICAgICAgIF90aGlzOC4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvc2hvd1VwZGF0YScsIGRhdGEuaW5mby5pc19zaG93KTsKCiAgICAgICAgX3RoaXM4LiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9jb2xvclVwZGF0YScsIGRhdGEuaW5mby5pc19iZ19jb2xvciB8fCAwKTsKCiAgICAgICAgX3RoaXM4LiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9waWNVcGRhdGEnLCBkYXRhLmluZm8uaXNfYmdfcGljIHx8IDApOwoKICAgICAgICBfdGhpczguJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3BpY2tlclVwZGF0YScsIGRhdGEuaW5mby5jb2xvcl9waWNrZXIgfHwgJyNmNWY1ZjUnKTsKCiAgICAgICAgX3RoaXM4LiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9yYWRpb1VwZGF0YScsIGRhdGEuaW5mby5iZ190YWJfdmFsIHx8IDApOwoKICAgICAgICBfdGhpczguJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3BpY3VybFVwZGF0YScsIGRhdGEuaW5mby5iZ19waWMgfHwgJycpOwoKICAgICAgICB2YXIgbmV3QXJyID0gX3RoaXM4Lm9ialRvQXJyKGRhdGEuaW5mby52YWx1ZSk7CgogICAgICAgIGZ1bmN0aW9uIHNvcnROdW1iZXIoYSwgYikgewogICAgICAgICAgcmV0dXJuIGEudGltZXN0YW1wIC0gYi50aW1lc3RhbXA7CiAgICAgICAgfQoKICAgICAgICBuZXdBcnIuc29ydChzb3J0TnVtYmVyKTsKICAgICAgICBuZXdBcnIubWFwKGZ1bmN0aW9uIChlbCwgaW5kZXgpIHsKICAgICAgICAgIGlmIChlbC5uYW1lID09ICdoZWFkZXJTZXJjaCcpIHsKICAgICAgICAgICAgX3RoaXM4LmlzU2VhcmNoID0gdHJ1ZTsKICAgICAgICAgIH0KCiAgICAgICAgICBpZiAoZWwubmFtZSA9PSAndGFiTmF2JykgewogICAgICAgICAgICBfdGhpczguaXNUYWIgPSB0cnVlOwogICAgICAgICAgfQoKICAgICAgICAgIGlmIChlbC5uYW1lID09ICdnb29kTGlzdCcpIHsKICAgICAgICAgICAgdmFyIHN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlOwogICAgICAgICAgICBzdG9yYWdlLnNldEl0ZW0oZWwudGltZXN0YW1wLCBlbC5zZWxlY3RDb25maWcuYWN0aXZlVmFsdWUpOwogICAgICAgICAgfQoKICAgICAgICAgIGVsLmlkID0gJ2lkJyArIGVsLnRpbWVzdGFtcDsKCiAgICAgICAgICBfdGhpczgubENvbmZpZy5tYXAoZnVuY3Rpb24gKGl0ZW0sIGopIHsKICAgICAgICAgICAgaWYgKGVsLm5hbWUgPT0gaXRlbS5kZWZhdWx0TmFtZSkgewogICAgICAgICAgICAgIGl0ZW0ubnVtID0gZWwudGltZXN0YW1wOwogICAgICAgICAgICAgIGl0ZW0uaWQgPSAnaWQnICsgZWwudGltZXN0YW1wOwogICAgICAgICAgICAgIHZhciB0ZW1wSXRlbSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbSkpOwogICAgICAgICAgICAgIHRlbXBBUlIucHVzaCh0ZW1wSXRlbSk7CiAgICAgICAgICAgICAgb2JqW2VsLnRpbWVzdGFtcF0gPSBlbDsKCiAgICAgICAgICAgICAgX3RoaXM4Lm1Db25maWcucHVzaCh0ZW1wSXRlbSk7IC8vIOS/neWtmOm7mOiupOe7hOS7tumFjee9rgoKCiAgICAgICAgICAgICAgX3RoaXM4LiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9BRERBUlJBWScsIHsKICAgICAgICAgICAgICAgIG51bTogZWwudGltZXN0YW1wLAogICAgICAgICAgICAgICAgdmFsOiBlbAogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICB2YXIgb2JqcyA9IG5ld0FycltuZXdBcnIubGVuZ3RoIC0gMV07CgogICAgICAgIGlmIChvYmpzLm5hbWUgPT0gJ3BhZ2VGb290JykgewogICAgICAgICAgX3RoaXM4LiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9mb290UGFnZVVwZGF0YScsIG9ianMpOwogICAgICAgIH0KCiAgICAgICAgX3RoaXM4LnNob3dUaXRsZSgpOyAvLyB0aGlzLnJDb25maWcgPSBbXTsKICAgICAgICAvLyB0aGlzLmFjdGl2ZUluZGV4ID0gMDsKICAgICAgICAvLyB0aGlzLnJDb25maWcucHVzaCh0aGlzLm1Db25maWdbMF0pOwoKICAgICAgfSk7CiAgICB9LAogICAgY2F0ZWdvcnlMaXN0OiBmdW5jdGlvbiBjYXRlZ29yeUxpc3QoKSB7CiAgICAgIHZhciBfdGhpczkgPSB0aGlzOwoKICAgICAgX2NhdGVnb3J5TGlzdChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM5LmNhdGVnb3J5ID0gcmVzLmRhdGE7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOmHjee9rgogICAgcmVhc3Q6IGZ1bmN0aW9uIHJlYXN0KCkgewogICAgICB2YXIgX3RoaXMxMCA9IHRoaXM7CgogICAgICBpZiAodGhpcy5wYWdlSWQgPT0gMCkgewogICAgICAgIHRoaXMuJE1lc3NhZ2UuZXJyb3IoJ+aWsOWinumhtemdou+8jOaXoOazlemHjee9ricpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJE1vZGFsLmNvbmZpcm0oewogICAgICAgICAgdGl0bGU6ICfmj5DnpLonLAogICAgICAgICAgY29udGVudDogJzxwPuaYr+WQpumHjee9ruW9k+WJjemhtemdouaVsOaNrjwvcD4nLAogICAgICAgICAgb25PazogZnVuY3Rpb24gb25PaygpIHsKICAgICAgICAgICAgX3RoaXMxMC5tQ29uZmlnID0gW107CiAgICAgICAgICAgIF90aGlzMTAuckNvbmZpZyA9IFtdOwogICAgICAgICAgICBfdGhpczEwLmFjdGl2ZUluZGV4ID0gLTk5OwoKICAgICAgICAgICAgX3RoaXMxMC5nZXREZWZhdWx0Q29uZmlnKCk7CiAgICAgICAgICB9LAogICAgICAgICAgb25DYW5jZWw6IGZ1bmN0aW9uIG9uQ2FuY2VsKCkge30KICAgICAgICB9KTsKICAgICAgfQogICAgfQogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3RpdGxlVXBkYXRhJywgJycpOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvbmFtZVVwZGF0YScsICcnKTsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3Nob3dVcGRhdGEnLCAxKTsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL2NvbG9yVXBkYXRhJywgMCk7CiAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9waWNVcGRhdGEnLCAwKTsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3BpY2tlclVwZGF0YScsICcjZjVmNWY1Jyk7CiAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9yYWRpb1VwZGF0YScsIDApOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvcGljdXJsVXBkYXRhJywgJycpOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvU0VURU1QVFknKTsKICB9LAogIGRlc3Ryb3llZDogZnVuY3Rpb24gZGVzdHJveWVkKCkgewogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvdGl0bGVVcGRhdGEnLCAnJyk7CiAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9uYW1lVXBkYXRhJywgJycpOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvc2hvd1VwZGF0YScsIDEpOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvY29sb3JVcGRhdGEnLCAwKTsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3BpY1VwZGF0YScsIDApOwogICAgdGhpcy4kc3RvcmUuY29tbWl0KCdtb2JpbGRDb25maWcvcGlja2VyVXBkYXRhJywgJyNmNWY1ZjUnKTsKICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgnbW9iaWxkQ29uZmlnL3JhZGlvVXBkYXRhJywgMCk7CiAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9waWN1cmxVcGRhdGEnLCAnJyk7CiAgICB0aGlzLiRzdG9yZS5jb21taXQoJ21vYmlsZENvbmZpZy9TRVRFTVBUWScpOwogIH0KfTs="},{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4NA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;EACAA,kBADA;EAEAC,iBAFA;EAGAC;IACAC,kBADA;IAEAC,wBAFA;IAGAC;EAHA,GAIAC,KAJA,GAKAC,OALA,CAHA;EAUAC;IACAC,SADA,qBACAC,GADA,EACA;MACA;QACA;MACA;IACA;EALA,CAVA;EAiBAC,4BACAC;IACAC;MAAA;IAAA,CADA;IAEAC;MAAA;IAAA,CAFA;IAGAC;MAAA;IAAA,CAHA;IAIAC;MAAA;IAAA,CAJA;IAKAC;MAAA;IAAA,CALA;IAMAC;MAAA;IAAA,CANA;IAOAC;MAAA;IAAA,CAPA;IAQAC;MAAA;IAAA;EARA,EADA,CAjBA;EA6BAC,IA7BA,kBA6BA;IACA;MACAC,gBADA;MACA;MACAC,cAFA;MAGAC,YAHA;MAGA;MACAC,WAJA;MAIA;MACAlB,WALA;MAKA;MACAmB,WANA;MAMA;MACAC,oBAPA;MAQAC,YARA;MAQA;MACAC,iBATA;MASA;MACAC,SAVA;MAWAC,UAXA;MAYAC,YAZA;MAaAC,YAbA;MAcAC,YAdA;MAeAC,UACA;QACAC,YADA;QAEAC;MAFA,CADA,EAKA;QACAD,aADA;QAEAC;MAFA,CALA,CAfA;MAyBAC,SAzBA;MA0BAC,WA1BA;MA2BAC,iBA3BA;MA4BAC,cA5BA;MA6BAC,eA7BA;MA8BAC,YA9BA;MA+BAC;IA/BA;EAiCA,CA/DA;EAgEAC,gBAhEA,4BAgEAC,EAhEA,EAgEAC,IAhEA,EAgEAC,IAhEA,EAgEA;IAAA;;IACA;IACA;IACA;MACA;QACAZ,mBADA;QAEAa,uBAFA;QAGAC,eAHA;QAIAC,gBAJA;QAKAV,aALA;QAMAW;UACAC;YACA;;YACA;;YACAL;UACA,CAJA,EAIA,IAJA;QAKA,CAZA;QAaAM;UACAN;QACA;MAfA;IAiBA,CArBA,CAsBA;;EACA,CAvFA;EAwFAO,YAxFA,0BAwFA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;EACA,CAlGA;EAmGAC,OAnGA,qBAmGA;IACA;IACA;IACA;IACA;IACA;IACA;EACA,CA1GA;EA2GAC,OA3GA,qBA2GA;IAAA;;IACA;MACAC,2FADA;MAEAzD,WAFA;MAGA0D;IAHA;IAKA;MACA;QACAvB,gBADA;QAEAnC;MAFA;;MAIA;;MACA;QACA;MACA,CAFA,MAEA;QACA;MACA;;MACA,+EAXA,CAWA;;MACA;MACA;MACA;;MACA2D;QACAC;QACA;QACAA;MACA,CAJA;IAKA,CApBA;EAqBA,CAtIA;EAuIAC;IACAC,UADA,4BACA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;;MACA;QACA;UACA;QACA,CAFA,MAEA;UACA;UACA;QACA;MACA;;MACA;QACA;MACA;IACA,CAbA;IAcAC,MAdA,kBAcAC,CAdA,EAcA;MACA;MACA;MACA;IACA,CAlBA;IAmBAC,MAnBA,kBAmBAC,QAnBA,EAmBA;MAAA;;MACA,yBACAC,IADA,CACA;QACA;MACA,CAHA,EAIAC,KAJA,CAIA;QACA;MACA,CANA;IAOA,CA3BA;IA4BAC,OA5BA,qBA4BA;MACA;IACA,CA9BA;IA+BA;IACAC,QAhCA,sBAgCA;MAAA;;MACA;QACAnC,gBADA;QAEAa,2BAFA;QAGAG;UACAoB,0BACAJ,IADA,CACA;YACA;UACA,CAHA,EAIAC,KAJA,CAIA;YACA;UACA,CANA;QAOA,CAXA;QAYAf;MAZA;IAcA,CA/CA;IAgDA;IACAmB,QAjDA,sBAiDA;MAAA;;MACA;QACArC,eADA;QAEAa,4BAFA;QAGAG;UACAsB,wBACAN,IADA,CACA;YACA;;YACA;UACA,CAJA,EAKAC,KALA,CAKA;YACA;UACA,CAPA;QAQA,CAZA;QAaAf;MAbA;IAeA,CAjEA;IAkEA;IACAqB,UAnEA,wBAmEA;MAAA;;MACAC;QACA;MACA,CAFA;IAGA,CAvEA;IAwEA;IACAC,OAzEA,mBAyEAC,KAzEA,EAyEA;MACA;IACA,CA3EA;IA4EA;IACAC,SA7EA,uBA6EA;MACA;MACA;;MACA;QACA;UACA;UACAC;UACAA;UACAA;QACA;MACA;;MACA;MACA;MACA;IACA,CA3FA;IA4FA;IACAC,QA7FA,sBA6FA;MACA;MACA;;MACA;QACA;UACA;UACAD;UACAA;UACAA;QACA;MACA;;MACA;MACA;MACA;IACA,CA3GA;IA4GA;IACAE,QA7GA,oBA6GA7D,IA7GA,EA6GA;MACA;MACA;QAAA;MAAA;MACA;IACA,CAjHA;IAkHA8D,GAlHA,eAkHAC,GAlHA,EAkHA;MACA;MACA;QACA;UACA;QACA,CAHA,CAIA;QACA;QACA;;;QACAA;QACAA;QACAA;QACA;UACAC;QACA,CAFA;QAGAD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;MACA,CAvBA,CAwBA;;;MACA;QACA;QACA;QACA;QACA/D;QACA;;QACA;;QACAiE;QACA;QACA;QACA;QACA;UACAD;QACA,CAFA;QAGAD;QACA,sCAfA,CAgBA;;QACA;QACA;MACA;IACA,CA/JA;IAgKAG,QAhKA,oBAgKAlE,IAhKA,EAgKA;MACA;MACA,yBACAA,IADA;IAGA,CArKA;IAsKA;IACAmE,SAvKA,qBAuKAC,GAvKA,EAuKAC,MAvKA,EAuKAC,MAvKA,EAuKA;MACAF;MACA;IACA,CA1KA;IA2KA;IACAG,QA5KA,oBA4KAC,IA5KA,EA4KAf,KA5KA,EA4KAgB,IA5KA,EA4KA;MACA;QACA;UACA;QACA;MACA,CAJA,MAIA;QACA;UACA;QACA;MACA;;MACA;QACA;MACA,CAZA,CAaA;MACA;MACA;;;MACA;QACA;QACA;UACA;QACA;;QACA;MACA,CANA,MAMA;QACA;MACA;;MACA;MACA;MACAd;;MACA;QACAA;MACA,CAFA,MAEA;QACAA;MACA;;MACA;QACAK;MACA,CAFA;MAGA;MACA;MACAL;MACAA;;MACA;QACA;MACA,CAFA,MAEA;QACA;MACA;;MACA;MACA;IACA,CA3NA;IA4NA;IACAe,SA7NA,qBA6NAF,IA7NA,EA6NAC,IA7NA,EA6NAhB,KA7NA,EA6NA;MACA;QACA;QACA;MACA;;MACA;QACA;QACA;MACA;;MACAkB;MACA;MACA;MACAH;MACAA;MACA;MACA;;MACA;QACA;QACA;QACA;QACA;MACA,CALA,CAMA;MANA,KAOA;QACA;;QACA;UACA;UACA;QACA,CAHA,MAGA;UACA;UACA;QACA;;QACA;MACA,CAVA,MAUA;QACA;UACA;UACA;UACA;UACA;QACA,CALA,MAKA;UACA;UACA;QACA;MACA;;MACA;QACAR;MACA,CAFA,EA5CA,CA+CA;;MACAL;MACAA;MACA;MACA;IACA,CAjRA;IAkRA;IACAiB,UAnRA,sBAmRAJ,IAnRA,EAmRAC,IAnRA,EAmRAhB,KAnRA,EAmRA;MACA;MACA;QACA;UACAoB;QACA;MACA,CAJA;MAKA;IACA,CA3RA;IA4RA;IACAC,MA7RA,kBA6RAN,IA7RA,EA6RAC,IA7RA,EA6RA;MACA;IACA,CA/RA;IAgSA;IACAM,UAjSA,sBAiSAP,IAjSA,EAiSAf,KAjSA,EAiSA;MACA;MACA;MACA;MACA;MACA;IACA,CAvSA;IAwSA;IACAuB,UAzSA,sBAySAR,IAzSA,EAySAxD,GAzSA,EAySA;MACA;QACA;MACA;;MACA;QACA;MACA;;MACA;MACA;;MACA;QACA;MACA,CAFA,MAEA;QACA;UACA;UACA;QACA,CAHA,MAGA;UACA;QACA;MACA,CAlBA,CAmBA;;;MACA;IACA,CA9TA;IA+TA;IACAiE,MAhUA,kBAgUAjF,IAhUA,EAgUA;MACA;MACAO;MACAA;IACA,CApUA;IAqUA2E,OArUA,mBAqUAd,GArUA,EAqUAC,MArUA,EAqUAC,MArUA,EAqUA;MACAF;MACA;IACA,CAxUA;IAyUA;IACAe,SA1UA,uBA0UA;MACA;MACA;QACApE,aADA;QAEAqE,QAFA;QAGAC;MAHA;MAKA;QACAtE,aADA;QAEAqE,QAFA;QAGAC;MAHA;MAKA;QACAtE,aADA;QAEAqE,QAFA;QAGAC;MAHA;MAKA;QACA;UACAC;QACA;;QACA;UACAC;QACA;;QACA;UACAC;QACA;MACA,CAVA;MAWAC;MACA;IACA,CAxWA;IAyWA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACAC,WApXA,uBAoXArG,GApXA,EAoXA;MAAA;;MACAsG;QACAlB,mBADA;QAEAmB,UAFA;QAGA7E,oBAHA;QAIAnC,kBAJA;QAKAiH,6BALA;QAMAC,kCANA;QAOAC,iCAPA;QAQAC,sBARA;QASAC,0BATA;QAUAC;MAVA,GAYAnD,IAZA,CAYA;QACA;QACA;;QACA;MACA,CAhBA,EAiBAC,KAjBA,CAiBA;QACA;;QACA;MACA,CApBA;IAqBA,CA1YA;IA2YA;IACAmD,UA5YA,wBA4YA;MACA;QACA;MACA;;MACA;MACA;;MACA;QACA;QACA9G;QACA;MACA;;MACA;QACA;MACA,CAFA;IAGA,CA1ZA;IA2ZA;IACA+G,gBA5ZA,8BA4ZA;MAAA;;MACAC;QAAA;QACA;QACA;;QACA;;QACA;;QACA;;QACA;;QACA;;QACA;;QACA;;QACA;;QACA;;QAEA;UACA;QACA;;QAEAC;QACAA;UACA;YACA;UACA;;UACA;YACA;UACA;;UACA;YACA;YACAC;UACA;;UACAvC;;UACA;YACA;cACAQ;cACAA;cACA;cACAgC;cACA7C;;cACA,8BANA,CAOA;;;cACA;gBACA8C,iBADA;gBAEApH;cAFA;YAIA;UACA,CAdA;QAeA,CA3BA;QA6BA;;QAEA;UACA;QACA;;QACA,mBApDA,CAqDA;QACA;QACA;;MACA,CAxDA;IAyDA,CAtdA;IAudAqH,YAvdA,0BAudA;MAAA;;MACAA;QACA;MACA,CAFA;IAGA,CA3dA;IA4dA;IACAC,KA7dA,mBA6dA;MAAA;;MACA;QACA;MACA,CAFA,MAEA;QACA;UACA5F,WADA;UAEAa,4BAFA;UAGAG;YACA;YACA;YACA;;YACA;UACA,CARA;UASAE;QATA;MAWA;IACA;EA7eA,CAvIA;EAsnBA2E,aAtnBA,2BAsnBA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;EACA,CAhoBA;EAioBAC,SAjoBA,uBAioBA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;EACA;AA3oBA","names":["inject","name","components","footPage","html2canvas","draggable","mPage","mConfig","filters","filterTxt","val","computed","mapState","titleTxt","nameTxt","showTxt","colorTxt","picTxt","colorPickerTxt","tabValTxt","picUrlTxt","data","clientHeight","rollHeight","leftMenu","lConfig","rConfig","activeConfigName","propsObj","activeIndex","number","pageId","pageName","pageType","category","tabList","title","key","tabCur","urlList","footActive","loading","isSearch","isTab","isFllow","beforeRouteLeave","to","from","next","content","okText","cancelText","onOk","setTimeout","onCancel","beforeCreate","created","mounted","imgList","link","window","that","methods","leftRemove","onMove","e","onCopy","copyData","then","catch","onError","setmoren","setDefault","getmoren","recovery","getUrlList","getUrl","bindTab","index","showTitle","obj","showFoot","objToArr","log","evt","el","tempItem","cloneDog","swapArray","arr","index1","index2","movePage","item","type","addDomCon","idGlobal","bindAddDom","i","addDom","bindconfig","bindDelete","config","addSort","arraySort","list","isOpen","basis","marketing","tool","tempArr","diySaveDate","saveDiy","value","is_show","is_bg_color","color_picker","bg_pic","bg_tab_val","is_bg_pic","saveConfig","getDefaultConfig","getDiyInfo","newArr","storage","tempARR","num","categoryList","reast","beforeDestroy","destroyed"],"sourceRoot":"src/pages/setting/devise","sources":["diyIndex.vue"],"sourcesContent":["<template>\r\n <div class=\"diy-page\">\r\n <div class=\"i-layout-page-header header_top\">\r\n <div class=\"i-layout-page-header fl_header\">\r\n <router-link :to=\"{ path: '/admin/setting/pages/devise' }\"\r\n ><Button icon=\"ios-arrow-back\" size=\"small\" type=\"text\">返回</Button></router-link\r\n >\r\n <Divider type=\"vertical\" />\r\n <span class=\"ivu-page-header-title mr20\" style=\"padding: 0\" v-text=\"$route.meta.title\"></span>\r\n <div class=\"rbtn\">\r\n <Button v-if=\"pageId !== 0\" class=\"bnt\" @click=\"setmoren\" :loading=\"loading\">保存默认</Button>\r\n <Button v-if=\"pageId !== 0\" class=\"bnt ml20\" @click=\"getmoren\" :loading=\"loading\">恢复默认</Button>\r\n <!-- <div class=\"data\" @click=\"setmoren\">设置默认</div>\r\n <div class=\"data\" @click=\"getmoren\">恢复默认</div> -->\r\n <Button class=\"bnt ml20\" type=\"primary\" @click=\"saveConfig\" :loading=\"loading\">保存</Button>\r\n <Button class=\"bnt ml20\" @click=\"reast\">重置</Button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <Card :bordered=\"false\" dis-hover class=\"ivu-mt\" style=\"margin: 0 10px\">\r\n <div class=\"diy-wrapper\" :style=\"'height:' + (clientHeight - 150) + 'px;'\">\r\n <!-- 左侧 -->\r\n <div class=\"left\">\r\n <div class=\"title-bar\">\r\n <div\r\n class=\"title-item\"\r\n :class=\"{ on: tabCur == index }\"\r\n v-for=\"(item, index) in tabList\"\r\n :key=\"index\"\r\n @click=\"bindTab(index)\"\r\n >\r\n {{ item.title }}\r\n </div>\r\n </div>\r\n <div class=\"wrapper\" :style=\"'height:' + (clientHeight - 150) + 'px;'\" v-if=\"tabCur == 0\">\r\n <div v-for=\"(item, index) in leftMenu\" :key=\"index\">\r\n <div class=\"tips\" @click=\"item.isOpen = !item.isOpen\">\r\n {{ item.title }}\r\n\r\n <Icon type=\"ios-arrow-forward\" size=\"16\" v-if=\"!item.isOpen\" />\r\n <Icon type=\"ios-arrow-down\" size=\"16\" v-else />\r\n </div>\r\n <draggable\r\n class=\"dragArea list-group\"\r\n :list=\"item.list\"\r\n :group=\"{ name: 'people', pull: 'clone', put: false }\"\r\n :clone=\"cloneDog\"\r\n dragClass=\"dragClass\"\r\n filter=\".search , .navbar\"\r\n >\r\n <!--filter=\".search , .navbar\"-->\r\n <!--:class=\"{ search: element.cname == '搜索框' , navbar: element.cname == '商品分类' }\"-->\r\n <div\r\n class=\"list-group-item\"\r\n :class=\"{\r\n search: element.cname == '搜索框',\r\n navbar: element.cname == '商品分类',\r\n }\"\r\n v-for=\"(element, index) in item.list\"\r\n :key=\"element.id\"\r\n @click=\"addDom(element, 1)\"\r\n v-show=\"item.isOpen\"\r\n >\r\n <div>\r\n <div class=\"position\" style=\"display: none\">释放鼠标将组建添加到此处</div>\r\n <span class=\"conter iconfont-diy\" :class=\"element.icon\"></span>\r\n <p class=\"conter\">{{ element.cname }}</p>\r\n </div>\r\n </div>\r\n </draggable>\r\n </div>\r\n </div>\r\n <!-- <div style=\"padding: 0 20px\"><Button type=\"primary\" style=\"width: 100%\" @click=\"saveConfig\">保存</Button></div>-->\r\n <div class=\"wrapper\" v-else :style=\"'height:' + (clientHeight - 200) + 'px;'\">\r\n <div class=\"link-item\" v-for=\"(item, index) in urlList\" :key=\"index\">\r\n <div class=\"name\">{{ item.name }}</div>\r\n <div class=\"link-txt\">地址:{{ item.url }}</div>\r\n <div class=\"params\">\r\n <span class=\"txt\">参数:</span>\r\n <span>{{ item.parameter }}</span>\r\n </div>\r\n <div class=\"lable\">\r\n <p class=\"txt\">例如:{{ item.example }}</p>\r\n <Button size=\"small\" @click=\"onCopy(item.example)\">复制 </Button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- 中间 -->\r\n <div\r\n class=\"wrapper-con\"\r\n style=\"flex: 1; background: #f0f2f5; display: flex; justify-content: center; padding-top: 20px; height: 100%\"\r\n >\r\n <div class=\"content\">\r\n <div class=\"contxt\" style=\"display: flex; flex-direction: column; overflow: hidden; height: 100%\">\r\n <div class=\"overflowy\">\r\n <div class=\"picture\">\r\n <img src=\"@/assets/images/electric.png\" />\r\n </div>\r\n <div class=\"page-title\" :class=\"{ on: activeIndex == -100 }\" @click=\"showTitle\">\r\n {{ titleTxt }}\r\n <div class=\"delete-box\"></div>\r\n <div class=\"handle\"></div>\r\n </div>\r\n </div>\r\n <div class=\"scrollCon\">\r\n <div style=\"width: 460px; margin: 0 auto\">\r\n <div\r\n class=\"scroll-box\"\r\n :class=\"\r\n picTxt && tabValTxt == 2\r\n ? 'fullsize noRepeat'\r\n : picTxt && tabValTxt == 1\r\n ? 'repeat ysize'\r\n : 'noRepeat ysize'\r\n \"\r\n :style=\"\r\n 'background-color:' +\r\n (colorTxt ? colorPickerTxt : '') +\r\n ';background-image: url(' +\r\n (picTxt ? picUrlTxt : '') +\r\n ');height:' +\r\n rollHeight +\r\n 'px;'\r\n \"\r\n ref=\"imgContainer\"\r\n >\r\n <draggable\r\n class=\"dragArea list-group\"\r\n :list=\"mConfig\"\r\n group=\"people\"\r\n @change=\"log\"\r\n filter=\".top\"\r\n :move=\"onMove\"\r\n animation=\"300\"\r\n >\r\n <div\r\n class=\"mConfig-item\"\r\n :class=\"{\r\n on: activeIndex == key,\r\n top: item.name == 'search_box' || item.name == 'nav_bar',\r\n }\"\r\n v-for=\"(item, key) in mConfig\"\r\n :key=\"key\"\r\n @click.stop=\"bindconfig(item, key)\"\r\n :style=\"colorTxt ? 'background-color:' + colorPickerTxt + ';' : 'background-color:#fff;'\"\r\n >\r\n <component\r\n :is=\"item.name\"\r\n ref=\"getComponentData\"\r\n :configData=\"propsObj\"\r\n :index=\"key\"\r\n :num=\"item.num\"\r\n ></component>\r\n <div class=\"delete-box\">\r\n <div class=\"handleType\">\r\n <Tooltip content=\"删除当前模块\" placement=\"top\">\r\n <div class=\"iconfont iconshanchu2\" @click.stop=\"bindDelete(item, key)\"></div>\r\n </Tooltip>\r\n\r\n <div class=\"iconfont iconfuzhi\" @click.stop=\"bindAddDom(item, 0, key)\"></div>\r\n <div\r\n class=\"iconfont iconshangyi\"\r\n :class=\"key === 0 ? 'on' : ''\"\r\n @click.stop=\"movePage(item, key, 1)\"\r\n ></div>\r\n <div\r\n class=\"iconfont iconxiayi\"\r\n :class=\"key === mConfig.length - 1 ? 'on' : ''\"\r\n @click.stop=\"movePage(item, key, 0)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"handle\"></div>\r\n </div>\r\n </draggable>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"overflowy\">\r\n <div class=\"page-foot\" @click=\"showFoot\" :class=\"{ on: activeIndex == -101 }\">\r\n <footPage></footPage>\r\n <div class=\"delete-box\"></div>\r\n <div class=\"handle\"></div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"defaultData\" v-if=\"pageId !== 0\">\r\n <div class=\"data\" @click=\"setmoren\">设置默认</div>\r\n <div class=\"data\" @click=\"getmoren\">恢复默认</div>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n <!-- 右侧 -->\r\n <div class=\"right-box\">\r\n <div class=\"mConfig-item\" style=\"background-color: #fff\" v-for=\"(item, key) in rConfig\" :key=\"key\">\r\n <div class=\"title-bar\">{{ item.cname }}</div>\r\n <component\r\n :is=\"item.configName\"\r\n @config=\"config\"\r\n :activeIndex=\"activeIndex\"\r\n :num=\"item.num\"\r\n :index=\"key\"\r\n ></component>\r\n </div>\r\n </div>\r\n </div>\r\n </Card>\r\n <!--<div class=\"foot-box\">-->\r\n <!--<Button @click=\"reast\">重置</Button>-->\r\n <!--<Button type=\"primary\" @click=\"saveConfig\" :loading=\"loading\"-->\r\n <!-->保存-->\r\n <!--</Button-->\r\n <!-->-->\r\n <!--</div>-->\r\n </div>\r\n</template>\r\n\r\n<script crossorigin=\"anonymous\">\r\nimport { categoryList, getDiyInfo, saveDiy, getUrl, setDefault, recovery } from '@/api/diy';\r\nimport vuedraggable from 'vuedraggable';\r\nimport mPage from '@/components/mobilePageDiy/index.js';\r\nimport mConfig from '@/components/mobileConfigDiy/index.js';\r\nimport footPage from '@/components/pagesFoot';\r\nimport { mapState } from 'vuex';\r\nimport html2canvas from 'html2canvas';\r\n\r\nlet idGlobal = 0;\r\nexport default {\r\n inject: ['reload'],\r\n name: 'index.vue',\r\n components: {\r\n footPage,\r\n html2canvas,\r\n draggable: vuedraggable,\r\n ...mPage,\r\n ...mConfig,\r\n },\r\n filters: {\r\n filterTxt(val) {\r\n if (val) {\r\n return (val = val.substr(0, val.length - 1));\r\n }\r\n },\r\n },\r\n computed: {\r\n ...mapState({\r\n titleTxt: (state) => state.mobildConfig.pageTitle || '首页',\r\n nameTxt: (state) => state.mobildConfig.pageName || '模板',\r\n showTxt: (state) => state.mobildConfig.pageShow,\r\n colorTxt: (state) => state.mobildConfig.pageColor,\r\n picTxt: (state) => state.mobildConfig.pagePic,\r\n colorPickerTxt: (state) => state.mobildConfig.pageColorPicker,\r\n tabValTxt: (state) => state.mobildConfig.pageTabVal,\r\n picUrlTxt: (state) => state.mobildConfig.pagePicUrl,\r\n }),\r\n },\r\n data() {\r\n return {\r\n clientHeight: '', //页面动态高度\r\n rollHeight: '',\r\n leftMenu: [], // 左侧菜单\r\n lConfig: [], // 左侧组件\r\n mConfig: [], // 中间组件渲染\r\n rConfig: [], // 右侧组件配置\r\n activeConfigName: '',\r\n propsObj: {}, // 组件传递的数据,\r\n activeIndex: -100, // 选中的下标\r\n number: 0,\r\n pageId: '',\r\n pageName: '',\r\n pageType: '',\r\n category: [],\r\n tabList: [\r\n {\r\n title: '组件库',\r\n key: 0,\r\n },\r\n {\r\n title: '页面链接',\r\n key: 1,\r\n },\r\n ],\r\n tabCur: 0,\r\n urlList: [],\r\n footActive: false,\r\n loading: false,\r\n isSearch: false,\r\n isTab: false,\r\n isFllow: false,\r\n };\r\n },\r\n beforeRouteLeave(to, from, next) {\r\n // 导航离开该组件的对应路由时调用\r\n // 可以访问组件实例 `this`\r\n if (to.name === 'setting_devise') {\r\n this.$Modal.confirm({\r\n title: '确定要离开当前页吗?',\r\n content: '离开前请确认保存您的设计',\r\n okText: '保存并离开',\r\n cancelText: '离开',\r\n loading: true,\r\n onOk: () => {\r\n setTimeout(() => {\r\n this.saveConfig();\r\n this.$Modal.remove();\r\n next();\r\n }, 1500);\r\n },\r\n onCancel: () => {\r\n next();\r\n },\r\n });\r\n }\r\n // 执行路由跳转\r\n },\r\n beforeCreate() {\r\n this.$store.commit('mobildConfig/titleUpdata', '');\r\n this.$store.commit('mobildConfig/nameUpdata', '');\r\n this.$store.commit('mobildConfig/showUpdata', 1);\r\n this.$store.commit('mobildConfig/colorUpdata', 0);\r\n this.$store.commit('mobildConfig/picUpdata', 0);\r\n this.$store.commit('mobildConfig/pickerUpdata', '#f5f5f5');\r\n this.$store.commit('mobildConfig/radioUpdata', 0);\r\n this.$store.commit('mobildConfig/picurlUpdata', '');\r\n this.$store.commit('mobildConfig/SETEMPTY');\r\n },\r\n created() {\r\n this.categoryList();\r\n this.getUrlList();\r\n this.pageId = this.$route.query.id;\r\n this.pageName = this.$route.query.name;\r\n this.pageType = this.$route.query.type;\r\n this.lConfig = this.objToArr(mPage);\r\n },\r\n mounted() {\r\n let imgList = {\r\n imgList: [require('@/assets/images/foot-005.png'), require('@/assets/images/foot-006.png')],\r\n name: '购物车',\r\n link: '/pages/order_addcart/order_addcart',\r\n };\r\n this.$nextTick(() => {\r\n this.$store.commit('mobildConfig/FOOTER', {\r\n title: '专题页是否显示',\r\n name: imgList,\r\n });\r\n this.arraySort();\r\n if (this.pageId != 0) {\r\n this.getDefaultConfig();\r\n } else {\r\n this.showTitle();\r\n }\r\n this.clientHeight = `${document.documentElement.clientHeight}` - 65.81; //获取浏览器可视区域高度\r\n let H = `${document.documentElement.clientHeight}` - 180;\r\n this.rollHeight = H > 650 ? 650 : H;\r\n let that = this;\r\n window.onresize = function () {\r\n that.clientHeight = `${document.documentElement.clientHeight}` - 65.81;\r\n let H = `${document.documentElement.clientHeight}` - 180;\r\n that.rollHeight = H > 650 ? 650 : H;\r\n };\r\n });\r\n },\r\n methods: {\r\n leftRemove({ to, from, item, clone, oldIndex, newIndex }) {\r\n if (this.isSearch && newIndex == 0) {\r\n if (item._underlying_vm_.name == 'z_wechat_attention') {\r\n this.isFllow = true;\r\n } else {\r\n this.$store.commit('mobildConfig/ARRAYREAST', this.mConfig[0].num);\r\n this.mConfig.splice(0, 1);\r\n }\r\n }\r\n if ((this.isFllow = true && newIndex >= 1)) {\r\n this.$store.commit('mobildConfig/ARRAYREAST', this.mConfig[0].num);\r\n }\r\n },\r\n onMove(e) {\r\n if (e.relatedContext.element.name == 'search_box') return false;\r\n if (e.relatedContext.element.name == 'nav_bar') return false;\r\n return true;\r\n },\r\n onCopy(copyData) {\r\n this.$copyText(copyData)\r\n .then((message) => {\r\n this.$Message.success('复制成功');\r\n })\r\n .catch((err) => {\r\n this.$Message.error('复制失败');\r\n });\r\n },\r\n onError() {\r\n this.$Message.error('复制失败');\r\n },\r\n //设置默认数据\r\n setmoren() {\r\n this.$Modal.confirm({\r\n title: '保存为默认数据',\r\n content: '您确定将当前设计设为默认数据吗?',\r\n onOk: () => {\r\n setDefault(this.pageId)\r\n .then((res) => {\r\n this.$Message.success(res.msg);\r\n })\r\n .catch((err) => {\r\n this.$Message.error(err.msg);\r\n });\r\n },\r\n onCancel: () => {},\r\n });\r\n },\r\n //恢复默认\r\n getmoren() {\r\n this.$Modal.confirm({\r\n title: '恢复默认数据',\r\n content: '您确定恢复为之前保存的默认数据吗?',\r\n onOk: () => {\r\n recovery(this.pageId)\r\n .then((res) => {\r\n this.$Message.success(res.msg);\r\n this.reload();\r\n })\r\n .catch((err) => {\r\n this.$Message.error(err.msg);\r\n });\r\n },\r\n onCancel: () => {},\r\n });\r\n },\r\n // 获取url\r\n getUrlList() {\r\n getUrl().then((res) => {\r\n this.urlList = res.data.url;\r\n });\r\n },\r\n // 左侧tab\r\n bindTab(index) {\r\n this.tabCur = index;\r\n },\r\n // 页面标题点击\r\n showTitle() {\r\n this.activeIndex = -100;\r\n let obj = {};\r\n for (var i in mConfig) {\r\n if (i == 'pageTitle') {\r\n // this.rConfig = obj\r\n obj = mConfig[i];\r\n obj.configName = mConfig[i].name;\r\n obj.cname = '页面设置';\r\n }\r\n }\r\n let abc = obj;\r\n this.rConfig = [];\r\n this.rConfig[0] = JSON.parse(JSON.stringify(obj));\r\n },\r\n // 页面底部点击\r\n showFoot() {\r\n this.activeIndex = -101;\r\n let obj = {};\r\n for (var i in mConfig) {\r\n if (i == 'pageFoot') {\r\n // this.rConfig = obj\r\n obj = mConfig[i];\r\n obj.configName = mConfig[i].name;\r\n obj.cname = '底部菜单';\r\n }\r\n }\r\n let abc = obj;\r\n this.rConfig = [];\r\n this.rConfig[0] = JSON.parse(JSON.stringify(obj));\r\n },\r\n // 对象转数组\r\n objToArr(data) {\r\n let obj = Object.keys(data);\r\n let m = obj.map((key) => data[key]);\r\n return m;\r\n },\r\n log(evt) {\r\n // 中间拖拽排序\r\n if (evt.moved) {\r\n if (evt.moved.element.name == 'search_box') {\r\n return this.$Message.warning('该组件禁止拖拽');\r\n }\r\n // if (evt.moved.element.name == \"nav_bar\") {\r\n // return this.$Message.warning(\"该组件禁止拖拽\");\r\n // }\r\n evt.moved.oldNum = this.mConfig[evt.moved.oldIndex].num;\r\n evt.moved.newNum = this.mConfig[evt.moved.newIndex].num;\r\n evt.moved.status = evt.moved.oldIndex > evt.moved.newIndex;\r\n this.mConfig.forEach((el, index) => {\r\n el.num = new Date().getTime() * 1000 + index;\r\n });\r\n evt.moved.list = this.mConfig;\r\n this.rConfig = [];\r\n let item = evt.moved.element;\r\n let tempItem = JSON.parse(JSON.stringify(item));\r\n this.rConfig.push(tempItem);\r\n this.activeIndex = evt.moved.newIndex;\r\n this.$store.commit('mobildConfig/SETCONFIGNAME', item.name);\r\n this.$store.commit('mobildConfig/defaultArraySort', evt.moved);\r\n }\r\n // 从左向右拖拽排序\r\n if (evt.added) {\r\n let data = evt.added.element;\r\n let obj = {};\r\n let timestamp = new Date().getTime() * 1000;\r\n data.num = timestamp;\r\n this.activeConfigName = data.name;\r\n let tempItem = JSON.parse(JSON.stringify(data));\r\n tempItem.id = 'id' + tempItem.num;\r\n this.mConfig[evt.added.newIndex] = tempItem;\r\n this.rConfig = [];\r\n this.rConfig.push(tempItem);\r\n this.mConfig.forEach((el, index) => {\r\n el.num = new Date().getTime() * 1000 + index;\r\n });\r\n evt.added.list = this.mConfig;\r\n this.activeIndex = evt.added.newIndex;\r\n // 保存组件名称\r\n this.$store.commit('mobildConfig/SETCONFIGNAME', data.name);\r\n this.$store.commit('mobildConfig/defaultArraySort', evt.added);\r\n }\r\n },\r\n cloneDog(data) {\r\n // this.mConfig.push(tempItem)\r\n return {\r\n ...data,\r\n };\r\n },\r\n //数组元素互换位置\r\n swapArray(arr, index1, index2) {\r\n arr[index1] = arr.splice(index2, 1, arr[index1])[0];\r\n return arr;\r\n },\r\n //点击上下移动;\r\n movePage(item, index, type) {\r\n if (type) {\r\n if (index == 0) {\r\n return;\r\n }\r\n } else {\r\n if (index == this.mConfig.length - 1) {\r\n return;\r\n }\r\n }\r\n if (item.name == 'search_box') {\r\n return this.$Message.warning('该组件禁止移动');\r\n }\r\n // if (item.name == \"nav_bar\") {\r\n // return this.$Message.warning(\"该组件禁止移动\");\r\n // }\r\n if (type) {\r\n // if(this.mConfig[index-1].name == \"search_box\" || this.mConfig[index-1].name == \"nav_bar\"){\r\n if (this.mConfig[index - 1].name == 'search_box') {\r\n return this.$Message.warning('搜索框必须为顶部');\r\n }\r\n this.swapArray(this.mConfig, index - 1, index);\r\n } else {\r\n this.swapArray(this.mConfig, index, index + 1);\r\n }\r\n let obj = {};\r\n this.rConfig = [];\r\n obj.oldIndex = index;\r\n if (type) {\r\n obj.newIndex = index - 1;\r\n } else {\r\n obj.newIndex = index + 1;\r\n }\r\n this.mConfig.forEach((el, index) => {\r\n el.num = new Date().getTime() * 1000 + index;\r\n });\r\n let tempItem = JSON.parse(JSON.stringify(item));\r\n this.rConfig.push(tempItem);\r\n obj.element = item;\r\n obj.list = this.mConfig;\r\n if (type) {\r\n this.activeIndex = index - 1;\r\n } else {\r\n this.activeIndex = index + 1;\r\n }\r\n this.$store.commit('mobildConfig/SETCONFIGNAME', item.name);\r\n this.$store.commit('mobildConfig/defaultArraySort', obj);\r\n },\r\n // 组件添加\r\n addDomCon(item, type, index) {\r\n if (item.name == 'search_box') {\r\n if (this.isSearch) return this.$Message.error('该组件只能添加一次');\r\n this.isSearch = true;\r\n }\r\n if (item.name == 'nav_bar') {\r\n if (this.isTab) return this.$Message.error('该组件只能添加一次');\r\n this.isTab = true;\r\n }\r\n idGlobal += 1;\r\n let obj = {};\r\n let timestamp = new Date().getTime() * 1000;\r\n item.num = `${timestamp}`;\r\n item.id = `id${timestamp}`;\r\n this.activeConfigName = item.name;\r\n let tempItem = JSON.parse(JSON.stringify(item));\r\n if (item.name == 'search_box') {\r\n this.rConfig = [];\r\n this.mConfig.unshift(tempItem);\r\n this.activeIndex = 0;\r\n this.rConfig.push(tempItem);\r\n }\r\n // 动态拖动可上传此部分代码\r\n else if (item.name == 'nav_bar') {\r\n this.rConfig = [];\r\n if (this.mConfig[0] && this.mConfig[0].name === 'search_box') {\r\n this.mConfig.splice(1, 0, tempItem);\r\n this.activeIndex = 1;\r\n } else {\r\n this.mConfig.splice(0, 0, tempItem);\r\n this.activeIndex = 0;\r\n }\r\n this.rConfig.push(tempItem);\r\n } else {\r\n if (type) {\r\n this.rConfig = [];\r\n this.mConfig.push(tempItem);\r\n this.activeIndex = this.mConfig.length - 1;\r\n this.rConfig.push(tempItem);\r\n } else {\r\n this.mConfig.splice(index + 1, 0, tempItem);\r\n this.activeIndex = index;\r\n }\r\n }\r\n this.mConfig.forEach((el, index) => {\r\n el.num = new Date().getTime() * 1000 + index;\r\n });\r\n // 保存组件名称\r\n obj.element = item;\r\n obj.list = this.mConfig;\r\n this.$store.commit('mobildConfig/SETCONFIGNAME', item.name);\r\n this.$store.commit('mobildConfig/defaultArraySort', obj);\r\n },\r\n //中间页点击添加模块;\r\n bindAddDom(item, type, index) {\r\n let i = item;\r\n this.lConfig.forEach((j) => {\r\n if (item.name == j.name) {\r\n i = j;\r\n }\r\n });\r\n this.addDomCon(i, type, index);\r\n },\r\n //左边配置模块点击添加;\r\n addDom(item, type) {\r\n this.addDomCon(item, type);\r\n },\r\n // 点击显示相应的配置\r\n bindconfig(item, index) {\r\n this.rConfig = [];\r\n let tempItem = JSON.parse(JSON.stringify(item));\r\n this.rConfig.push(tempItem);\r\n this.activeIndex = index;\r\n this.$store.commit('mobildConfig/SETCONFIGNAME', item.name);\r\n },\r\n // 组件删除\r\n bindDelete(item, key) {\r\n if (item.name == 'search_box') {\r\n this.isSearch = false;\r\n }\r\n if (item.name == 'nav_bar') {\r\n this.isTab = false;\r\n }\r\n this.mConfig.splice(key, 1);\r\n this.rConfig.splice(0, 1);\r\n if (this.mConfig.length != key) {\r\n this.rConfig.push(this.mConfig[key]);\r\n } else {\r\n if (this.mConfig.length) {\r\n this.activeIndex = key - 1;\r\n this.rConfig.push(this.mConfig[key - 1]);\r\n } else {\r\n this.showTitle();\r\n }\r\n }\r\n // 删除第几个配置\r\n this.$store.commit('mobildConfig/DELETEARRAY', item);\r\n },\r\n // 组件返回\r\n config(data) {\r\n let propsObj = this.propsObj;\r\n propsObj.data = data;\r\n propsObj.name = this.activeConfigName;\r\n },\r\n addSort(arr, index1, index2) {\r\n arr[index1] = arr.splice(index2, 1, arr[index1])[0];\r\n return arr;\r\n },\r\n // 数组排序\r\n arraySort() {\r\n let tempArr = [];\r\n let basis = {\r\n title: '基础组件',\r\n list: [],\r\n isOpen: true,\r\n };\r\n let marketing = {\r\n title: '营销组件',\r\n list: [],\r\n isOpen: true,\r\n };\r\n let tool = {\r\n title: '工具组件',\r\n list: [],\r\n isOpen: true,\r\n };\r\n this.lConfig.map((el, index) => {\r\n if (el.type == 0) {\r\n basis.list.push(el);\r\n }\r\n if (el.type == 1) {\r\n marketing.list.push(el);\r\n }\r\n if (el.type == 2) {\r\n tool.list.push(el);\r\n }\r\n });\r\n tempArr.push(basis, marketing, tool);\r\n this.leftMenu = tempArr;\r\n },\r\n // toImage(val){\r\n // html2canvas(this.$refs.imgContainer,{\r\n // useCORS:true,\r\n // logging:true,\r\n // taintTest: false,\r\n // backgroundColor: null\r\n // }).then((canvas) => {\r\n // let imgUrl = canvas.toDataURL('image/jpeg');\r\n // this.diySaveDate(val,imgUrl)\r\n // });\r\n // },\r\n diySaveDate(val) {\r\n saveDiy(this.pageId, {\r\n type: this.pageType,\r\n value: val,\r\n title: this.titleTxt,\r\n name: this.nameTxt,\r\n is_show: this.showTxt ? 1 : 0,\r\n is_bg_color: this.colorTxt ? 1 : 0,\r\n color_picker: this.colorPickerTxt,\r\n bg_pic: this.picUrlTxt,\r\n bg_tab_val: this.tabValTxt,\r\n is_bg_pic: this.picTxt ? 1 : 0,\r\n })\r\n .then((res) => {\r\n this.loading = false;\r\n this.pageId = res.data.id;\r\n this.$Message.success(res.msg);\r\n })\r\n .catch((res) => {\r\n this.loading = false;\r\n this.$Message.error(res.msg);\r\n });\r\n },\r\n // 保存配置\r\n saveConfig() {\r\n if (this.mConfig.length == 0) {\r\n return this.$Message.error('暂未添加任何组件,保存失败!');\r\n }\r\n this.loading = true;\r\n let val = this.$store.state.mobildConfig.defaultArray;\r\n if (!this.footActive) {\r\n let timestamp = new Date().getTime() * 1000;\r\n val[timestamp] = this.$store.state.mobildConfig.pageFooter;\r\n this.footActive = true;\r\n }\r\n this.$nextTick(function () {\r\n this.diySaveDate(val);\r\n });\r\n },\r\n // 获取默认配置\r\n getDefaultConfig() {\r\n getDiyInfo(this.pageId).then(({ data }) => {\r\n let obj = {};\r\n let tempARR = [];\r\n this.$store.commit('mobildConfig/titleUpdata', data.info.title);\r\n this.$store.commit('mobildConfig/nameUpdata', data.info.name);\r\n this.$store.commit('mobildConfig/showUpdata', data.info.is_show);\r\n this.$store.commit('mobildConfig/colorUpdata', data.info.is_bg_color || 0);\r\n this.$store.commit('mobildConfig/picUpdata', data.info.is_bg_pic || 0);\r\n this.$store.commit('mobildConfig/pickerUpdata', data.info.color_picker || '#f5f5f5');\r\n this.$store.commit('mobildConfig/radioUpdata', data.info.bg_tab_val || 0);\r\n this.$store.commit('mobildConfig/picurlUpdata', data.info.bg_pic || '');\r\n let newArr = this.objToArr(data.info.value);\r\n\r\n function sortNumber(a, b) {\r\n return a.timestamp - b.timestamp;\r\n }\r\n\r\n newArr.sort(sortNumber);\r\n newArr.map((el, index) => {\r\n if (el.name == 'headerSerch') {\r\n this.isSearch = true;\r\n }\r\n if (el.name == 'tabNav') {\r\n this.isTab = true;\r\n }\r\n if (el.name == 'goodList') {\r\n let storage = window.localStorage;\r\n storage.setItem(el.timestamp, el.selectConfig.activeValue);\r\n }\r\n el.id = 'id' + el.timestamp;\r\n this.lConfig.map((item, j) => {\r\n if (el.name == item.defaultName) {\r\n item.num = el.timestamp;\r\n item.id = 'id' + el.timestamp;\r\n let tempItem = JSON.parse(JSON.stringify(item));\r\n tempARR.push(tempItem);\r\n obj[el.timestamp] = el;\r\n this.mConfig.push(tempItem);\r\n // 保存默认组件配置\r\n this.$store.commit('mobildConfig/ADDARRAY', {\r\n num: el.timestamp,\r\n val: el,\r\n });\r\n }\r\n });\r\n });\r\n\r\n let objs = newArr[newArr.length - 1];\r\n\r\n if (objs.name == 'pageFoot') {\r\n this.$store.commit('mobildConfig/footPageUpdata', objs);\r\n }\r\n this.showTitle();\r\n // this.rConfig = [];\r\n // this.activeIndex = 0;\r\n // this.rConfig.push(this.mConfig[0]);\r\n });\r\n },\r\n categoryList() {\r\n categoryList((res) => {\r\n this.category = res.data;\r\n });\r\n },\r\n // 重置\r\n reast() {\r\n if (this.pageId == 0) {\r\n this.$Message.error('新增页面,无法重置');\r\n } else {\r\n this.$Modal.confirm({\r\n title: '提示',\r\n content: '<p>是否重置当前页面数据</p>',\r\n onOk: () => {\r\n this.mConfig = [];\r\n this.rConfig = [];\r\n this.activeIndex = -99;\r\n this.getDefaultConfig();\r\n },\r\n onCancel: () => {},\r\n });\r\n }\r\n },\r\n },\r\n beforeDestroy() {\r\n this.$store.commit('mobildConfig/titleUpdata', '');\r\n this.$store.commit('mobildConfig/nameUpdata', '');\r\n this.$store.commit('mobildConfig/showUpdata', 1);\r\n this.$store.commit('mobildConfig/colorUpdata', 0);\r\n this.$store.commit('mobildConfig/picUpdata', 0);\r\n this.$store.commit('mobildConfig/pickerUpdata', '#f5f5f5');\r\n this.$store.commit('mobildConfig/radioUpdata', 0);\r\n this.$store.commit('mobildConfig/picurlUpdata', '');\r\n this.$store.commit('mobildConfig/SETEMPTY');\r\n },\r\n destroyed() {\r\n this.$store.commit('mobildConfig/titleUpdata', '');\r\n this.$store.commit('mobildConfig/nameUpdata', '');\r\n this.$store.commit('mobildConfig/showUpdata', 1);\r\n this.$store.commit('mobildConfig/colorUpdata', 0);\r\n this.$store.commit('mobildConfig/picUpdata', 0);\r\n this.$store.commit('mobildConfig/pickerUpdata', '#f5f5f5');\r\n this.$store.commit('mobildConfig/radioUpdata', 0);\r\n this.$store.commit('mobildConfig/picurlUpdata', '');\r\n this.$store.commit('mobildConfig/SETEMPTY');\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"stylus\">\r\n.ysize {\r\n background-size: 100%;\r\n}\r\n\r\n.fullsize {\r\n background-size: 100% 100%;\r\n}\r\n\r\n.repeat {\r\n background-repeat: repeat;\r\n}\r\n\r\n.noRepeat {\r\n background-repeat: no-repeat;\r\n}\r\n\r\n.wrapper-con {\r\n /* min-width 700px; */\r\n}\r\n\r\n.defaultData {\r\n /* margin-left 20px; */\r\n cursor: pointer;\r\n position: absolute;\r\n left: 50%;\r\n margin-left: 245px;\r\n\r\n .data {\r\n margin-top: 20px;\r\n color: #282828;\r\n background-color: #fff;\r\n width: 94px;\r\n text-align: center;\r\n height: 32px;\r\n line-height: 32px;\r\n border-radius: 3px;\r\n font-size: 12px;\r\n }\r\n\r\n .data:hover {\r\n background-color: #2d8cf0;\r\n color: #fff;\r\n border: 0;\r\n }\r\n}\r\n\r\n.overflowy {\r\n overflow-y: scroll;\r\n\r\n .picture {\r\n width: 379px;\r\n height: 20px;\r\n margin: 0 auto;\r\n background-color: #fff;\r\n }\r\n}\r\n\r\n.bnt {\r\n width: 80px !important;\r\n}\r\n\r\n/* 定义滑块 内阴影+圆角 */\r\n::-webkit-scrollbar-thumb {\r\n -webkit-box-shadow: inset 0 0 6px #fff;\r\n display: none;\r\n}\r\n\r\n.left:hover::-webkit-scrollbar-thumb, .right-box:hover::-webkit-scrollbar-thumb {\r\n display: block;\r\n}\r\n\r\n.contxt:hover ::-webkit-scrollbar-thumb {\r\n display: block;\r\n}\r\n\r\n::-webkit-scrollbar {\r\n width: 4px !important; /* 对垂直流动条有效 */\r\n}\r\n\r\n.scrollCon {\r\n overflow-y: scroll;\r\n overflow-x: hidden;\r\n}\r\n\r\n.scroll-box .position {\r\n display: block !important;\r\n height: 40px;\r\n text-align: center;\r\n line-height: 40px;\r\n border: 1px dashed #1890ff;\r\n color: #1890ff;\r\n background-color: #edf4fb;\r\n}\r\n\r\n.scroll-box .conter {\r\n display: none !important;\r\n}\r\n\r\n.dragClass {\r\n background-color: #fff;\r\n}\r\n\r\n.ivu-mt {\r\n display: flex;\r\n justify-content: space-between;\r\n}\r\n\r\n.iconfont-diy {\r\n font-size: 24px;\r\n color: #1890ff;\r\n}\r\n\r\n.diy-wrapper {\r\n max-width: 100%;\r\n min-width: 1100px;\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 20px;\r\n\r\n /* height: 84.5vh; */\r\n .left {\r\n min-width: 300px;\r\n max-width: 300px;\r\n /* border 1px solid #DDDDDD */\r\n border-radius: 4px;\r\n height: 100%;\r\n\r\n .title-bar {\r\n display: flex;\r\n color: #333;\r\n border-bottom: 1px solid #eee;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n\r\n .title-item {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex: 1;\r\n height: 45px;\r\n\r\n &.on {\r\n color: #1890FF;\r\n font-size: 14px;\r\n border-bottom: 1px solid #1890FF;\r\n }\r\n }\r\n }\r\n\r\n .wrapper {\r\n padding: 15px;\r\n overflow-y: scroll;\r\n -webkit-overflow-scrolling: touch;\r\n\r\n .tips {\r\n display: flex;\r\n justify-content: space-between;\r\n padding-bottom: 15px;\r\n font-size: 13px;\r\n color: #000;\r\n cursor: pointer;\r\n\r\n .ivu-icon {\r\n color: #000;\r\n }\r\n }\r\n }\r\n\r\n .link-item {\r\n padding: 10px;\r\n border-bottom: 1px solid #F5F5F5;\r\n font-size: 12px;\r\n color: #323232;\r\n\r\n .name {\r\n font-size: 14px;\r\n color: #1890FF;\r\n }\r\n\r\n .link-txt {\r\n margin-top: 2px;\r\n word-break: break-all;\r\n }\r\n\r\n .params {\r\n margin-top: 5px;\r\n color: #1CBE6B;\r\n word-break: break-all;\r\n\r\n .txt {\r\n color: #323232;\r\n }\r\n\r\n span {\r\n &:last-child i {\r\n display: none;\r\n color: red;\r\n }\r\n }\r\n }\r\n\r\n .lable {\r\n display: flex;\r\n margin-top: 5px;\r\n color: #999;\r\n\r\n p {\r\n flex: 1;\r\n word-break: break-all;\r\n }\r\n\r\n button {\r\n margin-left: 30px;\r\n width: 38px;\r\n }\r\n }\r\n }\r\n\r\n .dragArea.list-group {\r\n display: flex;\r\n flex-wrap: wrap;\r\n\r\n .list-group-item {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n width: 74px;\r\n height: 66px;\r\n margin-right: 17px;\r\n margin-bottom: 10px;\r\n font-size: 12px;\r\n color: #666;\r\n cursor: pointer;\r\n border-radius: 5px;\r\n text-align: center;\r\n\r\n &:hover {\r\n box-shadow: 0 0 5px 0 rgba(24, 144, 255, 0.3);\r\n border-right: 5px;\r\n transform: scale(1.1);\r\n transition: all 0.2s;\r\n }\r\n\r\n &:nth-child(3n) {\r\n margin-right: 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .content {\r\n position: relative;\r\n height: 100%;\r\n width: 100%;\r\n\r\n .page-foot {\r\n position: relative;\r\n width: 379px;\r\n margin: 0 auto 20px auto;\r\n\r\n .delete-box {\r\n display: none;\r\n position: absolute;\r\n left: -2px;\r\n top: 0;\r\n width: 383px;\r\n height: 100%;\r\n border: 2px dashed #1890ff;\r\n padding: 10px 0;\r\n }\r\n\r\n &:hover, &.on {\r\n /* cursor: move; */\r\n .delete-box {\r\n /* display: block; */\r\n }\r\n }\r\n\r\n &.on {\r\n cursor: move;\r\n\r\n .delete-box {\r\n display: block;\r\n border: 2px solid #1890ff;\r\n box-shadow: 0 0 10px 0 rgba(24, 144, 255, 0.3);\r\n }\r\n }\r\n }\r\n\r\n .page-title {\r\n position: relative;\r\n height: 35px;\r\n line-height: 35px;\r\n background: #fff;\r\n font-size: 15px;\r\n color: #333333;\r\n text-align: center;\r\n width: 379px;\r\n margin: 0 auto;\r\n\r\n .delete-box {\r\n display: none;\r\n position: absolute;\r\n left: -2px;\r\n top: 0;\r\n width: 383px;\r\n height: 100%;\r\n border: 2px dashed #1890ff;\r\n padding: 10px 0;\r\n\r\n span {\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n width: 32px;\r\n height: 16px;\r\n line-height: 16px;\r\n display: inline-block;\r\n text-align: center;\r\n font-size: 10px;\r\n color: #fff;\r\n background: rgba(0, 0, 0, 0.4);\r\n margin-left: 2px;\r\n cursor: pointer;\r\n z-index: 11;\r\n }\r\n }\r\n\r\n &:hover, &.on {\r\n /* cursor: move; */\r\n .delete-box {\r\n /* display: block; */\r\n }\r\n }\r\n\r\n &.on {\r\n cursor: move;\r\n\r\n .delete-box {\r\n display: block;\r\n border: 2px solid #1890ff;\r\n box-shadow: 0 0 10px 0 rgba(24, 144, 255, 0.3);\r\n }\r\n }\r\n }\r\n\r\n .scroll-box {\r\n flex: 1;\r\n background-color: #fff;\r\n width: 379px;\r\n margin: 0 auto;\r\n padding-top: 1px;\r\n }\r\n\r\n .dragArea.list-group {\r\n width: 100%;\r\n height: 100%;\r\n\r\n .mConfig-item {\r\n position: relative;\r\n cursor: move;\r\n\r\n .delete-box {\r\n display: none;\r\n position: absolute;\r\n left: -2px;\r\n top: 0;\r\n width: 383px;\r\n height: 100%;\r\n border: 2px dashed #1890ff;\r\n\r\n /* padding: 10px 0; */\r\n .handleType {\r\n position: absolute;\r\n right: -43px;\r\n top: 0;\r\n width: 36px;\r\n height: 143px;\r\n border-radius: 4px;\r\n background-color: #1890ff;\r\n cursor: pointer;\r\n color: #fff;\r\n font-weight: bold;\r\n text-align: center;\r\n padding: 4px 0;\r\n\r\n .iconfont {\r\n padding: 5px 0;\r\n\r\n &.on {\r\n opacity: 0.4;\r\n }\r\n }\r\n }\r\n }\r\n\r\n &.on {\r\n cursor: move;\r\n\r\n .delete-box {\r\n display: block;\r\n border: 2px solid #1890ff;\r\n box-shadow: 0 0 10px 0 rgba(24, 144, 255, 0.3);\r\n }\r\n }\r\n }\r\n\r\n .mConfig-item:hover {\r\n transform: scale(1.01);\r\n box-shadow: 0 0 10px 0 rgba(24, 144, 255, 0.3);\r\n transition: all 0.2s;\r\n }\r\n }\r\n }\r\n\r\n .right-box {\r\n max-width: 400px;\r\n min-width: 400px;\r\n height: 100%;\r\n border-radius: 4px;\r\n overflow: scroll;\r\n -webkit-overflow-scrolling: touch;\r\n\r\n /deep/ .ivu-tabs-bar {\r\n margin-bottom: 16px;\r\n }\r\n\r\n .title-bar {\r\n width: 100%;\r\n height: 45px;\r\n line-height: 45px;\r\n padding-left: 24px;\r\n color: #000;\r\n border-radius: 4px;\r\n border-bottom: 1px solid #eee;\r\n font-size: 14px;\r\n }\r\n }\r\n\r\n ::-webkit-scrollbar {\r\n width: 6px;\r\n background-color: transparent;\r\n }\r\n\r\n ::-webkit-scrollbar-track {\r\n border-radius: 10px;\r\n }\r\n\r\n ::-webkit-scrollbar-thumb {\r\n background-color: #bfc1c4;\r\n }\r\n}\r\n\r\n.foot-box {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 80px;\r\n background: #fff;\r\n box-shadow: 0px -2px 4px 0px rgba(0, 0, 0, 0.03);\r\n\r\n button {\r\n width: 100px;\r\n height: 32px;\r\n font-size: 13px;\r\n\r\n &:first-child {\r\n margin-right: 20px;\r\n }\r\n }\r\n}\r\n\r\n/deep/ .ivu-scroll-loader {\r\n display: none;\r\n}\r\n\r\n/deep/ .ivu-card-body {\r\n width: 100%;\r\n}\r\n\r\n.rbtn {\r\n position: absolute;\r\n right: 20px;\r\n}\r\n</style>\r\n"]}]}
|