@vue/devtools 6.0.0-beta.16 → 6.0.0-beta.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/backend.js CHANGED
@@ -129,7 +129,7 @@ eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset
129
129
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
130
130
 
131
131
  "use strict";
132
- eval("/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"B\": () => (/* binding */ ApiProxy)\n/* harmony export */ });\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(68496);\n\nvar ApiProxy = function ApiProxy(plugin, hook) {\n var this$1 = this;\n\n this.target = null;\n this.targetQueue = [];\n this.onQueue = [];\n this.plugin = plugin;\n this.hook = hook;\n var defaultSettings = {};\n if (plugin.settings) {\n for (var id in plugin.settings) {\n var item = plugin.settings[id];\n defaultSettings[id] = item.defaultValue;\n }\n }\n var localSettingsSaveId = \"__vue-devtools-plugin-settings__\" + (plugin.id);\n var currentSettings = Object.assign({}, defaultSettings);\n try {\n var raw = localStorage.getItem(localSettingsSaveId);\n var data = JSON.parse(raw);\n Object.assign(currentSettings, data);\n }\n catch (e) {\n // noop\n }\n this.fallbacks = {\n getSettings: function getSettings() {\n return currentSettings;\n },\n setSettings: function setSettings(value) {\n try {\n localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n }\n catch (e) {\n // noop\n }\n currentSettings = value;\n }\n };\n hook.on(_const__WEBPACK_IMPORTED_MODULE_0__/* .HOOK_PLUGIN_SETTINGS_SET */ .X, function (pluginId, value) {\n console.log('settings set', pluginId, value);\n if (pluginId === this$1.plugin.id) {\n this$1.fallbacks.setSettings(value);\n }\n });\n this.proxiedOn = new Proxy({}, {\n get: function (_target, prop) {\n if (this$1.target) {\n return this$1.target.on[prop];\n }\n else {\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n this$1.onQueue.push({\n method: prop,\n args: args\n });\n };\n }\n }\n });\n this.proxiedTarget = new Proxy({}, {\n get: function (_target, prop) {\n if (this$1.target) {\n return this$1.target[prop];\n }\n else if (prop === 'on') {\n return this$1.proxiedOn;\n }\n else if (Object.keys(this$1.fallbacks).includes(prop)) {\n return function () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n this$1.targetQueue.push({\n method: prop,\n args: args,\n resolve: function () { }\n });\n return (ref = this$1.fallbacks)[prop].apply(ref, args);\n };\n }\n else {\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new Promise(function (resolve) {\n this$1.targetQueue.push({\n method: prop,\n args: args,\n resolve: resolve\n });\n });\n };\n }\n }\n });\n};\nApiProxy.prototype.setRealTarget = async function setRealTarget (target) {\n var ref, ref$1;\n\n this.target = target;\n for (var item of this.onQueue) {\n (ref = this.target.on)[item.method].apply(ref, item.args);\n }\n for (var item$1 of this.targetQueue) {\n item$1.resolve(await (ref$1 = this.target)[item$1.method].apply(ref$1, item$1.args));\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjU0MjcuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFtRDtBQUM1QyxJQUFNLFFBQVEsR0FDakIsaUJBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFOztBQUFDO0FBQy9CLElBQVEsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDM0IsSUFBUSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztBQUM5QixJQUFRLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBQzFCLElBQVEsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDN0IsSUFBUSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN6QixJQUFRQSxHQUFLLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUNuQyxJQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtBQUM3QixRQUFZLEtBQUtBLEdBQUssQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtBQUM5QyxZQUFnQkEsR0FBSyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2pELFlBQWdCLGVBQWUsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO0FBQ3hELFFBQVksQ0FBQztBQUNiLElBQVEsQ0FBQztBQUNULElBQVFBLEdBQUssQ0FBQyxtQkFBbUIsR0FBRyxzQ0FBbUMsTUFBTSxDQUFDLEdBQUksQ0FBQztBQUNuRixJQUFRQyxHQUFHLENBQUMsZUFBZSxHQUFHLGtCQUFLLGVBQWUsQ0FBRSxDQUFDO0FBQ3JELElBQVEsSUFBSTtBQUNaLFFBQVlELEdBQUssQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ2xFLFFBQVlBLEdBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QyxRQUFZLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2pELElBQVEsQ0FBQztBQUNULElBQVEsT0FBTyxDQUFDLEVBQUU7QUFDbEIsUUFBWTtBQUNaLElBQVEsQ0FBQztBQUNULElBQVEsSUFBSSxDQUFDLFNBQVMsR0FBRztBQUN6QixRQUFZLGlDQUFXLEdBQUc7QUFDMUIsWUFBZ0IsT0FBTyxlQUFlLENBQUM7QUFDdkMsUUFBWSxDQUFDO0FBQ2IsUUFBWSxpQ0FBVyxDQUFDLEtBQUssRUFBRTtBQUMvQixZQUFnQixJQUFJO0FBQ3BCLGdCQUFvQixZQUFZLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNyRixZQUFnQixDQUFDO0FBQ2pCLFlBQWdCLE9BQU8sQ0FBQyxFQUFFO0FBQzFCLGdCQUFvQjtBQUNwQixZQUFnQixDQUFDO0FBQ2pCLFlBQWdCLGVBQWUsR0FBRyxLQUFLLENBQUM7QUFDeEMsUUFBWSxDQUFDO0FBQ2IsSUFBUSxDQUFDLENBQUM7QUFDVixJQUFRLElBQUksQ0FBQyxFQUFFLENBQUMscUVBQXdCLFdBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFLO0FBQy9ELFFBQVksT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3pELFFBQVksSUFBSSxRQUFRLEtBQUtFLE1BQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFO0FBQzdDLFlBQWdCQSxNQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsRCxRQUFZLENBQUM7QUFDYixJQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ1gsSUFBUSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRTtBQUN2QyxRQUFZLEdBQUcsV0FBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUs7QUFDcEMsWUFBZ0IsSUFBSUEsTUFBSSxDQUFDLE1BQU0sRUFBRTtBQUNqQyxnQkFBb0IsT0FBT0EsTUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDaEQsWUFBZ0IsQ0FBQztBQUNqQixZQUFnQixLQUFLO0FBQ3JCLGdCQUFvQixnQkFBTyxDQUFRLEVBQUs7OztBQUFDO0FBQ3pDLG9CQUF3QkEsTUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7QUFDMUMsd0JBQTRCLE1BQU0sRUFBRSxJQUFJO0FBQ3hDLDhCQUE0QixJQUFJO0FBQ2hDLG9CQUF3QixDQUFDLENBQUMsQ0FBQztBQUMzQixnQkFBb0IsQ0FBQyxDQUFDO0FBQ3RCLFlBQWdCLENBQUM7QUFDakIsUUFBWSxDQUFDO0FBQ2IsSUFBUSxDQUFDLENBQUMsQ0FBQztBQUNYLElBQVEsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUU7QUFDM0MsUUFBWSxHQUFHLFdBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFLO0FBQ3BDLFlBQWdCLElBQUlBLE1BQUksQ0FBQyxNQUFNLEVBQUU7QUFDakMsZ0JBQW9CLE9BQU9BLE1BQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0MsWUFBZ0IsQ0FBQztBQUNqQixZQUFnQixLQUFLLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtBQUN4QyxnQkFBb0IsT0FBT0EsTUFBSSxDQUFDLFNBQVMsQ0FBQztBQUMxQyxZQUFnQixDQUFDO0FBQ2pCLFlBQWdCLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDQSxNQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQ3JFLGdCQUFvQixnQkFBTyxDQUFRLEVBQUs7Ozs7bUVBQUM7QUFDekMsb0JBQXdCQSxNQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztBQUM5Qyx3QkFBNEIsTUFBTSxFQUFFLElBQUk7QUFDeEMsOEJBQTRCLElBQUk7QUFDaEMsd0JBQTRCLE9BQU8sV0FBRSxHQUFNLEdBQUc7QUFDOUMsb0JBQXdCLENBQUMsQ0FBQyxDQUFDO0FBQzNCLG9CQUF3QixjQUFPQSxNQUFJLENBQUMsVUFBUyxDQUFDLElBQUksT0FBQyxNQUFJLElBQUksQ0FBQyxDQUFDO0FBQzdELGdCQUFvQixDQUFDLENBQUM7QUFDdEIsWUFBZ0IsQ0FBQztBQUNqQixZQUFnQixLQUFLO0FBQ3JCLGdCQUFvQixnQkFBTyxDQUFRLEVBQUs7OztBQUFDO0FBQ3pDLG9CQUF3QixPQUFPLElBQUksT0FBTyxXQUFDLFFBQU8sQ0FBSTtBQUN0RCx3QkFBNEJBLE1BQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0FBQ2xELDRCQUFnQyxNQUFNLEVBQUUsSUFBSTtBQUM1QyxrQ0FBZ0MsSUFBSTtBQUNwQyxxQ0FBZ0MsT0FBTztBQUN2Qyx3QkFBNEIsQ0FBQyxDQUFDLENBQUM7QUFDL0Isb0JBQXdCLENBQUMsQ0FBQyxDQUFDO0FBQzNCLGdCQUFvQixDQUFDLENBQUM7QUFDdEIsWUFBZ0IsQ0FBQztBQUNqQixRQUFZLENBQUM7QUFDYixJQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ1AsRUFBQztBQUNELG1CQUFNLDZDQUFhLENBQUMsTUFBTSxFQUFFOztBQUFDO0FBQ2pDLElBQVEsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDN0IsSUFBUSxLQUFLRixHQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDekMsZUFBWSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxPQUFDLE1BQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RELElBQVEsQ0FBQztBQUNULElBQVEsS0FBS0EsR0FBSyxDQUFDRyxNQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtBQUM3QyxRQUFZQSxNQUFJLENBQUMsT0FBTyxDQUFDLGVBQU0sSUFBSSxDQUFDLE9BQU0sQ0FBQ0EsTUFBSSxDQUFDLE1BQU0sT0FBQyxRQUFJQSxNQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN2RSxJQUFRLENBQUM7QUFDTCxFQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHZ1ZS9kZXZ0b29scy8uLi9hcGkvbGliL2VzbS9wcm94eS5qcz83NTIwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhPT0tfUExVR0lOX1NFVFRJTkdTX1NFVCB9IGZyb20gJy4vY29uc3QnO1xuZXhwb3J0IGNsYXNzIEFwaVByb3h5IHtcbiAgICBjb25zdHJ1Y3RvcihwbHVnaW4sIGhvb2spIHtcbiAgICAgICAgdGhpcy50YXJnZXQgPSBudWxsO1xuICAgICAgICB0aGlzLnRhcmdldFF1ZXVlID0gW107XG4gICAgICAgIHRoaXMub25RdWV1ZSA9IFtdO1xuICAgICAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcbiAgICAgICAgdGhpcy5ob29rID0gaG9vaztcbiAgICAgICAgY29uc3QgZGVmYXVsdFNldHRpbmdzID0ge307XG4gICAgICAgIGlmIChwbHVnaW4uc2V0dGluZ3MpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaWQgaW4gcGx1Z2luLnNldHRpbmdzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHBsdWdpbi5zZXR0aW5nc1tpZF07XG4gICAgICAgICAgICAgICAgZGVmYXVsdFNldHRpbmdzW2lkXSA9IGl0ZW0uZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxvY2FsU2V0dGluZ3NTYXZlSWQgPSBgX192dWUtZGV2dG9vbHMtcGx1Z2luLXNldHRpbmdzX18ke3BsdWdpbi5pZH1gO1xuICAgICAgICBsZXQgY3VycmVudFNldHRpbmdzID0geyAuLi5kZWZhdWx0U2V0dGluZ3MgfTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJhdyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGxvY2FsU2V0dGluZ3NTYXZlSWQpO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UocmF3KTtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oY3VycmVudFNldHRpbmdzLCBkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gbm9vcFxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmFsbGJhY2tzID0ge1xuICAgICAgICAgICAgZ2V0U2V0dGluZ3MoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRTZXR0aW5ncztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRTZXR0aW5ncyh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGxvY2FsU2V0dGluZ3NTYXZlSWQsIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG5vb3BcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY3VycmVudFNldHRpbmdzID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGhvb2sub24oSE9PS19QTFVHSU5fU0VUVElOR1NfU0VULCAocGx1Z2luSWQsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnc2V0dGluZ3Mgc2V0JywgcGx1Z2luSWQsIHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChwbHVnaW5JZCA9PT0gdGhpcy5wbHVnaW4uaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrcy5zZXRTZXR0aW5ncyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByb3hpZWRPbiA9IG5ldyBQcm94eSh7fSwge1xuICAgICAgICAgICAgZ2V0OiAoX3RhcmdldCwgcHJvcCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50YXJnZXQub25bcHJvcF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IHByb3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcm94aWVkVGFyZ2V0ID0gbmV3IFByb3h5KHt9LCB7XG4gICAgICAgICAgICBnZXQ6IChfdGFyZ2V0LCBwcm9wKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRhcmdldFtwcm9wXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocHJvcCA9PT0gJ29uJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm94aWVkT247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKE9iamVjdC5rZXlzKHRoaXMuZmFsbGJhY2tzKS5pbmNsdWRlcyhwcm9wKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0UXVldWUucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBwcm9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZTogKCkgPT4geyB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZhbGxiYWNrc1twcm9wXSguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0UXVldWUucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogcHJvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgc2V0UmVhbFRhcmdldCh0YXJnZXQpIHtcbiAgICAgICAgdGhpcy50YXJnZXQgPSB0YXJnZXQ7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLm9uUXVldWUpIHtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0Lm9uW2l0ZW0ubWV0aG9kXSguLi5pdGVtLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLnRhcmdldFF1ZXVlKSB7XG4gICAgICAgICAgICBpdGVtLnJlc29sdmUoYXdhaXQgdGhpcy50YXJnZXRbaXRlbS5tZXRob2RdKC4uLml0ZW0uYXJncykpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbImNvbnN0IiwibGV0IiwidGhpcyIsIml0ZW0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///65427\n");
132
+ eval("/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"B\": () => (/* binding */ ApiProxy)\n/* harmony export */ });\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(68496);\n\nvar ApiProxy = function ApiProxy(plugin, hook) {\n var this$1 = this;\n\n this.target = null;\n this.targetQueue = [];\n this.onQueue = [];\n this.plugin = plugin;\n this.hook = hook;\n var defaultSettings = {};\n if (plugin.settings) {\n for (var id in plugin.settings) {\n var item = plugin.settings[id];\n defaultSettings[id] = item.defaultValue;\n }\n }\n var localSettingsSaveId = \"__vue-devtools-plugin-settings__\" + (plugin.id);\n var currentSettings = Object.assign({}, defaultSettings);\n try {\n var raw = localStorage.getItem(localSettingsSaveId);\n var data = JSON.parse(raw);\n Object.assign(currentSettings, data);\n }\n catch (e) {\n // noop\n }\n this.fallbacks = {\n getSettings: function getSettings() {\n return currentSettings;\n },\n setSettings: function setSettings(value) {\n try {\n localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n }\n catch (e) {\n // noop\n }\n currentSettings = value;\n }\n };\n hook.on(_const__WEBPACK_IMPORTED_MODULE_0__/* .HOOK_PLUGIN_SETTINGS_SET */ .X, function (pluginId, value) {\n if (pluginId === this$1.plugin.id) {\n this$1.fallbacks.setSettings(value);\n }\n });\n this.proxiedOn = new Proxy({}, {\n get: function (_target, prop) {\n if (this$1.target) {\n return this$1.target.on[prop];\n }\n else {\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n this$1.onQueue.push({\n method: prop,\n args: args\n });\n };\n }\n }\n });\n this.proxiedTarget = new Proxy({}, {\n get: function (_target, prop) {\n if (this$1.target) {\n return this$1.target[prop];\n }\n else if (prop === 'on') {\n return this$1.proxiedOn;\n }\n else if (Object.keys(this$1.fallbacks).includes(prop)) {\n return function () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n this$1.targetQueue.push({\n method: prop,\n args: args,\n resolve: function () { }\n });\n return (ref = this$1.fallbacks)[prop].apply(ref, args);\n };\n }\n else {\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new Promise(function (resolve) {\n this$1.targetQueue.push({\n method: prop,\n args: args,\n resolve: resolve\n });\n });\n };\n }\n }\n });\n};\nApiProxy.prototype.setRealTarget = async function setRealTarget (target) {\n var ref, ref$1;\n\n this.target = target;\n for (var item of this.onQueue) {\n (ref = this.target.on)[item.method].apply(ref, item.args);\n }\n for (var item$1 of this.targetQueue) {\n item$1.resolve(await (ref$1 = this.target)[item$1.method].apply(ref$1, item$1.args));\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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bS9wcm94eS5qcz83NTIwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhPT0tfUExVR0lOX1NFVFRJTkdTX1NFVCB9IGZyb20gJy4vY29uc3QnO1xuZXhwb3J0IGNsYXNzIEFwaVByb3h5IHtcbiAgICBjb25zdHJ1Y3RvcihwbHVnaW4sIGhvb2spIHtcbiAgICAgICAgdGhpcy50YXJnZXQgPSBudWxsO1xuICAgICAgICB0aGlzLnRhcmdldFF1ZXVlID0gW107XG4gICAgICAgIHRoaXMub25RdWV1ZSA9IFtdO1xuICAgICAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcbiAgICAgICAgdGhpcy5ob29rID0gaG9vaztcbiAgICAgICAgY29uc3QgZGVmYXVsdFNldHRpbmdzID0ge307XG4gICAgICAgIGlmIChwbHVnaW4uc2V0dGluZ3MpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaWQgaW4gcGx1Z2luLnNldHRpbmdzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHBsdWdpbi5zZXR0aW5nc1tpZF07XG4gICAgICAgICAgICAgICAgZGVmYXVsdFNldHRpbmdzW2lkXSA9IGl0ZW0uZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxvY2FsU2V0dGluZ3NTYXZlSWQgPSBgX192dWUtZGV2dG9vbHMtcGx1Z2luLXNldHRpbmdzX18ke3BsdWdpbi5pZH1gO1xuICAgICAgICBsZXQgY3VycmVudFNldHRpbmdzID0geyAuLi5kZWZhdWx0U2V0dGluZ3MgfTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJhdyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGxvY2FsU2V0dGluZ3NTYXZlSWQpO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UocmF3KTtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oY3VycmVudFNldHRpbmdzLCBkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gbm9vcFxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmFsbGJhY2tzID0ge1xuICAgICAgICAgICAgZ2V0U2V0dGluZ3MoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRTZXR0aW5ncztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRTZXR0aW5ncyh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGxvY2FsU2V0dGluZ3NTYXZlSWQsIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG5vb3BcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY3VycmVudFNldHRpbmdzID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGhvb2sub24oSE9PS19QTFVHSU5fU0VUVElOR1NfU0VULCAocGx1Z2luSWQsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAocGx1Z2luSWQgPT09IHRoaXMucGx1Z2luLmlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mYWxsYmFja3Muc2V0U2V0dGluZ3ModmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcm94aWVkT24gPSBuZXcgUHJveHkoe30sIHtcbiAgICAgICAgICAgIGdldDogKF90YXJnZXQsIHByb3ApID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGFyZ2V0Lm9uW3Byb3BdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uUXVldWUucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBwcm9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucHJveGllZFRhcmdldCA9IG5ldyBQcm94eSh7fSwge1xuICAgICAgICAgICAgZ2V0OiAoX3RhcmdldCwgcHJvcCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50YXJnZXRbcHJvcF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHByb3AgPT09ICdvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJveGllZE9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChPYmplY3Qua2V5cyh0aGlzLmZhbGxiYWNrcykuaW5jbHVkZXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldFF1ZXVlLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogcHJvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmU6ICgpID0+IHsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mYWxsYmFja3NbcHJvcF0oLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldFF1ZXVlLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IHByb3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIHNldFJlYWxUYXJnZXQodGFyZ2V0KSB7XG4gICAgICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0O1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5vblF1ZXVlKSB7XG4gICAgICAgICAgICB0aGlzLnRhcmdldC5vbltpdGVtLm1ldGhvZF0oLi4uaXRlbS5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy50YXJnZXRRdWV1ZSkge1xuICAgICAgICAgICAgaXRlbS5yZXNvbHZlKGF3YWl0IHRoaXMudGFyZ2V0W2l0ZW0ubWV0aG9kXSguLi5pdGVtLmFyZ3MpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJjb25zdCIsImxldCIsInRoaXMiLCJpdGVtIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///65427\n");
133
133
 
134
134
  /***/ }),
135
135
 
@@ -214,10 +214,10 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar
214
214
  /***/ }),
215
215
 
216
216
  /***/ 59372:
217
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
217
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
218
218
 
219
219
  "use strict";
