@dcloudio/uni-debugger
Version:
uni-app debugger
1,256 lines (1,154 loc) • 66.8 kB
JavaScript
webpackJsonp([7],{
/***/ "./src/bridge/debugger.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ready__ = __webpack_require__("./src/bridge/ready.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__invoke__ = __webpack_require__("./src/bridge/invoke.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__publish__ = __webpack_require__("./src/bridge/publish.ts");
var INSPECTOR_VARS = Object.create(null);
function getTarget(obj, dataPath) {
var parts = dataPath.split('.');
var key = parts[0];
if (parts.length === 1) {
return obj[key];
}
return getTarget(obj[key], parts.slice(1).join('.'));
}
function getInspectorVar(dataPath) {
if (!INSPECTOR_VARS[dataPath]) {
INSPECTOR_VARS[dataPath] = getTarget(document.querySelector('iframe').contentWindow, dataPath);
if (!INSPECTOR_VARS[dataPath]) {
throw new Error(dataPath + ' is undefined');
}
}
return INSPECTOR_VARS[dataPath];
}
function normalizePath(url) {
return url.replace(/\\/g, '/');
}
function getUISourceCode(url) {
var uiSourceCode = getInspectorVar('Workspace.workspace').uiSourceCodeForURL("uni-app:///" + normalizePath(url));
if (!uiSourceCode) {
console.error("UISourceCode('" + url + "') is undefined");
}
return uiSourceCode;
}
function getUrl(url) {
return url.replace('uni-app:///', '');
}
function breakpointAdded(evt) {
var uiLocation = evt.data.uiLocation;
var url = uiLocation.uiSourceCode.url();
if (url.indexOf('uni-app:///') === 0) {
Object(__WEBPACK_IMPORTED_MODULE_2__publish__["a" /* publish */])('Debugger.breakpointAdded', {
url: getUrl(url),
enabled: evt.data.breakpoint.enabled(),
lineNumber: uiLocation.lineNumber,
columnNumber: uiLocation.columnNumber
});
}
}
function breakpointRemoved(evt) {
var uiLocation = evt.data.uiLocation;
var url = uiLocation.uiSourceCode.url();
if (url.indexOf('uni-app:///') === 0) {
Object(__WEBPACK_IMPORTED_MODULE_2__publish__["a" /* publish */])('Debugger.breakpointRemoved', {
url: getUrl(url),
lineNumber: uiLocation.lineNumber,
columnNumber: uiLocation.columnNumber
});
}
}
function setBreakpointByUrl(_a) {
var url = _a.url, lineNumber = _a.lineNumber;
var uniSourceCode = getUISourceCode(url);
if (uniSourceCode) {
getInspectorVar('Common.Revealer').reveal(uniSourceCode.uiLocation(lineNumber, 0));
getInspectorVar('Bindings.breakpointManager').setBreakpoint(uniSourceCode, lineNumber, 0, '', true);
}
else {
alert('本页面未在手机端运行,请在手机端打开本页面再同步断点。');
}
}
function removeBreakpointByUrl(_a) {
var url = _a.url, lineNumber = _a.lineNumber;
var breakpoints = getInspectorVar('Bindings.breakpointManager').findBreakpoints(getUISourceCode(url), lineNumber);
if (Array.isArray(breakpoints)) {
breakpoints.forEach(function (breakpoint) {
breakpoint.remove();
});
}
}
function debuggerPaused(evt) {
var details = evt.data.debuggerPausedDetails();
var selectedUILocation = details && details.callFrames.length ?
getInspectorVar('Bindings.debuggerWorkspaceBinding').rawLocationToUILocation(details.callFrames[0].location()) :
null;
//TODO 需要考虑 selectedUILocation 为 null
if (selectedUILocation) {
var url = selectedUILocation.uiSourceCode.url();
if (url.indexOf('uni-app:///') === 0) {
Object(__WEBPACK_IMPORTED_MODULE_2__publish__["a" /* publish */])('Debugger.debuggerPaused', {
url: getUrl(url),
lineNumber: selectedUILocation.lineNumber,
columnNumber: selectedUILocation.columnNumber
});
}
}
}
function debuggerResumed(evt) {
Object(__WEBPACK_IMPORTED_MODULE_2__publish__["a" /* publish */])('Debugger.debuggerResumed');
}
function scriptParsed(evt) {
var url = evt.data.url();
if (url.indexOf('uni-app:///') === 0) {
Object(__WEBPACK_IMPORTED_MODULE_2__publish__["a" /* publish */])('Debugger.scriptParsed', {
url: getUrl(url)
});
}
else if (url.indexOf('webpack:///') === 0 ||
url.indexOf('webpack-internal:///') === 0) {
// getInspectorVar('Bindings.blackboxManager').blackboxUISourceCode(
// getInspectorVar('Workspace.workspace').uiSourceCodeForURL(url)
// )
}
}
function ready() {
// if(!getInspectorVar('Runtime').isLite){
// console.log('debugger is disabled')
// return
// }
console.log('debugger is ready');
var Workspace = getInspectorVar('Workspace');
Workspace.workspace.addEventListener(Workspace.Workspace.Events.UISourceCodeAdded, scriptParsed);
var BreakpointManager = getInspectorVar('Bindings.BreakpointManager');
var breakpointManager = getInspectorVar('Bindings.breakpointManager');
breakpointManager.addEventListener(BreakpointManager.Events.BreakpointAdded, breakpointAdded);
breakpointManager.addEventListener(BreakpointManager.Events.BreakpointRemoved, breakpointRemoved);
var SDK = getInspectorVar('SDK');
SDK.targetManager.addModelListener(SDK.DebuggerModel, SDK.DebuggerModel.Events.DebuggerPaused, debuggerPaused);
SDK.targetManager.addModelListener(SDK.DebuggerModel, SDK.DebuggerModel.Events.DebuggerResumed, debuggerResumed);
}
Object(__WEBPACK_IMPORTED_MODULE_0__ready__["b" /* registerReady */])(ready);
Object(__WEBPACK_IMPORTED_MODULE_1__invoke__["b" /* registerCommand */])('Debugger.setBreakpointByUrl', setBreakpointByUrl);
Object(__WEBPACK_IMPORTED_MODULE_1__invoke__["b" /* registerCommand */])('Debugger.removeBreakpointByUrl', removeBreakpointByUrl);
/***/ }),
/***/ "./src/bridge/index.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__debugger__ = __webpack_require__("./src/bridge/debugger.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ready__ = __webpack_require__("./src/bridge/ready.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__invoke__ = __webpack_require__("./src/bridge/invoke.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__publish__ = __webpack_require__("./src/bridge/publish.ts");
window.HXJSBridge = {
ready: __WEBPACK_IMPORTED_MODULE_1__ready__["a" /* default */],
invoke: __WEBPACK_IMPORTED_MODULE_2__invoke__["a" /* default */],
publish: __WEBPACK_IMPORTED_MODULE_3__publish__["a" /* publish */]
};
/***/ }),
/***/ "./src/bridge/invoke.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (immutable) */ __webpack_exports__["b"] = registerCommand;
/* harmony export (immutable) */ __webpack_exports__["a"] = invoke;
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
var commands = Object.create(null);
function registerCommand(action, handler) {
commands[action] = handler;
}
function invoke(_a) {
var reqId = _a.reqId, _b = _a.request, action = _b.action, data = _b.data;
if (commands[action]) {
commands[action](__assign({ reqId: reqId }, data));
}
else {
console.error(action + ' is undefined');
}
}
/***/ }),
/***/ "./src/bridge/publish.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (immutable) */ __webpack_exports__["a"] = publish;
if (typeof window.__postMessageToHBuilderX__ !== 'function') {
window.__postMessageToHBuilderX__ = function __postMessageToHBuilderX__(data) {
console.log('__postMessageToHBuilderX__', JSON.stringify(data));
};
}
function publish(action, data, reqId) {
if (reqId === void 0) { reqId = -1; }
window.__postMessageToHBuilderX__(JSON.stringify({
reqId: reqId,
response: {
action: action,
data: data || {}
}
}));
}
/***/ }),
/***/ "./src/bridge/ready.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (immutable) */ __webpack_exports__["b"] = registerReady;
/* harmony export (immutable) */ __webpack_exports__["a"] = ready;
var callbacks = [];
function registerReady(callback) {
callbacks.push(callback);
}
function ready() {
callbacks.forEach(function (callback) {
callback();
});
}
/***/ }),
/***/ "./src/lang.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__("./node_modules/vue/dist/vue.esm.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_i18n__ = __webpack_require__("./node_modules/vue-i18n/dist/vue-i18n.esm.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__langs_en__ = __webpack_require__("./src/langs/en.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__langs_cn__ = __webpack_require__("./src/langs/cn.ts");
__WEBPACK_IMPORTED_MODULE_0_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_1_vue_i18n__["a" /* default */]);
/* harmony default export */ __webpack_exports__["a"] = (new __WEBPACK_IMPORTED_MODULE_1_vue_i18n__["a" /* default */]({
locale: localStorage.getItem('language') || 'cn',
fallbackLocale: 'cn',
messages: {
en: __WEBPACK_IMPORTED_MODULE_2__langs_en__["a" /* en */], cn: __WEBPACK_IMPORTED_MODULE_3__langs_cn__["a" /* cn */]
}
}));
/***/ }),
/***/ "./src/langs/cn.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cn; });
var cn = {
title: 'uni-app 真机调试工具',
navbar: {
help: '帮助',
environmentSetting: '环境设置',
bundlesToggle: '页面'
},
home: {
languageTitle: 'Languages',
welcomMessage: '欢迎使用 uni-app 调试工具',
tabs: {
debugName: '调试',
pageName: '页面'
},
tips: {
quickStartTitle: '快速使用',
quickStartDesc: '快速了解如何在你的开发中使用 uni-app 调试工具',
quickStartUrl: 'http://uni-app.apache.org/zh/tools/toolkit.html#debug',
guideTitle: '使用教程',
guideDesc: '详细介绍各个功能的使用说明',
guideUrl: 'https://uni-app.apache.org/zh/guide/debug/debug.html',
integerTitle: '集成 uni-app Devtool 到你的应用',
integerDesc: '了解如何在你的应用中集成 uni-app Devtool SDK',
integerUrl: 'https://uni-app.apache.org/zh/guide/debug/integrate-devtool-to-android.html',
helpTitle: '帮助和意见反馈',
helpDesc: '提交Github issue 和帮助提高 uni-app Devtool',
helpUrl: 'https://github.com/weexteam/weex-toolkit/issues/new?labels=@weex-cli/debug',
noJsBundle: '暂无可预览页面,你可以通过下面的命令进行页面编译'
},
toastTips: {
copySuccess: '复制成功',
openPage: '打开页面'
},
version: '当前版本'
},
defaultPage: {
title: '性能面板',
pageDescription: '页面正在施工中...'
},
weexDebugPage: {
screencast: '屏幕预览',
title: 'uni-app 调试',
appInfo: '应用信息',
sdkVersion: 'SDK版本',
jsDebug: 'JS调试',
network: '网络审查',
logLevel: '日志等级',
elementMode: '切换视图',
clearHistory: '清空历史',
workerJsDesc: 'WorkerJS为调试中间文件,文件开头为[Runtime]-的文件',
jsServiceDesc: 'JSService是uni-app在运行中使用<a href="http://uni-app.apache.org/cn/references/js-service.html" target="_blank">JSService接口</a>注入的JS文件,多个文件用逗号隔开',
dependenceJsDesc: 'DependenceJS是uni-app在创建实例前在JS环境中注入的JS文件',
jsFrameworkDesc: 'JSFramework是为uni-app运行提供初始环境的JS',
environmentSettingOkDesc: '更改设置',
environmentSettingCancelDesc: '重置',
reloadDesc: '刷新',
restoreDesc: '恢复',
mockTips: 'mock 文件',
generatorFile: '生成文件',
environmentSetting: '环境设置',
generatingFile: '生成文件中',
generateFile: '生成文件',
reloadSuccess: '刷新成功',
reloading: '刷新页面中',
ensureDeleteHistory: '确定删除历史记录?',
changeEnvSetting: '更改环境配置',
changeSettingSuccess: '更改成功',
noEmptyUrl: '页面URL不能为空',
loadingTip: '加载中',
loadingSuccess: '加载成功',
noPages: '暂无页面'
},
sideBar: {
weex: {
title: 'uni-app 调试'
},
analyze: {
title: '性能面板'
}
},
tour: {
step_1: '点击这里可以控制<strong>JS Debug</strong>开关,开启后即可开始JS调试!',
step_2: '点击这里可以选择Log日志等级',
step_3: '进入调试页面后点击这里可以刷新uni-app页面',
step_4: '在这里可以输入你本地想访问的JSBundle文件,回车键跳转',
step_5: '点击这里可以针对uni-app运行环境进行配置',
step_6: '点击这里可以对文件进行Mock替换',
step_7: '点击这里可以让环境配置生效',
step_8: '点击这里重置环境',
nextText: '下一个',
prevText: '上一个',
finishText: '完成',
skip: '跳过'
}
};
/***/ }),
/***/ "./src/langs/en.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return en; });
var en = {
title: 'uni-app Debug Tool',
navbar: {
help: 'Help',
environmentSetting: 'Environment',
bundlesToggle: 'Pages'
},
home: {
languageTitle: '切换语言',
welcomMessage: 'Welcome to uni-app debugging tool',
tabs: {
debugName: 'Debug',
pageName: 'Pages'
},
tips: {
quickStartTitle: 'Quick start',
quickStartDesc: 'Quickly learn how to use the uni-app debugging tool',
quickStartUrl: 'http://uni-app.apache.org/tools/toolkit.html#debug',
guideTitle: 'Tutorial',
guideDesc: 'Detailed instructions for using each function',
guideUrl: 'https://uni-app.apache.org/guide/debug/debug.html',
integerTitle: 'Integrate uni-app Devtool',
integerDesc: 'Learn how to integrate the uni-app Devtool SDK into your app',
integerUrl: 'https://uni-app.apache.org/guide/debug/integrate-devtool-to-android.html',
helpTitle: 'Help & Feedback',
helpDesc: 'Submit a Github issue to help uni-app Devtool be better',
helpUrl: 'https://github.com/weexteam/weex-toolkit/issues/new?labels=@weex-cli/debug',
noJsBundle: 'There is no preview page yet, you can compile the page with the following command'
},
toastTips: {
copySuccess: 'Copy success',
openPage: 'Open page'
},
version: 'Version'
},
defaultPage: {
title: 'Performance',
pageDescription: 'The page is under development...'
},
weexDebugPage: {
screencast: 'Screencast',
title: 'uni-app Debug',
appInfo: 'APP Info',
sdkVersion: 'SDK Version',
jsDebug: 'JS Debug',
network: 'Network',
logLevel: 'LogLevel',
elementMode: 'ElementMode',
clearHistory: 'Clean',
workerJsDesc: 'WorkerJS is a debugging intermediate file, the file starts with \`[Runtime]-\`',
jsServiceDesc: 'JSService is using <a href="http://uni-app.apache.org/cn/references/js-service.html" target="_blank">JSService API</a>register in the run, multiple files separated by commas',
dependenceJsDesc: 'DependenceJS is the JS file injected by uni-app in the JS environment before creating the instance',
jsFrameworkDesc: 'JSFramework is the JS that provides the initial environment for uni-app to run',
environmentSettingOkDesc: 'Change Setting',
environmentSettingCancelDesc: 'Reset',
reloadDesc: 'Refresh',
restoreDesc: 'Restore',
mockTips: 'Mock file',
generatorFile: 'Generate File',
environmentSetting: 'Environment Setting',
generatingFile: 'New Files',
generateFile: 'New File',
reloadSuccess: 'Reload Success',
reloading: 'Reloading',
ensureDeleteHistory: 'Delete History?',
changeEnvSetting: 'Change Environment',
changeSettingSuccess: 'Change Success',
noEmptyUrl: 'Url should not be empty',
loadingTip: 'Loading',
loadingSuccess: 'Load Success',
noPages: 'No pages'
},
sideBar: {
weex: {
title: 'uni-app DEBUG'
},
analyze: {
title: 'PERFORMENCE'
}
},
tour: {
step_1: 'Click here to control the <strong>JS Debug</strong> switch, and start JS debugging after opening!',
step_2: 'Click here to select Log log level',
step_3: 'Click here to refresh the uni-app page after entering the debug page',
step_4: 'Enter the JSBundle file you want to access locally, press Enter to jump',
step_5: 'Click here to configure for the uni-app runtime environment',
step_6: 'Click here to Mock replace the file',
step_7: 'Click here to make the environment configuration take effect',
step_8: 'Click here to reset the environment',
nextText: 'Next',
prevText: 'Prev',
finishText: 'Finish',
skip: 'Skip'
}
};
/***/ }),
/***/ "./src/main.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__bridge__ = __webpack_require__("./src/bridge/index.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__("./node_modules/vue/dist/vue.esm.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__store__ = __webpack_require__("./src/store/index.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__router__ = __webpack_require__("./src/router.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue_js_toggle_button__ = __webpack_require__("./node_modules/vue-js-toggle-button/dist/index.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue_js_toggle_button___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_vue_js_toggle_button__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_vue_tour__ = __webpack_require__("./node_modules/vue-tour/dist/vue-tour.umd.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_vue_tour___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_vue_tour__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_vue_snotify__ = __webpack_require__("./node_modules/vue-snotify/vue-snotify.esm.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_vue_resource__ = __webpack_require__("./node_modules/vue-resource/dist/vue-resource.esm.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_vue_json_tree_view__ = __webpack_require__("./node_modules/vue-json-tree-view/dist/vue-json-tree-view.min.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_vue_json_tree_view___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_vue_json_tree_view__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_vue_clipboard2__ = __webpack_require__("./node_modules/vue-clipboard2/vue-clipboard.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_vue_clipboard2___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_vue_clipboard2__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_bootstrap_vue_es_directives_tooltip_tooltip__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/tooltip/tooltip.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_bootstrap_vue_es_directives_tooltip_tooltip___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_bootstrap_vue_es_directives_tooltip_tooltip__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_bootstrap_vue_es_directives_popover_popover__ = __webpack_require__("./node_modules/bootstrap-vue/es/directives/popover/popover.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_bootstrap_vue_es_directives_popover_popover___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_bootstrap_vue_es_directives_popover_popover__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__lang__ = __webpack_require__("./src/lang.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__sass_iconfont_scss__ = __webpack_require__("./src/sass/iconfont.scss");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__sass_iconfont_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13__sass_iconfont_scss__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__sass_main_scss__ = __webpack_require__("./src/sass/main.scss");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__sass_main_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14__sass_main_scss__);
// fixed by xxxxxx
// https://www.npmjs.com/package/vue-js-toggle-button
// https://artemsky.github.io/vue-snotify/
// const navbarComponent = () => import('./components/navbar').then(({ NavbarComponent }) => NavbarComponent)
// const navbarComponent = () => import(/* webpackChunkName: 'navbar' */'./components/navbar').then(({ NavbarComponent }) => NavbarComponent)
__WEBPACK_IMPORTED_MODULE_1_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_4_vue_js_toggle_button___default.a);
__WEBPACK_IMPORTED_MODULE_1_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_5_vue_tour___default.a);
__WEBPACK_IMPORTED_MODULE_1_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_7_vue_resource__["a" /* default */]);
__WEBPACK_IMPORTED_MODULE_1_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_8_vue_json_tree_view___default.a);
// let vue-clipboard2 set container to current element by doing this
__WEBPACK_IMPORTED_MODULE_9_vue_clipboard2___default.a.config.autoSetContainer = true;
__WEBPACK_IMPORTED_MODULE_1_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_9_vue_clipboard2___default.a);
__WEBPACK_IMPORTED_MODULE_1_vue__["default"].directive('b-popover', __WEBPACK_IMPORTED_MODULE_11_bootstrap_vue_es_directives_popover_popover___default.a);
__WEBPACK_IMPORTED_MODULE_1_vue__["default"].directive('b-tooltip', __WEBPACK_IMPORTED_MODULE_10_bootstrap_vue_es_directives_tooltip_tooltip___default.a);
var options = {
toast: {
position: __WEBPACK_IMPORTED_MODULE_6_vue_snotify__["a" /* SnotifyPosition */].centerTop,
bodyMaxLength: 20,
titleMaxLength: 8,
timeout: 1000,
showProgressBar: false,
closeOnClick: true,
pauseOnHover: true,
backdrop: -1
}
};
__WEBPACK_IMPORTED_MODULE_1_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_6_vue_snotify__["b" /* default */], options);
// tslint:disable-next-line:no-unused-expression
new __WEBPACK_IMPORTED_MODULE_1_vue__["default"]({
el: '#app-main',
i18n: __WEBPACK_IMPORTED_MODULE_12__lang__["a" /* default */],
store: __WEBPACK_IMPORTED_MODULE_2__store__["a" /* default */],
router: Object(__WEBPACK_IMPORTED_MODULE_3__router__["a" /* createRouter */])(),
components: {}
});
/***/ }),
/***/ "./src/router.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export createRoutes */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createRouter; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__("./node_modules/vue/dist/vue.esm.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_router__ = __webpack_require__("./node_modules/vue-router/dist/vue-router.esm.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_hot_reload__ = __webpack_require__("./src/util/hot-reload.ts");
var homeComponent = function () { return __webpack_require__.e/* import() */(2).then(__webpack_require__.bind(null, "./src/views/home/index.ts")).then(function (_a) {
var HomeComponent = _a.HomeComponent;
return HomeComponent;
}); };
var clientComponent = function () { return __webpack_require__.e/* import() */(3).then(__webpack_require__.bind(null, "./src/views/client/index.ts")).then(function (_a) {
var ClientComponent = _a.ClientComponent;
return ClientComponent;
}); };
var weexComponent = function () { return __webpack_require__.e/* import() */(1).then(__webpack_require__.bind(null, "./src/views/weex/index.ts")).then(function (_a) {
var WeexComponent = _a.WeexComponent;
return WeexComponent;
}); };
var analyzeComponent = function () { return __webpack_require__.e/* import() */(0).then(__webpack_require__.bind(null, "./src/views/analyze/index.ts")).then(function (_a) {
var AnalyzeComponent = _a.AnalyzeComponent;
return AnalyzeComponent;
}); };
var evalComponent = function () { return __webpack_require__.e/* import() */(4).then(__webpack_require__.bind(null, "./src/views/eval/index.ts")).then(function (_a) {
var EvalComponent = _a.EvalComponent;
return EvalComponent;
}); };
var defaultComponent = function () { return __webpack_require__.e/* import() */(5).then(__webpack_require__.bind(null, "./src/views/default/index.ts")).then(function (_a) {
var DefaultComponent = _a.DefaultComponent;
return DefaultComponent;
}); };
if (false) {
var homeModuleId_1 = './views/home';
var clientModuleId_1 = './views/client';
var weexModuleId_1 = './views/weex';
var evalModuleId_1 = './views/eval';
var analyzeModuleId_1 = './views/analyze';
var defaultModuleId_1 = './views/default';
// first arguments for `module.hot.accept` and `require` methods have to be static strings
// see https://github.com/webpack/webpack/issues/5668
makeHot(homeModuleId_1, homeComponent, module.hot.accept('./views/home', function () { return reload(homeModuleId_1, require('./views/home').HomeComponent); }));
makeHot(clientModuleId_1, clientComponent, module.hot.accept('./views/client', function () { return reload(clientModuleId_1, require('./views/client').AboutComponent); }));
makeHot(weexModuleId_1, weexComponent, module.hot.accept('./views/weex', function () { return reload(weexModuleId_1, require('./views/weex').WeexComponent); })),
makeHot(analyzeModuleId_1, analyzeComponent, module.hot.accept('./views/analyze', function () { return reload(analyzeModuleId_1, require('./views/analyze').AnalyzeComponent); })),
makeHot(evalModuleId_1, evalComponent, module.hot.accept('./views/eval', function () { return reload(evalModuleId_1, require('./views/eval').EvalComponent); })),
makeHot(defaultModuleId_1, defaultComponent, module.hot.accept('./views/default', function () { return reload(defaultModuleId_1, require('./views/default').DefaultComponent); }));
}
__WEBPACK_IMPORTED_MODULE_0_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_1_vue_router__["a" /* default */]);
var createRoutes = function () { return [
{
path: '/',
component: homeComponent
},
{
path: '/client',
component: clientComponent,
props: function (route) { return ({ channelId: route.params.channelId }); },
redirect: '/',
children: [
{
path: 'weex/:channelId',
props: function (route) { return ({ channelId: route.params.channelId }); },
component: weexComponent,
meta: {
title: 'weexDebugPage',
setting: true
}
},
{
path: 'analyze/:channelId',
props: function (route) { return ({ channelId: route.params.channelId }); },
component: defaultComponent,
meta: {
title: 'defaultPage'
}
},
{
path: 'eval/:channelId',
props: function (route) { return ({ channelId: route.params.channelId }); },
component: defaultComponent,
meta: {
title: 'defaultPage'
}
},
{
path: 'source/:channelId',
props: function (route) { return ({ channelId: route.params.channelId }); },
component: defaultComponent,
meta: {
title: 'defaultPage'
}
},
{
path: 'health/:channelId',
props: function (route) { return ({ channelId: route.params.channelId }); },
component: defaultComponent,
meta: {
title: 'defaultPage'
}
},
{
path: 'setting/:channelId',
props: function (route) { return ({ channelId: route.params.channelId }); },
component: defaultComponent,
meta: {
title: 'defaultPage'
}
}
]
}
]; };
var createRouter = function () { return new __WEBPACK_IMPORTED_MODULE_1_vue_router__["a" /* default */]({ mode: 'history', routes: createRoutes() }); };
/***/ }),
/***/ "./src/sass/iconfont.scss":
/***/ (function(module, exports) {
// removed by extract-text-webpack-plugin
/***/ }),
/***/ "./src/sass/main.scss":
/***/ (function(module, exports) {
// removed by extract-text-webpack-plugin
/***/ }),
/***/ "./src/store/actions.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// const addToCart: Action<State, any> = (context: { commit: Commit }, product: Product) => {
// if (product.inventory > 0) {
// const payload: AddToCartPayload = {
// id: product.id,
// }
// context.commit(types.ADD_TO_CART, payload)
// }
// }
var actions = {};
/* harmony default export */ __webpack_exports__["a"] = (actions);
/***/ }),
/***/ "./src/store/getters.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// const cartProducts: Getter<State, any> = (state: State) => {
// return state.cart.added.map((shape) => {
// const product = state.products.all.find((p) => p.id === shape.id)
// if (product) {
// const cartProduct: CartProduct = {
// title: product.title,
// price: product.price,
// quantity: shape.quantity,
// }
// return cartProduct
// }
// })
// }
var getterTree = {};
/* harmony default export */ __webpack_exports__["a"] = (getterTree);
/***/ }),
/***/ "./src/store/index.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__("./node_modules/vue/dist/vue.esm.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex__ = __webpack_require__("./node_modules/vuex/dist/vuex.esm.js");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions__ = __webpack_require__("./src/store/actions.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__getters__ = __webpack_require__("./src/store/getters.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mutations__ = __webpack_require__("./src/store/mutations.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__modules_home__ = __webpack_require__("./src/store/modules/home.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__modules_weex__ = __webpack_require__("./src/store/modules/weex.ts");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__modules_analyze__ = __webpack_require__("./src/store/modules/analyze.ts");
__WEBPACK_IMPORTED_MODULE_0_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_1_vuex__["a" /* default */]);
var debug = "production" !== 'production';
var state = {
webSocketHost: location.host,
// webSocketHost: '30.8.57.159:8089',
channelId: '',
environmentSetting: false,
helpSetting: false,
bundleSetting: false
};
var store = new __WEBPACK_IMPORTED_MODULE_1_vuex__["a" /* default */].Store({
modules: {
home: __WEBPACK_IMPORTED_MODULE_5__modules_home__["a" /* default */],
weex: __WEBPACK_IMPORTED_MODULE_6__modules_weex__["a" /* default */],
analyze: __WEBPACK_IMPORTED_MODULE_7__modules_analyze__["a" /* default */]
},
state: state,
actions: __WEBPACK_IMPORTED_MODULE_2__actions__["a" /* default */],
getters: __WEBPACK_IMPORTED_MODULE_3__getters__["a" /* default */],
mutations: __WEBPACK_IMPORTED_MODULE_4__mutations__["a" /* default */],
strict: debug
});
if (false) {
module.hot.accept(['./modules/home'], function () {
var homeModule = require('./modules/home').default;
store.hotUpdate({
modules: {
homeModule: homeModule
}
});
});
module.hot.accept(['./modules/weex'], function () {
var weexModule = require('./modules/weex').default;
store.hotUpdate({
modules: {
weexModule: weexModule
}
});
});
module.hot.accept(['./modules/analyze'], function () {
var analyzeModule = require('./modules/analyze').default;
store.hotUpdate({
modules: {
analyzeModule: analyzeModule
}
});
});
}
/* harmony default export */ __webpack_exports__["a"] = (store);
/***/ }),
/***/ "./src/store/modules/analyze.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mutation_types__ = __webpack_require__("./src/store/mutation-types.ts");
var state = {
captures: [
'5000',
'8000',
'10000'
],
historys: [],
defaultCapture: 5000,
defaultHistory: '',
reloadToggle: true,
compareToggle: false,
captureToggle: false,
apmData: {},
performanceMode: {
wxRequestSourceTime: 'Weex请求资源耗时',
wxRenderBundleTime: 'Weex处理Bundle耗时',
wxJSAsyncDataTime: '前端异步请求时间',
wxJSDataPrefetchSuccess: '前端prefetch是否成功',
wxInteractionTime: '可交互时间总耗时',
wxRequestType: {
text: '请求类型, 2g/3g/4g/wifi/zcache/weex_cache/other',
tips: ['纯网络 2g、3g、4g、wifi', 'zcache', 'weex_cache']
},
wxBizID: '完整的业务ID',
wxBundleType: {
text: 'JS框架语言',
tips: ['主要为Vue, Rax, 也支持三方定制框架']
},
wxInstanceType: {
text: '实例类型',
tips: ['page - 普通weex页面', 'embed - weex模块']
},
wxContainerInfo: {
text: '运行容器名称',
tips: [
'一个容器可能会对应多个页面'
]
},
parentPage: {
text: 'Embed组件父级页面',
tips: [
'只有Embed页面内会报,Embed所在page的url'
]
},
wxBundleSize: {
text: '页面Bundle大小',
tips: [
'拖慢资源请求耗时',
'减少Bundle大小'
]
},
wxActualNetworkTime: '网络库打点的网络下载耗时',
wxInteractionComponentCreateTime: {
text: '可交互时间内,总共创建component耗时',
tips: ['调整渲染时序,屏幕外的组件会延后屏幕内的渲染时间']
},
wxInteractionComponentCreateCount: {
text: '可交互时间内,总共创建component个数',
tips: ['减少资源请求前预先打底的次数']
},
wxInteractionAllViewCount: {
text: '可交互时间内,屏幕(instance)内外,对应渲染 view 个数',
tips: ['减少打底view的总个数']
},
wxInteractionScreenViewCount: {
text: '可交互时间内,屏幕(instance)内 渲染 view 次数',
tips: [
'可交互时间内,屏幕内是否需要这么多view',
'减少不必要的屏幕内节点'
]
},
wxFSCallJsTotalTime: '首屏时间调用JS耗时',
wxFSCallJsTotalNum: '首屏时间调用js次数',
wxFSCallNativeTotalTime: {
text: '首屏时间调用Native module耗时',
tips: [
'减少native module的调用次数(重复的,不必要的)',
'使用devtool、analzyer排查纤细信息'
]
},
wxFSCallNativeTotalNum: '首屏时间调用Native次数',
wxFSCallEventTotalTime: '首屏时间调用CallEven耗时',
wxFSCallEventTotalNum: '首屏时间调用CallEven耗时次数',
wxFSRequestNum: '首屏调用Timer次数',
wxFSTimerCount: '首屏Tmer调用耗时',
memdiff: '进入退出内存水位变化',
wxLargeImgMaxCount: {
text: '大图个数(最多那次)',
tips: ['图片大小>1080*720', '减少大图的投放,内存占用大头']
},
wxWrongImgSizeCount: {
text: '图片和view大小不匹配个数',
tips: ['投放的图片尺寸大于实际view的的大小,建议图片进行裁剪,减少不必要的内存占用', '使用analyzer或者dev-tool有详细的url和尺寸提示']
},
wxImgUnRecycleCount: {
text: '未开启图片自动回收imgview的个数',
tips: ['imageview没有开启图片自动回收机制,内存非常容易oom']
},
wxCellDataUnRecycleCount: {
text: '内容不回收的cell组件个数',
tips: ['最好开启cell上数据的回收,不然内存会爆掉']
},
wxCellViewUnReUseCount: {
text: '没有开启复用cell的个数',
tips: ['没有开启cell的复用机制,大列表内存会爆炸']
},
wxScrollerCount: {
text: '使用scroller个数',
tips: ['scroller是没有view回收机制的,长列表内存容易oom', '使用ListView、recycleView替代']
},
wxEmbedCount: {
text: 'embed 模块个数',
tips: ['embed不建议太多(3个)']
},
wxCellExceedNum: {
text: '超大cell个数',
tips: ['width >= screenWidth/2 && height >= screenHeight/2']
},
fps: {
text: '进入退出 平均fps',
tips: ['apm 提供']
},
wxMaxDeepVDomLayer: {
text: 'Dom结点最大层级',
tips: ['dom树的最大层级,不建议超过15层,会给渲染造成很大压力,并且在Android设备上容易crash']
},
wxMaxComponentCount: {
text: '组件个数(最多那次)',
tips: ['持有组件个数峰值,在布局时layout造成很大压力,对fps和可交互时间都有很大影响', '和wxMaxDeepVDomLayer一起,是影响渲染速度的两大因素', '减少不必要的节点数']
},
wxMaxDeepViewLayer: {
text: 'view最大层级',
tips: ['同dom结点最大层级,在设备上实际渲染的view最大层级']
},
wxTimerInBackCount: '后台执行Timer次数',
wxImgLoadCount: '所有图片加载数',
wxImgLoadSuccessCount: '成功加载的图片数',
wxImgLoadFailCount: 'weex提供',
wxNetworkRequestCount: 'weex提供',
wxNetworkRequestSuccessCount: 'weex提供',
wxNetworkRequestFailCoun: 'weex提供',
imgLoadCount: 'apm提供',
imgLoadSuccessCount: 'apm提供',
imgLoadFailCount: 'apm提供',
networkRequestCount: 'apm提供',
networkRequestSuccessCount: 'apm提供',
networkRequestFailCount: 'apm提供',
wxRecordStart: '埋点开始记录时间',
wxStartDownLoadBundle: '开始下载Bundle时间',
wxEndDownLoadBundle: '下载Bundle结束时间',
wxRenderTimeOrigin: '开始渲染时间点',
wxStartLoadBundle: '加载解析业务Bundle时间点',
wxEndLoadBundle: '加载解析业务Bundle完成时间点',
wxFsRender: '旧首屏时间点',
wxNewFsRender: '新首屏时间点',
wxFirstInteractionView: '屏幕内第一个View出现的时间点',
wxInteraction: '可交互时间点',
wxJSAsyncDataStart: '前端异步请求开始时间点',
wxJSAsyncDataEnd: '前端异步请求结束时间点',
wxJSLibVersion: 'JSFramework版本',
wxContainerName: '运行容器名称',
wxZCacheInfo: 'ZCache信息',
wxErrorCode: {
text: 'Weex错误代码',
tips: [
'查看文档:<a href="https://yuque.antfin-inc.com/weex/weexrobust/yrp25x" target="_blank">WEEX异常码含义</a>'
]
},
wxSDKVersion: 'Weex SDK版本',
wxDestroy: '页面销毁时间点',
wxBodyRatio: {
text: 'weex页面的屏占百分比,[0-100]',
tips: ['用来区分是否是card类型的页面, < 60%为card类型']
}
},
performanceScoreSeed: {
JSTemplateSize: {
type: 'number',
range: 250,
step: 20,
stepScore: -1,
maxScore: 20
},
JSDataPrefetch: {
type: 'boolean',
range: 'true',
stepScore: 5,
maxScore: 5
},
sourceRequestTime: {
type: 'number',
range: 100,
step: 50,
stepScore: -6,
maxScore: 12
},
interactionTime: {
type: 'number',
range: 1000,
step: 50,
stepScore: -6,
maxScore: 30
},
wxScrollerCount: {
type: 'number',
range: 1,
step: 1,
stepScore: -1,
maxScore: 5
},
wxCellExceedNum: {
type: 'number',
range: 1,
step: 1,
stepScore: -1,
maxScore: 5
},
wxMaxDeepVDomLayer: {
type: 'number',
range: 15,
step: 1,
stepScore: -2,
maxScore: 10
},
wxWrongImgSizeCount: {
type: 'number',
range: 0,
step: 1,
stepScore: -3,
maxScore: 15
},
wxEmbedCount: {
type: 'number',
range: 3,
step: 1,
stepScore: -3,
maxScore: 15
},
wxLargeImgMaxCount: {
type: 'number',
range: 0,
step: 1,
stepScore: -2,
maxScore: 10
},
wxImgUnRecycleCount: {
type: 'number',
range: 0,
step: 1,
stepScore: -2,
maxScore: 10
},
wxCellUnReUseCount: {
type: 'number',
range: 0,
step: 1,
stepScore: -2,
maxScore: 10
},
wxCellDataUnRecycleCount: {
type: 'number',
range: 0,
step: 1,
stepScore: -2,
maxScore: 10
},
wxMaxComponentCount: {
type: 'number',
range: 100,
step: 20,
stepScore: -1,
maxScore: 10
}
},
performanceScoreTextMap: {
JSTemplateSize: {
name: '渲染JSBundle大小 (wxBundleSize)',
tips: ['查看文档:<a href="http://mwpo.taobao.net/native-render/bundlesize.html" target="_blank">减少 bundleSize 大小</a>']
},
JSDataPrefetch: {
name: '业务JSBundle是否预加载 (wxJSDataPrefetchSuccess)',
tips: ['查看文档:<a href="http://h5.alibaba-inc.com/awp/StartPackageApp.html" target="_blank">使用预加载</a>']
},
sourceRequestTime: {
name: '请求资源耗时',
tips: ['暂无']
},
interactionTime: {
name: '可交互时间',
tips: ['暂无']
},
wxScrollerCount: {
name: '使用scroller个数 (wxScrollerCount)',
tips: ['scroller是没有view回收机制的,长列表内存容易oom', '使用ListView、recycleView替代']
},
wxCellExceedNum: {
name: '超大cell个数 (wxCellExceedNum)',
tips: ['超大cell一般指宽高均大于屏幕宽高1/2的cell,需控制数量']
},
wxMaxDeepVDomLayer: {
name: 'View最大层级 (wxMaxDeepVDomLayer)',
tips: ['同dom结点最大层级,在设备上实际渲染的view最大层级']
},
wxWrongImgSizeCount: {
name: '图片和view大小不匹配个数 (wxWrongImgSizeCount)',
tips: ['投放的图片尺寸大于实际view的的大小,建议图片进行裁剪,减少不必要的内存占用', '使用analyzer或者devtool有详细的url和尺寸提示']
},
wxEmbedCount: {
name: 'Embed 模块个数 (wxEmbedCount)',
tips: ['Embed不建议太多(3个)']
},
wxLargeImgMaxCount: {
name: '大图个数 (wxLargeImgMaxCount)',
tips: ['大图一般指图片大小>1080*720', '减少大图的投放,能有效降低应用内存占用']
},
wxImgUnRecycleCount: {
name: '未开启图片自动回收imgview的个数 (wxImgUnRecycleCount)',
tips: ['Imageview没有开启图片自动回收机制,内存非常容易oom']
},
wxCellUnReUseCount: {
name: '没有开启复用cell的个数 (wxCellUnReUseCount)',
tips: ['暂无']
},
wxCellDataUnRecycleCount: {
name: '内容不回收的cell组件个数 (wxCellDataUnRecycleCount)',
tips: ['暂无']
},
wxMaxComponentCount: {
name: '组件个数(wxMaxComponentCount)',
tips: [
'持有组件个数峰值,在布局时layout造成很大压力,对fps和可交互时间都有很大影响',
'和wxMaxDeepVDomLayer一起,是影响渲染速度的两大因素',
'减少不必要的节点数'
]
}
}
};
var getters = {};
var actions = {
updateToggle: function (context, toggle) {
context.commit(__WEBPACK_IMPORTED_MODULE_0__mutation_types__["h" /* UPDATE_ANALYZE_TOGGLE */], toggle);
},
updateDefaultCapture: function (context, value) {
context.commit(__WEBPACK_IMPORTED_MODULE_0__mutation_types__["e" /* UPDATE_ANALYZE_DEFAULT_CAPTURE */], value);
},
updateDefaultHistory: function (context, value) {
context.commit(__WEBPACK_IMPORTED_MODULE_0__mutation_types__["f" /* UPDATE_ANALYZE_DEFAULT_HISTORY */], value);
},
updateCaptures: function (context, value) {
context.commit(__WEBPACK_IMPORTED_MODULE_0__mutation_types__["d" /* UPDATE_ANALYZE_CAPTURES */], value);
},
updateHistorys: function (context, value) {
context.commit(__WEBPACK_IMPORTED_MODULE_0__mutation_types__["g" /* UPDATE_ANALYZE_HISTORYS */], value);
},
updateApmData: function (context, value) {
context.commit(__WEBPACK_IMPORTED_MODULE_0__mutation_types__["c" /* UPDATE_ANALYZE_APMDATA */], value);
}
};
var mutations = (_a = {},
_a[__WEBPACK_IMPORTED_MODULE_0__mutation_types__["h" /* UPDATE_ANALYZE_TOGGLE */]] = function (state, toggle) {
state[toggle.name] = toggle.value;
},
_a[__WEBPACK_IMPORTED_MODULE_0__mutation_types__["e" /* UPDATE_ANALYZE_DEFAULT_CAPTURE */]] = function (state, value) {
state.defaultCapture = value;
},
_a[__WEBPACK_IMPORTED_MODULE_0__mutation_types__["f" /* UPDATE_ANALYZE_DEFAULT_HISTORY */]] = function (state, value) {
state.defaultHistory = value;
},
_a[__WEBPACK_IMPORTED_MODULE_0__mutation_types__["g" /* UPDATE_ANALYZE_HISTORYS */]] = function (state, value) {
state.historys = value;
},
_a[__WEBPACK_IMPORTED_MODULE_0__mutation_types__["d" /* UPDATE_ANALYZE_CAPTURES */]] = function (state, value) {
state.captures = value;
},
_a[__WEBPACK_IMPORTED_MODULE_0__mutation_types__["c" /* UPDATE_ANALYZE_APMDATA */]] = function (state, data) {
state.apmData = data.value;
var historyLen = state.historys.length;
var replace = false;
for (var instance in data.value) {
if (data.value[instance].properties.wxBizID) {
console.log('Add history', data.value[instance].properties.wxBizID);
for (var i = 0; i < historyLen; i++) {
if (state.historys[i].key === instance) {
replace = true;
state.historys[i] = {
key: instance,
value: data.value[instance].properties.wxBizID,
data: Object.assign(data.value[instance], { device: data.device }),
time: data.time
};
break;
}
}
if (!replace) {
state.historys.unshift({
key: instance,
value: data.value[instance].properties.wxBizID,
data: Object.assign(data.value[instance], { device: data.device }),
time: data.time
});
}
}
}
},
_a);
/* harmony default export */ __webpack_exports__["a"] = ({
namespaced: true,
state: state,
getters: getters,
actions: actions,
mutations: mutations
});
var _a;
/***/ }),
/***/ "./src/store/modules/home.ts":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mutation_types__ = __webpack_require__("./src/store/mutation-types.ts");
var state = {
connectUrl: '',
version: '-',
bundles: []
};
var getters = {};
var actions = {
updateQRCode: function (context, obj) {
context.commit(__WEBPACK_IMPORTED_MODULE_0__mutation_types__["r" /* UPDATE_QRCODE_URL */], obj.connectUrl);
context.commit(__WEBPACK_IMPORTED_MODULE_0__mutation_types__["k" /* UPDATE_CHANNEL_ID */], obj.channelId, { root: true });
},
cleanQRCode: function (context) {
context.commit(__WEBPACK_IMPORTED_MODULE_0__mutation_types__["v" /* WS_DISCONNNECT */]);
},
updateVersion: function (context, value) {
context.commit(__WEBPACK_IMPORTED_MODULE_0__mutation_types__["t" /* UPDATE_VERSION */], value);
},
updateBundles: function (context, value) {
context.commit(__WEBPACK_IMPORTED_MODULE_0__mutation_types__["i" /* UPDATE_BUNDLES */], value);
}
};
var mutations = (_a = {},
_a[__WEBPACK_IMPORTED_MODULE_0__mutation_types__["r" /* UPDATE_QRCODE_URL */]] = function (state, url) {
state.connectUrl = url;
},
_a[__WEBPACK_IMPORTED_MODULE_0__mutation_types__["t" /* UPDATE_VERSION */]] = function (state, value) {
state.version