220
- eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getComponentInstance = exports.getComponentId = exports.editComponentState = exports.sendEmptyComponentData = exports.markSelectedInstance = exports.sendSelectedComponentData = exports.sendComponentTreeData = void 0;\nvar shared_utils_1 = __webpack_require__(19746);\nvar app_backend_api_1 = __webpack_require__(98421);\nvar app_1 = __webpack_require__(61137);\nvar MAX_$VM = 10;\nvar $vmQueue = [];\nasync function sendComponentTreeData(appRecord, instanceId, filter, maxDepth, ctx) {\n if ( filter === void 0 ) filter = '';\n if ( maxDepth === void 0 ) maxDepth = null;\n\n if (!instanceId || appRecord !== ctx.currentAppRecord)\n { return; }\n // Flush will send all components in the tree\n // So we skip individiual tree updates\n if (instanceId !== '_root' &&\n ctx.currentAppRecord.backend.availableFeatures.includes(app_backend_api_1.BuiltinBackendFeature.FLUSH)) {\n return;\n }\n var instance = getComponentInstance(appRecord, instanceId, ctx);\n if (!instance) {\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_TREE, {\n instanceId: instanceId,\n treeData: null,\n notFound: true\n });\n }\n else {\n if (filter)\n { filter = filter.toLowerCase(); }\n if (maxDepth == null) {\n maxDepth = instance === ctx.currentAppRecord.rootInstance ? 2 : 1;\n }\n var payload = {\n instanceId: instanceId,\n treeData: shared_utils_1.stringify(await ctx.api.walkComponentTree(instance, maxDepth, filter))\n };\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_TREE, payload);\n }\n}\nexports.sendComponentTreeData = sendComponentTreeData;\nasync function sendSelectedComponentData(appRecord, instanceId, ctx) {\n if (!instanceId || appRecord !== ctx.currentAppRecord)\n { return; }\n markSelectedInstance(instanceId, ctx);\n var instance = getComponentInstance(appRecord, instanceId, ctx);\n if (!instance) {\n sendEmptyComponentData(instanceId, ctx);\n }\n else {\n // Expose instance on window\n if (typeof window !== 'undefined') {\n var win = window;\n win.$vm = instance;\n // $vm0, $vm1, $vm2, ...\n if ($vmQueue[0] !== instance) {\n if ($vmQueue.length >= MAX_$VM) {\n $vmQueue.pop();\n }\n for (var i = $vmQueue.length; i > 0; i--) {\n win[(\"$vm\" + i)] = $vmQueue[i] = $vmQueue[i - 1];\n }\n win.$vm0 = $vmQueue[0] = instance;\n }\n }\n if (false) {}\n var parentInstances = await ctx.api.walkComponentParents(instance);\n var payload = {\n instanceId: instanceId,\n data: shared_utils_1.stringify(await ctx.api.inspectComponent(instance, ctx.currentAppRecord.options.app)),\n parentIds: parentInstances.map(function (i) { return i.__VUE_DEVTOOLS_UID__; })\n };\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_SELECTED_DATA, payload);\n }\n}\nexports.sendSelectedComponentData = sendSelectedComponentData;\nfunction markSelectedInstance(instanceId, ctx) {\n ctx.currentInspectedComponentId = instanceId;\n ctx.currentAppRecord.lastInspectedComponentId = instanceId;\n}\nexports.markSelectedInstance = markSelectedInstance;\nfunction sendEmptyComponentData(instanceId, ctx) {\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_SELECTED_DATA, {\n instanceId: instanceId,\n data: null\n });\n}\nexports.sendEmptyComponentData = sendEmptyComponentData;\nasync function editComponentState(instanceId, dotPath, type, state, ctx) {\n if (!instanceId)\n { return; }\n var instance = getComponentInstance(ctx.currentAppRecord, instanceId, ctx);\n if (instance) {\n if ('value' in state && state.value != null) {\n state.value = shared_utils_1.parse(state.value, true);\n }\n await ctx.api.editComponentState(instance, dotPath, type, state, ctx.currentAppRecord.options.app);\n await sendSelectedComponentData(ctx.currentAppRecord, instanceId, ctx);\n }\n}\nexports.editComponentState = editComponentState;\nasync function getComponentId(app, uid, instance, ctx) {\n try {\n var appRecord = await app_1.getAppRecord(app, ctx);\n if (!appRecord)\n { return null; }\n var isRoot = appRecord.rootInstance === instance;\n return ((appRecord.id) + \":\" + (isRoot ? 'root' : uid));\n }\n catch (e) {\n if (false) {}\n return null;\n }\n}\nexports.getComponentId = getComponentId;\nfunction getComponentInstance(appRecord, instanceId, ctx) {\n if (instanceId === '_root') {\n instanceId = (appRecord.id) + \":root\";\n }\n var instance = appRecord.instanceMap.get(instanceId);\n if (!instance && \"production\" !== 'production') {\n console.warn((\"Instance uid=\" + instanceId + \" not found\"));\n }\n return instance;\n}\nexports.getComponentInstance = getComponentInstance;\n//# sourceMappingURL=component.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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MUM7QUFDVCxRQUFRLE9BQU8sSUFBSSxDQUFDO0FBQ3BCLEtBQUs7QUFDTCxDQUFDO0FBQ0Qsc0JBQXNCLEdBQUcsY0FBYyxDQUFDO0FBQ3hDLFNBQVMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUU7QUFDMUQsSUFBSSxJQUFJLFVBQVUsS0FBSyxPQUFPLEVBQUU7QUFDaEMsUUFBUSxVQUFVLElBQU0sU0FBUyxDQUFDLEdBQUUsVUFBTyxDQUFDO0FBQzVDLEtBQUs7QUFDTCxJQUFJQSxHQUFLLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzNELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxZQUFvQixLQUFLLFlBQVksRUFBRTtBQUM1RCxRQUFRLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQWdCLFVBQVUsZ0JBQVksQ0FBQyxDQUFDO0FBQzdELEtBQUs7QUFDTCxJQUFJLE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUM7QUFDRCw0QkFBNEIsR0FBRyxvQkFBb0IsQ0FBQztBQUNwRCIsInNvdXJjZXMiOlsid2VicGFjazovL0B2dWUvZGV2dG9vbHMvLi4vYXBwLWJhY2tlbmQtY29yZS9saWIvY29tcG9uZW50LmpzPzY2NjYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldENvbXBvbmVudEluc3RhbmNlID0gZXhwb3J0cy5nZXRDb21wb25lbnRJZCA9IGV4cG9ydHMuZWRpdENvbXBvbmVudFN0YXRlID0gZXhwb3J0cy5zZW5kRW1wdHlDb21wb25lbnREYXRhID0gZXhwb3J0cy5tYXJrU2VsZWN0ZWRJbnN0YW5jZSA9IGV4cG9ydHMuc2VuZFNlbGVjdGVkQ29tcG9uZW50RGF0YSA9IGV4cG9ydHMuc2VuZENvbXBvbmVudFRyZWVEYXRhID0gdm9pZCAwO1xuY29uc3Qgc2hhcmVkX3V0aWxzXzEgPSByZXF1aXJlKFwiQHZ1ZS1kZXZ0b29scy9zaGFyZWQtdXRpbHNcIik7XG5jb25zdCBhcHBfYmFja2VuZF9hcGlfMSA9IHJlcXVpcmUoXCJAdnVlLWRldnRvb2xzL2FwcC1iYWNrZW5kLWFwaVwiKTtcbmNvbnN0IGFwcF8xID0gcmVxdWlyZShcIi4vYXBwXCIpO1xuY29uc3QgTUFYXyRWTSA9IDEwO1xuY29uc3QgJHZtUXVldWUgPSBbXTtcbmFzeW5jIGZ1bmN0aW9uIHNlbmRDb21wb25lbnRUcmVlRGF0YShhcHBSZWNvcmQsIGluc3RhbmNlSWQsIGZpbHRlciA9ICcnLCBtYXhEZXB0aCA9IG51bGwsIGN0eCkge1xuICAgIGlmICghaW5zdGFuY2VJZCB8fCBhcHBSZWNvcmQgIT09IGN0eC5jdXJyZW50QXBwUmVjb3JkKVxuICAgICAgICByZXR1cm47XG4gICAgLy8gRmx1c2ggd2lsbCBzZW5kIGFsbCBjb21wb25lbnRzIGluIHRoZSB0cmVlXG4gICAgLy8gU28gd2Ugc2tpcCBpbmRpdmlkaXVhbCB0cmVlIHVwZGF0ZXNcbiAgICBpZiAoaW5zdGFuY2VJZCAhPT0gJ19yb290JyAmJlxuICAgICAgICBjdHguY3VycmVudEFwcFJlY29yZC5iYWNrZW5kLmF2YWlsYWJsZUZlYXR1cmVzLmluY2x1ZGVzKGFwcF9iYWNrZW5kX2FwaV8xLkJ1aWx0aW5CYWNrZW5kRmVhdHVyZS5GTFVTSCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpbnN0YW5jZSA9IGdldENvbXBvbmVudEluc3RhbmNlKGFwcFJlY29yZCwgaW5zdGFuY2VJZCwgY3R4KTtcbiAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICAgIGN0eC5icmlkZ2Uuc2VuZChzaGFyZWRfdXRpbHNfMS5CcmlkZ2VFdmVudHMuVE9fRlJPTlRfQ09NUE9ORU5UX1RSRUUsIHtcbiAgICAgICAgICAgIGluc3RhbmNlSWQsXG4gICAgICAgICAgICB0cmVlRGF0YTogbnVsbCxcbiAgICAgICAgICAgIG5vdEZvdW5kOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKGZpbHRlcilcbiAgICAgICAgICAgIGZpbHRlciA9IGZpbHRlci50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAobWF4RGVwdGggPT0gbnVsbCkge1xuICAgICAgICAgICAgbWF4RGVwdGggPSBpbnN0YW5jZSA9PT0gY3R4LmN1cnJlbnRBcHBSZWNvcmQucm9vdEluc3RhbmNlID8gMiA6IDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgICAgIGluc3RhbmNlSWQsXG4gICAgICAgICAgICB0cmVlRGF0YTogc2hhcmVkX3V0aWxzXzEuc3RyaW5naWZ5KGF3YWl0IGN0eC5hcGkud2Fsa0NvbXBvbmVudFRyZWUoaW5zdGFuY2UsIG1heERlcHRoLCBmaWx0ZXIpKVxuICAgICAgICB9O1xuICAgICAgICBjdHguYnJpZGdlLnNlbmQoc2hhcmVkX3V0aWxzXzEuQnJpZGdlRXZlbnRzLlRPX0ZST05UX0NPTVBPTkVOVF9UUkVFLCBwYXlsb2FkKTtcbiAgICB9XG59XG5leHBvcnRzLnNlbmRDb21wb25lbnRUcmVlRGF0YSA9IHNlbmRDb21wb25lbnRUcmVlRGF0YTtcbmFzeW5jIGZ1bmN0aW9uIHNlbmRTZWxlY3RlZENvbXBvbmVudERhdGEoYXBwUmVjb3JkLCBpbnN0YW5jZUlkLCBjdHgpIHtcbiAgICBpZiAoIWluc3RhbmNlSWQgfHwgYXBwUmVjb3JkICE9PSBjdHguY3VycmVudEFwcFJlY29yZClcbiAgICAgICAgcmV0dXJuO1xuICAgIG1hcmtTZWxlY3RlZEluc3RhbmNlKGluc3RhbmNlSWQsIGN0eCk7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBnZXRDb21wb25lbnRJbnN0YW5jZShhcHBSZWNvcmQsIGluc3RhbmNlSWQsIGN0eCk7XG4gICAgaWYgKCFpbnN0YW5jZSkge1xuICAgICAgICBzZW5kRW1wdHlDb21wb25lbnREYXRhKGluc3RhbmNlSWQsIGN0eCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvLyBFeHBvc2UgaW5zdGFuY2Ugb24gd2luZG93XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3Qgd2luID0gd2luZG93O1xuICAgICAgICAgICAgd2luLiR2bSA9IGluc3RhbmNlO1xuICAgICAgICAgICAgLy8gJHZtMCwgJHZtMSwgJHZtMiwgLi4uXG4gICAgICAgICAgICBpZiAoJHZtUXVldWVbMF0gIT09IGluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCR2bVF1ZXVlLmxlbmd0aCA+PSBNQVhfJFZNKSB7XG4gICAgICAgICAgICAgICAgICAgICR2bVF1ZXVlLnBvcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gJHZtUXVldWUubGVuZ3RoOyBpID4gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbltgJHZtJHtpfWBdID0gJHZtUXVldWVbaV0gPSAkdm1RdWV1ZVtpIC0gMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdpbi4kdm0wID0gJHZtUXVldWVbMF0gPSBpbnN0YW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ2luc3BlY3QnLCBpbnN0YW5jZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyZW50SW5zdGFuY2VzID0gYXdhaXQgY3R4LmFwaS53YWxrQ29tcG9uZW50UGFyZW50cyhpbnN0YW5jZSk7XG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgICAgICBpbnN0YW5jZUlkLFxuICAgICAgICAgICAgZGF0YTogc2hhcmVkX3V0aWxzXzEuc3RyaW5naWZ5KGF3YWl0IGN0eC5hcGkuaW5zcGVjdENvbXBvbmVudChpbnN0YW5jZSwgY3R4LmN1cnJlbnRBcHBSZWNvcmQub3B0aW9ucy5hcHApKSxcbiAgICAgICAgICAgIHBhcmVudElkczogcGFyZW50SW5zdGFuY2VzLm1hcChpID0+IGkuX19WVUVfREVWVE9PTFNfVUlEX18pXG4gICAgICAgIH07XG4gICAgICAgIGN0eC5icmlkZ2Uuc2VuZChzaGFyZWRfdXRpbHNfMS5CcmlkZ2VFdmVudHMuVE9fRlJPTlRfQ09NUE9ORU5UX1NFTEVDVEVEX0RBVEEsIHBheWxvYWQpO1xuICAgIH1cbn1cbmV4cG9ydHMuc2VuZFNlbGVjdGVkQ29tcG9uZW50RGF0YSA9IHNlbmRTZWxlY3RlZENvbXBvbmVudERhdGE7XG5mdW5jdGlvbiBtYXJrU2VsZWN0ZWRJbnN0YW5jZShpbnN0YW5jZUlkLCBjdHgpIHtcbiAgICBjdHguY3VycmVudEluc3BlY3RlZENvbXBvbmVudElkID0gaW5zdGFuY2VJZDtcbiAgICBjdHguY3VycmVudEFwcFJlY29yZC5sYXN0SW5zcGVjdGVkQ29tcG9uZW50SWQgPSBpbnN0YW5jZUlkO1xufVxuZXhwb3J0cy5tYXJrU2VsZWN0ZWRJbnN0YW5jZSA9IG1hcmtTZWxlY3RlZEluc3RhbmNlO1xuZnVuY3Rpb24gc2VuZEVtcHR5Q29tcG9uZW50RGF0YShpbnN0YW5jZUlkLCBjdHgpIHtcbiAgICBjdHguYnJpZGdlLnNlbmQoc2hhcmVkX3V0aWxzXzEuQnJpZGdlRXZlbnRzLlRPX0ZST05UX0NPTVBPTkVOVF9TRUxFQ1RFRF9EQVRBLCB7XG4gICAgICAgIGluc3RhbmNlSWQsXG4gICAgICAgIGRhdGE6IG51bGxcbiAgICB9KTtcbn1cbmV4cG9ydHMuc2VuZEVtcHR5Q29tcG9uZW50RGF0YSA9IHNlbmRFbXB0eUNvbXBvbmVudERhdGE7XG5hc3luYyBmdW5jdGlvbiBlZGl0Q29tcG9uZW50U3RhdGUoaW5zdGFuY2VJZCwgZG90UGF0aCwgdHlwZSwgc3RhdGUsIGN0eCkge1xuICAgIGlmICghaW5zdGFuY2VJZClcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IGluc3RhbmNlID0gZ2V0Q29tcG9uZW50SW5zdGFuY2UoY3R4LmN1cnJlbnRBcHBSZWNvcmQsIGluc3RhbmNlSWQsIGN0eCk7XG4gICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgIGlmICgndmFsdWUnIGluIHN0YXRlICYmIHN0YXRlLnZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHN0YXRlLnZhbHVlID0gc2hhcmVkX3V0aWxzXzEucGFyc2Uoc3RhdGUudmFsdWUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGN0eC5hcGkuZWRpdENvbXBvbmVudFN0YXRlKGluc3RhbmNlLCBkb3RQYXRoLCB0eXBlLCBzdGF0ZSwgY3R4LmN1cnJlbnRBcHBSZWNvcmQub3B0aW9ucy5hcHApO1xuICAgICAgICBhd2FpdCBzZW5kU2VsZWN0ZWRDb21wb25lbnREYXRhKGN0eC5jdXJyZW50QXBwUmVjb3JkLCBpbnN0YW5jZUlkLCBjdHgpO1xuICAgIH1cbn1cbmV4cG9ydHMuZWRpdENvbXBvbmVudFN0YXRlID0gZWRpdENvbXBvbmVudFN0YXRlO1xuYXN5bmMgZnVuY3Rpb24gZ2V0Q29tcG9uZW50SWQoYXBwLCB1aWQsIGluc3RhbmNlLCBjdHgpIHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBhcHBSZWNvcmQgPSBhd2FpdCBhcHBfMS5nZXRBcHBSZWNvcmQoYXBwLCBjdHgpO1xuICAgICAgICBpZiAoIWFwcFJlY29yZClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjb25zdCBpc1Jvb3QgPSBhcHBSZWNvcmQucm9vdEluc3RhbmNlID09PSBpbnN0YW5jZTtcbiAgICAgICAgcmV0dXJuIGAke2FwcFJlY29yZC5pZH06JHtpc1Jvb3QgPyAncm9vdCcgOiB1aWR9YDtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuZXhwb3J0cy5nZXRDb21wb25lbnRJZCA9IGdldENvbXBvbmVudElkO1xuZnVuY3Rpb24gZ2V0Q29tcG9uZW50SW5zdGFuY2UoYXBwUmVjb3JkLCBpbnN0YW5jZUlkLCBjdHgpIHtcbiAgICBpZiAoaW5zdGFuY2VJZCA9PT0gJ19yb290Jykge1xuICAgICAgICBpbnN0YW5jZUlkID0gYCR7YXBwUmVjb3JkLmlkfTpyb290YDtcbiAgICB9XG4gICAgY29uc3QgaW5zdGFuY2UgPSBhcHBSZWNvcmQuaW5zdGFuY2VNYXAuZ2V0KGluc3RhbmNlSWQpO1xuICAgIGlmICghaW5zdGFuY2UgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBjb25zb2xlLndhcm4oYEluc3RhbmNlIHVpZD0ke2luc3RhbmNlSWR9IG5vdCBmb3VuZGApO1xuICAgIH1cbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5leHBvcnRzLmdldENvbXBvbmVudEluc3RhbmNlID0gZ2V0Q29tcG9uZW50SW5zdGFuY2U7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb21wb25lbnQuanMubWFwIl0sIm5hbWVzIjpbImNvbnN0IiwibGV0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///59372\n");
220
+ eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getComponentInstance = exports.getComponentId = exports.editComponentState = exports.sendEmptyComponentData = exports.markSelectedInstance = exports.sendSelectedComponentData = exports.sendComponentTreeData = void 0;\nvar shared_utils_1 = __webpack_require__(19746);\nvar shared_data_1 = __importDefault(__webpack_require__(59835));\nvar app_backend_api_1 = __webpack_require__(98421);\nvar app_1 = __webpack_require__(61137);\nvar MAX_$VM = 10;\nvar $vmQueue = [];\nasync function sendComponentTreeData(appRecord, instanceId, filter, maxDepth, ctx) {\n if ( filter === void 0 ) filter = '';\n if ( maxDepth === void 0 ) maxDepth = null;\n\n if (!instanceId || appRecord !== ctx.currentAppRecord)\n { return; }\n // Flush will send all components in the tree\n // So we skip individiual tree updates\n if (instanceId !== '_root' &&\n ctx.currentAppRecord.backend.availableFeatures.includes(app_backend_api_1.BuiltinBackendFeature.FLUSH)) {\n return;\n }\n var instance = getComponentInstance(appRecord, instanceId, ctx);\n if (!instance) {\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_TREE, {\n instanceId: instanceId,\n treeData: null,\n notFound: true\n });\n }\n else {\n if (filter)\n { filter = filter.toLowerCase(); }\n if (maxDepth == null) {\n maxDepth = instance === ctx.currentAppRecord.rootInstance ? 2 : 1;\n }\n var payload = {\n instanceId: instanceId,\n treeData: shared_utils_1.stringify(await ctx.api.walkComponentTree(instance, maxDepth, filter))\n };\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_TREE, payload);\n }\n}\nexports.sendComponentTreeData = sendComponentTreeData;\nasync function sendSelectedComponentData(appRecord, instanceId, ctx) {\n if (!instanceId || appRecord !== ctx.currentAppRecord)\n { return; }\n markSelectedInstance(instanceId, ctx);\n var instance = getComponentInstance(appRecord, instanceId, ctx);\n if (!instance) {\n sendEmptyComponentData(instanceId, ctx);\n }\n else {\n // Expose instance on window\n if (typeof window !== 'undefined') {\n var win = window;\n win.$vm = instance;\n // $vm0, $vm1, $vm2, ...\n if ($vmQueue[0] !== instance) {\n if ($vmQueue.length >= MAX_$VM) {\n $vmQueue.pop();\n }\n for (var i = $vmQueue.length; i > 0; i--) {\n win[(\"$vm\" + i)] = $vmQueue[i] = $vmQueue[i - 1];\n }\n win.$vm0 = $vmQueue[0] = instance;\n }\n }\n if (shared_data_1.default.debugInfo) {\n console.log('[DEBUG] inspect', instance);\n }\n var parentInstances = await ctx.api.walkComponentParents(instance);\n var payload = {\n instanceId: instanceId,\n data: shared_utils_1.stringify(await ctx.api.inspectComponent(instance, ctx.currentAppRecord.options.app)),\n parentIds: parentInstances.map(function (i) { return i.__VUE_DEVTOOLS_UID__; })\n };\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_SELECTED_DATA, payload);\n }\n}\nexports.sendSelectedComponentData = sendSelectedComponentData;\nfunction markSelectedInstance(instanceId, ctx) {\n ctx.currentInspectedComponentId = instanceId;\n ctx.currentAppRecord.lastInspectedComponentId = instanceId;\n}\nexports.markSelectedInstance = markSelectedInstance;\nfunction sendEmptyComponentData(instanceId, ctx) {\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_SELECTED_DATA, {\n instanceId: instanceId,\n data: null\n });\n}\nexports.sendEmptyComponentData = sendEmptyComponentData;\nasync function editComponentState(instanceId, dotPath, type, state, ctx) {\n if (!instanceId)\n { return; }\n var instance = getComponentInstance(ctx.currentAppRecord, instanceId, ctx);\n if (instance) {\n if ('value' in state && state.value != null) {\n state.value = shared_utils_1.parse(state.value, true);\n }\n await ctx.api.editComponentState(instance, dotPath, type, state, ctx.currentAppRecord.options.app);\n await sendSelectedComponentData(ctx.currentAppRecord, instanceId, ctx);\n }\n}\nexports.editComponentState = editComponentState;\nasync function getComponentId(app, uid, instance, ctx) {\n try {\n var appRecord = await app_1.getAppRecord(app, ctx);\n if (!appRecord)\n { return null; }\n var isRoot = appRecord.rootInstance === instance;\n return ((appRecord.id) + \":\" + (isRoot ? 'root' : uid));\n }\n catch (e) {\n if (shared_data_1.default.debugInfo) {\n console.error(e);\n }\n return null;\n }\n}\nexports.getComponentId = getComponentId;\nfunction getComponentInstance(appRecord, instanceId, ctx) {\n if (instanceId === '_root') {\n instanceId = (appRecord.id) + \":root\";\n }\n var instance = appRecord.instanceMap.get(instanceId);\n if (!instance && shared_data_1.default.debugInfo) {\n console.warn((\"Instance uid=\" + instanceId + \" not found\"));\n }\n return instance;\n}\nexports.getComponentInstance = getComponentInstance;\n//# sourceMappingURL=component.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QztBQUNwRCIsInNvdXJjZXMiOlsid2VicGFjazovL0B2dWUvZGV2dG9vbHMvLi4vYXBwLWJhY2tlbmQtY29yZS9saWIvY29tcG9uZW50LmpzPzY2NjYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldENvbXBvbmVudEluc3RhbmNlID0gZXhwb3J0cy5nZXRDb21wb25lbnRJZCA9IGV4cG9ydHMuZWRpdENvbXBvbmVudFN0YXRlID0gZXhwb3J0cy5zZW5kRW1wdHlDb21wb25lbnREYXRhID0gZXhwb3J0cy5tYXJrU2VsZWN0ZWRJbnN0YW5jZSA9IGV4cG9ydHMuc2VuZFNlbGVjdGVkQ29tcG9uZW50RGF0YSA9IGV4cG9ydHMuc2VuZENvbXBvbmVudFRyZWVEYXRhID0gdm9pZCAwO1xuY29uc3Qgc2hhcmVkX3V0aWxzXzEgPSByZXF1aXJlKFwiQHZ1ZS1kZXZ0b29scy9zaGFyZWQtdXRpbHNcIik7XG5jb25zdCBzaGFyZWRfZGF0YV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJAdnVlLWRldnRvb2xzL3NoYXJlZC11dGlscy9saWIvc2hhcmVkLWRhdGFcIikpO1xuY29uc3QgYXBwX2JhY2tlbmRfYXBpXzEgPSByZXF1aXJlKFwiQHZ1ZS1kZXZ0b29scy9hcHAtYmFja2VuZC1hcGlcIik7XG5jb25zdCBhcHBfMSA9IHJlcXVpcmUoXCIuL2FwcFwiKTtcbmNvbnN0IE1BWF8kVk0gPSAxMDtcbmNvbnN0ICR2bVF1ZXVlID0gW107XG5hc3luYyBmdW5jdGlvbiBzZW5kQ29tcG9uZW50VHJlZURhdGEoYXBwUmVjb3JkLCBpbnN0YW5jZUlkLCBmaWx0ZXIgPSAnJywgbWF4RGVwdGggPSBudWxsLCBjdHgpIHtcbiAgICBpZiAoIWluc3RhbmNlSWQgfHwgYXBwUmVjb3JkICE9PSBjdHguY3VycmVudEFwcFJlY29yZClcbiAgICAgICAgcmV0dXJuO1xuICAgIC8vIEZsdXNoIHdpbGwgc2VuZCBhbGwgY29tcG9uZW50cyBpbiB0aGUgdHJlZVxuICAgIC8vIFNvIHdlIHNraXAgaW5kaXZpZGl1YWwgdHJlZSB1cGRhdGVzXG4gICAgaWYgKGluc3RhbmNlSWQgIT09ICdfcm9vdCcgJiZcbiAgICAgICAgY3R4LmN1cnJlbnRBcHBSZWNvcmQuYmFja2VuZC5hdmFpbGFibGVGZWF0dXJlcy5pbmNsdWRlcyhhcHBfYmFja2VuZF9hcGlfMS5CdWlsdGluQmFja2VuZEZlYXR1cmUuRkxVU0gpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaW5zdGFuY2UgPSBnZXRDb21wb25lbnRJbnN0YW5jZShhcHBSZWNvcmQsIGluc3RhbmNlSWQsIGN0eCk7XG4gICAgaWYgKCFpbnN0YW5jZSkge1xuICAgICAgICBjdHguYnJpZGdlLnNlbmQoc2hhcmVkX3V0aWxzXzEuQnJpZGdlRXZlbnRzLlRPX0ZST05UX0NPTVBPTkVOVF9UUkVFLCB7XG4gICAgICAgICAgICBpbnN0YW5jZUlkLFxuICAgICAgICAgICAgdHJlZURhdGE6IG51bGwsXG4gICAgICAgICAgICBub3RGb3VuZDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmIChmaWx0ZXIpXG4gICAgICAgICAgICBmaWx0ZXIgPSBmaWx0ZXIudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKG1heERlcHRoID09IG51bGwpIHtcbiAgICAgICAgICAgIG1heERlcHRoID0gaW5zdGFuY2UgPT09IGN0eC5jdXJyZW50QXBwUmVjb3JkLnJvb3RJbnN0YW5jZSA/IDIgOiAxO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgICAgICBpbnN0YW5jZUlkLFxuICAgICAgICAgICAgdHJlZURhdGE6IHNoYXJlZF91dGlsc18xLnN0cmluZ2lmeShhd2FpdCBjdHguYXBpLndhbGtDb21wb25lbnRUcmVlKGluc3RhbmNlLCBtYXhEZXB0aCwgZmlsdGVyKSlcbiAgICAgICAgfTtcbiAgICAgICAgY3R4LmJyaWRnZS5zZW5kKHNoYXJlZF91dGlsc18xLkJyaWRnZUV2ZW50cy5UT19GUk9OVF9DT01QT05FTlRfVFJFRSwgcGF5bG9hZCk7XG4gICAgfVxufVxuZXhwb3J0cy5zZW5kQ29tcG9uZW50VHJlZURhdGEgPSBzZW5kQ29tcG9uZW50VHJlZURhdGE7XG5hc3luYyBmdW5jdGlvbiBzZW5kU2VsZWN0ZWRDb21wb25lbnREYXRhKGFwcFJlY29yZCwgaW5zdGFuY2VJZCwgY3R4KSB7XG4gICAgaWYgKCFpbnN0YW5jZUlkIHx8IGFwcFJlY29yZCAhPT0gY3R4LmN1cnJlbnRBcHBSZWNvcmQpXG4gICAgICAgIHJldHVybjtcbiAgICBtYXJrU2VsZWN0ZWRJbnN0YW5jZShpbnN0YW5jZUlkLCBjdHgpO1xuICAgIGNvbnN0IGluc3RhbmNlID0gZ2V0Q29tcG9uZW50SW5zdGFuY2UoYXBwUmVjb3JkLCBpbnN0YW5jZUlkLCBjdHgpO1xuICAgIGlmICghaW5zdGFuY2UpIHtcbiAgICAgICAgc2VuZEVtcHR5Q29tcG9uZW50RGF0YShpbnN0YW5jZUlkLCBjdHgpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgLy8gRXhwb3NlIGluc3RhbmNlIG9uIHdpbmRvd1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IHdpbiA9IHdpbmRvdztcbiAgICAgICAgICAgIHdpbi4kdm0gPSBpbnN0YW5jZTtcbiAgICAgICAgICAgIC8vICR2bTAsICR2bTEsICR2bTIsIC4uLlxuICAgICAgICAgICAgaWYgKCR2bVF1ZXVlWzBdICE9PSBpbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGlmICgkdm1RdWV1ZS5sZW5ndGggPj0gTUFYXyRWTSkge1xuICAgICAgICAgICAgICAgICAgICAkdm1RdWV1ZS5wb3AoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9ICR2bVF1ZXVlLmxlbmd0aDsgaSA+IDA7IGktLSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5bYCR2bSR7aX1gXSA9ICR2bVF1ZXVlW2ldID0gJHZtUXVldWVbaSAtIDFdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3aW4uJHZtMCA9ICR2bVF1ZXVlWzBdID0gaW5zdGFuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNoYXJlZF9kYXRhXzEuZGVmYXVsdC5kZWJ1Z0luZm8pIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbREVCVUddIGluc3BlY3QnLCBpbnN0YW5jZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyZW50SW5zdGFuY2VzID0gYXdhaXQgY3R4LmFwaS53YWxrQ29tcG9uZW50UGFyZW50cyhpbnN0YW5jZSk7XG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgICAgICBpbnN0YW5jZUlkLFxuICAgICAgICAgICAgZGF0YTogc2hhcmVkX3V0aWxzXzEuc3RyaW5naWZ5KGF3YWl0IGN0eC5hcGkuaW5zcGVjdENvbXBvbmVudChpbnN0YW5jZSwgY3R4LmN1cnJlbnRBcHBSZWNvcmQub3B0aW9ucy5hcHApKSxcbiAgICAgICAgICAgIHBhcmVudElkczogcGFyZW50SW5zdGFuY2VzLm1hcChpID0+IGkuX19WVUVfREVWVE9PTFNfVUlEX18pXG4gICAgICAgIH07XG4gICAgICAgIGN0eC5icmlkZ2Uuc2VuZChzaGFyZWRfdXRpbHNfMS5CcmlkZ2VFdmVudHMuVE9fRlJPTlRfQ09NUE9ORU5UX1NFTEVDVEVEX0RBVEEsIHBheWxvYWQpO1xuICAgIH1cbn1cbmV4cG9ydHMuc2VuZFNlbGVjdGVkQ29tcG9uZW50RGF0YSA9IHNlbmRTZWxlY3RlZENvbXBvbmVudERhdGE7XG5mdW5jdGlvbiBtYXJrU2VsZWN0ZWRJbnN0YW5jZShpbnN0YW5jZUlkLCBjdHgpIHtcbiAgICBjdHguY3VycmVudEluc3BlY3RlZENvbXBvbmVudElkID0gaW5zdGFuY2VJZDtcbiAgICBjdHguY3VycmVudEFwcFJlY29yZC5sYXN0SW5zcGVjdGVkQ29tcG9uZW50SWQgPSBpbnN0YW5jZUlkO1xufVxuZXhwb3J0cy5tYXJrU2VsZWN0ZWRJbnN0YW5jZSA9IG1hcmtTZWxlY3RlZEluc3RhbmNlO1xuZnVuY3Rpb24gc2VuZEVtcHR5Q29tcG9uZW50RGF0YShpbnN0YW5jZUlkLCBjdHgpIHtcbiAgICBjdHguYnJpZGdlLnNlbmQoc2hhcmVkX3V0aWxzXzEuQnJpZGdlRXZlbnRzLlRPX0ZST05UX0NPTVBPTkVOVF9TRUxFQ1RFRF9EQVRBLCB7XG4gICAgICAgIGluc3RhbmNlSWQsXG4gICAgICAgIGRhdGE6IG51bGxcbiAgICB9KTtcbn1cbmV4cG9ydHMuc2VuZEVtcHR5Q29tcG9uZW50RGF0YSA9IHNlbmRFbXB0eUNvbXBvbmVudERhdGE7XG5hc3luYyBmdW5jdGlvbiBlZGl0Q29tcG9uZW50U3RhdGUoaW5zdGFuY2VJZCwgZG90UGF0aCwgdHlwZSwgc3RhdGUsIGN0eCkge1xuICAgIGlmICghaW5zdGFuY2VJZClcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IGluc3RhbmNlID0gZ2V0Q29tcG9uZW50SW5zdGFuY2UoY3R4LmN1cnJlbnRBcHBSZWNvcmQsIGluc3RhbmNlSWQsIGN0eCk7XG4gICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgIGlmICgndmFsdWUnIGluIHN0YXRlICYmIHN0YXRlLnZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHN0YXRlLnZhbHVlID0gc2hhcmVkX3V0aWxzXzEucGFyc2Uoc3RhdGUudmFsdWUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGN0eC5hcGkuZWRpdENvbXBvbmVudFN0YXRlKGluc3RhbmNlLCBkb3RQYXRoLCB0eXBlLCBzdGF0ZSwgY3R4LmN1cnJlbnRBcHBSZWNvcmQub3B0aW9ucy5hcHApO1xuICAgICAgICBhd2FpdCBzZW5kU2VsZWN0ZWRDb21wb25lbnREYXRhKGN0eC5jdXJyZW50QXBwUmVjb3JkLCBpbnN0YW5jZUlkLCBjdHgpO1xuICAgIH1cbn1cbmV4cG9ydHMuZWRpdENvbXBvbmVudFN0YXRlID0gZWRpdENvbXBvbmVudFN0YXRlO1xuYXN5bmMgZnVuY3Rpb24gZ2V0Q29tcG9uZW50SWQoYXBwLCB1aWQsIGluc3RhbmNlLCBjdHgpIHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBhcHBSZWNvcmQgPSBhd2FpdCBhcHBfMS5nZXRBcHBSZWNvcmQoYXBwLCBjdHgpO1xuICAgICAgICBpZiAoIWFwcFJlY29yZClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjb25zdCBpc1Jvb3QgPSBhcHBSZWNvcmQucm9vdEluc3RhbmNlID09PSBpbnN0YW5jZTtcbiAgICAgICAgcmV0dXJuIGAke2FwcFJlY29yZC5pZH06JHtpc1Jvb3QgPyAncm9vdCcgOiB1aWR9YDtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKHNoYXJlZF9kYXRhXzEuZGVmYXVsdC5kZWJ1Z0luZm8pIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuZXhwb3J0cy5nZXRDb21wb25lbnRJZCA9IGdldENvbXBvbmVudElkO1xuZnVuY3Rpb24gZ2V0Q29tcG9uZW50SW5zdGFuY2UoYXBwUmVjb3JkLCBpbnN0YW5jZUlkLCBjdHgpIHtcbiAgICBpZiAoaW5zdGFuY2VJZCA9PT0gJ19yb290Jykge1xuICAgICAgICBpbnN0YW5jZUlkID0gYCR7YXBwUmVjb3JkLmlkfTpyb290YDtcbiAgICB9XG4gICAgY29uc3QgaW5zdGFuY2UgPSBhcHBSZWNvcmQuaW5zdGFuY2VNYXAuZ2V0KGluc3RhbmNlSWQpO1xuICAgIGlmICghaW5zdGFuY2UgJiYgc2hhcmVkX2RhdGFfMS5kZWZhdWx0LmRlYnVnSW5mbykge1xuICAgICAgICBjb25zb2xlLndhcm4oYEluc3RhbmNlIHVpZD0ke2luc3RhbmNlSWR9IG5vdCBmb3VuZGApO1xuICAgIH1cbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5leHBvcnRzLmdldENvbXBvbmVudEluc3RhbmNlID0gZ2V0Q29tcG9uZW50SW5zdGFuY2U7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb21wb25lbnQuanMubWFwIl0sIm5hbWVzIjpbImNvbnN0IiwibGV0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///59372\n");
221
221
 
222
222
  /***/ }),
223
223
 
@@ -313,7 +313,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
313
313
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
314
314
 
315
315
  "use strict";
316
- eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.sendTimelineLayerEvents = exports.removeLayersForApp = exports.sendTimelineEventData = exports.clearTimeline = exports.addTimelineEvent = exports.sendTimelineLayers = exports.addBuiltinLayers = exports.setupTimeline = void 0;\nvar shared_utils_1 = __webpack_require__(19746);\nvar shared_data_1 = __importDefault(__webpack_require__(59835));\nvar global_hook_1 = __webpack_require__(93858);\nvar app_1 = __webpack_require__(61137);\nvar timeline_builtins_1 = __webpack_require__(87273);\nfunction setupTimeline(ctx) {\n setupBuiltinLayers(ctx);\n}\nexports.setupTimeline = setupTimeline;\nfunction addBuiltinLayers(app, ctx) {\n for (var layerDef of timeline_builtins_1.builtinLayers) {\n ctx.timelineLayers.push(Object.assign({}, layerDef,\n {app: app,\n plugin: null,\n events: []}));\n }\n}\nexports.addBuiltinLayers = addBuiltinLayers;\nfunction setupBuiltinLayers(ctx) {\n ['mousedown', 'mouseup', 'click', 'dblclick'].forEach(function (eventType) {\n // @ts-ignore\n window.addEventListener(eventType, async function (event) {\n await addTimelineEvent({\n layerId: 'mouse',\n event: {\n time: Date.now(),\n data: {\n type: eventType,\n x: event.clientX,\n y: event.clientY\n },\n title: eventType\n }\n }, null, ctx);\n }, {\n capture: true,\n passive: true\n });\n });\n ['keyup', 'keydown', 'keypress'].forEach(function (eventType) {\n // @ts-ignore\n window.addEventListener(eventType, async function (event) {\n await addTimelineEvent({\n layerId: 'keyboard',\n event: {\n time: Date.now(),\n data: {\n type: eventType,\n key: event.key,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n altKey: event.altKey,\n metaKey: event.metaKey\n },\n title: event.key\n }\n }, null, ctx);\n }, {\n capture: true,\n passive: true\n });\n });\n global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_EMIT, async function (app, instance, event, params) {\n try {\n if (!shared_data_1.default.componentEventsEnabled)\n { return; }\n var appRecord = await app_1.getAppRecord(app, ctx);\n var componentId = (appRecord.id) + \":\" + (instance.uid);\n var componentDisplay = (await ctx.api.getComponentName(instance)) || '<i>Unknown Component</i>';\n await addTimelineEvent({\n layerId: 'component-event',\n event: {\n time: Date.now(),\n data: {\n component: {\n _custom: {\n type: 'component-definition',\n display: componentDisplay\n }\n },\n event: event,\n params: params\n },\n title: event,\n subtitle: (\"by \" + componentDisplay),\n meta: {\n componentId: componentId,\n bounds: await ctx.api.getComponentBounds(instance)\n }\n }\n }, app, ctx);\n }\n catch (e) {\n if (false) {}\n }\n });\n}\nasync function sendTimelineLayers(ctx) {\n var _a, _b;\n var layers = [];\n for (var layer of ctx.timelineLayers) {\n try {\n layers.push({\n id: layer.id,\n label: layer.label,\n color: layer.color,\n appId: layer.app ? (_a = (await app_1.getAppRecord(layer.app, ctx))) === null || _a === void 0 ? void 0 : _a.id : null,\n pluginId: (_b = layer.plugin) === null || _b === void 0 ? void 0 : _b.descriptor.id,\n groupsOnly: layer.groupsOnly,\n skipScreenshots: layer.skipScreenshots,\n ignoreNoDurationGroups: layer.ignoreNoDurationGroups\n });\n }\n catch (e) {\n if (false) {}\n }\n }\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_LAYER_LIST, {\n layers: layers\n });\n}\nexports.sendTimelineLayers = sendTimelineLayers;\nasync function addTimelineEvent(options, app, ctx) {\n var appId = app ? await app_1.getAppRecordId(app) : null;\n var isAllApps = options.all || !app || appId == null;\n var id = ctx.nextTimelineEventId++;\n var eventData = Object.assign({}, {id: id},\n options,\n {all: isAllApps});\n ctx.timelineEventMap.set(eventData.id, eventData);\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_EVENT, {\n appId: eventData.all ? 'all' : appId,\n layerId: eventData.layerId,\n event: mapTimelineEvent(eventData)\n });\n var layer = ctx.timelineLayers.find(function (l) { return (isAllApps || l.app === app) && l.id === options.layerId; });\n if (layer) {\n layer.events.push(eventData);\n }\n else {\n console.warn((\"Timeline layer \" + (options.layerId) + \" not found\"));\n }\n}\nexports.addTimelineEvent = addTimelineEvent;\nfunction mapTimelineEvent(eventData) {\n return {\n id: eventData.id,\n time: eventData.event.time,\n logType: eventData.event.logType,\n groupId: eventData.event.groupId,\n title: eventData.event.title,\n subtitle: eventData.event.subtitle\n };\n}\nasync function clearTimeline(ctx) {\n ctx.timelineEventMap.clear();\n for (var layer of ctx.timelineLayers) {\n layer.events = [];\n }\n await ctx.api.clearTimeline();\n}\nexports.clearTimeline = clearTimeline;\nasync function sendTimelineEventData(id, ctx) {\n var data = null;\n var eventData = ctx.timelineEventMap.get(id);\n if (eventData) {\n data = await ctx.api.inspectTimelineEvent(eventData, ctx.currentAppRecord.options.app);\n data = shared_utils_1.stringify(data);\n }\n else if (false) {}\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_EVENT_DATA, {\n eventId: id,\n data: data\n });\n}\nexports.sendTimelineEventData = sendTimelineEventData;\nfunction removeLayersForApp(app, ctx) {\n var layers = ctx.timelineLayers.filter(function (l) { return l.app === app; });\n for (var layer of layers) {\n var index = ctx.timelineLayers.indexOf(layer);\n if (index !== -1)\n { ctx.timelineLayers.splice(index, 1); }\n for (var e of layer.events) {\n ctx.timelineEventMap.delete(e.id);\n }\n }\n}\nexports.removeLayersForApp = removeLayersForApp;\nfunction sendTimelineLayerEvents(appId, layerId, ctx) {\n var _a;\n var app = (_a = ctx.appRecords.find(function (ar) { return ar.id === appId; })) === null || _a === void 0 ? void 0 : _a.options.app;\n if (!app)\n { return; }\n var layer = ctx.timelineLayers.find(function (l) { return l.app === app && l.id === layerId; });\n if (!layer)\n { return; }\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_LAYER_LOAD_EVENTS, {\n appId: appId,\n layerId: layerId,\n events: layer.events.map(function (e) { return mapTimelineEvent(e); })\n });\n}\nexports.sendTimelineLayerEvents = sendTimelineLayerEvents;\n//# sourceMappingURL=timeline.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QyxFQUFDLFVBQUksZ0JBQWdCLENBQUMsQ0FBQyxJQUFDLENBQUM7QUFDMUQsS0FBSyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBQ0QsK0JBQStCLEdBQUcsdUJBQXVCLENBQUM7QUFDMUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AdnVlL2RldnRvb2xzLy4uL2FwcC1iYWNrZW5kLWNvcmUvbGliL3RpbWVsaW5lLmpzP2I2NTUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnNlbmRUaW1lbGluZUxheWVyRXZlbnRzID0gZXhwb3J0cy5yZW1vdmVMYXllcnNGb3JBcHAgPSBleHBvcnRzLnNlbmRUaW1lbGluZUV2ZW50RGF0YSA9IGV4cG9ydHMuY2xlYXJUaW1lbGluZSA9IGV4cG9ydHMuYWRkVGltZWxpbmVFdmVudCA9IGV4cG9ydHMuc2VuZFRpbWVsaW5lTGF5ZXJzID0gZXhwb3J0cy5hZGRCdWlsdGluTGF5ZXJzID0gZXhwb3J0cy5zZXR1cFRpbWVsaW5lID0gdm9pZCAwO1xuY29uc3Qgc2hhcmVkX3V0aWxzXzEgPSByZXF1aXJlKFwiQHZ1ZS1kZXZ0b29scy9zaGFyZWQtdXRpbHNcIik7XG5jb25zdCBzaGFyZWRfZGF0YV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJAdnVlLWRldnRvb2xzL3NoYXJlZC11dGlscy9saWIvc2hhcmVkLWRhdGFcIikpO1xuY29uc3QgZ2xvYmFsX2hvb2tfMSA9IHJlcXVpcmUoXCIuL2dsb2JhbC1ob29rXCIpO1xuY29uc3QgYXBwXzEgPSByZXF1aXJlKFwiLi9hcHBcIik7XG5jb25zdCB0aW1lbGluZV9idWlsdGluc18xID0gcmVxdWlyZShcIi4vdGltZWxpbmUtYnVpbHRpbnNcIik7XG5mdW5jdGlvbiBzZXR1cFRpbWVsaW5lKGN0eCkge1xuICAgIHNldHVwQnVpbHRpbkxheWVycyhjdHgpO1xufVxuZXhwb3J0cy5zZXR1cFRpbWVsaW5lID0gc2V0dXBUaW1lbGluZTtcbmZ1bmN0aW9uIGFkZEJ1aWx0aW5MYXllcnMoYXBwLCBjdHgpIHtcbiAgICBmb3IgKGNvbnN0IGxheWVyRGVmIG9mIHRpbWVsaW5lX2J1aWx0aW5zXzEuYnVpbHRpbkxheWVycykge1xuICAgICAgICBjdHgudGltZWxpbmVMYXllcnMucHVzaCh7XG4gICAgICAgICAgICAuLi5sYXllckRlZixcbiAgICAgICAgICAgIGFwcCxcbiAgICAgICAgICAgIHBsdWdpbjogbnVsbCxcbiAgICAgICAgICAgIGV2ZW50czogW11cbiAgICAgICAgfSk7XG4gICAgfVxufVxuZXhwb3J0cy5hZGRCdWlsdGluTGF5ZXJzID0gYWRkQnVpbHRpbkxheWVycztcbmZ1bmN0aW9uIHNldHVwQnVpbHRpbkxheWVycyhjdHgpIHtcbiAgICBbJ21vdXNlZG93bicsICdtb3VzZXVwJywgJ2NsaWNrJywgJ2RibGNsaWNrJ10uZm9yRWFjaChldmVudFR5cGUgPT4ge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBhd2FpdCBhZGRUaW1lbGluZUV2ZW50KHtcbiAgICAgICAgICAgICAgICBsYXllcklkOiAnbW91c2UnLFxuICAgICAgICAgICAgICAgIGV2ZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWU6IERhdGUubm93KCksXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGV2ZW50VHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IGV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBldmVudC5jbGllbnRZXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBldmVudFR5cGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBudWxsLCBjdHgpO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBbJ2tleXVwJywgJ2tleWRvd24nLCAna2V5cHJlc3MnXS5mb3JFYWNoKGV2ZW50VHlwZSA9PiB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBhc3luYyAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGFkZFRpbWVsaW5lRXZlbnQoe1xuICAgICAgICAgICAgICAgIGxheWVySWQ6ICdrZXlib2FyZCcsXG4gICAgICAgICAgICAgICAgZXZlbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdGltZTogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZXZlbnRUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBldmVudC5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBjdHJsS2V5OiBldmVudC5jdHJsS2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnRLZXk6IGV2ZW50LnNoaWZ0S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgYWx0S2V5OiBldmVudC5hbHRLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhS2V5OiBldmVudC5tZXRhS2V5XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBldmVudC5rZXlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBudWxsLCBjdHgpO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBnbG9iYWxfaG9va18xLmhvb2sub24oc2hhcmVkX3V0aWxzXzEuSG9va0V2ZW50cy5DT01QT05FTlRfRU1JVCwgYXN5bmMgKGFwcCwgaW5zdGFuY2UsIGV2ZW50LCBwYXJhbXMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghc2hhcmVkX2RhdGFfMS5kZWZhdWx0LmNvbXBvbmVudEV2ZW50c0VuYWJsZWQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgYXBwUmVjb3JkID0gYXdhaXQgYXBwXzEuZ2V0QXBwUmVjb3JkKGFwcCwgY3R4KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudElkID0gYCR7YXBwUmVjb3JkLmlkfToke2luc3RhbmNlLnVpZH1gO1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50RGlzcGxheSA9IChhd2FpdCBjdHguYXBpLmdldENvbXBvbmVudE5hbWUoaW5zdGFuY2UpKSB8fCAnPGk+VW5rbm93biBDb21wb25lbnQ8L2k+JztcbiAgICAgICAgICAgIGF3YWl0IGFkZFRpbWVsaW5lRXZlbnQoe1xuICAgICAgICAgICAgICAgIGxheWVySWQ6ICdjb21wb25lbnQtZXZlbnQnLFxuICAgICAgICAgICAgICAgIGV2ZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWU6IERhdGUubm93KCksXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jdXN0b206IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NvbXBvbmVudC1kZWZpbml0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogY29tcG9uZW50RGlzcGxheVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogZXZlbnQsXG4gICAgICAgICAgICAgICAgICAgIHN1YnRpdGxlOiBgYnkgJHtjb21wb25lbnREaXNwbGF5fWAsXG4gICAgICAgICAgICAgICAgICAgIG1ldGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRzOiBhd2FpdCBjdHguYXBpLmdldENvbXBvbmVudEJvdW5kcyhpbnN0YW5jZSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIGFwcCwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG59XG5hc3luYyBmdW5jdGlvbiBzZW5kVGltZWxpbmVMYXllcnMoY3R4KSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCBsYXllcnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGxheWVyIG9mIGN0eC50aW1lbGluZUxheWVycykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGF5ZXJzLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBsYXllci5pZCxcbiAgICAgICAgICAgICAgICBsYWJlbDogbGF5ZXIubGFiZWwsXG4gICAgICAgICAgICAgICAgY29sb3I6IGxheWVyLmNvbG9yLFxuICAgICAgICAgICAgICAgIGFwcElkOiBsYXllci5hcHAgPyAoX2EgPSAoYXdhaXQgYXBwXzEuZ2V0QXBwUmVjb3JkKGxheWVyLmFwcCwgY3R4KSkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pZCA6IG51bGwsXG4gICAgICAgICAgICAgICAgcGx1Z2luSWQ6IChfYiA9IGxheWVyLnBsdWdpbikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmRlc2NyaXB0b3IuaWQsXG4gICAgICAgICAgICAgICAgZ3JvdXBzT25seTogbGF5ZXIuZ3JvdXBzT25seSxcbiAgICAgICAgICAgICAgICBza2lwU2NyZWVuc2hvdHM6IGxheWVyLnNraXBTY3JlZW5zaG90cyxcbiAgICAgICAgICAgICAgICBpZ25vcmVOb0R1cmF0aW9uR3JvdXBzOiBsYXllci5pZ25vcmVOb0R1cmF0aW9uR3JvdXBzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGN0eC5icmlkZ2Uuc2VuZChzaGFyZWRfdXRpbHNfMS5CcmlkZ2VFdmVudHMuVE9fRlJPTlRfVElNRUxJTkVfTEFZRVJfTElTVCwge1xuICAgICAgICBsYXllcnNcbiAgICB9KTtcbn1cbmV4cG9ydHMuc2VuZFRpbWVsaW5lTGF5ZXJzID0gc2VuZFRpbWVsaW5lTGF5ZXJzO1xuYXN5bmMgZnVuY3Rpb24gYWRkVGltZWxpbmVFdmVudChvcHRpb25zLCBhcHAsIGN0eCkge1xuICAgIGNvbnN0IGFwcElkID0gYXBwID8gYXdhaXQgYXBwXzEuZ2V0QXBwUmVjb3JkSWQoYXBwKSA6IG51bGw7XG4gICAgY29uc3QgaXNBbGxBcHBzID0gb3B0aW9ucy5hbGwgfHwgIWFwcCB8fCBhcHBJZCA9PSBudWxsO1xuICAgIGNvbnN0IGlkID0gY3R4Lm5leHRUaW1lbGluZUV2ZW50SWQrKztcbiAgICBjb25zdCBldmVudERhdGEgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBhbGw6IGlzQWxsQXBwc1xuICAgIH07XG4gICAgY3R4LnRpbWVsaW5lRXZlbnRNYXAuc2V0KGV2ZW50RGF0YS5pZCwgZXZlbnREYXRhKTtcbiAgICBjdHguYnJpZGdlLnNlbmQoc2hhcmVkX3V0aWxzXzEuQnJpZGdlRXZlbnRzLlRPX0ZST05UX1RJTUVMSU5FX0VWRU5ULCB7XG4gICAgICAgIGFwcElkOiBldmVudERhdGEuYWxsID8gJ2FsbCcgOiBhcHBJZCxcbiAgICAgICAgbGF5ZXJJZDogZXZlbnREYXRhLmxheWVySWQsXG4gICAgICAgIGV2ZW50OiBtYXBUaW1lbGluZUV2ZW50KGV2ZW50RGF0YSlcbiAgICB9KTtcbiAgICBjb25zdCBsYXllciA9IGN0eC50aW1lbGluZUxheWVycy5maW5kKGwgPT4gKGlzQWxsQXBwcyB8fCBsLmFwcCA9PT0gYXBwKSAmJiBsLmlkID09PSBvcHRpb25zLmxheWVySWQpO1xuICAgIGlmIChsYXllcikge1xuICAgICAgICBsYXllci5ldmVudHMucHVzaChldmVudERhdGEpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBUaW1lbGluZSBsYXllciAke29wdGlvbnMubGF5ZXJJZH0gbm90IGZvdW5kYCk7XG4gICAgfVxufVxuZXhwb3J0cy5hZGRUaW1lbGluZUV2ZW50ID0gYWRkVGltZWxpbmVFdmVudDtcbmZ1bmN0aW9uIG1hcFRpbWVsaW5lRXZlbnQoZXZlbnREYXRhKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGV2ZW50RGF0YS5pZCxcbiAgICAgICAgdGltZTogZXZlbnREYXRhLmV2ZW50LnRpbWUsXG4gICAgICAgIGxvZ1R5cGU6IGV2ZW50RGF0YS5ldmVudC5sb2dUeXBlLFxuICAgICAgICBncm91cElkOiBldmVudERhdGEuZXZlbnQuZ3JvdXBJZCxcbiAgICAgICAgdGl0bGU6IGV2ZW50RGF0YS5ldmVudC50aXRsZSxcbiAgICAgICAgc3VidGl0bGU6IGV2ZW50RGF0YS5ldmVudC5zdWJ0aXRsZVxuICAgIH07XG59XG5hc3luYyBmdW5jdGlvbiBjbGVhclRpbWVsaW5lKGN0eCkge1xuICAgIGN0eC50aW1lbGluZUV2ZW50TWFwLmNsZWFyKCk7XG4gICAgZm9yIChjb25zdCBsYXllciBvZiBjdHgudGltZWxpbmVMYXllcnMpIHtcbiAgICAgICAgbGF5ZXIuZXZlbnRzID0gW107XG4gICAgfVxuICAgIGF3YWl0IGN0eC5hcGkuY2xlYXJUaW1lbGluZSgpO1xufVxuZXhwb3J0cy5jbGVhclRpbWVsaW5lID0gY2xlYXJUaW1lbGluZTtcbmFzeW5jIGZ1bmN0aW9uIHNlbmRUaW1lbGluZUV2ZW50RGF0YShpZCwgY3R4KSB7XG4gICAgbGV0IGRhdGEgPSBudWxsO1xuICAgIGNvbnN0IGV2ZW50RGF0YSA9IGN0eC50aW1lbGluZUV2ZW50TWFwLmdldChpZCk7XG4gICAgaWYgKGV2ZW50RGF0YSkge1xuICAgICAgICBkYXRhID0gYXdhaXQgY3R4LmFwaS5pbnNwZWN0VGltZWxpbmVFdmVudChldmVudERhdGEsIGN0eC5jdXJyZW50QXBwUmVjb3JkLm9wdGlvbnMuYXBwKTtcbiAgICAgICAgZGF0YSA9IHNoYXJlZF91dGlsc18xLnN0cmluZ2lmeShkYXRhKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBjb25zb2xlLndhcm4oYEV2ZW50ICR7aWR9IG5vdCBmb3VuZGAsIGN0eC50aW1lbGluZUV2ZW50TWFwLmtleXMoKSk7XG4gICAgfVxuICAgIGN0eC5icmlkZ2Uuc2VuZChzaGFyZWRfdXRpbHNfMS5CcmlkZ2VFdmVudHMuVE9fRlJPTlRfVElNRUxJTkVfRVZFTlRfREFUQSwge1xuICAgICAgICBldmVudElkOiBpZCxcbiAgICAgICAgZGF0YVxuICAgIH0pO1xufVxuZXhwb3J0cy5zZW5kVGltZWxpbmVFdmVudERhdGEgPSBzZW5kVGltZWxpbmVFdmVudERhdGE7XG5mdW5jdGlvbiByZW1vdmVMYXllcnNGb3JBcHAoYXBwLCBjdHgpIHtcbiAgICBjb25zdCBsYXllcnMgPSBjdHgudGltZWxpbmVMYXllcnMuZmlsdGVyKGwgPT4gbC5hcHAgPT09IGFwcCk7XG4gICAgZm9yIChjb25zdCBsYXllciBvZiBsYXllcnMpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBjdHgudGltZWxpbmVMYXllcnMuaW5kZXhPZihsYXllcik7XG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpXG4gICAgICAgICAgICBjdHgudGltZWxpbmVMYXllcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgZm9yIChjb25zdCBlIG9mIGxheWVyLmV2ZW50cykge1xuICAgICAgICAgICAgY3R4LnRpbWVsaW5lRXZlbnRNYXAuZGVsZXRlKGUuaWQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5yZW1vdmVMYXllcnNGb3JBcHAgPSByZW1vdmVMYXllcnNGb3JBcHA7XG5mdW5jdGlvbiBzZW5kVGltZWxpbmVMYXllckV2ZW50cyhhcHBJZCwgbGF5ZXJJZCwgY3R4KSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGFwcCA9IChfYSA9IGN0eC5hcHBSZWNvcmRzLmZpbmQoYXIgPT4gYXIuaWQgPT09IGFwcElkKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9wdGlvbnMuYXBwO1xuICAgIGlmICghYXBwKVxuICAgICAgICByZXR1cm47XG4gICAgY29uc3QgbGF5ZXIgPSBjdHgudGltZWxpbmVMYXllcnMuZmluZChsID0+IGwuYXBwID09PSBhcHAgJiYgbC5pZCA9PT0gbGF5ZXJJZCk7XG4gICAgaWYgKCFsYXllcilcbiAgICAgICAgcmV0dXJuO1xuICAgIGN0eC5icmlkZ2Uuc2VuZChzaGFyZWRfdXRpbHNfMS5CcmlkZ2VFdmVudHMuVE9fRlJPTlRfVElNRUxJTkVfTEFZRVJfTE9BRF9FVkVOVFMsIHtcbiAgICAgICAgYXBwSWQsXG4gICAgICAgIGxheWVySWQsXG4gICAgICAgIGV2ZW50czogbGF5ZXIuZXZlbnRzLm1hcChlID0+IG1hcFRpbWVsaW5lRXZlbnQoZSkpXG4gICAgfSk7XG59XG5leHBvcnRzLnNlbmRUaW1lbGluZUxheWVyRXZlbnRzID0gc2VuZFRpbWVsaW5lTGF5ZXJFdmVudHM7XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aW1lbGluZS5qcy5tYXAiXSwibmFtZXMiOlsiY29uc3QiLCJsZXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///77053\n");
316
+ eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.sendTimelineLayerEvents = exports.removeLayersForApp = exports.sendTimelineEventData = exports.clearTimeline = exports.addTimelineEvent = exports.sendTimelineLayers = exports.addBuiltinLayers = exports.setupTimeline = void 0;\nvar shared_utils_1 = __webpack_require__(19746);\nvar shared_data_1 = __importDefault(__webpack_require__(59835));\nvar global_hook_1 = __webpack_require__(93858);\nvar app_1 = __webpack_require__(61137);\nvar timeline_builtins_1 = __webpack_require__(87273);\nfunction setupTimeline(ctx) {\n setupBuiltinLayers(ctx);\n}\nexports.setupTimeline = setupTimeline;\nfunction addBuiltinLayers(app, ctx) {\n for (var layerDef of timeline_builtins_1.builtinLayers) {\n ctx.timelineLayers.push(Object.assign({}, layerDef,\n {app: app,\n plugin: null,\n events: []}));\n }\n}\nexports.addBuiltinLayers = addBuiltinLayers;\nfunction setupBuiltinLayers(ctx) {\n ['mousedown', 'mouseup', 'click', 'dblclick'].forEach(function (eventType) {\n // @ts-ignore\n window.addEventListener(eventType, async function (event) {\n await addTimelineEvent({\n layerId: 'mouse',\n event: {\n time: Date.now(),\n data: {\n type: eventType,\n x: event.clientX,\n y: event.clientY\n },\n title: eventType\n }\n }, null, ctx);\n }, {\n capture: true,\n passive: true\n });\n });\n ['keyup', 'keydown', 'keypress'].forEach(function (eventType) {\n // @ts-ignore\n window.addEventListener(eventType, async function (event) {\n await addTimelineEvent({\n layerId: 'keyboard',\n event: {\n time: Date.now(),\n data: {\n type: eventType,\n key: event.key,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n altKey: event.altKey,\n metaKey: event.metaKey\n },\n title: event.key\n }\n }, null, ctx);\n }, {\n capture: true,\n passive: true\n });\n });\n global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_EMIT, async function (app, instance, event, params) {\n try {\n if (!shared_data_1.default.componentEventsEnabled)\n { return; }\n var appRecord = await app_1.getAppRecord(app, ctx);\n var componentId = (appRecord.id) + \":\" + (instance.uid);\n var componentDisplay = (await ctx.api.getComponentName(instance)) || '<i>Unknown Component</i>';\n await addTimelineEvent({\n layerId: 'component-event',\n event: {\n time: Date.now(),\n data: {\n component: {\n _custom: {\n type: 'component-definition',\n display: componentDisplay\n }\n },\n event: event,\n params: params\n },\n title: event,\n subtitle: (\"by \" + componentDisplay),\n meta: {\n componentId: componentId,\n bounds: await ctx.api.getComponentBounds(instance)\n }\n }\n }, app, ctx);\n }\n catch (e) {\n if (false) {}\n }\n });\n}\nasync function sendTimelineLayers(ctx) {\n var _a, _b;\n var layers = [];\n for (var layer of ctx.timelineLayers) {\n try {\n layers.push({\n id: layer.id,\n label: layer.label,\n color: layer.color,\n appId: layer.app ? (_a = (await app_1.getAppRecord(layer.app, ctx))) === null || _a === void 0 ? void 0 : _a.id : null,\n pluginId: (_b = layer.plugin) === null || _b === void 0 ? void 0 : _b.descriptor.id,\n groupsOnly: layer.groupsOnly,\n skipScreenshots: layer.skipScreenshots,\n ignoreNoDurationGroups: layer.ignoreNoDurationGroups\n });\n }\n catch (e) {\n if (false) {}\n }\n }\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_LAYER_LIST, {\n layers: layers\n });\n}\nexports.sendTimelineLayers = sendTimelineLayers;\nasync function addTimelineEvent(options, app, ctx) {\n var appId = app ? await app_1.getAppRecordId(app) : null;\n var isAllApps = options.all || !app || appId == null;\n var id = ctx.nextTimelineEventId++;\n var eventData = Object.assign({}, {id: id},\n options,\n {all: isAllApps});\n ctx.timelineEventMap.set(eventData.id, eventData);\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_EVENT, {\n appId: eventData.all ? 'all' : appId,\n layerId: eventData.layerId,\n event: mapTimelineEvent(eventData)\n });\n var layer = ctx.timelineLayers.find(function (l) { return (isAllApps || l.app === app) && l.id === options.layerId; });\n if (layer) {\n layer.events.push(eventData);\n }\n else {\n console.warn((\"Timeline layer \" + (options.layerId) + \" not found\"));\n }\n}\nexports.addTimelineEvent = addTimelineEvent;\nfunction mapTimelineEvent(eventData) {\n return {\n id: eventData.id,\n time: eventData.event.time,\n logType: eventData.event.logType,\n groupId: eventData.event.groupId,\n title: eventData.event.title,\n subtitle: eventData.event.subtitle\n };\n}\nasync function clearTimeline(ctx) {\n ctx.timelineEventMap.clear();\n for (var layer of ctx.timelineLayers) {\n layer.events = [];\n }\n await ctx.api.clearTimeline();\n}\nexports.clearTimeline = clearTimeline;\nasync function sendTimelineEventData(id, ctx) {\n var data = null;\n var eventData = ctx.timelineEventMap.get(id);\n if (eventData) {\n data = await ctx.api.inspectTimelineEvent(eventData, ctx.currentAppRecord.options.app);\n data = shared_utils_1.stringify(data);\n }\n else if (shared_data_1.default.debugInfo) {\n console.warn((\"Event \" + id + \" not found\"), ctx.timelineEventMap.keys());\n }\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_EVENT_DATA, {\n eventId: id,\n data: data\n });\n}\nexports.sendTimelineEventData = sendTimelineEventData;\nfunction removeLayersForApp(app, ctx) {\n var layers = ctx.timelineLayers.filter(function (l) { return l.app === app; });\n for (var layer of layers) {\n var index = ctx.timelineLayers.indexOf(layer);\n if (index !== -1)\n { ctx.timelineLayers.splice(index, 1); }\n for (var e of layer.events) {\n ctx.timelineEventMap.delete(e.id);\n }\n }\n}\nexports.removeLayersForApp = removeLayersForApp;\nfunction sendTimelineLayerEvents(appId, layerId, ctx) {\n var _a;\n var app = (_a = ctx.appRecords.find(function (ar) { return ar.id === appId; })) === null || _a === void 0 ? void 0 : _a.options.app;\n if (!app)\n { return; }\n var layer = ctx.timelineLayers.find(function (l) { return l.app === app && l.id === layerId; });\n if (!layer)\n { return; }\n ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_LAYER_LOAD_EVENTS, {\n appId: appId,\n layerId: layerId,\n events: layer.events.map(function (e) { return mapTimelineEvent(e); })\n });\n}\nexports.sendTimelineLayerEvents = sendTimelineLayerEvents;\n//# sourceMappingURL=timeline.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxtQ0FBbUMsRUFBRTtBQUNyRixlQUFRLEtBQUs7QUFDYixpQkFBUSxPQUFPO0FBQ2YsUUFBUSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFdBQUMsRUFBQyxVQUFJLGdCQUFnQixDQUFDLENBQUMsSUFBQyxDQUFDO0FBQzFELEtBQUssQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUNELCtCQUErQixHQUFHLHVCQUF1QixDQUFDO0FBQzFEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHZ1ZS9kZXZ0b29scy8uLi9hcHAtYmFja2VuZC1jb3JlL2xpYi90aW1lbGluZS5qcz9iNjU1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5zZW5kVGltZWxpbmVMYXllckV2ZW50cyA9IGV4cG9ydHMucmVtb3ZlTGF5ZXJzRm9yQXBwID0gZXhwb3J0cy5zZW5kVGltZWxpbmVFdmVudERhdGEgPSBleHBvcnRzLmNsZWFyVGltZWxpbmUgPSBleHBvcnRzLmFkZFRpbWVsaW5lRXZlbnQgPSBleHBvcnRzLnNlbmRUaW1lbGluZUxheWVycyA9IGV4cG9ydHMuYWRkQnVpbHRpbkxheWVycyA9IGV4cG9ydHMuc2V0dXBUaW1lbGluZSA9IHZvaWQgMDtcbmNvbnN0IHNoYXJlZF91dGlsc18xID0gcmVxdWlyZShcIkB2dWUtZGV2dG9vbHMvc2hhcmVkLXV0aWxzXCIpO1xuY29uc3Qgc2hhcmVkX2RhdGFfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQHZ1ZS1kZXZ0b29scy9zaGFyZWQtdXRpbHMvbGliL3NoYXJlZC1kYXRhXCIpKTtcbmNvbnN0IGdsb2JhbF9ob29rXzEgPSByZXF1aXJlKFwiLi9nbG9iYWwtaG9va1wiKTtcbmNvbnN0IGFwcF8xID0gcmVxdWlyZShcIi4vYXBwXCIpO1xuY29uc3QgdGltZWxpbmVfYnVpbHRpbnNfMSA9IHJlcXVpcmUoXCIuL3RpbWVsaW5lLWJ1aWx0aW5zXCIpO1xuZnVuY3Rpb24gc2V0dXBUaW1lbGluZShjdHgpIHtcbiAgICBzZXR1cEJ1aWx0aW5MYXllcnMoY3R4KTtcbn1cbmV4cG9ydHMuc2V0dXBUaW1lbGluZSA9IHNldHVwVGltZWxpbmU7XG5mdW5jdGlvbiBhZGRCdWlsdGluTGF5ZXJzKGFwcCwgY3R4KSB7XG4gICAgZm9yIChjb25zdCBsYXllckRlZiBvZiB0aW1lbGluZV9idWlsdGluc18xLmJ1aWx0aW5MYXllcnMpIHtcbiAgICAgICAgY3R4LnRpbWVsaW5lTGF5ZXJzLnB1c2goe1xuICAgICAgICAgICAgLi4ubGF5ZXJEZWYsXG4gICAgICAgICAgICBhcHAsXG4gICAgICAgICAgICBwbHVnaW46IG51bGwsXG4gICAgICAgICAgICBldmVudHM6IFtdXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmV4cG9ydHMuYWRkQnVpbHRpbkxheWVycyA9IGFkZEJ1aWx0aW5MYXllcnM7XG5mdW5jdGlvbiBzZXR1cEJ1aWx0aW5MYXllcnMoY3R4KSB7XG4gICAgWydtb3VzZWRvd24nLCAnbW91c2V1cCcsICdjbGljaycsICdkYmxjbGljayddLmZvckVhY2goZXZlbnRUeXBlID0+IHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGFzeW5jIChldmVudCkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgYWRkVGltZWxpbmVFdmVudCh7XG4gICAgICAgICAgICAgICAgbGF5ZXJJZDogJ21vdXNlJyxcbiAgICAgICAgICAgICAgICBldmVudDoge1xuICAgICAgICAgICAgICAgICAgICB0aW1lOiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBldmVudFR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBldmVudC5jbGllbnRYLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogZXZlbnQuY2xpZW50WVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogZXZlbnRUeXBlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgbnVsbCwgY3R4KTtcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgICAgIHBhc3NpdmU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgWydrZXl1cCcsICdrZXlkb3duJywgJ2tleXByZXNzJ10uZm9yRWFjaChldmVudFR5cGUgPT4ge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBhd2FpdCBhZGRUaW1lbGluZUV2ZW50KHtcbiAgICAgICAgICAgICAgICBsYXllcklkOiAna2V5Ym9hcmQnLFxuICAgICAgICAgICAgICAgIGV2ZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWU6IERhdGUubm93KCksXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGV2ZW50VHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogZXZlbnQua2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgY3RybEtleTogZXZlbnQuY3RybEtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0S2V5OiBldmVudC5zaGlmdEtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdEtleTogZXZlbnQuYWx0S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUtleTogZXZlbnQubWV0YUtleVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogZXZlbnQua2V5XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgbnVsbCwgY3R4KTtcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgICAgIHBhc3NpdmU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgZ2xvYmFsX2hvb2tfMS5ob29rLm9uKHNoYXJlZF91dGlsc18xLkhvb2tFdmVudHMuQ09NUE9ORU5UX0VNSVQsIGFzeW5jIChhcHAsIGluc3RhbmNlLCBldmVudCwgcGFyYW1zKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoIXNoYXJlZF9kYXRhXzEuZGVmYXVsdC5jb21wb25lbnRFdmVudHNFbmFibGVkKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGFwcFJlY29yZCA9IGF3YWl0IGFwcF8xLmdldEFwcFJlY29yZChhcHAsIGN0eCk7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRJZCA9IGAke2FwcFJlY29yZC5pZH06JHtpbnN0YW5jZS51aWR9YDtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudERpc3BsYXkgPSAoYXdhaXQgY3R4LmFwaS5nZXRDb21wb25lbnROYW1lKGluc3RhbmNlKSkgfHwgJzxpPlVua25vd24gQ29tcG9uZW50PC9pPic7XG4gICAgICAgICAgICBhd2FpdCBhZGRUaW1lbGluZUV2ZW50KHtcbiAgICAgICAgICAgICAgICBsYXllcklkOiAnY29tcG9uZW50LWV2ZW50JyxcbiAgICAgICAgICAgICAgICBldmVudDoge1xuICAgICAgICAgICAgICAgICAgICB0aW1lOiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY3VzdG9tOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdjb21wb25lbnQtZGVmaW5pdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbXBvbmVudERpc3BsYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGV2ZW50LFxuICAgICAgICAgICAgICAgICAgICBzdWJ0aXRsZTogYGJ5ICR7Y29tcG9uZW50RGlzcGxheX1gLFxuICAgICAgICAgICAgICAgICAgICBtZXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kczogYXdhaXQgY3R4LmFwaS5nZXRDb21wb25lbnRCb3VuZHMoaW5zdGFuY2UpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBhcHAsIGN0eCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gc2VuZFRpbWVsaW5lTGF5ZXJzKGN0eCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgbGF5ZXJzID0gW107XG4gICAgZm9yIChjb25zdCBsYXllciBvZiBjdHgudGltZWxpbmVMYXllcnMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxheWVycy5wdXNoKHtcbiAgICAgICAgICAgICAgICBpZDogbGF5ZXIuaWQsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGxheWVyLmxhYmVsLFxuICAgICAgICAgICAgICAgIGNvbG9yOiBsYXllci5jb2xvcixcbiAgICAgICAgICAgICAgICBhcHBJZDogbGF5ZXIuYXBwID8gKF9hID0gKGF3YWl0IGFwcF8xLmdldEFwcFJlY29yZChsYXllci5hcHAsIGN0eCkpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaWQgOiBudWxsLFxuICAgICAgICAgICAgICAgIHBsdWdpbklkOiAoX2IgPSBsYXllci5wbHVnaW4pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5kZXNjcmlwdG9yLmlkLFxuICAgICAgICAgICAgICAgIGdyb3Vwc09ubHk6IGxheWVyLmdyb3Vwc09ubHksXG4gICAgICAgICAgICAgICAgc2tpcFNjcmVlbnNob3RzOiBsYXllci5za2lwU2NyZWVuc2hvdHMsXG4gICAgICAgICAgICAgICAgaWdub3JlTm9EdXJhdGlvbkdyb3VwczogbGF5ZXIuaWdub3JlTm9EdXJhdGlvbkdyb3Vwc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjdHguYnJpZGdlLnNlbmQoc2hhcmVkX3V0aWxzXzEuQnJpZGdlRXZlbnRzLlRPX0ZST05UX1RJTUVMSU5FX0xBWUVSX0xJU1QsIHtcbiAgICAgICAgbGF5ZXJzXG4gICAgfSk7XG59XG5leHBvcnRzLnNlbmRUaW1lbGluZUxheWVycyA9IHNlbmRUaW1lbGluZUxheWVycztcbmFzeW5jIGZ1bmN0aW9uIGFkZFRpbWVsaW5lRXZlbnQob3B0aW9ucywgYXBwLCBjdHgpIHtcbiAgICBjb25zdCBhcHBJZCA9IGFwcCA/IGF3YWl0IGFwcF8xLmdldEFwcFJlY29yZElkKGFwcCkgOiBudWxsO1xuICAgIGNvbnN0IGlzQWxsQXBwcyA9IG9wdGlvbnMuYWxsIHx8ICFhcHAgfHwgYXBwSWQgPT0gbnVsbDtcbiAgICBjb25zdCBpZCA9IGN0eC5uZXh0VGltZWxpbmVFdmVudElkKys7XG4gICAgY29uc3QgZXZlbnREYXRhID0ge1xuICAgICAgICBpZCxcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgYWxsOiBpc0FsbEFwcHNcbiAgICB9O1xuICAgIGN0eC50aW1lbGluZUV2ZW50TWFwLnNldChldmVudERhdGEuaWQsIGV2ZW50RGF0YSk7XG4gICAgY3R4LmJyaWRnZS5zZW5kKHNoYXJlZF91dGlsc18xLkJyaWRnZUV2ZW50cy5UT19GUk9OVF9USU1FTElORV9FVkVOVCwge1xuICAgICAgICBhcHBJZDogZXZlbnREYXRhLmFsbCA/ICdhbGwnIDogYXBwSWQsXG4gICAgICAgIGxheWVySWQ6IGV2ZW50RGF0YS5sYXllcklkLFxuICAgICAgICBldmVudDogbWFwVGltZWxpbmVFdmVudChldmVudERhdGEpXG4gICAgfSk7XG4gICAgY29uc3QgbGF5ZXIgPSBjdHgudGltZWxpbmVMYXllcnMuZmluZChsID0+IChpc0FsbEFwcHMgfHwgbC5hcHAgPT09IGFwcCkgJiYgbC5pZCA9PT0gb3B0aW9ucy5sYXllcklkKTtcbiAgICBpZiAobGF5ZXIpIHtcbiAgICAgICAgbGF5ZXIuZXZlbnRzLnB1c2goZXZlbnREYXRhKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgVGltZWxpbmUgbGF5ZXIgJHtvcHRpb25zLmxheWVySWR9IG5vdCBmb3VuZGApO1xuICAgIH1cbn1cbmV4cG9ydHMuYWRkVGltZWxpbmVFdmVudCA9IGFkZFRpbWVsaW5lRXZlbnQ7XG5mdW5jdGlvbiBtYXBUaW1lbGluZUV2ZW50KGV2ZW50RGF0YSkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBldmVudERhdGEuaWQsXG4gICAgICAgIHRpbWU6IGV2ZW50RGF0YS5ldmVudC50aW1lLFxuICAgICAgICBsb2dUeXBlOiBldmVudERhdGEuZXZlbnQubG9nVHlwZSxcbiAgICAgICAgZ3JvdXBJZDogZXZlbnREYXRhLmV2ZW50Lmdyb3VwSWQsXG4gICAgICAgIHRpdGxlOiBldmVudERhdGEuZXZlbnQudGl0bGUsXG4gICAgICAgIHN1YnRpdGxlOiBldmVudERhdGEuZXZlbnQuc3VidGl0bGVcbiAgICB9O1xufVxuYXN5bmMgZnVuY3Rpb24gY2xlYXJUaW1lbGluZShjdHgpIHtcbiAgICBjdHgudGltZWxpbmVFdmVudE1hcC5jbGVhcigpO1xuICAgIGZvciAoY29uc3QgbGF5ZXIgb2YgY3R4LnRpbWVsaW5lTGF5ZXJzKSB7XG4gICAgICAgIGxheWVyLmV2ZW50cyA9IFtdO1xuICAgIH1cbiAgICBhd2FpdCBjdHguYXBpLmNsZWFyVGltZWxpbmUoKTtcbn1cbmV4cG9ydHMuY2xlYXJUaW1lbGluZSA9IGNsZWFyVGltZWxpbmU7XG5hc3luYyBmdW5jdGlvbiBzZW5kVGltZWxpbmVFdmVudERhdGEoaWQsIGN0eCkge1xuICAgIGxldCBkYXRhID0gbnVsbDtcbiAgICBjb25zdCBldmVudERhdGEgPSBjdHgudGltZWxpbmVFdmVudE1hcC5nZXQoaWQpO1xuICAgIGlmIChldmVudERhdGEpIHtcbiAgICAgICAgZGF0YSA9IGF3YWl0IGN0eC5hcGkuaW5zcGVjdFRpbWVsaW5lRXZlbnQoZXZlbnREYXRhLCBjdHguY3VycmVudEFwcFJlY29yZC5vcHRpb25zLmFwcCk7XG4gICAgICAgIGRhdGEgPSBzaGFyZWRfdXRpbHNfMS5zdHJpbmdpZnkoZGF0YSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHNoYXJlZF9kYXRhXzEuZGVmYXVsdC5kZWJ1Z0luZm8pIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBFdmVudCAke2lkfSBub3QgZm91bmRgLCBjdHgudGltZWxpbmVFdmVudE1hcC5rZXlzKCkpO1xuICAgIH1cbiAgICBjdHguYnJpZGdlLnNlbmQoc2hhcmVkX3V0aWxzXzEuQnJpZGdlRXZlbnRzLlRPX0ZST05UX1RJTUVMSU5FX0VWRU5UX0RBVEEsIHtcbiAgICAgICAgZXZlbnRJZDogaWQsXG4gICAgICAgIGRhdGFcbiAgICB9KTtcbn1cbmV4cG9ydHMuc2VuZFRpbWVsaW5lRXZlbnREYXRhID0gc2VuZFRpbWVsaW5lRXZlbnREYXRhO1xuZnVuY3Rpb24gcmVtb3ZlTGF5ZXJzRm9yQXBwKGFwcCwgY3R4KSB7XG4gICAgY29uc3QgbGF5ZXJzID0gY3R4LnRpbWVsaW5lTGF5ZXJzLmZpbHRlcihsID0+IGwuYXBwID09PSBhcHApO1xuICAgIGZvciAoY29uc3QgbGF5ZXIgb2YgbGF5ZXJzKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gY3R4LnRpbWVsaW5lTGF5ZXJzLmluZGV4T2YobGF5ZXIpO1xuICAgICAgICBpZiAoaW5kZXggIT09IC0xKVxuICAgICAgICAgICAgY3R4LnRpbWVsaW5lTGF5ZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIGZvciAoY29uc3QgZSBvZiBsYXllci5ldmVudHMpIHtcbiAgICAgICAgICAgIGN0eC50aW1lbGluZUV2ZW50TWFwLmRlbGV0ZShlLmlkKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMucmVtb3ZlTGF5ZXJzRm9yQXBwID0gcmVtb3ZlTGF5ZXJzRm9yQXBwO1xuZnVuY3Rpb24gc2VuZFRpbWVsaW5lTGF5ZXJFdmVudHMoYXBwSWQsIGxheWVySWQsIGN0eCkge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBhcHAgPSAoX2EgPSBjdHguYXBwUmVjb3Jkcy5maW5kKGFyID0+IGFyLmlkID09PSBhcHBJZCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vcHRpb25zLmFwcDtcbiAgICBpZiAoIWFwcClcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IGxheWVyID0gY3R4LnRpbWVsaW5lTGF5ZXJzLmZpbmQobCA9PiBsLmFwcCA9PT0gYXBwICYmIGwuaWQgPT09IGxheWVySWQpO1xuICAgIGlmICghbGF5ZXIpXG4gICAgICAgIHJldHVybjtcbiAgICBjdHguYnJpZGdlLnNlbmQoc2hhcmVkX3V0aWxzXzEuQnJpZGdlRXZlbnRzLlRPX0ZST05UX1RJTUVMSU5FX0xBWUVSX0xPQURfRVZFTlRTLCB7XG4gICAgICAgIGFwcElkLFxuICAgICAgICBsYXllcklkLFxuICAgICAgICBldmVudHM6IGxheWVyLmV2ZW50cy5tYXAoZSA9PiBtYXBUaW1lbGluZUV2ZW50KGUpKVxuICAgIH0pO1xufVxuZXhwb3J0cy5zZW5kVGltZWxpbmVMYXllckV2ZW50cyA9IHNlbmRUaW1lbGluZUxheWVyRXZlbnRzO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGltZWxpbmUuanMubWFwIl0sIm5hbWVzIjpbImNvbnN0IiwibGV0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///77053\n");
317
317
 
318
318
  /***/ }),
319
319
 
@@ -369,7 +369,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
369
369
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
370
370
 
371
371
  "use strict";
372
- eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getComponentParents = exports.walkTree = exports.functionalVnodeMap = exports.instanceMap = void 0;\nvar shared_utils_1 = __webpack_require__(19746);\nvar el_1 = __webpack_require__(3206);\nvar util_1 = __webpack_require__(26545);\nvar appRecord;\nvar api;\nvar consoleBoundInstances = Array(5);\nvar filter = '';\nvar functionalIds = new Map();\n// Dedupe instances\n// Some instances may be both on a component and on a child abstract/functional component\nvar captureIds = new Map();\nasync function walkTree(instance, pFilter, ctx) {\n initCtx(ctx);\n filter = pFilter;\n functionalIds.clear();\n captureIds.clear();\n var result = flatten(await findQualifiedChildren(instance));\n return result;\n}\nexports.walkTree = walkTree;\nfunction getComponentParents(instance, ctx) {\n initCtx(ctx);\n var captureIds = new Map();\n var captureId = function (vm) {\n var id = util_1.getUniqueId(vm);\n if (captureIds.has(id))\n { return; }\n captureIds.set(id, undefined);\n mark(vm);\n };\n var parents = [];\n captureId(instance);\n var parent = instance;\n while ((parent = parent.$parent)) {\n captureId(parent);\n parents.push(parent);\n }\n return parents;\n}\nexports.getComponentParents = getComponentParents;\nfunction initCtx(ctx) {\n appRecord = ctx.currentAppRecord;\n api = ctx.api;\n if (!appRecord.meta.instanceMap) {\n appRecord.meta.instanceMap = new Map();\n }\n exports.instanceMap = appRecord.meta.instanceMap;\n if (!appRecord.meta.functionalVnodeMap) {\n appRecord.meta.functionalVnodeMap = new Map();\n }\n exports.functionalVnodeMap = appRecord.meta.functionalVnodeMap;\n}\n/**\n * Iterate through an array of instances and flatten it into\n * an array of qualified instances. This is a depth-first\n * traversal - e.g. if an instance is not matched, we will\n * recursively go deeper until a qualified child is found.\n */\nfunction findQualifiedChildrenFromList(instances) {\n instances = instances\n .filter(function (child) { return !util_1.isBeingDestroyed(child); });\n return Promise.all(!filter\n ? instances.map(capture)\n : Array.prototype.concat.apply([], instances.map(findQualifiedChildren)));\n}\n/**\n * Find qualified children from a single instance.\n * If the instance itself is qualified, just return itself.\n * This is ok because [].concat works in both cases.\n */\nasync function findQualifiedChildren(instance) {\n if (isQualified(instance)) {\n return [await capture(instance)];\n }\n else {\n var children = await findQualifiedChildrenFromList(instance.$children);\n // Find functional components in recursively in non-functional vnodes.\n if (instance._vnode && instance._vnode.children) {\n var list = await Promise.all(flatten(instance._vnode.children.filter(function (child) { return !child.componentInstance; }).map(captureChild)));\n // Filter qualified children.\n var additionalChildren = list.filter(function (instance) { return isQualified(instance); });\n children = children.concat(additionalChildren);\n }\n return children;\n }\n}\n/**\n * Get children from a component instance.\n */\nfunction getInternalInstanceChildren(instance) {\n if (instance.$children) {\n return instance.$children;\n }\n return [];\n}\n/**\n * Check if an instance is qualified.\n */\nfunction isQualified(instance) {\n var name = shared_utils_1.classify(util_1.getInstanceName(instance)).toLowerCase();\n return name.indexOf(filter) > -1;\n}\nfunction flatten(items) {\n var r = items.reduce(function (acc, item) {\n if (Array.isArray(item)) {\n var children = [];\n for (var i of item) {\n if (Array.isArray(i)) {\n children = children.concat(flatten(i));\n }\n else {\n children.push(i);\n }\n }\n acc.push.apply(acc, children);\n }\n else if (item) {\n acc.push(item);\n }\n return acc;\n }, []);\n return r;\n}\nfunction captureChild(child) {\n if (child.fnContext && !child.componentInstance) {\n return capture(child);\n }\n else if (child.componentInstance) {\n if (!util_1.isBeingDestroyed(child.componentInstance))\n { return capture(child.componentInstance); }\n }\n else if (child.children) {\n return Promise.all(flatten(child.children.map(captureChild)));\n }\n}\n/**\n * Capture the meta information of an instance. (recursive)\n */\nasync function capture(instance, index, list) {\n var _a, _b, _c, _d;\n if (instance.__VUE_DEVTOOLS_FUNCTIONAL_LEGACY__) {\n instance = instance.vnode;\n }\n if (instance.$options && instance.$options.abstract && instance._vnode && instance._vnode.componentInstance) {\n instance = instance._vnode.componentInstance;\n }\n if ((_b = (_a = instance.$options) === null || _a === void 0 ? void 0 : _a.devtools) === null || _b === void 0 ? void 0 : _b.hide)\n { return; }\n // Functional component.\n if (instance.fnContext && !instance.componentInstance) {\n var contextUid = instance.fnContext.__VUE_DEVTOOLS_UID__;\n var id = functionalIds.get(contextUid);\n if (id == null) {\n id = 0;\n }\n else {\n id++;\n }\n functionalIds.set(contextUid, id);\n var functionalId = contextUid + ':functional:' + id;\n markFunctional(functionalId, instance);\n var childrenPromise = (instance.children\n ? instance.children.map(function (child) { return child.fnContext\n ? captureChild(child)\n : child.componentInstance\n ? capture(child.componentInstance)\n : undefined; })\n // router-view has both fnContext and componentInstance on vnode.\n : instance.componentInstance ? [capture(instance.componentInstance)] : []);\n // await all childrenCapture to-be resolved\n var children$1 = (await Promise.all(childrenPromise)).filter(Boolean);\n var treeNode = {\n uid: functionalId,\n id: functionalId,\n tags: [\n {\n label: 'functional',\n textColor: 0x555555,\n backgroundColor: 0xeeeeee\n }\n ],\n name: util_1.getInstanceName(instance),\n renderKey: util_1.getRenderKey(instance.key),\n children: children$1,\n hasChildren: !!children$1.length,\n inactive: false,\n isFragment: false // TODO: Check what is it for.\n };\n return api.visitComponentTree(instance, treeNode, filter, (_c = appRecord === null || appRecord === void 0 ? void 0 : appRecord.options) === null || _c === void 0 ? void 0 : _c.app);\n }\n // instance._uid is not reliable in devtools as there\n // may be 2 roots with same _uid which causes unexpected\n // behaviour\n instance.__VUE_DEVTOOLS_UID__ = util_1.getUniqueId(instance);\n // Dedupe\n if (captureIds.has(instance.__VUE_DEVTOOLS_UID__)) {\n return;\n }\n else {\n captureIds.set(instance.__VUE_DEVTOOLS_UID__, undefined);\n }\n mark(instance);\n var name = util_1.getInstanceName(instance);\n var children = (await Promise.all((await getInternalInstanceChildren(instance))\n .filter(function (child) { return !util_1.isBeingDestroyed(child); })\n .map(capture))).filter(Boolean);\n var ret = {\n uid: instance._uid,\n id: instance.__VUE_DEVTOOLS_UID__,\n name: name,\n renderKey: util_1.getRenderKey(instance.$vnode ? instance.$vnode.key : null),\n inactive: !!instance._inactive,\n isFragment: !!instance._isFragment,\n children: children,\n hasChildren: !!children.length,\n tags: [],\n meta: {}\n };\n if (instance._vnode && instance._vnode.children) {\n var vnodeChildren = await Promise.all(flatten(instance._vnode.children.map(captureChild)));\n ret.children = ret.children.concat(flatten(vnodeChildren).filter(Boolean));\n ret.hasChildren = !!ret.children.length;\n }\n // ensure correct ordering\n var rootElements = el_1.getRootElementsFromComponentInstance(instance);\n var firstElement = rootElements[0];\n if (firstElement === null || firstElement === void 0 ? void 0 : firstElement.parentElement) {\n ret.indexInParent = Array.from(firstElement.parentElement.childNodes).indexOf(firstElement);\n }\n else {\n ret.indexInParent = -1;\n }\n // check if instance is available in console\n var consoleId = consoleBoundInstances.indexOf(instance.__VUE_DEVTOOLS_UID__);\n ret.consoleId = consoleId > -1 ? '$vm' + consoleId : null;\n // check router view\n var isRouterView2 = instance.$vnode && instance.$vnode.data.routerView;\n if (instance._routerView || isRouterView2) {\n ret.isRouterView = true;\n if (!instance._inactive && instance.$route) {\n var matched = instance.$route.matched;\n var depth = isRouterView2\n ? instance.$vnode.data.routerViewDepth\n : instance._routerView.depth;\n ret.meta.matchedRouteSegment =\n matched &&\n matched[depth] &&\n (isRouterView2 ? matched[depth].path : matched[depth].handler.path);\n }\n ret.tags.push({\n label: (\"router-view\" + (ret.meta.matchedRouteSegment ? (\": \" + (ret.meta.matchedRouteSegment)) : '')),\n textColor: 0x000000,\n backgroundColor: 0xff8344\n });\n }\n return api.visitComponentTree(instance, ret, filter, (_d = appRecord === null || appRecord === void 0 ? void 0 : appRecord.options) === null || _d === void 0 ? void 0 : _d.app);\n}\n/**\n * Mark an instance as captured and store it in the instance map.\n *\n * @param {Vue} instance\n */\nfunction mark(instance) {\n var refId = instance.__VUE_DEVTOOLS_UID__;\n if (!exports.instanceMap.has(refId)) {\n exports.instanceMap.set(refId, instance);\n appRecord.instanceMap.set(refId, instance);\n instance.$on('hook:beforeDestroy', function () {\n exports.instanceMap.delete(refId);\n });\n }\n}\nfunction markFunctional(id, vnode) {\n var refId = vnode.fnContext.__VUE_DEVTOOLS_UID__;\n if (!exports.functionalVnodeMap.has(refId)) {\n exports.functionalVnodeMap.set(refId, {});\n vnode.fnContext.$on('hook:beforeDestroy', function () {\n exports.functionalVnodeMap.delete(refId);\n });\n }\n exports.functionalVnodeMap.get(refId)[id] = vnode;\n appRecord.instanceMap.set(id, {\n __VUE_DEVTOOLS_UID__: id,\n __VUE_DEVTOOLS_FUNCTIONAL_LEGACY__: true,\n vnode: vnode\n });\n}\n//# sourceMappingURL=tree.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDaEQsUUFBUSxPQUFPLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNsRCxRQUFRLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLFlBQVk7QUFDOUQsWUFBWSxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JELFNBQVMsQ0FBQyxDQUFDO0FBQ1gsS0FBSztBQUNMLElBQUksT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDdEQsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUU7QUFDbEMsUUFBUSxvQkFBb0IsRUFBRSxFQUFFO0FBQ2hDLFFBQVEsa0NBQWtDLEVBQUUsSUFBSTtBQUNoRCxlQUFRLEtBQUs7QUFDYixLQUFLLENBQUMsQ0FBQztBQUNQLENBQUM7QUFDRCIsInNvdXJjZXMiOlsid2VicGFjazovL0B2dWUvZGV2dG9vbHMvLi4vYXBwLWJhY2tlbmQtdnVlMi9saWIvY29tcG9uZW50cy90cmVlLmpzPzBjNTMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldENvbXBvbmVudFBhcmVudHMgPSBleHBvcnRzLndhbGtUcmVlID0gZXhwb3J0cy5mdW5jdGlvbmFsVm5vZGVNYXAgPSBleHBvcnRzLmluc3RhbmNlTWFwID0gdm9pZCAwO1xuY29uc3Qgc2hhcmVkX3V0aWxzXzEgPSByZXF1aXJlKFwiQHZ1ZS1kZXZ0b29scy9zaGFyZWQtdXRpbHNcIik7XG5jb25zdCBlbF8xID0gcmVxdWlyZShcIi4vZWxcIik7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiLi91dGlsXCIpO1xubGV0IGFwcFJlY29yZDtcbmxldCBhcGk7XG5jb25zdCBjb25zb2xlQm91bmRJbnN0YW5jZXMgPSBBcnJheSg1KTtcbmxldCBmaWx0ZXIgPSAnJztcbmNvbnN0IGZ1bmN0aW9uYWxJZHMgPSBuZXcgTWFwKCk7XG4vLyBEZWR1cGUgaW5zdGFuY2VzXG4vLyBTb21lIGluc3RhbmNlcyBtYXkgYmUgYm90aCBvbiBhIGNvbXBvbmVudCBhbmQgb24gYSBjaGlsZCBhYnN0cmFjdC9mdW5jdGlvbmFsIGNvbXBvbmVudFxuY29uc3QgY2FwdHVyZUlkcyA9IG5ldyBNYXAoKTtcbmFzeW5jIGZ1bmN0aW9uIHdhbGtUcmVlKGluc3RhbmNlLCBwRmlsdGVyLCBjdHgpIHtcbiAgICBpbml0Q3R4KGN0eCk7XG4gICAgZmlsdGVyID0gcEZpbHRlcjtcbiAgICBmdW5jdGlvbmFsSWRzLmNsZWFyKCk7XG4gICAgY2FwdHVyZUlkcy5jbGVhcigpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGZsYXR0ZW4oYXdhaXQgZmluZFF1YWxpZmllZENoaWxkcmVuKGluc3RhbmNlKSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydHMud2Fsa1RyZWUgPSB3YWxrVHJlZTtcbmZ1bmN0aW9uIGdldENvbXBvbmVudFBhcmVudHMoaW5zdGFuY2UsIGN0eCkge1xuICAgIGluaXRDdHgoY3R4KTtcbiAgICBjb25zdCBjYXB0dXJlSWRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IGNhcHR1cmVJZCA9IHZtID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSB1dGlsXzEuZ2V0VW5pcXVlSWQodm0pO1xuICAgICAgICBpZiAoY2FwdHVyZUlkcy5oYXMoaWQpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXB0dXJlSWRzLnNldChpZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgbWFyayh2bSk7XG4gICAgfTtcbiAgICBjb25zdCBwYXJlbnRzID0gW107XG4gICAgY2FwdHVyZUlkKGluc3RhbmNlKTtcbiAgICBsZXQgcGFyZW50ID0gaW5zdGFuY2U7XG4gICAgd2hpbGUgKChwYXJlbnQgPSBwYXJlbnQuJHBhcmVudCkpIHtcbiAgICAgICAgY2FwdHVyZUlkKHBhcmVudCk7XG4gICAgICAgIHBhcmVudHMucHVzaChwYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gcGFyZW50cztcbn1cbmV4cG9ydHMuZ2V0Q29tcG9uZW50UGFyZW50cyA9IGdldENvbXBvbmVudFBhcmVudHM7XG5mdW5jdGlvbiBpbml0Q3R4KGN0eCkge1xuICAgIGFwcFJlY29yZCA9IGN0eC5jdXJyZW50QXBwUmVjb3JkO1xuICAgIGFwaSA9IGN0eC5hcGk7XG4gICAgaWYgKCFhcHBSZWNvcmQubWV0YS5pbnN0YW5jZU1hcCkge1xuICAgICAgICBhcHBSZWNvcmQubWV0YS5pbnN0YW5jZU1hcCA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgZXhwb3J0cy5pbnN0YW5jZU1hcCA9IGFwcFJlY29yZC5tZXRhLmluc3RhbmNlTWFwO1xuICAgIGlmICghYXBwUmVjb3JkLm1ldGEuZnVuY3Rpb25hbFZub2RlTWFwKSB7XG4gICAgICAgIGFwcFJlY29yZC5tZXRhLmZ1bmN0aW9uYWxWbm9kZU1hcCA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgZXhwb3J0cy5mdW5jdGlvbmFsVm5vZGVNYXAgPSBhcHBSZWNvcmQubWV0YS5mdW5jdGlvbmFsVm5vZGVNYXA7XG59XG4vKipcbiAqIEl0ZXJhdGUgdGhyb3VnaCBhbiBhcnJheSBvZiBpbnN0YW5jZXMgYW5kIGZsYXR0ZW4gaXQgaW50b1xuICogYW4gYXJyYXkgb2YgcXVhbGlmaWVkIGluc3RhbmNlcy4gVGhpcyBpcyBhIGRlcHRoLWZpcnN0XG4gKiB0cmF2ZXJzYWwgLSBlLmcuIGlmIGFuIGluc3RhbmNlIGlzIG5vdCBtYXRjaGVkLCB3ZSB3aWxsXG4gKiByZWN1cnNpdmVseSBnbyBkZWVwZXIgdW50aWwgYSBxdWFsaWZpZWQgY2hpbGQgaXMgZm91bmQuXG4gKi9cbmZ1bmN0aW9uIGZpbmRRdWFsaWZpZWRDaGlsZHJlbkZyb21MaXN0KGluc3RhbmNlcykge1xuICAgIGluc3RhbmNlcyA9IGluc3RhbmNlc1xuICAgICAgICAuZmlsdGVyKGNoaWxkID0+ICF1dGlsXzEuaXNCZWluZ0Rlc3Ryb3llZChjaGlsZCkpO1xuICAgIHJldHVybiBQcm9taXNlLmFsbCghZmlsdGVyXG4gICAgICAgID8gaW5zdGFuY2VzLm1hcChjYXB0dXJlKVxuICAgICAgICA6IEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sIGluc3RhbmNlcy5tYXAoZmluZFF1YWxpZmllZENoaWxkcmVuKSkpO1xufVxuLyoqXG4gKiBGaW5kIHF1YWxpZmllZCBjaGlsZHJlbiBmcm9tIGEgc2luZ2xlIGluc3RhbmNlLlxuICogSWYgdGhlIGluc3RhbmNlIGl0c2VsZiBpcyBxdWFsaWZpZWQsIGp1c3QgcmV0dXJuIGl0c2VsZi5cbiAqIFRoaXMgaXMgb2sgYmVjYXVzZSBbXS5jb25jYXQgd29ya3MgaW4gYm90aCBjYXNlcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZmluZFF1YWxpZmllZENoaWxkcmVuKGluc3RhbmNlKSB7XG4gICAgaWYgKGlzUXVhbGlmaWVkKGluc3RhbmNlKSkge1xuICAgICAgICByZXR1cm4gW2F3YWl0IGNhcHR1cmUoaW5zdGFuY2UpXTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGxldCBjaGlsZHJlbiA9IGF3YWl0IGZpbmRRdWFsaWZpZWRDaGlsZHJlbkZyb21MaXN0KGluc3RhbmNlLiRjaGlsZHJlbik7XG4gICAgICAgIC8vIEZpbmQgZnVuY3Rpb25hbCBjb21wb25lbnRzIGluIHJlY3Vyc2l2ZWx5IGluIG5vbi1mdW5jdGlvbmFsIHZub2Rlcy5cbiAgICAgICAgaWYgKGluc3RhbmNlLl92bm9kZSAmJiBpbnN0YW5jZS5fdm5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBhd2FpdCBQcm9taXNlLmFsbChmbGF0dGVuKGluc3RhbmNlLl92bm9kZS5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4gIWNoaWxkLmNvbXBvbmVudEluc3RhbmNlKS5tYXAoY2FwdHVyZUNoaWxkKSkpO1xuICAgICAgICAgICAgLy8gRmlsdGVyIHF1YWxpZmllZCBjaGlsZHJlbi5cbiAgICAgICAgICAgIGNvbnN0IGFkZGl0aW9uYWxDaGlsZHJlbiA9IGxpc3QuZmlsdGVyKGluc3RhbmNlID0+IGlzUXVhbGlmaWVkKGluc3RhbmNlKSk7XG4gICAgICAgICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLmNvbmNhdChhZGRpdGlvbmFsQ2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICB9XG59XG4vKipcbiAqIEdldCBjaGlsZHJlbiBmcm9tIGEgY29tcG9uZW50IGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBnZXRJbnRlcm5hbEluc3RhbmNlQ2hpbGRyZW4oaW5zdGFuY2UpIHtcbiAgICBpZiAoaW5zdGFuY2UuJGNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBpbnN0YW5jZS4kY2hpbGRyZW47XG4gICAgfVxuICAgIHJldHVybiBbXTtcbn1cbi8qKlxuICogQ2hlY2sgaWYgYW4gaW5zdGFuY2UgaXMgcXVhbGlmaWVkLlxuICovXG5mdW5jdGlvbiBpc1F1YWxpZmllZChpbnN0YW5jZSkge1xuICAgIGNvbnN0IG5hbWUgPSBzaGFyZWRfdXRpbHNfMS5jbGFzc2lmeSh1dGlsXzEuZ2V0SW5zdGFuY2VOYW1lKGluc3RhbmNlKSkudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gbmFtZS5pbmRleE9mKGZpbHRlcikgPiAtMTtcbn1cbmZ1bmN0aW9uIGZsYXR0ZW4oaXRlbXMpIHtcbiAgICBjb25zdCByID0gaXRlbXMucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcbiAgICAgICAgICAgIGxldCBjaGlsZHJlbiA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBpIG9mIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpKSkge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLmNvbmNhdChmbGF0dGVuKGkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWNjLnB1c2goLi4uY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIGFjYy5wdXNoKGl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiByO1xufVxuZnVuY3Rpb24gY2FwdHVyZUNoaWxkKGNoaWxkKSB7XG4gICAgaWYgKGNoaWxkLmZuQ29udGV4dCAmJiAhY2hpbGQuY29tcG9uZW50SW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGNhcHR1cmUoY2hpbGQpO1xuICAgIH1cbiAgICBlbHNlIGlmIChjaGlsZC5jb21wb25lbnRJbnN0YW5jZSkge1xuICAgICAgICBpZiAoIXV0aWxfMS5pc0JlaW5nRGVzdHJveWVkKGNoaWxkLmNvbXBvbmVudEluc3RhbmNlKSlcbiAgICAgICAgICAgIHJldHVybiBjYXB0dXJlKGNoaWxkLmNvbXBvbmVudEluc3RhbmNlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY2hpbGQuY2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGZsYXR0ZW4oY2hpbGQuY2hpbGRyZW4ubWFwKGNhcHR1cmVDaGlsZCkpKTtcbiAgICB9XG59XG4vKipcbiAqIENhcHR1cmUgdGhlIG1ldGEgaW5mb3JtYXRpb24gb2YgYW4gaW5zdGFuY2UuIChyZWN1cnNpdmUpXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNhcHR1cmUoaW5zdGFuY2UsIGluZGV4LCBsaXN0KSB7XG4gICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgIGlmIChpbnN0YW5jZS5fX1ZVRV9ERVZUT09MU19GVU5DVElPTkFMX0xFR0FDWV9fKSB7XG4gICAgICAgIGluc3RhbmNlID0gaW5zdGFuY2Uudm5vZGU7XG4gICAgfVxuICAgIGlmIChpbnN0YW5jZS4kb3B0aW9ucyAmJiBpbnN0YW5jZS4kb3B0aW9ucy5hYnN0cmFjdCAmJiBpbnN0YW5jZS5fdm5vZGUgJiYgaW5zdGFuY2UuX3Zub2RlLmNvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICAgIGluc3RhbmNlID0gaW5zdGFuY2UuX3Zub2RlLmNvbXBvbmVudEluc3RhbmNlO1xuICAgIH1cbiAgICBpZiAoKF9iID0gKF9hID0gaW5zdGFuY2UuJG9wdGlvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kZXZ0b29scykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmhpZGUpXG4gICAgICAgIHJldHVybjtcbiAgICAvLyBGdW5jdGlvbmFsIGNvbXBvbmVudC5cbiAgICBpZiAoaW5zdGFuY2UuZm5Db250ZXh0ICYmICFpbnN0YW5jZS5jb21wb25lbnRJbnN0YW5jZSkge1xuICAgICAgICBjb25zdCBjb250ZXh0VWlkID0gaW5zdGFuY2UuZm5Db250ZXh0Ll9fVlVFX0RFVlRPT0xTX1VJRF9fO1xuICAgICAgICBsZXQgaWQgPSBmdW5jdGlvbmFsSWRzLmdldChjb250ZXh0VWlkKTtcbiAgICAgICAgaWYgKGlkID09IG51bGwpIHtcbiAgICAgICAgICAgIGlkID0gMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlkKys7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb25hbElkcy5zZXQoY29udGV4dFVpZCwgaWQpO1xuICAgICAgICBjb25zdCBmdW5jdGlvbmFsSWQgPSBjb250ZXh0VWlkICsgJzpmdW5jdGlvbmFsOicgKyBpZDtcbiAgICAgICAgbWFya0Z1bmN0aW9uYWwoZnVuY3Rpb25hbElkLCBpbnN0YW5jZSk7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuUHJvbWlzZSA9IChpbnN0YW5jZS5jaGlsZHJlblxuICAgICAgICAgICAgPyBpbnN0YW5jZS5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gY2hpbGQuZm5Db250ZXh0XG4gICAgICAgICAgICAgICAgPyBjYXB0dXJlQ2hpbGQoY2hpbGQpXG4gICAgICAgICAgICAgICAgOiBjaGlsZC5jb21wb25lbnRJbnN0YW5jZVxuICAgICAgICAgICAgICAgICAgICA/IGNhcHR1cmUoY2hpbGQuY29tcG9uZW50SW5zdGFuY2UpXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkKVxuICAgICAgICAgICAgLy8gcm91dGVyLXZpZXcgaGFzIGJvdGggZm5Db250ZXh0IGFuZCBjb21wb25lbnRJbnN0YW5jZSBvbiB2bm9kZS5cbiAgICAgICAgICAgIDogaW5zdGFuY2UuY29tcG9uZW50SW5zdGFuY2UgPyBbY2FwdHVyZShpbnN0YW5jZS5jb21wb25lbnRJbnN0YW5jZSldIDogW10pO1xuICAgICAgICAvLyBhd2FpdCBhbGwgY2hpbGRyZW5DYXB0dXJlIHRvLWJlIHJlc29sdmVkXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gKGF3YWl0IFByb21pc2UuYWxsKGNoaWxkcmVuUHJvbWlzZSkpLmZpbHRlcihCb29sZWFuKTtcbiAgICAgICAgY29uc3QgdHJlZU5vZGUgPSB7XG4gICAgICAgICAgICB1aWQ6IGZ1bmN0aW9uYWxJZCxcbiAgICAgICAgICAgIGlkOiBmdW5jdGlvbmFsSWQsXG4gICAgICAgICAgICB0YWdzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ2Z1bmN0aW9uYWwnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I6IDB4NTU1NTU1LFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IDB4ZWVlZWVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIG5hbWU6IHV0aWxfMS5nZXRJbnN0YW5jZU5hbWUoaW5zdGFuY2UpLFxuICAgICAgICAgICAgcmVuZGVyS2V5OiB1dGlsXzEuZ2V0UmVuZGVyS2V5KGluc3RhbmNlLmtleSksXG4gICAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICAgIGhhc0NoaWxkcmVuOiAhIWNoaWxkcmVuLmxlbmd0aCxcbiAgICAgICAgICAgIGluYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgIGlzRnJhZ21lbnQ6IGZhbHNlIC8vIFRPRE86IENoZWNrIHdoYXQgaXMgaXQgZm9yLlxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gYXBpLnZpc2l0Q29tcG9uZW50VHJlZShpbnN0YW5jZSwgdHJlZU5vZGUsIGZpbHRlciwgKF9jID0gYXBwUmVjb3JkID09PSBudWxsIHx8IGFwcFJlY29yZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXBwUmVjb3JkLm9wdGlvbnMpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5hcHApO1xuICAgIH1cbiAgICAvLyBpbnN0YW5jZS5fdWlkIGlzIG5vdCByZWxpYWJsZSBpbiBkZXZ0b29scyBhcyB0aGVyZVxuICAgIC8vIG1heSBiZSAyIHJvb3RzIHdpdGggc2FtZSBfdWlkIHdoaWNoIGNhdXNlcyB1bmV4cGVjdGVkXG4gICAgLy8gYmVoYXZpb3VyXG4gICAgaW5zdGFuY2UuX19WVUVfREVWVE9PTFNfVUlEX18gPSB1dGlsXzEuZ2V0VW5pcXVlSWQoaW5zdGFuY2UpO1xuICAgIC8vIERlZHVwZVxuICAgIGlmIChjYXB0dXJlSWRzLmhhcyhpbnN0YW5jZS5fX1ZVRV9ERVZUT09MU19VSURfXykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY2FwdHVyZUlkcy5zZXQoaW5zdGFuY2UuX19WVUVfREVWVE9PTFNfVUlEX18sIHVuZGVmaW5lZCk7XG4gICAgfVxuICAgIG1hcmsoaW5zdGFuY2UpO1xuICAgIGNvbnN0IG5hbWUgPSB1dGlsXzEuZ2V0SW5zdGFuY2VOYW1lKGluc3RhbmNlKTtcbiAgICBjb25zdCBjaGlsZHJlbiA9IChhd2FpdCBQcm9taXNlLmFsbCgoYXdhaXQgZ2V0SW50ZXJuYWxJbnN0YW5jZUNoaWxkcmVuKGluc3RhbmNlKSlcbiAgICAgICAgLmZpbHRlcihjaGlsZCA9PiAhdXRpbF8xLmlzQmVpbmdEZXN0cm95ZWQoY2hpbGQpKVxuICAgICAgICAubWFwKGNhcHR1cmUpKSkuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGNvbnN0IHJldCA9IHtcbiAgICAgICAgdWlkOiBpbnN0YW5jZS5fdWlkLFxuICAgICAgICBpZDogaW5zdGFuY2UuX19WVUVfREVWVE9PTFNfVUlEX18sXG4gICAgICAgIG5hbWUsXG4gICAgICAgIHJlbmRlcktleTogdXRpbF8xLmdldFJlbmRlcktleShpbnN0YW5jZS4kdm5vZGUgPyBpbnN0YW5jZS4kdm5vZGUua2V5IDogbnVsbCksXG4gICAgICAgIGluYWN0aXZlOiAhIWluc3RhbmNlLl9pbmFjdGl2ZSxcbiAgICAgICAgaXNGcmFnbWVudDogISFpbnN0YW5jZS5faXNGcmFnbWVudCxcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIGhhc0NoaWxkcmVuOiAhIWNoaWxkcmVuLmxlbmd0aCxcbiAgICAgICAgdGFnczogW10sXG4gICAgICAgIG1ldGE6IHt9XG4gICAgfTtcbiAgICBpZiAoaW5zdGFuY2UuX3Zub2RlICYmIGluc3RhbmNlLl92bm9kZS5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCB2bm9kZUNoaWxkcmVuID0gYXdhaXQgUHJvbWlzZS5hbGwoZmxhdHRlbihpbnN0YW5jZS5fdm5vZGUuY2hpbGRyZW4ubWFwKGNhcHR1cmVDaGlsZCkpKTtcbiAgICAgICAgcmV0LmNoaWxkcmVuID0gcmV0LmNoaWxkcmVuLmNvbmNhdChmbGF0dGVuKHZub2RlQ2hpbGRyZW4pLmZpbHRlcihCb29sZWFuKSk7XG4gICAgICAgIHJldC5oYXNDaGlsZHJlbiA9ICEhcmV0LmNoaWxkcmVuLmxlbmd0aDtcbiAgICB9XG4gICAgLy8gZW5zdXJlIGNvcnJlY3Qgb3JkZXJpbmdcbiAgICBjb25zdCByb290RWxlbWVudHMgPSBlbF8xLmdldFJvb3RFbGVtZW50c0Zyb21Db21wb25lbnRJbnN0YW5jZShpbnN0YW5jZSk7XG4gICAgY29uc3QgZmlyc3RFbGVtZW50ID0gcm9vdEVsZW1lbnRzWzBdO1xuICAgIGlmIChmaXJzdEVsZW1lbnQgPT09IG51bGwgfHwgZmlyc3RFbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaXJzdEVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgICByZXQuaW5kZXhJblBhcmVudCA9IEFycmF5LmZyb20oZmlyc3RFbGVtZW50LnBhcmVudEVsZW1lbnQuY2hpbGROb2RlcykuaW5kZXhPZihmaXJzdEVsZW1lbnQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0LmluZGV4SW5QYXJlbnQgPSAtMTtcbiAgICB9XG4gICAgLy8gY2hlY2sgaWYgaW5zdGFuY2UgaXMgYXZhaWxhYmxlIGluIGNvbnNvbGVcbiAgICBjb25zdCBjb25zb2xlSWQgPSBjb25zb2xlQm91bmRJbnN0YW5jZXMuaW5kZXhPZihpbnN0YW5jZS5fX1ZVRV9ERVZUT09MU19VSURfXyk7XG4gICAgcmV0LmNvbnNvbGVJZCA9IGNvbnNvbGVJZCA+IC0xID8gJyR2bScgKyBjb25zb2xlSWQgOiBudWxsO1xuICAgIC8vIGNoZWNrIHJvdXRlciB2aWV3XG4gICAgY29uc3QgaXNSb3V0ZXJWaWV3MiA9IGluc3RhbmNlLiR2bm9kZSAmJiBpbnN0YW5jZS4kdm5vZGUuZGF0YS5yb3V0ZXJWaWV3O1xuICAgIGlmIChpbnN0YW5jZS5fcm91dGVyVmlldyB8fCBpc1JvdXRlclZpZXcyKSB7XG4gICAgICAgIHJldC5pc1JvdXRlclZpZXcgPSB0cnVlO1xuICAgICAgICBpZiAoIWluc3RhbmNlLl9pbmFjdGl2ZSAmJiBpbnN0YW5jZS4kcm91dGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZWQgPSBpbnN0YW5jZS4kcm91dGUubWF0Y2hlZDtcbiAgICAgICAgICAgIGNvbnN0IGRlcHRoID0gaXNSb3V0ZXJWaWV3MlxuICAgICAgICAgICAgICAgID8gaW5zdGFuY2UuJHZub2RlLmRhdGEucm91dGVyVmlld0RlcHRoXG4gICAgICAgICAgICAgICAgOiBpbnN0YW5jZS5fcm91dGVyVmlldy5kZXB0aDtcbiAgICAgICAgICAgIHJldC5tZXRhLm1hdGNoZWRSb3V0ZVNlZ21lbnQgPVxuICAgICAgICAgICAgICAgIG1hdGNoZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZFtkZXB0aF0gJiZcbiAgICAgICAgICAgICAgICAgICAgKGlzUm91dGVyVmlldzIgPyBtYXRjaGVkW2RlcHRoXS5wYXRoIDogbWF0Y2hlZFtkZXB0aF0uaGFuZGxlci5wYXRoKTtcbiAgICAgICAgfVxuICAgICAgICByZXQudGFncy5wdXNoKHtcbiAgICAgICAgICAgIGxhYmVsOiBgcm91dGVyLXZpZXcke3JldC5tZXRhLm1hdGNoZWRSb3V0ZVNlZ21lbnQgPyBgOiAke3JldC5tZXRhLm1hdGNoZWRSb3V0ZVNlZ21lbnR9YCA6ICcnfWAsXG4gICAgICAgICAgICB0ZXh0Q29sb3I6IDB4MDAwMDAwLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAweGZmODM0NFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGFwaS52aXNpdENvbXBvbmVudFRyZWUoaW5zdGFuY2UsIHJldCwgZmlsdGVyLCAoX2QgPSBhcHBSZWNvcmQgPT09IG51bGwgfHwgYXBwUmVjb3JkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhcHBSZWNvcmQub3B0aW9ucykgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmFwcCk7XG59XG4vKipcbiAqIE1hcmsgYW4gaW5zdGFuY2UgYXMgY2FwdHVyZWQgYW5kIHN0b3JlIGl0IGluIHRoZSBpbnN0YW5jZSBtYXAuXG4gKlxuICogQHBhcmFtIHtWdWV9IGluc3RhbmNlXG4gKi9cbmZ1bmN0aW9uIG1hcmsoaW5zdGFuY2UpIHtcbiAgICBjb25zdCByZWZJZCA9IGluc3RhbmNlLl9fVlVFX0RFVlRPT0xTX1VJRF9fO1xuICAgIGlmICghZXhwb3J0cy5pbnN0YW5jZU1hcC5oYXMocmVmSWQpKSB7XG4gICAgICAgIGV4cG9ydHMuaW5zdGFuY2VNYXAuc2V0KHJlZklkLCBpbnN0YW5jZSk7XG4gICAgICAgIGFwcFJlY29yZC5pbnN0YW5jZU1hcC5zZXQocmVmSWQsIGluc3RhbmNlKTtcbiAgICAgICAgaW5zdGFuY2UuJG9uKCdob29rOmJlZm9yZURlc3Ryb3knLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBleHBvcnRzLmluc3RhbmNlTWFwLmRlbGV0ZShyZWZJZCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG1hcmtGdW5jdGlvbmFsKGlkLCB2bm9kZSkge1xuICAgIGNvbnN0IHJlZklkID0gdm5vZGUuZm5Db250ZXh0Ll9fVlVFX0RFVlRPT0xTX1VJRF9fO1xuICAgIGlmICghZXhwb3J0cy5mdW5jdGlvbmFsVm5vZGVNYXAuaGFzKHJlZklkKSkge1xuICAgICAgICBleHBvcnRzLmZ1bmN0aW9uYWxWbm9kZU1hcC5zZXQocmVmSWQsIHt9KTtcbiAgICAgICAgdm5vZGUuZm5Db250ZXh0LiRvbignaG9vazpiZWZvcmVEZXN0cm95JywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZXhwb3J0cy5mdW5jdGlvbmFsVm5vZGVNYXAuZGVsZXRlKHJlZklkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGV4cG9ydHMuZnVuY3Rpb25hbFZub2RlTWFwLmdldChyZWZJZClbaWRdID0gdm5vZGU7XG4gICAgYXBwUmVjb3JkLmluc3RhbmNlTWFwLnNldChpZCwge1xuICAgICAgICBfX1ZVRV9ERVZUT09MU19VSURfXzogaWQsXG4gICAgICAgIF9fVlVFX0RFVlRPT0xTX0ZVTkNUSU9OQUxfTEVHQUNZX186IHRydWUsXG4gICAgICAgIHZub2RlXG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmVlLmpzLm1hcCJdLCJuYW1lcyI6WyJjb25zdCIsImxldCIsImNoaWxkcmVuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///79153\n");
372
+ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getComponentParents = exports.walkTree = exports.functionalVnodeMap = exports.instanceMap = void 0;\nvar shared_utils_1 = __webpack_require__(19746);\nvar el_1 = __webpack_require__(3206);\nvar util_1 = __webpack_require__(26545);\nvar appRecord;\nvar api;\nvar consoleBoundInstances = Array(5);\nvar filter = '';\nvar functionalIds = new Map();\n// Dedupe instances\n// Some instances may be both on a component and on a child abstract/functional component\nvar captureIds = new Map();\nasync function walkTree(instance, pFilter, ctx) {\n initCtx(ctx);\n filter = pFilter;\n functionalIds.clear();\n captureIds.clear();\n var result = flatten(await findQualifiedChildren(instance));\n return result;\n}\nexports.walkTree = walkTree;\nfunction getComponentParents(instance, ctx) {\n initCtx(ctx);\n var captureIds = new Map();\n var captureId = function (vm) {\n var id = util_1.getUniqueId(vm);\n if (captureIds.has(id))\n { return; }\n captureIds.set(id, undefined);\n mark(vm);\n };\n var parents = [];\n captureId(instance);\n var parent = instance;\n while ((parent = parent.$parent)) {\n captureId(parent);\n parents.push(parent);\n }\n return parents;\n}\nexports.getComponentParents = getComponentParents;\nfunction initCtx(ctx) {\n appRecord = ctx.currentAppRecord;\n api = ctx.api;\n if (!appRecord.meta.instanceMap) {\n appRecord.meta.instanceMap = new Map();\n }\n exports.instanceMap = appRecord.meta.instanceMap;\n if (!appRecord.meta.functionalVnodeMap) {\n appRecord.meta.functionalVnodeMap = new Map();\n }\n exports.functionalVnodeMap = appRecord.meta.functionalVnodeMap;\n}\n/**\n * Iterate through an array of instances and flatten it into\n * an array of qualified instances. This is a depth-first\n * traversal - e.g. if an instance is not matched, we will\n * recursively go deeper until a qualified child is found.\n */\nfunction findQualifiedChildrenFromList(instances) {\n instances = instances\n .filter(function (child) { return !util_1.isBeingDestroyed(child); });\n return Promise.all(!filter\n ? instances.map(capture)\n : Array.prototype.concat.apply([], instances.map(findQualifiedChildren)));\n}\n/**\n * Find qualified children from a single instance.\n * If the instance itself is qualified, just return itself.\n * This is ok because [].concat works in both cases.\n */\nasync function findQualifiedChildren(instance) {\n if (isQualified(instance)) {\n return [await capture(instance)];\n }\n else {\n var children = await findQualifiedChildrenFromList(instance.$children);\n // Find functional components in recursively in non-functional vnodes.\n if (instance._vnode && instance._vnode.children) {\n var list = await Promise.all(flatten(instance._vnode.children.filter(function (child) { return !child.componentInstance; }).map(captureChild)));\n // Filter qualified children.\n var additionalChildren = list.filter(function (instance) { return isQualified(instance); });\n children = children.concat(additionalChildren);\n }\n return children;\n }\n}\n/**\n * Get children from a component instance.\n */\nfunction getInternalInstanceChildren(instance) {\n if (instance.$children) {\n return instance.$children;\n }\n return [];\n}\n/**\n * Check if an instance is qualified.\n */\nfunction isQualified(instance) {\n var name = shared_utils_1.classify(util_1.getInstanceName(instance)).toLowerCase();\n return name.indexOf(filter) > -1;\n}\nfunction flatten(items) {\n var r = items.reduce(function (acc, item) {\n if (Array.isArray(item)) {\n var children = [];\n for (var i of item) {\n if (Array.isArray(i)) {\n children = children.concat(flatten(i));\n }\n else {\n children.push(i);\n }\n }\n acc.push.apply(acc, children);\n }\n else if (item) {\n acc.push(item);\n }\n return acc;\n }, []);\n return r;\n}\nfunction captureChild(child) {\n if (child.fnContext && !child.componentInstance) {\n return capture(child);\n }\n else if (child.componentInstance) {\n if (!util_1.isBeingDestroyed(child.componentInstance))\n { return capture(child.componentInstance); }\n }\n else if (child.children) {\n return Promise.all(flatten(child.children.map(captureChild)));\n }\n}\n/**\n * Capture the meta information of an instance. (recursive)\n */\nasync function capture(instance, index, list) {\n var _a, _b, _c, _d;\n if (instance.__VUE_DEVTOOLS_FUNCTIONAL_LEGACY__) {\n instance = instance.vnode;\n }\n if (instance.$options && instance.$options.abstract && instance._vnode && instance._vnode.componentInstance) {\n instance = instance._vnode.componentInstance;\n }\n if ((_b = (_a = instance.$options) === null || _a === void 0 ? void 0 : _a.devtools) === null || _b === void 0 ? void 0 : _b.hide)\n { return; }\n // Functional component.\n if (instance.fnContext && !instance.componentInstance) {\n var contextUid = instance.fnContext.__VUE_DEVTOOLS_UID__;\n var id = functionalIds.get(contextUid);\n if (id == null) {\n id = 0;\n }\n else {\n id++;\n }\n functionalIds.set(contextUid, id);\n var functionalId = contextUid + ':functional:' + id;\n markFunctional(functionalId, instance);\n var childrenPromise = (instance.children\n ? instance.children.map(function (child) { return child.fnContext\n ? captureChild(child)\n : child.componentInstance\n ? capture(child.componentInstance)\n : undefined; })\n // router-view has both fnContext and componentInstance on vnode.\n : instance.componentInstance ? [capture(instance.componentInstance)] : []);\n // await all childrenCapture to-be resolved\n var children$1 = (await Promise.all(childrenPromise)).filter(Boolean);\n var treeNode = {\n uid: functionalId,\n id: functionalId,\n tags: [\n {\n label: 'functional',\n textColor: 0x555555,\n backgroundColor: 0xeeeeee\n }\n ],\n name: util_1.getInstanceName(instance),\n renderKey: util_1.getRenderKey(instance.key),\n children: children$1,\n hasChildren: !!children$1.length,\n inactive: false,\n isFragment: false // TODO: Check what is it for.\n };\n return api.visitComponentTree(instance, treeNode, filter, (_c = appRecord === null || appRecord === void 0 ? void 0 : appRecord.options) === null || _c === void 0 ? void 0 : _c.app);\n }\n // instance._uid is not reliable in devtools as there\n // may be 2 roots with same _uid which causes unexpected\n // behaviour\n instance.__VUE_DEVTOOLS_UID__ = util_1.getUniqueId(instance);\n // Dedupe\n if (captureIds.has(instance.__VUE_DEVTOOLS_UID__)) {\n return;\n }\n else {\n captureIds.set(instance.__VUE_DEVTOOLS_UID__, undefined);\n }\n mark(instance);\n var name = util_1.getInstanceName(instance);\n var children = (await Promise.all((await getInternalInstanceChildren(instance))\n .filter(function (child) { return !util_1.isBeingDestroyed(child); })\n .map(capture))).filter(Boolean);\n var ret = {\n uid: instance._uid,\n id: instance.__VUE_DEVTOOLS_UID__,\n name: name,\n renderKey: util_1.getRenderKey(instance.$vnode ? instance.$vnode.key : null),\n inactive: !!instance._inactive,\n isFragment: !!instance._isFragment,\n children: children,\n hasChildren: !!children.length,\n tags: [],\n meta: {}\n };\n if (instance._vnode && instance._vnode.children) {\n var vnodeChildren = await Promise.all(flatten(instance._vnode.children.map(captureChild)));\n ret.children = ret.children.concat(flatten(vnodeChildren).filter(Boolean));\n ret.hasChildren = !!ret.children.length;\n }\n // ensure correct ordering\n var rootElements = el_1.getRootElementsFromComponentInstance(instance);\n var firstElement = rootElements[0];\n if (firstElement === null || firstElement === void 0 ? void 0 : firstElement.parentElement) {\n var parentInstance = instance.$parent;\n var parentRootElements = parentInstance ? el_1.getRootElementsFromComponentInstance(parentInstance) : [];\n var el = firstElement;\n var indexList = [];\n do {\n indexList.push(Array.from(el.parentElement.childNodes).indexOf(el));\n el = el.parentElement;\n } while (el.parentElement && parentRootElements.length && !parentRootElements.includes(el));\n ret.domOrder = indexList.reverse();\n }\n else {\n ret.domOrder = [-1];\n }\n // check if instance is available in console\n var consoleId = consoleBoundInstances.indexOf(instance.__VUE_DEVTOOLS_UID__);\n ret.consoleId = consoleId > -1 ? '$vm' + consoleId : null;\n // check router view\n var isRouterView2 = instance.$vnode && instance.$vnode.data.routerView;\n if (instance._routerView || isRouterView2) {\n ret.isRouterView = true;\n if (!instance._inactive && instance.$route) {\n var matched = instance.$route.matched;\n var depth = isRouterView2\n ? instance.$vnode.data.routerViewDepth\n : instance._routerView.depth;\n ret.meta.matchedRouteSegment =\n matched &&\n matched[depth] &&\n (isRouterView2 ? matched[depth].path : matched[depth].handler.path);\n }\n ret.tags.push({\n label: (\"router-view\" + (ret.meta.matchedRouteSegment ? (\": \" + (ret.meta.matchedRouteSegment)) : '')),\n textColor: 0x000000,\n backgroundColor: 0xff8344\n });\n }\n return api.visitComponentTree(instance, ret, filter, (_d = appRecord === null || appRecord === void 0 ? void 0 : appRecord.options) === null || _d === void 0 ? void 0 : _d.app);\n}\n/**\n * Mark an instance as captured and store it in the instance map.\n *\n * @param {Vue} instance\n */\nfunction mark(instance) {\n var refId = instance.__VUE_DEVTOOLS_UID__;\n if (!exports.instanceMap.has(refId)) {\n exports.instanceMap.set(refId, instance);\n appRecord.instanceMap.set(refId, instance);\n instance.$on('hook:beforeDestroy', function () {\n exports.instanceMap.delete(refId);\n });\n }\n}\nfunction markFunctional(id, vnode) {\n var refId = vnode.fnContext.__VUE_DEVTOOLS_UID__;\n if (!exports.functionalVnodeMap.has(refId)) {\n exports.functionalVnodeMap.set(refId, {});\n vnode.fnContext.$on('hook:beforeDestroy', function () {\n exports.functionalVnodeMap.delete(refId);\n });\n }\n exports.functionalVnodeMap.get(refId)[id] = vnode;\n appRecord.instanceMap.set(id, {\n __VUE_DEVTOOLS_UID__: id,\n __VUE_DEVTOOLS_FUNCTIONAL_LEGACY__: true,\n vnode: vnode\n });\n}\n//# sourceMappingURL=tree.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFFLElBQUk7QUFDaEQsZUFBUSxLQUFLO0FBQ2IsS0FBSyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBQ0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AdnVlL2RldnRvb2xzLy4uL2FwcC1iYWNrZW5kLXZ1ZTIvbGliL2NvbXBvbmVudHMvdHJlZS5qcz8wYzUzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRDb21wb25lbnRQYXJlbnRzID0gZXhwb3J0cy53YWxrVHJlZSA9IGV4cG9ydHMuZnVuY3Rpb25hbFZub2RlTWFwID0gZXhwb3J0cy5pbnN0YW5jZU1hcCA9IHZvaWQgMDtcbmNvbnN0IHNoYXJlZF91dGlsc18xID0gcmVxdWlyZShcIkB2dWUtZGV2dG9vbHMvc2hhcmVkLXV0aWxzXCIpO1xuY29uc3QgZWxfMSA9IHJlcXVpcmUoXCIuL2VsXCIpO1xuY29uc3QgdXRpbF8xID0gcmVxdWlyZShcIi4vdXRpbFwiKTtcbmxldCBhcHBSZWNvcmQ7XG5sZXQgYXBpO1xuY29uc3QgY29uc29sZUJvdW5kSW5zdGFuY2VzID0gQXJyYXkoNSk7XG5sZXQgZmlsdGVyID0gJyc7XG5jb25zdCBmdW5jdGlvbmFsSWRzID0gbmV3IE1hcCgpO1xuLy8gRGVkdXBlIGluc3RhbmNlc1xuLy8gU29tZSBpbnN0YW5jZXMgbWF5IGJlIGJvdGggb24gYSBjb21wb25lbnQgYW5kIG9uIGEgY2hpbGQgYWJzdHJhY3QvZnVuY3Rpb25hbCBjb21wb25lbnRcbmNvbnN0IGNhcHR1cmVJZHMgPSBuZXcgTWFwKCk7XG5hc3luYyBmdW5jdGlvbiB3YWxrVHJlZShpbnN0YW5jZSwgcEZpbHRlciwgY3R4KSB7XG4gICAgaW5pdEN0eChjdHgpO1xuICAgIGZpbHRlciA9IHBGaWx0ZXI7XG4gICAgZnVuY3Rpb25hbElkcy5jbGVhcigpO1xuICAgIGNhcHR1cmVJZHMuY2xlYXIoKTtcbiAgICBjb25zdCByZXN1bHQgPSBmbGF0dGVuKGF3YWl0IGZpbmRRdWFsaWZpZWRDaGlsZHJlbihpbnN0YW5jZSkpO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnRzLndhbGtUcmVlID0gd2Fsa1RyZWU7XG5mdW5jdGlvbiBnZXRDb21wb25lbnRQYXJlbnRzKGluc3RhbmNlLCBjdHgpIHtcbiAgICBpbml0Q3R4KGN0eCk7XG4gICAgY29uc3QgY2FwdHVyZUlkcyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBjYXB0dXJlSWQgPSB2bSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gdXRpbF8xLmdldFVuaXF1ZUlkKHZtKTtcbiAgICAgICAgaWYgKGNhcHR1cmVJZHMuaGFzKGlkKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FwdHVyZUlkcy5zZXQoaWQsIHVuZGVmaW5lZCk7XG4gICAgICAgIG1hcmsodm0pO1xuICAgIH07XG4gICAgY29uc3QgcGFyZW50cyA9IFtdO1xuICAgIGNhcHR1cmVJZChpbnN0YW5jZSk7XG4gICAgbGV0IHBhcmVudCA9IGluc3RhbmNlO1xuICAgIHdoaWxlICgocGFyZW50ID0gcGFyZW50LiRwYXJlbnQpKSB7XG4gICAgICAgIGNhcHR1cmVJZChwYXJlbnQpO1xuICAgICAgICBwYXJlbnRzLnB1c2gocGFyZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmVudHM7XG59XG5leHBvcnRzLmdldENvbXBvbmVudFBhcmVudHMgPSBnZXRDb21wb25lbnRQYXJlbnRzO1xuZnVuY3Rpb24gaW5pdEN0eChjdHgpIHtcbiAgICBhcHBSZWNvcmQgPSBjdHguY3VycmVudEFwcFJlY29yZDtcbiAgICBhcGkgPSBjdHguYXBpO1xuICAgIGlmICghYXBwUmVjb3JkLm1ldGEuaW5zdGFuY2VNYXApIHtcbiAgICAgICAgYXBwUmVjb3JkLm1ldGEuaW5zdGFuY2VNYXAgPSBuZXcgTWFwKCk7XG4gICAgfVxuICAgIGV4cG9ydHMuaW5zdGFuY2VNYXAgPSBhcHBSZWNvcmQubWV0YS5pbnN0YW5jZU1hcDtcbiAgICBpZiAoIWFwcFJlY29yZC5tZXRhLmZ1bmN0aW9uYWxWbm9kZU1hcCkge1xuICAgICAgICBhcHBSZWNvcmQubWV0YS5mdW5jdGlvbmFsVm5vZGVNYXAgPSBuZXcgTWFwKCk7XG4gICAgfVxuICAgIGV4cG9ydHMuZnVuY3Rpb25hbFZub2RlTWFwID0gYXBwUmVjb3JkLm1ldGEuZnVuY3Rpb25hbFZub2RlTWFwO1xufVxuLyoqXG4gKiBJdGVyYXRlIHRocm91Z2ggYW4gYXJyYXkgb2YgaW5zdGFuY2VzIGFuZCBmbGF0dGVuIGl0IGludG9cbiAqIGFuIGFycmF5IG9mIHF1YWxpZmllZCBpbnN0YW5jZXMuIFRoaXMgaXMgYSBkZXB0aC1maXJzdFxuICogdHJhdmVyc2FsIC0gZS5nLiBpZiBhbiBpbnN0YW5jZSBpcyBub3QgbWF0Y2hlZCwgd2Ugd2lsbFxuICogcmVjdXJzaXZlbHkgZ28gZGVlcGVyIHVudGlsIGEgcXVhbGlmaWVkIGNoaWxkIGlzIGZvdW5kLlxuICovXG5mdW5jdGlvbiBmaW5kUXVhbGlmaWVkQ2hpbGRyZW5Gcm9tTGlzdChpbnN0YW5jZXMpIHtcbiAgICBpbnN0YW5jZXMgPSBpbnN0YW5jZXNcbiAgICAgICAgLmZpbHRlcihjaGlsZCA9PiAhdXRpbF8xLmlzQmVpbmdEZXN0cm95ZWQoY2hpbGQpKTtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoIWZpbHRlclxuICAgICAgICA/IGluc3RhbmNlcy5tYXAoY2FwdHVyZSlcbiAgICAgICAgOiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCBpbnN0YW5jZXMubWFwKGZpbmRRdWFsaWZpZWRDaGlsZHJlbikpKTtcbn1cbi8qKlxuICogRmluZCBxdWFsaWZpZWQgY2hpbGRyZW4gZnJvbSBhIHNpbmdsZSBpbnN0YW5jZS5cbiAqIElmIHRoZSBpbnN0YW5jZSBpdHNlbGYgaXMgcXVhbGlmaWVkLCBqdXN0IHJldHVybiBpdHNlbGYuXG4gKiBUaGlzIGlzIG9rIGJlY2F1c2UgW10uY29uY2F0IHdvcmtzIGluIGJvdGggY2FzZXMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZpbmRRdWFsaWZpZWRDaGlsZHJlbihpbnN0YW5jZSkge1xuICAgIGlmIChpc1F1YWxpZmllZChpbnN0YW5jZSkpIHtcbiAgICAgICAgcmV0dXJuIFthd2FpdCBjYXB0dXJlKGluc3RhbmNlKV07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBsZXQgY2hpbGRyZW4gPSBhd2FpdCBmaW5kUXVhbGlmaWVkQ2hpbGRyZW5Gcm9tTGlzdChpbnN0YW5jZS4kY2hpbGRyZW4pO1xuICAgICAgICAvLyBGaW5kIGZ1bmN0aW9uYWwgY29tcG9uZW50cyBpbiByZWN1cnNpdmVseSBpbiBub24tZnVuY3Rpb25hbCB2bm9kZXMuXG4gICAgICAgIGlmIChpbnN0YW5jZS5fdm5vZGUgJiYgaW5zdGFuY2UuX3Zub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBjb25zdCBsaXN0ID0gYXdhaXQgUHJvbWlzZS5hbGwoZmxhdHRlbihpbnN0YW5jZS5fdm5vZGUuY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+ICFjaGlsZC5jb21wb25lbnRJbnN0YW5jZSkubWFwKGNhcHR1cmVDaGlsZCkpKTtcbiAgICAgICAgICAgIC8vIEZpbHRlciBxdWFsaWZpZWQgY2hpbGRyZW4uXG4gICAgICAgICAgICBjb25zdCBhZGRpdGlvbmFsQ2hpbGRyZW4gPSBsaXN0LmZpbHRlcihpbnN0YW5jZSA9PiBpc1F1YWxpZmllZChpbnN0YW5jZSkpO1xuICAgICAgICAgICAgY2hpbGRyZW4gPSBjaGlsZHJlbi5jb25jYXQoYWRkaXRpb25hbENoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgfVxufVxuLyoqXG4gKiBHZXQgY2hpbGRyZW4gZnJvbSBhIGNvbXBvbmVudCBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gZ2V0SW50ZXJuYWxJbnN0YW5jZUNoaWxkcmVuKGluc3RhbmNlKSB7XG4gICAgaWYgKGluc3RhbmNlLiRjaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gaW5zdGFuY2UuJGNoaWxkcmVuO1xuICAgIH1cbiAgICByZXR1cm4gW107XG59XG4vKipcbiAqIENoZWNrIGlmIGFuIGluc3RhbmNlIGlzIHF1YWxpZmllZC5cbiAqL1xuZnVuY3Rpb24gaXNRdWFsaWZpZWQoaW5zdGFuY2UpIHtcbiAgICBjb25zdCBuYW1lID0gc2hhcmVkX3V0aWxzXzEuY2xhc3NpZnkodXRpbF8xLmdldEluc3RhbmNlTmFtZShpbnN0YW5jZSkpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIG5hbWUuaW5kZXhPZihmaWx0ZXIpID4gLTE7XG59XG5mdW5jdGlvbiBmbGF0dGVuKGl0ZW1zKSB7XG4gICAgY29uc3QgciA9IGl0ZW1zLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XG4gICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaSBvZiBpdGVtKSB7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gPSBjaGlsZHJlbi5jb25jYXQoZmxhdHRlbihpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFjYy5wdXNoKC4uLmNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpdGVtKSB7XG4gICAgICAgICAgICBhY2MucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gcjtcbn1cbmZ1bmN0aW9uIGNhcHR1cmVDaGlsZChjaGlsZCkge1xuICAgIGlmIChjaGlsZC5mbkNvbnRleHQgJiYgIWNoaWxkLmNvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICAgIHJldHVybiBjYXB0dXJlKGNoaWxkKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY2hpbGQuY29tcG9uZW50SW5zdGFuY2UpIHtcbiAgICAgICAgaWYgKCF1dGlsXzEuaXNCZWluZ0Rlc3Ryb3llZChjaGlsZC5jb21wb25lbnRJbnN0YW5jZSkpXG4gICAgICAgICAgICByZXR1cm4gY2FwdHVyZShjaGlsZC5jb21wb25lbnRJbnN0YW5jZSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNoaWxkLmNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChmbGF0dGVuKGNoaWxkLmNoaWxkcmVuLm1hcChjYXB0dXJlQ2hpbGQpKSk7XG4gICAgfVxufVxuLyoqXG4gKiBDYXB0dXJlIHRoZSBtZXRhIGluZm9ybWF0aW9uIG9mIGFuIGluc3RhbmNlLiAocmVjdXJzaXZlKVxuICovXG5hc3luYyBmdW5jdGlvbiBjYXB0dXJlKGluc3RhbmNlLCBpbmRleCwgbGlzdCkge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICBpZiAoaW5zdGFuY2UuX19WVUVfREVWVE9PTFNfRlVOQ1RJT05BTF9MRUdBQ1lfXykge1xuICAgICAgICBpbnN0YW5jZSA9IGluc3RhbmNlLnZub2RlO1xuICAgIH1cbiAgICBpZiAoaW5zdGFuY2UuJG9wdGlvbnMgJiYgaW5zdGFuY2UuJG9wdGlvbnMuYWJzdHJhY3QgJiYgaW5zdGFuY2UuX3Zub2RlICYmIGluc3RhbmNlLl92bm9kZS5jb21wb25lbnRJbnN0YW5jZSkge1xuICAgICAgICBpbnN0YW5jZSA9IGluc3RhbmNlLl92bm9kZS5jb21wb25lbnRJbnN0YW5jZTtcbiAgICB9XG4gICAgaWYgKChfYiA9IChfYSA9IGluc3RhbmNlLiRvcHRpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGV2dG9vbHMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5oaWRlKVxuICAgICAgICByZXR1cm47XG4gICAgLy8gRnVuY3Rpb25hbCBjb21wb25lbnQuXG4gICAgaWYgKGluc3RhbmNlLmZuQ29udGV4dCAmJiAhaW5zdGFuY2UuY29tcG9uZW50SW5zdGFuY2UpIHtcbiAgICAgICAgY29uc3QgY29udGV4dFVpZCA9IGluc3RhbmNlLmZuQ29udGV4dC5fX1ZVRV9ERVZUT09MU19VSURfXztcbiAgICAgICAgbGV0IGlkID0gZnVuY3Rpb25hbElkcy5nZXQoY29udGV4dFVpZCk7XG4gICAgICAgIGlmIChpZCA9PSBudWxsKSB7XG4gICAgICAgICAgICBpZCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZCsrO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uYWxJZHMuc2V0KGNvbnRleHRVaWQsIGlkKTtcbiAgICAgICAgY29uc3QgZnVuY3Rpb25hbElkID0gY29udGV4dFVpZCArICc6ZnVuY3Rpb25hbDonICsgaWQ7XG4gICAgICAgIG1hcmtGdW5jdGlvbmFsKGZ1bmN0aW9uYWxJZCwgaW5zdGFuY2UpO1xuICAgICAgICBjb25zdCBjaGlsZHJlblByb21pc2UgPSAoaW5zdGFuY2UuY2hpbGRyZW5cbiAgICAgICAgICAgID8gaW5zdGFuY2UuY2hpbGRyZW4ubWFwKGNoaWxkID0+IGNoaWxkLmZuQ29udGV4dFxuICAgICAgICAgICAgICAgID8gY2FwdHVyZUNoaWxkKGNoaWxkKVxuICAgICAgICAgICAgICAgIDogY2hpbGQuY29tcG9uZW50SW5zdGFuY2VcbiAgICAgICAgICAgICAgICAgICAgPyBjYXB0dXJlKGNoaWxkLmNvbXBvbmVudEluc3RhbmNlKVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZClcbiAgICAgICAgICAgIC8vIHJvdXRlci12aWV3IGhhcyBib3RoIGZuQ29udGV4dCBhbmQgY29tcG9uZW50SW5zdGFuY2Ugb24gdm5vZGUuXG4gICAgICAgICAgICA6IGluc3RhbmNlLmNvbXBvbmVudEluc3RhbmNlID8gW2NhcHR1cmUoaW5zdGFuY2UuY29tcG9uZW50SW5zdGFuY2UpXSA6IFtdKTtcbiAgICAgICAgLy8gYXdhaXQgYWxsIGNoaWxkcmVuQ2FwdHVyZSB0by1iZSByZXNvbHZlZFxuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IChhd2FpdCBQcm9taXNlLmFsbChjaGlsZHJlblByb21pc2UpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICAgIGNvbnN0IHRyZWVOb2RlID0ge1xuICAgICAgICAgICAgdWlkOiBmdW5jdGlvbmFsSWQsXG4gICAgICAgICAgICBpZDogZnVuY3Rpb25hbElkLFxuICAgICAgICAgICAgdGFnczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdmdW5jdGlvbmFsJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yOiAweDU1NTU1NSxcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAweGVlZWVlZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBuYW1lOiB1dGlsXzEuZ2V0SW5zdGFuY2VOYW1lKGluc3RhbmNlKSxcbiAgICAgICAgICAgIHJlbmRlcktleTogdXRpbF8xLmdldFJlbmRlcktleShpbnN0YW5jZS5rZXkpLFxuICAgICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgICAgICBoYXNDaGlsZHJlbjogISFjaGlsZHJlbi5sZW5ndGgsXG4gICAgICAgICAgICBpbmFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICBpc0ZyYWdtZW50OiBmYWxzZSAvLyBUT0RPOiBDaGVjayB3aGF0IGlzIGl0IGZvci5cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGFwaS52aXNpdENvbXBvbmVudFRyZWUoaW5zdGFuY2UsIHRyZWVOb2RlLCBmaWx0ZXIsIChfYyA9IGFwcFJlY29yZCA9PT0gbnVsbCB8fCBhcHBSZWNvcmQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFwcFJlY29yZC5vcHRpb25zKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuYXBwKTtcbiAgICB9XG4gICAgLy8gaW5zdGFuY2UuX3VpZCBpcyBub3QgcmVsaWFibGUgaW4gZGV2dG9vbHMgYXMgdGhlcmVcbiAgICAvLyBtYXkgYmUgMiByb290cyB3aXRoIHNhbWUgX3VpZCB3aGljaCBjYXVzZXMgdW5leHBlY3RlZFxuICAgIC8vIGJlaGF2aW91clxuICAgIGluc3RhbmNlLl9fVlVFX0RFVlRPT0xTX1VJRF9fID0gdXRpbF8xLmdldFVuaXF1ZUlkKGluc3RhbmNlKTtcbiAgICAvLyBEZWR1cGVcbiAgICBpZiAoY2FwdHVyZUlkcy5oYXMoaW5zdGFuY2UuX19WVUVfREVWVE9PTFNfVUlEX18pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNhcHR1cmVJZHMuc2V0KGluc3RhbmNlLl9fVlVFX0RFVlRPT0xTX1VJRF9fLCB1bmRlZmluZWQpO1xuICAgIH1cbiAgICBtYXJrKGluc3RhbmNlKTtcbiAgICBjb25zdCBuYW1lID0gdXRpbF8xLmdldEluc3RhbmNlTmFtZShpbnN0YW5jZSk7XG4gICAgY29uc3QgY2hpbGRyZW4gPSAoYXdhaXQgUHJvbWlzZS5hbGwoKGF3YWl0IGdldEludGVybmFsSW5zdGFuY2VDaGlsZHJlbihpbnN0YW5jZSkpXG4gICAgICAgIC5maWx0ZXIoY2hpbGQgPT4gIXV0aWxfMS5pc0JlaW5nRGVzdHJveWVkKGNoaWxkKSlcbiAgICAgICAgLm1hcChjYXB0dXJlKSkpLmZpbHRlcihCb29sZWFuKTtcbiAgICBjb25zdCByZXQgPSB7XG4gICAgICAgIHVpZDogaW5zdGFuY2UuX3VpZCxcbiAgICAgICAgaWQ6IGluc3RhbmNlLl9fVlVFX0RFVlRPT0xTX1VJRF9fLFxuICAgICAgICBuYW1lLFxuICAgICAgICByZW5kZXJLZXk6IHV0aWxfMS5nZXRSZW5kZXJLZXkoaW5zdGFuY2UuJHZub2RlID8gaW5zdGFuY2UuJHZub2RlLmtleSA6IG51bGwpLFxuICAgICAgICBpbmFjdGl2ZTogISFpbnN0YW5jZS5faW5hY3RpdmUsXG4gICAgICAgIGlzRnJhZ21lbnQ6ICEhaW5zdGFuY2UuX2lzRnJhZ21lbnQsXG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICBoYXNDaGlsZHJlbjogISFjaGlsZHJlbi5sZW5ndGgsXG4gICAgICAgIHRhZ3M6IFtdLFxuICAgICAgICBtZXRhOiB7fVxuICAgIH07XG4gICAgaWYgKGluc3RhbmNlLl92bm9kZSAmJiBpbnN0YW5jZS5fdm5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3Qgdm5vZGVDaGlsZHJlbiA9IGF3YWl0IFByb21pc2UuYWxsKGZsYXR0ZW4oaW5zdGFuY2UuX3Zub2RlLmNoaWxkcmVuLm1hcChjYXB0dXJlQ2hpbGQpKSk7XG4gICAgICAgIHJldC5jaGlsZHJlbiA9IHJldC5jaGlsZHJlbi5jb25jYXQoZmxhdHRlbih2bm9kZUNoaWxkcmVuKS5maWx0ZXIoQm9vbGVhbikpO1xuICAgICAgICByZXQuaGFzQ2hpbGRyZW4gPSAhIXJldC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgfVxuICAgIC8vIGVuc3VyZSBjb3JyZWN0IG9yZGVyaW5nXG4gICAgY29uc3Qgcm9vdEVsZW1lbnRzID0gZWxfMS5nZXRSb290RWxlbWVudHNGcm9tQ29tcG9uZW50SW5zdGFuY2UoaW5zdGFuY2UpO1xuICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IHJvb3RFbGVtZW50c1swXTtcbiAgICBpZiAoZmlyc3RFbGVtZW50ID09PSBudWxsIHx8IGZpcnN0RWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmlyc3RFbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgcGFyZW50SW5zdGFuY2UgPSBpbnN0YW5jZS4kcGFyZW50O1xuICAgICAgICBjb25zdCBwYXJlbnRSb290RWxlbWVudHMgPSBwYXJlbnRJbnN0YW5jZSA/IGVsXzEuZ2V0Um9vdEVsZW1lbnRzRnJvbUNvbXBvbmVudEluc3RhbmNlKHBhcmVudEluc3RhbmNlKSA6IFtdO1xuICAgICAgICBsZXQgZWwgPSBmaXJzdEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGluZGV4TGlzdCA9IFtdO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgICBpbmRleExpc3QucHVzaChBcnJheS5mcm9tKGVsLnBhcmVudEVsZW1lbnQuY2hpbGROb2RlcykuaW5kZXhPZihlbCkpO1xuICAgICAgICAgICAgZWwgPSBlbC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB9IHdoaWxlIChlbC5wYXJlbnRFbGVtZW50ICYmIHBhcmVudFJvb3RFbGVtZW50cy5sZW5ndGggJiYgIXBhcmVudFJvb3RFbGVtZW50cy5pbmNsdWRlcyhlbCkpO1xuICAgICAgICByZXQuZG9tT3JkZXIgPSBpbmRleExpc3QucmV2ZXJzZSgpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0LmRvbU9yZGVyID0gWy0xXTtcbiAgICB9XG4gICAgLy8gY2hlY2sgaWYgaW5zdGFuY2UgaXMgYXZhaWxhYmxlIGluIGNvbnNvbGVcbiAgICBjb25zdCBjb25zb2xlSWQgPSBjb25zb2xlQm91bmRJbnN0YW5jZXMuaW5kZXhPZihpbnN0YW5jZS5fX1ZVRV9ERVZUT09MU19VSURfXyk7XG4gICAgcmV0LmNvbnNvbGVJZCA9IGNvbnNvbGVJZCA+IC0xID8gJyR2bScgKyBjb25zb2xlSWQgOiBudWxsO1xuICAgIC8vIGNoZWNrIHJvdXRlciB2aWV3XG4gICAgY29uc3QgaXNSb3V0ZXJWaWV3MiA9IGluc3RhbmNlLiR2bm9kZSAmJiBpbnN0YW5jZS4kdm5vZGUuZGF0YS5yb3V0ZXJWaWV3O1xuICAgIGlmIChpbnN0YW5jZS5fcm91dGVyVmlldyB8fCBpc1JvdXRlclZpZXcyKSB7XG4gICAgICAgIHJldC5pc1JvdXRlclZpZXcgPSB0cnVlO1xuICAgICAgICBpZiAoIWluc3RhbmNlLl9pbmFjdGl2ZSAmJiBpbnN0YW5jZS4kcm91dGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZWQgPSBpbnN0YW5jZS4kcm91dGUubWF0Y2hlZDtcbiAgICAgICAgICAgIGNvbnN0IGRlcHRoID0gaXNSb3V0ZXJWaWV3MlxuICAgICAgICAgICAgICAgID8gaW5zdGFuY2UuJHZub2RlLmRhdGEucm91dGVyVmlld0RlcHRoXG4gICAgICAgICAgICAgICAgOiBpbnN0YW5jZS5fcm91dGVyVmlldy5kZXB0aDtcbiAgICAgICAgICAgIHJldC5tZXRhLm1hdGNoZWRSb3V0ZVNlZ21lbnQgPVxuICAgICAgICAgICAgICAgIG1hdGNoZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZFtkZXB0aF0gJiZcbiAgICAgICAgICAgICAgICAgICAgKGlzUm91dGVyVmlldzIgPyBtYXRjaGVkW2RlcHRoXS5wYXRoIDogbWF0Y2hlZFtkZXB0aF0uaGFuZGxlci5wYXRoKTtcbiAgICAgICAgfVxuICAgICAgICByZXQudGFncy5wdXNoKHtcbiAgICAgICAgICAgIGxhYmVsOiBgcm91dGVyLXZpZXcke3JldC5tZXRhLm1hdGNoZWRSb3V0ZVNlZ21lbnQgPyBgOiAke3JldC5tZXRhLm1hdGNoZWRSb3V0ZVNlZ21lbnR9YCA6ICcnfWAsXG4gICAgICAgICAgICB0ZXh0Q29sb3I6IDB4MDAwMDAwLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAweGZmODM0NFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGFwaS52aXNpdENvbXBvbmVudFRyZWUoaW5zdGFuY2UsIHJldCwgZmlsdGVyLCAoX2QgPSBhcHBSZWNvcmQgPT09IG51bGwgfHwgYXBwUmVjb3JkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhcHBSZWNvcmQub3B0aW9ucykgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmFwcCk7XG59XG4vKipcbiAqIE1hcmsgYW4gaW5zdGFuY2UgYXMgY2FwdHVyZWQgYW5kIHN0b3JlIGl0IGluIHRoZSBpbnN0YW5jZSBtYXAuXG4gKlxuICogQHBhcmFtIHtWdWV9IGluc3RhbmNlXG4gKi9cbmZ1bmN0aW9uIG1hcmsoaW5zdGFuY2UpIHtcbiAgICBjb25zdCByZWZJZCA9IGluc3RhbmNlLl9fVlVFX0RFVlRPT0xTX1VJRF9fO1xuICAgIGlmICghZXhwb3J0cy5pbnN0YW5jZU1hcC5oYXMocmVmSWQpKSB7XG4gICAgICAgIGV4cG9ydHMuaW5zdGFuY2VNYXAuc2V0KHJlZklkLCBpbnN0YW5jZSk7XG4gICAgICAgIGFwcFJlY29yZC5pbnN0YW5jZU1hcC5zZXQocmVmSWQsIGluc3RhbmNlKTtcbiAgICAgICAgaW5zdGFuY2UuJG9uKCdob29rOmJlZm9yZURlc3Ryb3knLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBleHBvcnRzLmluc3RhbmNlTWFwLmRlbGV0ZShyZWZJZCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG1hcmtGdW5jdGlvbmFsKGlkLCB2bm9kZSkge1xuICAgIGNvbnN0IHJlZklkID0gdm5vZGUuZm5Db250ZXh0Ll9fVlVFX0RFVlRPT0xTX1VJRF9fO1xuICAgIGlmICghZXhwb3J0cy5mdW5jdGlvbmFsVm5vZGVNYXAuaGFzKHJlZklkKSkge1xuICAgICAgICBleHBvcnRzLmZ1bmN0aW9uYWxWbm9kZU1hcC5zZXQocmVmSWQsIHt9KTtcbiAgICAgICAgdm5vZGUuZm5Db250ZXh0LiRvbignaG9vazpiZWZvcmVEZXN0cm95JywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZXhwb3J0cy5mdW5jdGlvbmFsVm5vZGVNYXAuZGVsZXRlKHJlZklkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGV4cG9ydHMuZnVuY3Rpb25hbFZub2RlTWFwLmdldChyZWZJZClbaWRdID0gdm5vZGU7XG4gICAgYXBwUmVjb3JkLmluc3RhbmNlTWFwLnNldChpZCwge1xuICAgICAgICBfX1ZVRV9ERVZUT09MU19VSURfXzogaWQsXG4gICAgICAgIF9fVlVFX0RFVlRPT0xTX0ZVTkNUSU9OQUxfTEVHQUNZX186IHRydWUsXG4gICAgICAgIHZub2RlXG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmVlLmpzLm1hcCJdLCJuYW1lcyI6WyJjb25zdCIsImxldCIsImNoaWxkcmVuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///79153\n");
373
373
 
374
374
  /***/ }),
375
375
 
@@ -433,7 +433,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
433
433
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
434
434
 
435
435
  "use strict";
436
- eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ComponentWalker = void 0;\nvar util_1 = __webpack_require__(75453);\nvar filter_1 = __webpack_require__(31954);\nvar el_1 = __webpack_require__(65191);\nvar ComponentWalker = function ComponentWalker(maxDepth, filter, ctx) {\n this.ctx = ctx;\n this.maxDepth = maxDepth;\n this.componentFilter = new filter_1.ComponentFilter(filter);\n};\nComponentWalker.prototype.getComponentTree = function getComponentTree (instance) {\n this.captureIds = new Map();\n return this.findQualifiedChildren(instance, 0);\n};\nComponentWalker.prototype.getComponentParents = function getComponentParents (instance) {\n this.captureIds = new Map();\n var parents = [];\n this.captureId(instance);\n var parent = instance;\n while ((parent = parent.parent)) {\n this.captureId(parent);\n parents.push(parent);\n }\n return parents;\n};\n/**\n * Find qualified children from a single instance.\n * If the instance itself is qualified, just return itself.\n * This is ok because [].concat works in both cases.\n *\n * @param {Vue|Vnode} instance\n * @return {Vue|Array}\n */\nComponentWalker.prototype.findQualifiedChildren = async function findQualifiedChildren (instance, depth) {\n var _a;\n if (this.componentFilter.isQualified(instance) && !((_a = instance.type.devtools) === null || _a === void 0 ? void 0 : _a.hide)) {\n return [await this.capture(instance, null, depth)];\n }\n else if (instance.subTree) {\n // TODO functional components\n return this.findQualifiedChildrenFromList(this.getInternalInstanceChildren(instance.subTree), depth);\n }\n else {\n return [];\n }\n};\n/**\n * Iterate through an array of instances and flatten it into\n * an array of qualified instances. This is a depth-first\n * traversal - e.g. if an instance is not matched, we will\n * recursively go deeper until a qualified child is found.\n *\n * @param {Array} instances\n * @return {Array}\n */\nComponentWalker.prototype.findQualifiedChildrenFromList = async function findQualifiedChildrenFromList (instances, depth) {\n var this$1 = this;\n\n instances = instances\n .filter(function (child) { var _a; return !util_1.isBeingDestroyed(child) && !((_a = child.type.devtools) === null || _a === void 0 ? void 0 : _a.hide); });\n if (!this.componentFilter.filter) {\n return Promise.all(instances.map(function (child, index, list) { return this$1.capture(child, list, depth); }));\n }\n else {\n return Array.prototype.concat.apply([], await Promise.all(instances.map(function (i) { return this$1.findQualifiedChildren(i, depth); })));\n }\n};\n/**\n * Get children from a component instance.\n */\nComponentWalker.prototype.getInternalInstanceChildren = function getInternalInstanceChildren (subTree) {\n var this$1 = this;\n\n var list = [];\n if (subTree.component) {\n list.push(subTree.component);\n }\n if (subTree.suspense) {\n list.push.apply(list, this.getInternalInstanceChildren(subTree.suspense.activeBranch));\n }\n if (Array.isArray(subTree.children)) {\n subTree.children.forEach(function (childSubTree) {\n if (childSubTree.component) {\n list.push(childSubTree.component);\n }\n else {\n list.push.apply(list, this$1.getInternalInstanceChildren(childSubTree));\n }\n });\n }\n return list.filter(function (child) { var _a; return !util_1.isBeingDestroyed(child) && !((_a = child.type.devtools) === null || _a === void 0 ? void 0 : _a.hide); });\n};\nComponentWalker.prototype.captureId = function captureId (instance) {\n // instance.uid is not reliable in devtools as there\n // may be 2 roots with same uid which causes unexpected\n // behaviour\n var id = instance.__VUE_DEVTOOLS_UID__ != null ? instance.__VUE_DEVTOOLS_UID__ : util_1.getUniqueComponentId(instance, this.ctx);\n instance.__VUE_DEVTOOLS_UID__ = id;\n // Dedupe\n if (this.captureIds.has(id)) {\n return;\n }\n else {\n this.captureIds.set(id, undefined);\n }\n this.mark(instance);\n return id;\n};\n/**\n * Capture the meta information of an instance. (recursive)\n *\n * @param {Vue} instance\n * @return {Object}\n */\nComponentWalker.prototype.capture = async function capture (instance, list, depth) {\n var this$1 = this;\n\n var id = this.captureId(instance);\n var name = util_1.getInstanceName(instance);\n var children = this.getInternalInstanceChildren(instance.subTree)\n .filter(function (child) { return !util_1.isBeingDestroyed(child); });\n var treeNode = {\n uid: instance.uid,\n id: id,\n name: name,\n renderKey: util_1.getRenderKey(instance.vnode ? instance.vnode.key : null),\n inactive: !!instance.isDeactivated,\n hasChildren: !!children.length,\n children: [],\n isFragment: util_1.isFragment(instance),\n tags: []\n };\n // capture children\n if (depth < this.maxDepth) {\n treeNode.children = await Promise.all(children\n .map(function (child, index, list) { return this$1.capture(child, list, depth + 1); })\n .filter(Boolean));\n }\n // keep-alive\n if (instance.type.__isKeepAlive && instance.__v_cache) {\n var cachedComponents = Array.from(instance.__v_cache.values()).map(function (vnode) { return vnode.component; }).filter(Boolean);\n for (var child of cachedComponents) {\n if (!children.includes(child)) {\n var node = await this.capture(child, null, depth + 1);\n if (node) {\n node.inactive = true;\n treeNode.children.push(node);\n }\n }\n }\n }\n // ensure correct ordering\n var rootElements = el_1.getRootElementsFromComponentInstance(instance);\n var firstElement = rootElements[0];\n if (firstElement === null || firstElement === void 0 ? void 0 : firstElement.parentElement) {\n treeNode.indexInParent = Array.from(firstElement.parentElement.childNodes).indexOf(firstElement);\n }\n else {\n treeNode.indexInParent = -1;\n }\n if (instance.suspense) {\n treeNode.tags.push({\n label: 's',\n backgroundColor: 0x7d7dd7,\n textColor: 0xffffff,\n tooltip: 'Suspense'\n });\n }\n return this.ctx.api.visitComponentTree(instance, treeNode, this.componentFilter.filter, this.ctx.currentAppRecord.options.app);\n};\n/**\n * Mark an instance as captured and store it in the instance map.\n *\n * @param {Vue} instance\n */\nComponentWalker.prototype.mark = function mark (instance) {\n var instanceMap = this.ctx.currentAppRecord.instanceMap;\n if (!instanceMap.has(instance.__VUE_DEVTOOLS_UID__)) {\n instanceMap.set(instance.__VUE_DEVTOOLS_UID__, instance);\n }\n};\nexports.ComponentWalker = ComponentWalker;\n//# sourceMappingURL=tree.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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WSxRQUFRLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLElBQVEsQ0FBQztBQUNULElBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFO0FBQy9CLFFBQVksUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDL0IsWUFBZ0IsS0FBSyxFQUFFLEdBQUc7QUFDMUIsWUFBZ0IsZUFBZSxFQUFFLFFBQVE7QUFDekMsWUFBZ0IsU0FBUyxFQUFFLFFBQVE7QUFDbkMsWUFBZ0IsT0FBTyxFQUFFLFVBQVU7QUFDbkMsUUFBWSxDQUFDLENBQUMsQ0FBQztBQUNmLElBQVEsQ0FBQztBQUNULElBQVEsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25JLEVBQUM7QUFDRDtBQUNKLENBQUs7QUFDTCxDQUFLO0FBQ0wsQ0FBSztBQUNMLENBQUs7MEJBQ0QscUJBQUksQ0FBQyxRQUFRLEVBQUU7QUFDbkIsSUFBUUEsR0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztBQUNsRSxJQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO0FBQzdELFFBQVksV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDckUsSUFBUSxDQUFDO0FBQ0wsRUFDSDtBQUNELHVCQUF1QixHQUFHLGVBQWUsQ0FBQztBQUMxQyIsInNvdXJjZXMiOlsid2VicGFjazovL0B2dWUvZGV2dG9vbHMvLi4vYXBwLWJhY2tlbmQtdnVlMy9saWIvY29tcG9uZW50cy90cmVlLmpzPzNmZTEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNvbXBvbmVudFdhbGtlciA9IHZvaWQgMDtcbmNvbnN0IHV0aWxfMSA9IHJlcXVpcmUoXCIuL3V0aWxcIik7XG5jb25zdCBmaWx0ZXJfMSA9IHJlcXVpcmUoXCIuL2ZpbHRlclwiKTtcbmNvbnN0IGVsXzEgPSByZXF1aXJlKFwiLi9lbFwiKTtcbmNsYXNzIENvbXBvbmVudFdhbGtlciB7XG4gICAgY29uc3RydWN0b3IobWF4RGVwdGgsIGZpbHRlciwgY3R4KSB7XG4gICAgICAgIHRoaXMuY3R4ID0gY3R4O1xuICAgICAgICB0aGlzLm1heERlcHRoID0gbWF4RGVwdGg7XG4gICAgICAgIHRoaXMuY29tcG9uZW50RmlsdGVyID0gbmV3IGZpbHRlcl8xLkNvbXBvbmVudEZpbHRlcihmaWx0ZXIpO1xuICAgIH1cbiAgICBnZXRDb21wb25lbnRUcmVlKGluc3RhbmNlKSB7XG4gICAgICAgIHRoaXMuY2FwdHVyZUlkcyA9IG5ldyBNYXAoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZFF1YWxpZmllZENoaWxkcmVuKGluc3RhbmNlLCAwKTtcbiAgICB9XG4gICAgZ2V0Q29tcG9uZW50UGFyZW50cyhpbnN0YW5jZSkge1xuICAgICAgICB0aGlzLmNhcHR1cmVJZHMgPSBuZXcgTWFwKCk7XG4gICAgICAgIGNvbnN0IHBhcmVudHMgPSBbXTtcbiAgICAgICAgdGhpcy5jYXB0dXJlSWQoaW5zdGFuY2UpO1xuICAgICAgICBsZXQgcGFyZW50ID0gaW5zdGFuY2U7XG4gICAgICAgIHdoaWxlICgocGFyZW50ID0gcGFyZW50LnBhcmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2FwdHVyZUlkKHBhcmVudCk7XG4gICAgICAgICAgICBwYXJlbnRzLnB1c2gocGFyZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyZW50cztcbiAgICB9XG4gICAgLyoqXG4gICAgICogRmluZCBxdWFsaWZpZWQgY2hpbGRyZW4gZnJvbSBhIHNpbmdsZSBpbnN0YW5jZS5cbiAgICAgKiBJZiB0aGUgaW5zdGFuY2UgaXRzZWxmIGlzIHF1YWxpZmllZCwganVzdCByZXR1cm4gaXRzZWxmLlxuICAgICAqIFRoaXMgaXMgb2sgYmVjYXVzZSBbXS5jb25jYXQgd29ya3MgaW4gYm90aCBjYXNlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7VnVlfFZub2RlfSBpbnN0YW5jZVxuICAgICAqIEByZXR1cm4ge1Z1ZXxBcnJheX1cbiAgICAgKi9cbiAgICBhc3luYyBmaW5kUXVhbGlmaWVkQ2hpbGRyZW4oaW5zdGFuY2UsIGRlcHRoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50RmlsdGVyLmlzUXVhbGlmaWVkKGluc3RhbmNlKSAmJiAhKChfYSA9IGluc3RhbmNlLnR5cGUuZGV2dG9vbHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5oaWRlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFthd2FpdCB0aGlzLmNhcHR1cmUoaW5zdGFuY2UsIG51bGwsIGRlcHRoKV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaW5zdGFuY2Uuc3ViVHJlZSkge1xuICAgICAgICAgICAgLy8gVE9ETyBmdW5jdGlvbmFsIGNvbXBvbmVudHNcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRRdWFsaWZpZWRDaGlsZHJlbkZyb21MaXN0KHRoaXMuZ2V0SW50ZXJuYWxJbnN0YW5jZUNoaWxkcmVuKGluc3RhbmNlLnN1YlRyZWUpLCBkZXB0aCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogSXRlcmF0ZSB0aHJvdWdoIGFuIGFycmF5IG9mIGluc3RhbmNlcyBhbmQgZmxhdHRlbiBpdCBpbnRvXG4gICAgICogYW4gYXJyYXkgb2YgcXVhbGlmaWVkIGluc3RhbmNlcy4gVGhpcyBpcyBhIGRlcHRoLWZpcnN0XG4gICAgICogdHJhdmVyc2FsIC0gZS5nLiBpZiBhbiBpbnN0YW5jZSBpcyBub3QgbWF0Y2hlZCwgd2Ugd2lsbFxuICAgICAqIHJlY3Vyc2l2ZWx5IGdvIGRlZXBlciB1bnRpbCBhIHF1YWxpZmllZCBjaGlsZCBpcyBmb3VuZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGluc3RhbmNlc1xuICAgICAqIEByZXR1cm4ge0FycmF5fVxuICAgICAqL1xuICAgIGFzeW5jIGZpbmRRdWFsaWZpZWRDaGlsZHJlbkZyb21MaXN0KGluc3RhbmNlcywgZGVwdGgpIHtcbiAgICAgICAgaW5zdGFuY2VzID0gaW5zdGFuY2VzXG4gICAgICAgICAgICAuZmlsdGVyKGNoaWxkID0+IHsgdmFyIF9hOyByZXR1cm4gIXV0aWxfMS5pc0JlaW5nRGVzdHJveWVkKGNoaWxkKSAmJiAhKChfYSA9IGNoaWxkLnR5cGUuZGV2dG9vbHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5oaWRlKTsgfSk7XG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnRGaWx0ZXIuZmlsdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoaW5zdGFuY2VzLm1hcCgoY2hpbGQsIGluZGV4LCBsaXN0KSA9PiB0aGlzLmNhcHR1cmUoY2hpbGQsIGxpc3QsIGRlcHRoKSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sIGF3YWl0IFByb21pc2UuYWxsKGluc3RhbmNlcy5tYXAoaSA9PiB0aGlzLmZpbmRRdWFsaWZpZWRDaGlsZHJlbihpLCBkZXB0aCkpKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0IGNoaWxkcmVuIGZyb20gYSBjb21wb25lbnQgaW5zdGFuY2UuXG4gICAgICovXG4gICAgZ2V0SW50ZXJuYWxJbnN0YW5jZUNoaWxkcmVuKHN1YlRyZWUpIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IFtdO1xuICAgICAgICBpZiAoc3ViVHJlZS5jb21wb25lbnQpIHtcbiAgICAgICAgICAgIGxpc3QucHVzaChzdWJUcmVlLmNvbXBvbmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN1YlRyZWUuc3VzcGVuc2UpIHtcbiAgICAgICAgICAgIGxpc3QucHVzaCguLi50aGlzLmdldEludGVybmFsSW5zdGFuY2VDaGlsZHJlbihzdWJUcmVlLnN1c3BlbnNlLmFjdGl2ZUJyYW5jaCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHN1YlRyZWUuY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICBzdWJUcmVlLmNoaWxkcmVuLmZvckVhY2goY2hpbGRTdWJUcmVlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRTdWJUcmVlLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LnB1c2goY2hpbGRTdWJUcmVlLmNvbXBvbmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LnB1c2goLi4udGhpcy5nZXRJbnRlcm5hbEluc3RhbmNlQ2hpbGRyZW4oY2hpbGRTdWJUcmVlKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpc3QuZmlsdGVyKGNoaWxkID0+IHsgdmFyIF9hOyByZXR1cm4gIXV0aWxfMS5pc0JlaW5nRGVzdHJveWVkKGNoaWxkKSAmJiAhKChfYSA9IGNoaWxkLnR5cGUuZGV2dG9vbHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5oaWRlKTsgfSk7XG4gICAgfVxuICAgIGNhcHR1cmVJZChpbnN0YW5jZSkge1xuICAgICAgICAvLyBpbnN0YW5jZS51aWQgaXMgbm90IHJlbGlhYmxlIGluIGRldnRvb2xzIGFzIHRoZXJlXG4gICAgICAgIC8vIG1heSBiZSAyIHJvb3RzIHdpdGggc2FtZSB1aWQgd2hpY2ggY2F1c2VzIHVuZXhwZWN0ZWRcbiAgICAgICAgLy8gYmVoYXZpb3VyXG4gICAgICAgIGNvbnN0IGlkID0gaW5zdGFuY2UuX19WVUVfREVWVE9PTFNfVUlEX18gIT0gbnVsbCA/IGluc3RhbmNlLl9fVlVFX0RFVlRPT0xTX1VJRF9fIDogdXRpbF8xLmdldFVuaXF1ZUNvbXBvbmVudElkKGluc3RhbmNlLCB0aGlzLmN0eCk7XG4gICAgICAgIGluc3RhbmNlLl9fVlVFX0RFVlRPT0xTX1VJRF9fID0gaWQ7XG4gICAgICAgIC8vIERlZHVwZVxuICAgICAgICBpZiAodGhpcy5jYXB0dXJlSWRzLmhhcyhpZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2FwdHVyZUlkcy5zZXQoaWQsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tYXJrKGluc3RhbmNlKTtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYXB0dXJlIHRoZSBtZXRhIGluZm9ybWF0aW9uIG9mIGFuIGluc3RhbmNlLiAocmVjdXJzaXZlKVxuICAgICAqXG4gICAgICogQHBhcmFtIHtWdWV9IGluc3RhbmNlXG4gICAgICogQHJldHVybiB7T2JqZWN0fVxuICAgICAqL1xuICAgIGFzeW5jIGNhcHR1cmUoaW5zdGFuY2UsIGxpc3QsIGRlcHRoKSB7XG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5jYXB0dXJlSWQoaW5zdGFuY2UpO1xuICAgICAgICBjb25zdCBuYW1lID0gdXRpbF8xLmdldEluc3RhbmNlTmFtZShpbnN0YW5jZSk7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5nZXRJbnRlcm5hbEluc3RhbmNlQ2hpbGRyZW4oaW5zdGFuY2Uuc3ViVHJlZSlcbiAgICAgICAgICAgIC5maWx0ZXIoY2hpbGQgPT4gIXV0aWxfMS5pc0JlaW5nRGVzdHJveWVkKGNoaWxkKSk7XG4gICAgICAgIGNvbnN0IHRyZWVOb2RlID0ge1xuICAgICAgICAgICAgdWlkOiBpbnN0YW5jZS51aWQsXG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICByZW5kZXJLZXk6IHV0aWxfMS5nZXRSZW5kZXJLZXkoaW5zdGFuY2Uudm5vZGUgPyBpbnN0YW5jZS52bm9kZS5rZXkgOiBudWxsKSxcbiAgICAgICAgICAgIGluYWN0aXZlOiAhIWluc3RhbmNlLmlzRGVhY3RpdmF0ZWQsXG4gICAgICAgICAgICBoYXNDaGlsZHJlbjogISFjaGlsZHJlbi5sZW5ndGgsXG4gICAgICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgICAgICBpc0ZyYWdtZW50OiB1dGlsXzEuaXNGcmFnbWVudChpbnN0YW5jZSksXG4gICAgICAgICAgICB0YWdzOiBbXVxuICAgICAgICB9O1xuICAgICAgICAvLyBjYXB0dXJlIGNoaWxkcmVuXG4gICAgICAgIGlmIChkZXB0aCA8IHRoaXMubWF4RGVwdGgpIHtcbiAgICAgICAgICAgIHRyZWVOb2RlLmNoaWxkcmVuID0gYXdhaXQgUHJvbWlzZS5hbGwoY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAubWFwKChjaGlsZCwgaW5kZXgsIGxpc3QpID0+IHRoaXMuY2FwdHVyZShjaGlsZCwgbGlzdCwgZGVwdGggKyAxKSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBrZWVwLWFsaXZlXG4gICAgICAgIGlmIChpbnN0YW5jZS50eXBlLl9faXNLZWVwQWxpdmUgJiYgaW5zdGFuY2UuX192X2NhY2hlKSB7XG4gICAgICAgICAgICBjb25zdCBjYWNoZWRDb21wb25lbnRzID0gQXJyYXkuZnJvbShpbnN0YW5jZS5fX3ZfY2FjaGUudmFsdWVzKCkpLm1hcCgodm5vZGUpID0+IHZub2RlLmNvbXBvbmVudCkuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjYWNoZWRDb21wb25lbnRzKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFjaGlsZHJlbi5pbmNsdWRlcyhjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGF3YWl0IHRoaXMuY2FwdHVyZShjaGlsZCwgbnVsbCwgZGVwdGggKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuaW5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZU5vZGUuY2hpbGRyZW4ucHVzaChub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBlbnN1cmUgY29ycmVjdCBvcmRlcmluZ1xuICAgICAgICBjb25zdCByb290RWxlbWVudHMgPSBlbF8xLmdldFJvb3RFbGVtZW50c0Zyb21Db21wb25lbnRJbnN0YW5jZShpbnN0YW5jZSk7XG4gICAgICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IHJvb3RFbGVtZW50c1swXTtcbiAgICAgICAgaWYgKGZpcnN0RWxlbWVudCA9PT0gbnVsbCB8fCBmaXJzdEVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpcnN0RWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICB0cmVlTm9kZS5pbmRleEluUGFyZW50ID0gQXJyYXkuZnJvbShmaXJzdEVsZW1lbnQucGFyZW50RWxlbWVudC5jaGlsZE5vZGVzKS5pbmRleE9mKGZpcnN0RWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0cmVlTm9kZS5pbmRleEluUGFyZW50ID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluc3RhbmNlLnN1c3BlbnNlKSB7XG4gICAgICAgICAgICB0cmVlTm9kZS50YWdzLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsOiAncycsXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAweDdkN2RkNyxcbiAgICAgICAgICAgICAgICB0ZXh0Q29sb3I6IDB4ZmZmZmZmLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdTdXNwZW5zZSdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmN0eC5hcGkudmlzaXRDb21wb25lbnRUcmVlKGluc3RhbmNlLCB0cmVlTm9kZSwgdGhpcy5jb21wb25lbnRGaWx0ZXIuZmlsdGVyLCB0aGlzLmN0eC5jdXJyZW50QXBwUmVjb3JkLm9wdGlvbnMuYXBwKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWFyayBhbiBpbnN0YW5jZSBhcyBjYXB0dXJlZCBhbmQgc3RvcmUgaXQgaW4gdGhlIGluc3RhbmNlIG1hcC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7VnVlfSBpbnN0YW5jZVxuICAgICAqL1xuICAgIG1hcmsoaW5zdGFuY2UpIHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2VNYXAgPSB0aGlzLmN0eC5jdXJyZW50QXBwUmVjb3JkLmluc3RhbmNlTWFwO1xuICAgICAgICBpZiAoIWluc3RhbmNlTWFwLmhhcyhpbnN0YW5jZS5fX1ZVRV9ERVZUT09MU19VSURfXykpIHtcbiAgICAgICAgICAgIGluc3RhbmNlTWFwLnNldChpbnN0YW5jZS5fX1ZVRV9ERVZUT09MU19VSURfXywgaW5zdGFuY2UpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Db21wb25lbnRXYWxrZXIgPSBDb21wb25lbnRXYWxrZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmVlLmpzLm1hcCJdLCJuYW1lcyI6WyJjb25zdCIsImxldCIsInRoaXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20750\n");
436
+ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ComponentWalker = void 0;\nvar util_1 = __webpack_require__(75453);\nvar filter_1 = __webpack_require__(31954);\nvar el_1 = __webpack_require__(65191);\nvar ComponentWalker = function ComponentWalker(maxDepth, filter, ctx) {\n this.ctx = ctx;\n this.maxDepth = maxDepth;\n this.componentFilter = new filter_1.ComponentFilter(filter);\n};\nComponentWalker.prototype.getComponentTree = function getComponentTree (instance) {\n this.captureIds = new Map();\n return this.findQualifiedChildren(instance, 0);\n};\nComponentWalker.prototype.getComponentParents = function getComponentParents (instance) {\n this.captureIds = new Map();\n var parents = [];\n this.captureId(instance);\n var parent = instance;\n while ((parent = parent.parent)) {\n this.captureId(parent);\n parents.push(parent);\n }\n return parents;\n};\n/**\n * Find qualified children from a single instance.\n * If the instance itself is qualified, just return itself.\n * This is ok because [].concat works in both cases.\n *\n * @param {Vue|Vnode} instance\n * @return {Vue|Array}\n */\nComponentWalker.prototype.findQualifiedChildren = async function findQualifiedChildren (instance, depth) {\n var _a;\n if (this.componentFilter.isQualified(instance) && !((_a = instance.type.devtools) === null || _a === void 0 ? void 0 : _a.hide)) {\n return [await this.capture(instance, null, depth)];\n }\n else if (instance.subTree) {\n // TODO functional components\n return this.findQualifiedChildrenFromList(this.getInternalInstanceChildren(instance.subTree), depth);\n }\n else {\n return [];\n }\n};\n/**\n * Iterate through an array of instances and flatten it into\n * an array of qualified instances. This is a depth-first\n * traversal - e.g. if an instance is not matched, we will\n * recursively go deeper until a qualified child is found.\n *\n * @param {Array} instances\n * @return {Array}\n */\nComponentWalker.prototype.findQualifiedChildrenFromList = async function findQualifiedChildrenFromList (instances, depth) {\n var this$1 = this;\n\n instances = instances\n .filter(function (child) { var _a; return !util_1.isBeingDestroyed(child) && !((_a = child.type.devtools) === null || _a === void 0 ? void 0 : _a.hide); });\n if (!this.componentFilter.filter) {\n return Promise.all(instances.map(function (child, index, list) { return this$1.capture(child, list, depth); }));\n }\n else {\n return Array.prototype.concat.apply([], await Promise.all(instances.map(function (i) { return this$1.findQualifiedChildren(i, depth); })));\n }\n};\n/**\n * Get children from a component instance.\n */\nComponentWalker.prototype.getInternalInstanceChildren = function getInternalInstanceChildren (subTree) {\n var this$1 = this;\n\n var list = [];\n if (subTree.component) {\n list.push(subTree.component);\n }\n if (subTree.suspense) {\n list.push.apply(list, this.getInternalInstanceChildren(subTree.suspense.activeBranch));\n }\n if (Array.isArray(subTree.children)) {\n subTree.children.forEach(function (childSubTree) {\n if (childSubTree.component) {\n list.push(childSubTree.component);\n }\n else {\n list.push.apply(list, this$1.getInternalInstanceChildren(childSubTree));\n }\n });\n }\n return list.filter(function (child) { var _a; return !util_1.isBeingDestroyed(child) && !((_a = child.type.devtools) === null || _a === void 0 ? void 0 : _a.hide); });\n};\nComponentWalker.prototype.captureId = function captureId (instance) {\n // instance.uid is not reliable in devtools as there\n // may be 2 roots with same uid which causes unexpected\n // behaviour\n var id = instance.__VUE_DEVTOOLS_UID__ != null ? instance.__VUE_DEVTOOLS_UID__ : util_1.getUniqueComponentId(instance, this.ctx);\n instance.__VUE_DEVTOOLS_UID__ = id;\n // Dedupe\n if (this.captureIds.has(id)) {\n return;\n }\n else {\n this.captureIds.set(id, undefined);\n }\n this.mark(instance);\n return id;\n};\n/**\n * Capture the meta information of an instance. (recursive)\n *\n * @param {Vue} instance\n * @return {Object}\n */\nComponentWalker.prototype.capture = async function capture (instance, list, depth) {\n var this$1 = this;\n\n var id = this.captureId(instance);\n var name = util_1.getInstanceName(instance);\n var children = this.getInternalInstanceChildren(instance.subTree)\n .filter(function (child) { return !util_1.isBeingDestroyed(child); });\n var treeNode = {\n uid: instance.uid,\n id: id,\n name: name,\n renderKey: util_1.getRenderKey(instance.vnode ? instance.vnode.key : null),\n inactive: !!instance.isDeactivated,\n hasChildren: !!children.length,\n children: [],\n isFragment: util_1.isFragment(instance),\n tags: []\n };\n // capture children\n if (depth < this.maxDepth) {\n treeNode.children = await Promise.all(children\n .map(function (child, index, list) { return this$1.capture(child, list, depth + 1); })\n .filter(Boolean));\n }\n // keep-alive\n if (instance.type.__isKeepAlive && instance.__v_cache) {\n var cachedComponents = Array.from(instance.__v_cache.values()).map(function (vnode) { return vnode.component; }).filter(Boolean);\n for (var child of cachedComponents) {\n if (!children.includes(child)) {\n var node = await this.capture(child, null, depth + 1);\n if (node) {\n node.inactive = true;\n treeNode.children.push(node);\n }\n }\n }\n }\n // ensure correct ordering\n var rootElements = el_1.getRootElementsFromComponentInstance(instance);\n var firstElement = rootElements[0];\n if (firstElement === null || firstElement === void 0 ? void 0 : firstElement.parentElement) {\n var parentInstance = instance.parent;\n var parentRootElements = parentInstance ? el_1.getRootElementsFromComponentInstance(parentInstance) : [];\n var el = firstElement;\n var indexList = [];\n do {\n indexList.push(Array.from(el.parentElement.childNodes).indexOf(el));\n el = el.parentElement;\n } while (el.parentElement && parentRootElements.length && !parentRootElements.includes(el));\n treeNode.domOrder = indexList.reverse();\n }\n else {\n treeNode.domOrder = [-1];\n }\n if (instance.suspense) {\n treeNode.tags.push({\n label: 's',\n backgroundColor: 0x7d7dd7,\n textColor: 0xffffff,\n tooltip: 'Suspense'\n });\n }\n return this.ctx.api.visitComponentTree(instance, treeNode, this.componentFilter.filter, this.ctx.currentAppRecord.options.app);\n};\n/**\n * Mark an instance as captured and store it in the instance map.\n *\n * @param {Vue} instance\n */\nComponentWalker.prototype.mark = function mark (instance) {\n var instanceMap = this.ctx.currentAppRecord.instanceMap;\n if (!instanceMap.has(instance.__VUE_DEVTOOLS_UID__)) {\n instanceMap.set(instance.__VUE_DEVTOOLS_UID__, instance);\n }\n};\nexports.ComponentWalker = ComponentWalker;\n//# sourceMappingURL=tree.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUM7QUFDbkksRUFBQztBQUNEO0FBQ0osQ0FBSztBQUNMLENBQUs7QUFDTCxDQUFLO0FBQ0wsQ0FBSzswQkFDRCxxQkFBSSxDQUFDLFFBQVEsRUFBRTtBQUNuQixJQUFRQSxHQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO0FBQ2xFLElBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEVBQUU7QUFDN0QsUUFBWSxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNyRSxJQUFRLENBQUM7QUFDTCxFQUNIO0FBQ0QsdUJBQXVCLEdBQUcsZUFBZSxDQUFDO0FBQzFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHZ1ZS9kZXZ0b29scy8uLi9hcHAtYmFja2VuZC12dWUzL2xpYi9jb21wb25lbnRzL3RyZWUuanM/M2ZlMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29tcG9uZW50V2Fsa2VyID0gdm9pZCAwO1xuY29uc3QgdXRpbF8xID0gcmVxdWlyZShcIi4vdXRpbFwiKTtcbmNvbnN0IGZpbHRlcl8xID0gcmVxdWlyZShcIi4vZmlsdGVyXCIpO1xuY29uc3QgZWxfMSA9IHJlcXVpcmUoXCIuL2VsXCIpO1xuY2xhc3MgQ29tcG9uZW50V2Fsa2VyIHtcbiAgICBjb25zdHJ1Y3RvcihtYXhEZXB0aCwgZmlsdGVyLCBjdHgpIHtcbiAgICAgICAgdGhpcy5jdHggPSBjdHg7XG4gICAgICAgIHRoaXMubWF4RGVwdGggPSBtYXhEZXB0aDtcbiAgICAgICAgdGhpcy5jb21wb25lbnRGaWx0ZXIgPSBuZXcgZmlsdGVyXzEuQ29tcG9uZW50RmlsdGVyKGZpbHRlcik7XG4gICAgfVxuICAgIGdldENvbXBvbmVudFRyZWUoaW5zdGFuY2UpIHtcbiAgICAgICAgdGhpcy5jYXB0dXJlSWRzID0gbmV3IE1hcCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kUXVhbGlmaWVkQ2hpbGRyZW4oaW5zdGFuY2UsIDApO1xuICAgIH1cbiAgICBnZXRDb21wb25lbnRQYXJlbnRzKGluc3RhbmNlKSB7XG4gICAgICAgIHRoaXMuY2FwdHVyZUlkcyA9IG5ldyBNYXAoKTtcbiAgICAgICAgY29uc3QgcGFyZW50cyA9IFtdO1xuICAgICAgICB0aGlzLmNhcHR1cmVJZChpbnN0YW5jZSk7XG4gICAgICAgIGxldCBwYXJlbnQgPSBpbnN0YW5jZTtcbiAgICAgICAgd2hpbGUgKChwYXJlbnQgPSBwYXJlbnQucGFyZW50KSkge1xuICAgICAgICAgICAgdGhpcy5jYXB0dXJlSWQocGFyZW50KTtcbiAgICAgICAgICAgIHBhcmVudHMucHVzaChwYXJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJlbnRzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBGaW5kIHF1YWxpZmllZCBjaGlsZHJlbiBmcm9tIGEgc2luZ2xlIGluc3RhbmNlLlxuICAgICAqIElmIHRoZSBpbnN0YW5jZSBpdHNlbGYgaXMgcXVhbGlmaWVkLCBqdXN0IHJldHVybiBpdHNlbGYuXG4gICAgICogVGhpcyBpcyBvayBiZWNhdXNlIFtdLmNvbmNhdCB3b3JrcyBpbiBib3RoIGNhc2VzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtWdWV8Vm5vZGV9IGluc3RhbmNlXG4gICAgICogQHJldHVybiB7VnVlfEFycmF5fVxuICAgICAqL1xuICAgIGFzeW5jIGZpbmRRdWFsaWZpZWRDaGlsZHJlbihpbnN0YW5jZSwgZGVwdGgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRGaWx0ZXIuaXNRdWFsaWZpZWQoaW5zdGFuY2UpICYmICEoKF9hID0gaW5zdGFuY2UudHlwZS5kZXZ0b29scykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmhpZGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gW2F3YWl0IHRoaXMuY2FwdHVyZShpbnN0YW5jZSwgbnVsbCwgZGVwdGgpXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpbnN0YW5jZS5zdWJUcmVlKSB7XG4gICAgICAgICAgICAvLyBUT0RPIGZ1bmN0aW9uYWwgY29tcG9uZW50c1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmluZFF1YWxpZmllZENoaWxkcmVuRnJvbUxpc3QodGhpcy5nZXRJbnRlcm5hbEluc3RhbmNlQ2hpbGRyZW4oaW5zdGFuY2Uuc3ViVHJlZSksIGRlcHRoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlIHRocm91Z2ggYW4gYXJyYXkgb2YgaW5zdGFuY2VzIGFuZCBmbGF0dGVuIGl0IGludG9cbiAgICAgKiBhbiBhcnJheSBvZiBxdWFsaWZpZWQgaW5zdGFuY2VzLiBUaGlzIGlzIGEgZGVwdGgtZmlyc3RcbiAgICAgKiB0cmF2ZXJzYWwgLSBlLmcuIGlmIGFuIGluc3RhbmNlIGlzIG5vdCBtYXRjaGVkLCB3ZSB3aWxsXG4gICAgICogcmVjdXJzaXZlbHkgZ28gZGVlcGVyIHVudGlsIGEgcXVhbGlmaWVkIGNoaWxkIGlzIGZvdW5kLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtBcnJheX0gaW5zdGFuY2VzXG4gICAgICogQHJldHVybiB7QXJyYXl9XG4gICAgICovXG4gICAgYXN5bmMgZmluZFF1YWxpZmllZENoaWxkcmVuRnJvbUxpc3QoaW5zdGFuY2VzLCBkZXB0aCkge1xuICAgICAgICBpbnN0YW5jZXMgPSBpbnN0YW5jZXNcbiAgICAgICAgICAgIC5maWx0ZXIoY2hpbGQgPT4geyB2YXIgX2E7IHJldHVybiAhdXRpbF8xLmlzQmVpbmdEZXN0cm95ZWQoY2hpbGQpICYmICEoKF9hID0gY2hpbGQudHlwZS5kZXZ0b29scykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmhpZGUpOyB9KTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudEZpbHRlci5maWx0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChpbnN0YW5jZXMubWFwKChjaGlsZCwgaW5kZXgsIGxpc3QpID0+IHRoaXMuY2FwdHVyZShjaGlsZCwgbGlzdCwgZGVwdGgpKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSwgYXdhaXQgUHJvbWlzZS5hbGwoaW5zdGFuY2VzLm1hcChpID0+IHRoaXMuZmluZFF1YWxpZmllZENoaWxkcmVuKGksIGRlcHRoKSkpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQgY2hpbGRyZW4gZnJvbSBhIGNvbXBvbmVudCBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBnZXRJbnRlcm5hbEluc3RhbmNlQ2hpbGRyZW4oc3ViVHJlZSkge1xuICAgICAgICBjb25zdCBsaXN0ID0gW107XG4gICAgICAgIGlmIChzdWJUcmVlLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgbGlzdC5wdXNoKHN1YlRyZWUuY29tcG9uZW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3ViVHJlZS5zdXNwZW5zZSkge1xuICAgICAgICAgICAgbGlzdC5wdXNoKC4uLnRoaXMuZ2V0SW50ZXJuYWxJbnN0YW5jZUNoaWxkcmVuKHN1YlRyZWUuc3VzcGVuc2UuYWN0aXZlQnJhbmNoKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc3ViVHJlZS5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgIHN1YlRyZWUuY2hpbGRyZW4uZm9yRWFjaChjaGlsZFN1YlRyZWUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZFN1YlRyZWUuY29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGxpc3QucHVzaChjaGlsZFN1YlRyZWUuY29tcG9uZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxpc3QucHVzaCguLi50aGlzLmdldEludGVybmFsSW5zdGFuY2VDaGlsZHJlbihjaGlsZFN1YlRyZWUpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGlzdC5maWx0ZXIoY2hpbGQgPT4geyB2YXIgX2E7IHJldHVybiAhdXRpbF8xLmlzQmVpbmdEZXN0cm95ZWQoY2hpbGQpICYmICEoKF9hID0gY2hpbGQudHlwZS5kZXZ0b29scykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmhpZGUpOyB9KTtcbiAgICB9XG4gICAgY2FwdHVyZUlkKGluc3RhbmNlKSB7XG4gICAgICAgIC8vIGluc3RhbmNlLnVpZCBpcyBub3QgcmVsaWFibGUgaW4gZGV2dG9vbHMgYXMgdGhlcmVcbiAgICAgICAgLy8gbWF5IGJlIDIgcm9vdHMgd2l0aCBzYW1lIHVpZCB3aGljaCBjYXVzZXMgdW5leHBlY3RlZFxuICAgICAgICAvLyBiZWhhdmlvdXJcbiAgICAgICAgY29uc3QgaWQgPSBpbnN0YW5jZS5fX1ZVRV9ERVZUT09MU19VSURfXyAhPSBudWxsID8gaW5zdGFuY2UuX19WVUVfREVWVE9PTFNfVUlEX18gOiB1dGlsXzEuZ2V0VW5pcXVlQ29tcG9uZW50SWQoaW5zdGFuY2UsIHRoaXMuY3R4KTtcbiAgICAgICAgaW5zdGFuY2UuX19WVUVfREVWVE9PTFNfVUlEX18gPSBpZDtcbiAgICAgICAgLy8gRGVkdXBlXG4gICAgICAgIGlmICh0aGlzLmNhcHR1cmVJZHMuaGFzKGlkKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jYXB0dXJlSWRzLnNldChpZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hcmsoaW5zdGFuY2UpO1xuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhcHR1cmUgdGhlIG1ldGEgaW5mb3JtYXRpb24gb2YgYW4gaW5zdGFuY2UuIChyZWN1cnNpdmUpXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1Z1ZX0gaW5zdGFuY2VcbiAgICAgKiBAcmV0dXJuIHtPYmplY3R9XG4gICAgICovXG4gICAgYXN5bmMgY2FwdHVyZShpbnN0YW5jZSwgbGlzdCwgZGVwdGgpIHtcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLmNhcHR1cmVJZChpbnN0YW5jZSk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB1dGlsXzEuZ2V0SW5zdGFuY2VOYW1lKGluc3RhbmNlKTtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmdldEludGVybmFsSW5zdGFuY2VDaGlsZHJlbihpbnN0YW5jZS5zdWJUcmVlKVxuICAgICAgICAgICAgLmZpbHRlcihjaGlsZCA9PiAhdXRpbF8xLmlzQmVpbmdEZXN0cm95ZWQoY2hpbGQpKTtcbiAgICAgICAgY29uc3QgdHJlZU5vZGUgPSB7XG4gICAgICAgICAgICB1aWQ6IGluc3RhbmNlLnVpZCxcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHJlbmRlcktleTogdXRpbF8xLmdldFJlbmRlcktleShpbnN0YW5jZS52bm9kZSA/IGluc3RhbmNlLnZub2RlLmtleSA6IG51bGwpLFxuICAgICAgICAgICAgaW5hY3RpdmU6ICEhaW5zdGFuY2UuaXNEZWFjdGl2YXRlZCxcbiAgICAgICAgICAgIGhhc0NoaWxkcmVuOiAhIWNoaWxkcmVuLmxlbmd0aCxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgIGlzRnJhZ21lbnQ6IHV0aWxfMS5pc0ZyYWdtZW50KGluc3RhbmNlKSxcbiAgICAgICAgICAgIHRhZ3M6IFtdXG4gICAgICAgIH07XG4gICAgICAgIC8vIGNhcHR1cmUgY2hpbGRyZW5cbiAgICAgICAgaWYgKGRlcHRoIDwgdGhpcy5tYXhEZXB0aCkge1xuICAgICAgICAgICAgdHJlZU5vZGUuY2hpbGRyZW4gPSBhd2FpdCBQcm9taXNlLmFsbChjaGlsZHJlblxuICAgICAgICAgICAgICAgIC5tYXAoKGNoaWxkLCBpbmRleCwgbGlzdCkgPT4gdGhpcy5jYXB0dXJlKGNoaWxkLCBsaXN0LCBkZXB0aCArIDEpKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbikpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGtlZXAtYWxpdmVcbiAgICAgICAgaWYgKGluc3RhbmNlLnR5cGUuX19pc0tlZXBBbGl2ZSAmJiBpbnN0YW5jZS5fX3ZfY2FjaGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlZENvbXBvbmVudHMgPSBBcnJheS5mcm9tKGluc3RhbmNlLl9fdl9jYWNoZS52YWx1ZXMoKSkubWFwKCh2bm9kZSkgPT4gdm5vZGUuY29tcG9uZW50KS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNhY2hlZENvbXBvbmVudHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNoaWxkcmVuLmluY2x1ZGVzKGNoaWxkKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gYXdhaXQgdGhpcy5jYXB0dXJlKGNoaWxkLCBudWxsLCBkZXB0aCArIDEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5pbmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmVlTm9kZS5jaGlsZHJlbi5wdXNoKG5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGVuc3VyZSBjb3JyZWN0IG9yZGVyaW5nXG4gICAgICAgIGNvbnN0IHJvb3RFbGVtZW50cyA9IGVsXzEuZ2V0Um9vdEVsZW1lbnRzRnJvbUNvbXBvbmVudEluc3RhbmNlKGluc3RhbmNlKTtcbiAgICAgICAgY29uc3QgZmlyc3RFbGVtZW50ID0gcm9vdEVsZW1lbnRzWzBdO1xuICAgICAgICBpZiAoZmlyc3RFbGVtZW50ID09PSBudWxsIHx8IGZpcnN0RWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmlyc3RFbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudEluc3RhbmNlID0gaW5zdGFuY2UucGFyZW50O1xuICAgICAgICAgICAgY29uc3QgcGFyZW50Um9vdEVsZW1lbnRzID0gcGFyZW50SW5zdGFuY2UgPyBlbF8xLmdldFJvb3RFbGVtZW50c0Zyb21Db21wb25lbnRJbnN0YW5jZShwYXJlbnRJbnN0YW5jZSkgOiBbXTtcbiAgICAgICAgICAgIGxldCBlbCA9IGZpcnN0RWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4TGlzdCA9IFtdO1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIGluZGV4TGlzdC5wdXNoKEFycmF5LmZyb20oZWwucGFyZW50RWxlbWVudC5jaGlsZE5vZGVzKS5pbmRleE9mKGVsKSk7XG4gICAgICAgICAgICAgICAgZWwgPSBlbC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgfSB3aGlsZSAoZWwucGFyZW50RWxlbWVudCAmJiBwYXJlbnRSb290RWxlbWVudHMubGVuZ3RoICYmICFwYXJlbnRSb290RWxlbWVudHMuaW5jbHVkZXMoZWwpKTtcbiAgICAgICAgICAgIHRyZWVOb2RlLmRvbU9yZGVyID0gaW5kZXhMaXN0LnJldmVyc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRyZWVOb2RlLmRvbU9yZGVyID0gWy0xXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5zdGFuY2Uuc3VzcGVuc2UpIHtcbiAgICAgICAgICAgIHRyZWVOb2RlLnRhZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdzJyxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IDB4N2Q3ZGQ3LFxuICAgICAgICAgICAgICAgIHRleHRDb2xvcjogMHhmZmZmZmYsXG4gICAgICAgICAgICAgICAgdG9vbHRpcDogJ1N1c3BlbnNlJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY3R4LmFwaS52aXNpdENvbXBvbmVudFRyZWUoaW5zdGFuY2UsIHRyZWVOb2RlLCB0aGlzLmNvbXBvbmVudEZpbHRlci5maWx0ZXIsIHRoaXMuY3R4LmN1cnJlbnRBcHBSZWNvcmQub3B0aW9ucy5hcHApO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXJrIGFuIGluc3RhbmNlIGFzIGNhcHR1cmVkIGFuZCBzdG9yZSBpdCBpbiB0aGUgaW5zdGFuY2UgbWFwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtWdWV9IGluc3RhbmNlXG4gICAgICovXG4gICAgbWFyayhpbnN0YW5jZSkge1xuICAgICAgICBjb25zdCBpbnN0YW5jZU1hcCA9IHRoaXMuY3R4LmN1cnJlbnRBcHBSZWNvcmQuaW5zdGFuY2VNYXA7XG4gICAgICAgIGlmICghaW5zdGFuY2VNYXAuaGFzKGluc3RhbmNlLl9fVlVFX0RFVlRPT0xTX1VJRF9fKSkge1xuICAgICAgICAgICAgaW5zdGFuY2VNYXAuc2V0KGluc3RhbmNlLl9fVlVFX0RFVlRPT0xTX1VJRF9fLCBpbnN0YW5jZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkNvbXBvbmVudFdhbGtlciA9IENvbXBvbmVudFdhbGtlcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRyZWUuanMubWFwIl0sIm5hbWVzIjpbImNvbnN0IiwibGV0IiwidGhpcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///20750\n");
437
437
 
438
438
  /***/ }),
439
439
 
@@ -521,7 +521,7 @@ eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {
521
521
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
522
522
 
523
523
  "use strict";
524
- eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.watchSharedData = exports.destroySharedData = exports.onSharedDataInit = exports.initSharedData = void 0;\nvar storage_1 = __webpack_require__(59353);\nvar env_1 = __webpack_require__(77973);\n// Initial state\nvar internalSharedData = {\n openInEditorHost: '/',\n componentNameStyle: 'class',\n theme: 'auto',\n displayDensity: 'low',\n timeFormat: 'default',\n recordVuex: true,\n cacheVuexSnapshotsEvery: 50,\n cacheVuexSnapshotsLimit: 10,\n snapshotLoading: false,\n componentEventsEnabled: true,\n performanceMonitoringEnabled: true,\n editableProps: false,\n logDetected: true,\n vuexNewBackend: false,\n vuexAutoload: false,\n vuexGroupGettersByModule: true,\n showMenuScrollTip: true,\n timelineTimeGrid: true,\n timelineScreenshots: true,\n menuStepScrolling: env_1.isMac,\n pluginPermissions: {},\n pluginSettings: {}\n};\nvar persisted = [\n 'componentNameStyle',\n 'theme',\n 'displayDensity',\n 'recordVuex',\n 'editableProps',\n 'logDetected',\n 'vuexNewBackend',\n 'vuexAutoload',\n 'vuexGroupGettersByModule',\n 'timeFormat',\n 'showMenuScrollTip',\n 'timelineTimeGrid',\n 'timelineScreenshots',\n 'menuStepScrolling',\n 'pluginPermissions',\n 'pluginSettings',\n 'performanceMonitoringEnabled',\n 'componentEventsEnabled'\n];\nvar storageVersion = '6.0.0-alpha.1';\n// ---- INTERNALS ---- //\nvar bridge;\n// List of fields to persist to storage (disabled if 'false')\n// This should be unique to each shared data client to prevent conflicts\nvar persist = false;\nvar data;\nvar initRetryInterval;\nvar initRetryCount = 0;\nvar initCbs = [];\nfunction initSharedData(params) {\n return new Promise(function (resolve) {\n // Mandatory params\n bridge = params.bridge;\n persist = !!params.persist;\n if (persist) {\n if (false)\n {}\n // Load persisted fields\n persisted.forEach(function (key) {\n var value = storage_1.getStorage((\"vue-devtools-\" + storageVersion + \":shared-data:\" + key));\n if (value !== null) {\n internalSharedData[key] = value;\n }\n });\n bridge.on('shared-data:load', function () {\n // Send all fields\n Object.keys(internalSharedData).forEach(function (key) {\n sendValue(key, internalSharedData[key]);\n });\n bridge.send('shared-data:load-complete');\n });\n bridge.on('shared-data:init-complete', function () {\n if (false)\n {}\n clearInterval(initRetryInterval);\n resolve();\n });\n bridge.send('shared-data:master-init-waiting');\n // In case backend init is executed after frontend\n bridge.on('shared-data:slave-init-waiting', function () {\n bridge.send('shared-data:master-init-waiting');\n });\n initRetryCount = 0;\n clearInterval(initRetryInterval);\n initRetryInterval = setInterval(function () {\n if (false)\n {}\n bridge.send('shared-data:master-init-waiting');\n initRetryCount++;\n if (initRetryCount > 30) {\n clearInterval(initRetryInterval);\n console.error('[shared data] Master init failed');\n }\n }, 2000);\n }\n else {\n if (false)\n {}\n bridge.on('shared-data:master-init-waiting', function () {\n if (false)\n {}\n // Load all persisted shared data\n bridge.send('shared-data:load');\n bridge.once('shared-data:load-complete', function () {\n if (false)\n {}\n bridge.send('shared-data:init-complete');\n resolve();\n });\n });\n bridge.send('shared-data:slave-init-waiting');\n }\n data = Object.assign({}, internalSharedData);\n if (params.Vue) {\n data = params.Vue.observable(data);\n }\n // Update value from other shared data clients\n bridge.on('shared-data:set', function (ref) {\n var key = ref.key;\n var value = ref.value;\n\n setValue(key, value);\n });\n initCbs.forEach(function (cb) { return cb(); });\n });\n}\nexports.initSharedData = initSharedData;\nfunction onSharedDataInit(cb) {\n initCbs.push(cb);\n return function () {\n var index = initCbs.indexOf(cb);\n if (index !== -1)\n { initCbs.splice(index, 1); }\n };\n}\nexports.onSharedDataInit = onSharedDataInit;\nfunction destroySharedData() {\n bridge.removeAllListeners('shared-data:set');\n watchers = {};\n}\nexports.destroySharedData = destroySharedData;\nvar watchers = {};\nfunction setValue(key, value) {\n // Storage\n if (persist && persisted.includes(key)) {\n storage_1.setStorage((\"vue-devtools-\" + storageVersion + \":shared-data:\" + key), value);\n }\n var oldValue = data[key];\n data[key] = value;\n var handlers = watchers[key];\n if (handlers) {\n handlers.forEach(function (h) { return h(value, oldValue); });\n }\n // Validate Proxy set trap\n return true;\n}\nfunction sendValue(key, value) {\n bridge && bridge.send('shared-data:set', {\n key: key,\n value: value\n });\n}\nfunction watchSharedData(prop, handler) {\n var list = watchers[prop] || (watchers[prop] = []);\n list.push(handler);\n return function () {\n var index = list.indexOf(handler);\n if (index !== -1)\n { list.splice(index, 1); }\n };\n}\nexports.watchSharedData = watchSharedData;\nvar proxy = {};\nObject.keys(internalSharedData).forEach(function (key) {\n Object.defineProperty(proxy, key, {\n configurable: false,\n get: function () { return data[key]; },\n set: function (value) {\n sendValue(key, value);\n setValue(key, value);\n }\n });\n});\nexports.default = proxy;\n//# sourceMappingURL=shared-data.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLGNBQVksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUM7QUFDbEMsS0FBSyxDQUFDO0FBQ04sQ0FBQztBQUNELHVCQUF1QixHQUFHLGVBQWUsQ0FBQztBQUMxQ0EsR0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE9BQU8sV0FBQyxJQUFHLENBQUk7QUFDL0MsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDdEMsUUFBUSxZQUFZLEVBQUUsS0FBSztBQUMzQixRQUFRLEdBQUcsV0FBRSxZQUFNLElBQUksQ0FBQyxHQUFHLElBQUM7QUFDNUIsUUFBUSxHQUFHLFdBQUUsQ0FBQyxLQUFLLEVBQUs7QUFDeEIsWUFBWSxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2xDLFlBQVksUUFBUSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNqQyxTQUFTO0FBQ1QsS0FBSyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQztBQUNILGVBQWUsR0FBRyxLQUFLLENBQUM7QUFDeEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AdnVlL2RldnRvb2xzLy4uL3NoYXJlZC11dGlscy9saWIvc2hhcmVkLWRhdGEuanM/YTAwNyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMud2F0Y2hTaGFyZWREYXRhID0gZXhwb3J0cy5kZXN0cm95U2hhcmVkRGF0YSA9IGV4cG9ydHMub25TaGFyZWREYXRhSW5pdCA9IGV4cG9ydHMuaW5pdFNoYXJlZERhdGEgPSB2b2lkIDA7XG5jb25zdCBzdG9yYWdlXzEgPSByZXF1aXJlKFwiLi9zdG9yYWdlXCIpO1xuY29uc3QgZW52XzEgPSByZXF1aXJlKFwiLi9lbnZcIik7XG4vLyBJbml0aWFsIHN0YXRlXG5jb25zdCBpbnRlcm5hbFNoYXJlZERhdGEgPSB7XG4gICAgb3BlbkluRWRpdG9ySG9zdDogJy8nLFxuICAgIGNvbXBvbmVudE5hbWVTdHlsZTogJ2NsYXNzJyxcbiAgICB0aGVtZTogJ2F1dG8nLFxuICAgIGRpc3BsYXlEZW5zaXR5OiAnbG93JyxcbiAgICB0aW1lRm9ybWF0OiAnZGVmYXVsdCcsXG4gICAgcmVjb3JkVnVleDogdHJ1ZSxcbiAgICBjYWNoZVZ1ZXhTbmFwc2hvdHNFdmVyeTogNTAsXG4gICAgY2FjaGVWdWV4U25hcHNob3RzTGltaXQ6IDEwLFxuICAgIHNuYXBzaG90TG9hZGluZzogZmFsc2UsXG4gICAgY29tcG9uZW50RXZlbnRzRW5hYmxlZDogdHJ1ZSxcbiAgICBwZXJmb3JtYW5jZU1vbml0b3JpbmdFbmFibGVkOiB0cnVlLFxuICAgIGVkaXRhYmxlUHJvcHM6IGZhbHNlLFxuICAgIGxvZ0RldGVjdGVkOiB0cnVlLFxuICAgIHZ1ZXhOZXdCYWNrZW5kOiBmYWxzZSxcbiAgICB2dWV4QXV0b2xvYWQ6IGZhbHNlLFxuICAgIHZ1ZXhHcm91cEdldHRlcnNCeU1vZHVsZTogdHJ1ZSxcbiAgICBzaG93TWVudVNjcm9sbFRpcDogdHJ1ZSxcbiAgICB0aW1lbGluZVRpbWVHcmlkOiB0cnVlLFxuICAgIHRpbWVsaW5lU2NyZWVuc2hvdHM6IHRydWUsXG4gICAgbWVudVN0ZXBTY3JvbGxpbmc6IGVudl8xLmlzTWFjLFxuICAgIHBsdWdpblBlcm1pc3Npb25zOiB7fSxcbiAgICBwbHVnaW5TZXR0aW5nczoge31cbn07XG5jb25zdCBwZXJzaXN0ZWQgPSBbXG4gICAgJ2NvbXBvbmVudE5hbWVTdHlsZScsXG4gICAgJ3RoZW1lJyxcbiAgICAnZGlzcGxheURlbnNpdHknLFxuICAgICdyZWNvcmRWdWV4JyxcbiAgICAnZWRpdGFibGVQcm9wcycsXG4gICAgJ2xvZ0RldGVjdGVkJyxcbiAgICAndnVleE5ld0JhY2tlbmQnLFxuICAgICd2dWV4QXV0b2xvYWQnLFxuICAgICd2dWV4R3JvdXBHZXR0ZXJzQnlNb2R1bGUnLFxuICAgICd0aW1lRm9ybWF0JyxcbiAgICAnc2hvd01lbnVTY3JvbGxUaXAnLFxuICAgICd0aW1lbGluZVRpbWVHcmlkJyxcbiAgICAndGltZWxpbmVTY3JlZW5zaG90cycsXG4gICAgJ21lbnVTdGVwU2Nyb2xsaW5nJyxcbiAgICAncGx1Z2luUGVybWlzc2lvbnMnLFxuICAgICdwbHVnaW5TZXR0aW5ncycsXG4gICAgJ3BlcmZvcm1hbmNlTW9uaXRvcmluZ0VuYWJsZWQnLFxuICAgICdjb21wb25lbnRFdmVudHNFbmFibGVkJ1xuXTtcbmNvbnN0IHN0b3JhZ2VWZXJzaW9uID0gJzYuMC4wLWFscGhhLjEnO1xuLy8gLS0tLSBJTlRFUk5BTFMgLS0tLSAvL1xubGV0IGJyaWRnZTtcbi8vIExpc3Qgb2YgZmllbGRzIHRvIHBlcnNpc3QgdG8gc3RvcmFnZSAoZGlzYWJsZWQgaWYgJ2ZhbHNlJylcbi8vIFRoaXMgc2hvdWxkIGJlIHVuaXF1ZSB0byBlYWNoIHNoYXJlZCBkYXRhIGNsaWVudCB0byBwcmV2ZW50IGNvbmZsaWN0c1xubGV0IHBlcnNpc3QgPSBmYWxzZTtcbmxldCBkYXRhO1xubGV0IGluaXRSZXRyeUludGVydmFsO1xubGV0IGluaXRSZXRyeUNvdW50ID0gMDtcbmNvbnN0IGluaXRDYnMgPSBbXTtcbmZ1bmN0aW9uIGluaXRTaGFyZWREYXRhKHBhcmFtcykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAvLyBNYW5kYXRvcnkgcGFyYW1zXG4gICAgICAgIGJyaWRnZSA9IHBhcmFtcy5icmlkZ2U7XG4gICAgICAgIHBlcnNpc3QgPSAhIXBhcmFtcy5wZXJzaXN0O1xuICAgICAgICBpZiAocGVyc2lzdCkge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1tzaGFyZWQgZGF0YV0gTWFzdGVyIGluaXQgaW4gcHJvZ3Jlc3MuLi4nKTtcbiAgICAgICAgICAgIC8vIExvYWQgcGVyc2lzdGVkIGZpZWxkc1xuICAgICAgICAgICAgcGVyc2lzdGVkLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHN0b3JhZ2VfMS5nZXRTdG9yYWdlKGB2dWUtZGV2dG9vbHMtJHtzdG9yYWdlVmVyc2lvbn06c2hhcmVkLWRhdGE6JHtrZXl9YCk7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGludGVybmFsU2hhcmVkRGF0YVtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmlkZ2Uub24oJ3NoYXJlZC1kYXRhOmxvYWQnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gU2VuZCBhbGwgZmllbGRzXG4gICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoaW50ZXJuYWxTaGFyZWREYXRhKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNlbmRWYWx1ZShrZXksIGludGVybmFsU2hhcmVkRGF0YVtrZXldKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBicmlkZ2Uuc2VuZCgnc2hhcmVkLWRhdGE6bG9hZC1jb21wbGV0ZScpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmlkZ2Uub24oJ3NoYXJlZC1kYXRhOmluaXQtY29tcGxldGUnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbc2hhcmVkIGRhdGFdIE1hc3RlciBpbml0IGNvbXBsZXRlJyk7XG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbml0UmV0cnlJbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmlkZ2Uuc2VuZCgnc2hhcmVkLWRhdGE6bWFzdGVyLWluaXQtd2FpdGluZycpO1xuICAgICAgICAgICAgLy8gSW4gY2FzZSBiYWNrZW5kIGluaXQgaXMgZXhlY3V0ZWQgYWZ0ZXIgZnJvbnRlbmRcbiAgICAgICAgICAgIGJyaWRnZS5vbignc2hhcmVkLWRhdGE6c2xhdmUtaW5pdC13YWl0aW5nJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGJyaWRnZS5zZW5kKCdzaGFyZWQtZGF0YTptYXN0ZXItaW5pdC13YWl0aW5nJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGluaXRSZXRyeUNvdW50ID0gMDtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW5pdFJldHJ5SW50ZXJ2YWwpO1xuICAgICAgICAgICAgaW5pdFJldHJ5SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbc2hhcmVkIGRhdGFdIE1hc3RlciBpbml0IHJldHJ5aW5nLi4uJyk7XG4gICAgICAgICAgICAgICAgYnJpZGdlLnNlbmQoJ3NoYXJlZC1kYXRhOm1hc3Rlci1pbml0LXdhaXRpbmcnKTtcbiAgICAgICAgICAgICAgICBpbml0UmV0cnlDb3VudCsrO1xuICAgICAgICAgICAgICAgIGlmIChpbml0UmV0cnlDb3VudCA+IDMwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW5pdFJldHJ5SW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbc2hhcmVkIGRhdGFdIE1hc3RlciBpbml0IGZhaWxlZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDIwMDApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1tzaGFyZWQgZGF0YV0gU2xhdmUgaW5pdCBpbiBwcm9ncmVzcy4uLicpO1xuICAgICAgICAgICAgYnJpZGdlLm9uKCdzaGFyZWQtZGF0YTptYXN0ZXItaW5pdC13YWl0aW5nJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKVxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW3NoYXJlZCBkYXRhXSBTbGF2ZSBsb2FkaW5nIGRhdGEuLi4nKTtcbiAgICAgICAgICAgICAgICAvLyBMb2FkIGFsbCBwZXJzaXN0ZWQgc2hhcmVkIGRhdGFcbiAgICAgICAgICAgICAgICBicmlkZ2Uuc2VuZCgnc2hhcmVkLWRhdGE6bG9hZCcpO1xuICAgICAgICAgICAgICAgIGJyaWRnZS5vbmNlKCdzaGFyZWQtZGF0YTpsb2FkLWNvbXBsZXRlJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJylcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbc2hhcmVkIGRhdGFdIFNsYXZlIGluaXQgY29tcGxldGUnKTtcbiAgICAgICAgICAgICAgICAgICAgYnJpZGdlLnNlbmQoJ3NoYXJlZC1kYXRhOmluaXQtY29tcGxldGUnKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmlkZ2Uuc2VuZCgnc2hhcmVkLWRhdGE6c2xhdmUtaW5pdC13YWl0aW5nJyk7XG4gICAgICAgIH1cbiAgICAgICAgZGF0YSA9IHtcbiAgICAgICAgICAgIC4uLmludGVybmFsU2hhcmVkRGF0YVxuICAgICAgICB9O1xuICAgICAgICBpZiAocGFyYW1zLlZ1ZSkge1xuICAgICAgICAgICAgZGF0YSA9IHBhcmFtcy5WdWUub2JzZXJ2YWJsZShkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBVcGRhdGUgdmFsdWUgZnJvbSBvdGhlciBzaGFyZWQgZGF0YSBjbGllbnRzXG4gICAgICAgIGJyaWRnZS5vbignc2hhcmVkLWRhdGE6c2V0JywgKHsga2V5LCB2YWx1ZSB9KSA9PiB7XG4gICAgICAgICAgICBzZXRWYWx1ZShrZXksIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGluaXRDYnMuZm9yRWFjaChjYiA9PiBjYigpKTtcbiAgICB9KTtcbn1cbmV4cG9ydHMuaW5pdFNoYXJlZERhdGEgPSBpbml0U2hhcmVkRGF0YTtcbmZ1bmN0aW9uIG9uU2hhcmVkRGF0YUluaXQoY2IpIHtcbiAgICBpbml0Q2JzLnB1c2goY2IpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gaW5pdENicy5pbmRleE9mKGNiKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSlcbiAgICAgICAgICAgIGluaXRDYnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9O1xufVxuZXhwb3J0cy5vblNoYXJlZERhdGFJbml0ID0gb25TaGFyZWREYXRhSW5pdDtcbmZ1bmN0aW9uIGRlc3Ryb3lTaGFyZWREYXRhKCkge1xuICAgIGJyaWRnZS5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3NoYXJlZC1kYXRhOnNldCcpO1xuICAgIHdhdGNoZXJzID0ge307XG59XG5leHBvcnRzLmRlc3Ryb3lTaGFyZWREYXRhID0gZGVzdHJveVNoYXJlZERhdGE7XG5sZXQgd2F0Y2hlcnMgPSB7fTtcbmZ1bmN0aW9uIHNldFZhbHVlKGtleSwgdmFsdWUpIHtcbiAgICAvLyBTdG9yYWdlXG4gICAgaWYgKHBlcnNpc3QgJiYgcGVyc2lzdGVkLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgc3RvcmFnZV8xLnNldFN0b3JhZ2UoYHZ1ZS1kZXZ0b29scy0ke3N0b3JhZ2VWZXJzaW9ufTpzaGFyZWQtZGF0YToke2tleX1gLCB2YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IG9sZFZhbHVlID0gZGF0YVtrZXldO1xuICAgIGRhdGFba2V5XSA9IHZhbHVlO1xuICAgIGNvbnN0IGhhbmRsZXJzID0gd2F0Y2hlcnNba2V5XTtcbiAgICBpZiAoaGFuZGxlcnMpIHtcbiAgICAgICAgaGFuZGxlcnMuZm9yRWFjaChoID0+IGgodmFsdWUsIG9sZFZhbHVlKSk7XG4gICAgfVxuICAgIC8vIFZhbGlkYXRlIFByb3h5IHNldCB0cmFwXG4gICAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBzZW5kVmFsdWUoa2V5LCB2YWx1ZSkge1xuICAgIGJyaWRnZSAmJiBicmlkZ2Uuc2VuZCgnc2hhcmVkLWRhdGE6c2V0Jywge1xuICAgICAgICBrZXksXG4gICAgICAgIHZhbHVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiB3YXRjaFNoYXJlZERhdGEocHJvcCwgaGFuZGxlcikge1xuICAgIGNvbnN0IGxpc3QgPSB3YXRjaGVyc1twcm9wXSB8fCAod2F0Y2hlcnNbcHJvcF0gPSBbXSk7XG4gICAgbGlzdC5wdXNoKGhhbmRsZXIpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gbGlzdC5pbmRleE9mKGhhbmRsZXIpO1xuICAgICAgICBpZiAoaW5kZXggIT09IC0xKVxuICAgICAgICAgICAgbGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH07XG59XG5leHBvcnRzLndhdGNoU2hhcmVkRGF0YSA9IHdhdGNoU2hhcmVkRGF0YTtcbmNvbnN0IHByb3h5ID0ge307XG5PYmplY3Qua2V5cyhpbnRlcm5hbFNoYXJlZERhdGEpLmZvckVhY2goa2V5ID0+IHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJveHksIGtleSwge1xuICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICBnZXQ6ICgpID0+IGRhdGFba2V5XSxcbiAgICAgICAgc2V0OiAodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHNlbmRWYWx1ZShrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIHNldFZhbHVlKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfSk7XG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHByb3h5O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2hhcmVkLWRhdGEuanMubWFwIl0sIm5hbWVzIjpbImNvbnN0IiwibGV0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///59835\n");
524
+ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.watchSharedData = exports.destroySharedData = exports.onSharedDataInit = exports.initSharedData = void 0;\nvar storage_1 = __webpack_require__(59353);\nvar env_1 = __webpack_require__(77973);\n// Initial state\nvar internalSharedData = {\n openInEditorHost: '/',\n componentNameStyle: 'class',\n theme: 'auto',\n displayDensity: 'low',\n timeFormat: 'default',\n recordVuex: true,\n cacheVuexSnapshotsEvery: 50,\n cacheVuexSnapshotsLimit: 10,\n snapshotLoading: false,\n componentEventsEnabled: true,\n performanceMonitoringEnabled: true,\n editableProps: false,\n logDetected: true,\n vuexNewBackend: false,\n vuexAutoload: false,\n vuexGroupGettersByModule: true,\n showMenuScrollTip: true,\n timelineTimeGrid: true,\n timelineScreenshots: true,\n menuStepScrolling: env_1.isMac,\n pluginPermissions: {},\n pluginSettings: {},\n debugInfo: false\n};\nvar persisted = [\n 'componentNameStyle',\n 'theme',\n 'displayDensity',\n 'recordVuex',\n 'editableProps',\n 'logDetected',\n 'vuexNewBackend',\n 'vuexAutoload',\n 'vuexGroupGettersByModule',\n 'timeFormat',\n 'showMenuScrollTip',\n 'timelineTimeGrid',\n 'timelineScreenshots',\n 'menuStepScrolling',\n 'pluginPermissions',\n 'pluginSettings',\n 'performanceMonitoringEnabled',\n 'componentEventsEnabled',\n 'debugInfo'\n];\nvar storageVersion = '6.0.0-alpha.1';\n// ---- INTERNALS ---- //\nvar bridge;\n// List of fields to persist to storage (disabled if 'false')\n// This should be unique to each shared data client to prevent conflicts\nvar persist = false;\nvar data;\nvar initRetryInterval;\nvar initRetryCount = 0;\nvar initCbs = [];\nfunction initSharedData(params) {\n return new Promise(function (resolve) {\n // Mandatory params\n bridge = params.bridge;\n persist = !!params.persist;\n if (persist) {\n if (false)\n {}\n // Load persisted fields\n persisted.forEach(function (key) {\n var value = storage_1.getStorage((\"vue-devtools-\" + storageVersion + \":shared-data:\" + key));\n if (value !== null) {\n internalSharedData[key] = value;\n }\n });\n bridge.on('shared-data:load', function () {\n // Send all fields\n Object.keys(internalSharedData).forEach(function (key) {\n sendValue(key, internalSharedData[key]);\n });\n bridge.send('shared-data:load-complete');\n });\n bridge.on('shared-data:init-complete', function () {\n if (false)\n {}\n clearInterval(initRetryInterval);\n resolve();\n });\n bridge.send('shared-data:master-init-waiting');\n // In case backend init is executed after frontend\n bridge.on('shared-data:slave-init-waiting', function () {\n bridge.send('shared-data:master-init-waiting');\n });\n initRetryCount = 0;\n clearInterval(initRetryInterval);\n initRetryInterval = setInterval(function () {\n if (false)\n {}\n bridge.send('shared-data:master-init-waiting');\n initRetryCount++;\n if (initRetryCount > 30) {\n clearInterval(initRetryInterval);\n console.error('[shared data] Master init failed');\n }\n }, 2000);\n }\n else {\n if (false)\n {}\n bridge.on('shared-data:master-init-waiting', function () {\n if (false)\n {}\n // Load all persisted shared data\n bridge.send('shared-data:load');\n bridge.once('shared-data:load-complete', function () {\n if (false)\n {}\n bridge.send('shared-data:init-complete');\n resolve();\n });\n });\n bridge.send('shared-data:slave-init-waiting');\n }\n data = Object.assign({}, internalSharedData);\n if (params.Vue) {\n data = params.Vue.observable(data);\n }\n // Update value from other shared data clients\n bridge.on('shared-data:set', function (ref) {\n var key = ref.key;\n var value = ref.value;\n\n setValue(key, value);\n });\n initCbs.forEach(function (cb) { return cb(); });\n });\n}\nexports.initSharedData = initSharedData;\nfunction onSharedDataInit(cb) {\n initCbs.push(cb);\n return function () {\n var index = initCbs.indexOf(cb);\n if (index !== -1)\n { initCbs.splice(index, 1); }\n };\n}\nexports.onSharedDataInit = onSharedDataInit;\nfunction destroySharedData() {\n bridge.removeAllListeners('shared-data:set');\n watchers = {};\n}\nexports.destroySharedData = destroySharedData;\nvar watchers = {};\nfunction setValue(key, value) {\n // Storage\n if (persist && persisted.includes(key)) {\n storage_1.setStorage((\"vue-devtools-\" + storageVersion + \":shared-data:\" + key), value);\n }\n var oldValue = data[key];\n data[key] = value;\n var handlers = watchers[key];\n if (handlers) {\n handlers.forEach(function (h) { return h(value, oldValue); });\n }\n // Validate Proxy set trap\n return true;\n}\nfunction sendValue(key, value) {\n bridge && bridge.send('shared-data:set', {\n key: key,\n value: value\n });\n}\nfunction watchSharedData(prop, handler) {\n var list = watchers[prop] || (watchers[prop] = []);\n list.push(handler);\n return function () {\n var index = list.indexOf(handler);\n if (index !== -1)\n { list.splice(index, 1); }\n };\n}\nexports.watchSharedData = watchSharedData;\nvar proxy = {};\nObject.keys(internalSharedData).forEach(function (key) {\n Object.defineProperty(proxy, key, {\n configurable: false,\n get: function () { return data[key]; },\n set: function (value) {\n sendValue(key, value);\n setValue(key, value);\n }\n });\n});\nexports.default = proxy;\n//# sourceMappingURL=shared-data.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDNUMsUUFBUSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUM7QUFDeEIsY0FBWSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBQztBQUNsQyxLQUFLLENBQUM7QUFDTixDQUFDO0FBQ0QsdUJBQXVCLEdBQUcsZUFBZSxDQUFDO0FBQzFDQSxHQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsT0FBTyxXQUFDLElBQUcsQ0FBSTtBQUMvQyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUN0QyxRQUFRLFlBQVksRUFBRSxLQUFLO0FBQzNCLFFBQVEsR0FBRyxXQUFFLFlBQU0sSUFBSSxDQUFDLEdBQUcsSUFBQztBQUM1QixRQUFRLEdBQUcsV0FBRSxDQUFDLEtBQUssRUFBSztBQUN4QixZQUFZLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbEMsWUFBWSxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLFNBQVM7QUFDVCxLQUFLLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDO0FBQ0gsZUFBZSxHQUFHLEtBQUssQ0FBQztBQUN4QiIsInNvdXJjZXMiOlsid2VicGFjazovL0B2dWUvZGV2dG9vbHMvLi4vc2hhcmVkLXV0aWxzL2xpYi9zaGFyZWQtZGF0YS5qcz9hMDA3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy53YXRjaFNoYXJlZERhdGEgPSBleHBvcnRzLmRlc3Ryb3lTaGFyZWREYXRhID0gZXhwb3J0cy5vblNoYXJlZERhdGFJbml0ID0gZXhwb3J0cy5pbml0U2hhcmVkRGF0YSA9IHZvaWQgMDtcbmNvbnN0IHN0b3JhZ2VfMSA9IHJlcXVpcmUoXCIuL3N0b3JhZ2VcIik7XG5jb25zdCBlbnZfMSA9IHJlcXVpcmUoXCIuL2VudlwiKTtcbi8vIEluaXRpYWwgc3RhdGVcbmNvbnN0IGludGVybmFsU2hhcmVkRGF0YSA9IHtcbiAgICBvcGVuSW5FZGl0b3JIb3N0OiAnLycsXG4gICAgY29tcG9uZW50TmFtZVN0eWxlOiAnY2xhc3MnLFxuICAgIHRoZW1lOiAnYXV0bycsXG4gICAgZGlzcGxheURlbnNpdHk6ICdsb3cnLFxuICAgIHRpbWVGb3JtYXQ6ICdkZWZhdWx0JyxcbiAgICByZWNvcmRWdWV4OiB0cnVlLFxuICAgIGNhY2hlVnVleFNuYXBzaG90c0V2ZXJ5OiA1MCxcbiAgICBjYWNoZVZ1ZXhTbmFwc2hvdHNMaW1pdDogMTAsXG4gICAgc25hcHNob3RMb2FkaW5nOiBmYWxzZSxcbiAgICBjb21wb25lbnRFdmVudHNFbmFibGVkOiB0cnVlLFxuICAgIHBlcmZvcm1hbmNlTW9uaXRvcmluZ0VuYWJsZWQ6IHRydWUsXG4gICAgZWRpdGFibGVQcm9wczogZmFsc2UsXG4gICAgbG9nRGV0ZWN0ZWQ6IHRydWUsXG4gICAgdnVleE5ld0JhY2tlbmQ6IGZhbHNlLFxuICAgIHZ1ZXhBdXRvbG9hZDogZmFsc2UsXG4gICAgdnVleEdyb3VwR2V0dGVyc0J5TW9kdWxlOiB0cnVlLFxuICAgIHNob3dNZW51U2Nyb2xsVGlwOiB0cnVlLFxuICAgIHRpbWVsaW5lVGltZUdyaWQ6IHRydWUsXG4gICAgdGltZWxpbmVTY3JlZW5zaG90czogdHJ1ZSxcbiAgICBtZW51U3RlcFNjcm9sbGluZzogZW52XzEuaXNNYWMsXG4gICAgcGx1Z2luUGVybWlzc2lvbnM6IHt9LFxuICAgIHBsdWdpblNldHRpbmdzOiB7fSxcbiAgICBkZWJ1Z0luZm86IGZhbHNlXG59O1xuY29uc3QgcGVyc2lzdGVkID0gW1xuICAgICdjb21wb25lbnROYW1lU3R5bGUnLFxuICAgICd0aGVtZScsXG4gICAgJ2Rpc3BsYXlEZW5zaXR5JyxcbiAgICAncmVjb3JkVnVleCcsXG4gICAgJ2VkaXRhYmxlUHJvcHMnLFxuICAgICdsb2dEZXRlY3RlZCcsXG4gICAgJ3Z1ZXhOZXdCYWNrZW5kJyxcbiAgICAndnVleEF1dG9sb2FkJyxcbiAgICAndnVleEdyb3VwR2V0dGVyc0J5TW9kdWxlJyxcbiAgICAndGltZUZvcm1hdCcsXG4gICAgJ3Nob3dNZW51U2Nyb2xsVGlwJyxcbiAgICAndGltZWxpbmVUaW1lR3JpZCcsXG4gICAgJ3RpbWVsaW5lU2NyZWVuc2hvdHMnLFxuICAgICdtZW51U3RlcFNjcm9sbGluZycsXG4gICAgJ3BsdWdpblBlcm1pc3Npb25zJyxcbiAgICAncGx1Z2luU2V0dGluZ3MnLFxuICAgICdwZXJmb3JtYW5jZU1vbml0b3JpbmdFbmFibGVkJyxcbiAgICAnY29tcG9uZW50RXZlbnRzRW5hYmxlZCcsXG4gICAgJ2RlYnVnSW5mbydcbl07XG5jb25zdCBzdG9yYWdlVmVyc2lvbiA9ICc2LjAuMC1hbHBoYS4xJztcbi8vIC0tLS0gSU5URVJOQUxTIC0tLS0gLy9cbmxldCBicmlkZ2U7XG4vLyBMaXN0IG9mIGZpZWxkcyB0byBwZXJzaXN0IHRvIHN0b3JhZ2UgKGRpc2FibGVkIGlmICdmYWxzZScpXG4vLyBUaGlzIHNob3VsZCBiZSB1bmlxdWUgdG8gZWFjaCBzaGFyZWQgZGF0YSBjbGllbnQgdG8gcHJldmVudCBjb25mbGljdHNcbmxldCBwZXJzaXN0ID0gZmFsc2U7XG5sZXQgZGF0YTtcbmxldCBpbml0UmV0cnlJbnRlcnZhbDtcbmxldCBpbml0UmV0cnlDb3VudCA9IDA7XG5jb25zdCBpbml0Q2JzID0gW107XG5mdW5jdGlvbiBpbml0U2hhcmVkRGF0YShwYXJhbXMpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgLy8gTWFuZGF0b3J5IHBhcmFtc1xuICAgICAgICBicmlkZ2UgPSBwYXJhbXMuYnJpZGdlO1xuICAgICAgICBwZXJzaXN0ID0gISFwYXJhbXMucGVyc2lzdDtcbiAgICAgICAgaWYgKHBlcnNpc3QpIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKVxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbc2hhcmVkIGRhdGFdIE1hc3RlciBpbml0IGluIHByb2dyZXNzLi4uJyk7XG4gICAgICAgICAgICAvLyBMb2FkIHBlcnNpc3RlZCBmaWVsZHNcbiAgICAgICAgICAgIHBlcnNpc3RlZC5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBzdG9yYWdlXzEuZ2V0U3RvcmFnZShgdnVlLWRldnRvb2xzLSR7c3RvcmFnZVZlcnNpb259OnNoYXJlZC1kYXRhOiR7a2V5fWApO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbFNoYXJlZERhdGFba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJpZGdlLm9uKCdzaGFyZWQtZGF0YTpsb2FkJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFNlbmQgYWxsIGZpZWxkc1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGludGVybmFsU2hhcmVkRGF0YSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZW5kVmFsdWUoa2V5LCBpbnRlcm5hbFNoYXJlZERhdGFba2V5XSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYnJpZGdlLnNlbmQoJ3NoYXJlZC1kYXRhOmxvYWQtY29tcGxldGUnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJpZGdlLm9uKCdzaGFyZWQtZGF0YTppbml0LWNvbXBsZXRlJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKVxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW3NoYXJlZCBkYXRhXSBNYXN0ZXIgaW5pdCBjb21wbGV0ZScpO1xuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW5pdFJldHJ5SW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJpZGdlLnNlbmQoJ3NoYXJlZC1kYXRhOm1hc3Rlci1pbml0LXdhaXRpbmcnKTtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgYmFja2VuZCBpbml0IGlzIGV4ZWN1dGVkIGFmdGVyIGZyb250ZW5kXG4gICAgICAgICAgICBicmlkZ2Uub24oJ3NoYXJlZC1kYXRhOnNsYXZlLWluaXQtd2FpdGluZycsICgpID0+IHtcbiAgICAgICAgICAgICAgICBicmlkZ2Uuc2VuZCgnc2hhcmVkLWRhdGE6bWFzdGVyLWluaXQtd2FpdGluZycpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpbml0UmV0cnlDb3VudCA9IDA7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKGluaXRSZXRyeUludGVydmFsKTtcbiAgICAgICAgICAgIGluaXRSZXRyeUludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKVxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW3NoYXJlZCBkYXRhXSBNYXN0ZXIgaW5pdCByZXRyeWluZy4uLicpO1xuICAgICAgICAgICAgICAgIGJyaWRnZS5zZW5kKCdzaGFyZWQtZGF0YTptYXN0ZXItaW5pdC13YWl0aW5nJyk7XG4gICAgICAgICAgICAgICAgaW5pdFJldHJ5Q291bnQrKztcbiAgICAgICAgICAgICAgICBpZiAoaW5pdFJldHJ5Q291bnQgPiAzMCkge1xuICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGluaXRSZXRyeUludGVydmFsKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW3NoYXJlZCBkYXRhXSBNYXN0ZXIgaW5pdCBmYWlsZWQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAyMDAwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKVxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbc2hhcmVkIGRhdGFdIFNsYXZlIGluaXQgaW4gcHJvZ3Jlc3MuLi4nKTtcbiAgICAgICAgICAgIGJyaWRnZS5vbignc2hhcmVkLWRhdGE6bWFzdGVyLWluaXQtd2FpdGluZycsICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJylcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1tzaGFyZWQgZGF0YV0gU2xhdmUgbG9hZGluZyBkYXRhLi4uJyk7XG4gICAgICAgICAgICAgICAgLy8gTG9hZCBhbGwgcGVyc2lzdGVkIHNoYXJlZCBkYXRhXG4gICAgICAgICAgICAgICAgYnJpZGdlLnNlbmQoJ3NoYXJlZC1kYXRhOmxvYWQnKTtcbiAgICAgICAgICAgICAgICBicmlkZ2Uub25jZSgnc2hhcmVkLWRhdGE6bG9hZC1jb21wbGV0ZScsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW3NoYXJlZCBkYXRhXSBTbGF2ZSBpbml0IGNvbXBsZXRlJyk7XG4gICAgICAgICAgICAgICAgICAgIGJyaWRnZS5zZW5kKCdzaGFyZWQtZGF0YTppbml0LWNvbXBsZXRlJyk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJpZGdlLnNlbmQoJ3NoYXJlZC1kYXRhOnNsYXZlLWluaXQtd2FpdGluZycpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGEgPSB7XG4gICAgICAgICAgICAuLi5pbnRlcm5hbFNoYXJlZERhdGFcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHBhcmFtcy5WdWUpIHtcbiAgICAgICAgICAgIGRhdGEgPSBwYXJhbXMuVnVlLm9ic2VydmFibGUoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVXBkYXRlIHZhbHVlIGZyb20gb3RoZXIgc2hhcmVkIGRhdGEgY2xpZW50c1xuICAgICAgICBicmlkZ2Uub24oJ3NoYXJlZC1kYXRhOnNldCcsICh7IGtleSwgdmFsdWUgfSkgPT4ge1xuICAgICAgICAgICAgc2V0VmFsdWUoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpbml0Q2JzLmZvckVhY2goY2IgPT4gY2IoKSk7XG4gICAgfSk7XG59XG5leHBvcnRzLmluaXRTaGFyZWREYXRhID0gaW5pdFNoYXJlZERhdGE7XG5mdW5jdGlvbiBvblNoYXJlZERhdGFJbml0KGNiKSB7XG4gICAgaW5pdENicy5wdXNoKGNiKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IGluaXRDYnMuaW5kZXhPZihjYik7XG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpXG4gICAgICAgICAgICBpbml0Q2JzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfTtcbn1cbmV4cG9ydHMub25TaGFyZWREYXRhSW5pdCA9IG9uU2hhcmVkRGF0YUluaXQ7XG5mdW5jdGlvbiBkZXN0cm95U2hhcmVkRGF0YSgpIHtcbiAgICBicmlkZ2UucmVtb3ZlQWxsTGlzdGVuZXJzKCdzaGFyZWQtZGF0YTpzZXQnKTtcbiAgICB3YXRjaGVycyA9IHt9O1xufVxuZXhwb3J0cy5kZXN0cm95U2hhcmVkRGF0YSA9IGRlc3Ryb3lTaGFyZWREYXRhO1xubGV0IHdhdGNoZXJzID0ge307XG5mdW5jdGlvbiBzZXRWYWx1ZShrZXksIHZhbHVlKSB7XG4gICAgLy8gU3RvcmFnZVxuICAgIGlmIChwZXJzaXN0ICYmIHBlcnNpc3RlZC5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgIHN0b3JhZ2VfMS5zZXRTdG9yYWdlKGB2dWUtZGV2dG9vbHMtJHtzdG9yYWdlVmVyc2lvbn06c2hhcmVkLWRhdGE6JHtrZXl9YCwgdmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBvbGRWYWx1ZSA9IGRhdGFba2V5XTtcbiAgICBkYXRhW2tleV0gPSB2YWx1ZTtcbiAgICBjb25zdCBoYW5kbGVycyA9IHdhdGNoZXJzW2tleV07XG4gICAgaWYgKGhhbmRsZXJzKSB7XG4gICAgICAgIGhhbmRsZXJzLmZvckVhY2goaCA9PiBoKHZhbHVlLCBvbGRWYWx1ZSkpO1xuICAgIH1cbiAgICAvLyBWYWxpZGF0ZSBQcm94eSBzZXQgdHJhcFxuICAgIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gc2VuZFZhbHVlKGtleSwgdmFsdWUpIHtcbiAgICBicmlkZ2UgJiYgYnJpZGdlLnNlbmQoJ3NoYXJlZC1kYXRhOnNldCcsIHtcbiAgICAgICAga2V5LFxuICAgICAgICB2YWx1ZVxuICAgIH0pO1xufVxuZnVuY3Rpb24gd2F0Y2hTaGFyZWREYXRhKHByb3AsIGhhbmRsZXIpIHtcbiAgICBjb25zdCBsaXN0ID0gd2F0Y2hlcnNbcHJvcF0gfHwgKHdhdGNoZXJzW3Byb3BdID0gW10pO1xuICAgIGxpc3QucHVzaChoYW5kbGVyKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IGxpc3QuaW5kZXhPZihoYW5kbGVyKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSlcbiAgICAgICAgICAgIGxpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9O1xufVxuZXhwb3J0cy53YXRjaFNoYXJlZERhdGEgPSB3YXRjaFNoYXJlZERhdGE7XG5jb25zdCBwcm94eSA9IHt9O1xuT2JqZWN0LmtleXMoaW50ZXJuYWxTaGFyZWREYXRhKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3h5LCBrZXksIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgZ2V0OiAoKSA9PiBkYXRhW2tleV0sXG4gICAgICAgIHNldDogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBzZW5kVmFsdWUoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICBzZXRWYWx1ZShrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBwcm94eTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNoYXJlZC1kYXRhLmpzLm1hcCJdLCJuYW1lcyI6WyJjb25zdCIsImxldCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///59835\n");
525
525
 
526
526
  /***/ }),
527
527