From 128c79ab49db9ebde1f3a26efba1fbe2274bc503 Mon Sep 17 00:00:00 2001 From: Nick Sweeting Date: Thu, 14 May 2026 10:10:30 -0700 Subject: [PATCH] Add external saved sessions API --- css/option.css | 64 +++- dist/popup/popup.js | 351 ++++++++++++++-------- dist/popup/popup.js.map | 8 +- dist/service_worker/service_worker.js | 142 +++++++-- dist/service_worker/service_worker.js.map | 8 +- src/helpers/external_api.ts | 150 +++++++++ src/popup/views/TabManager.tsx | 5 +- src/popup/views/TabOptions.tsx | 102 ++++++- src/service_worker/service_worker.ts | 28 +- src/types/ITabOptionsState.ts | 7 +- 10 files changed, 696 insertions(+), 169 deletions(-) create mode 100644 src/helpers/external_api.ts diff --git a/css/option.css b/css/option.css index 9e377ffc..764632d7 100644 --- a/css/option.css +++ b/css/option.css @@ -206,4 +206,66 @@ input[type=number]::-webkit-outer-spin-button { clear: both; padding-bottom: 20px; /*font-size: 14px;*/ -} \ No newline at end of file +} + +.external-api-access { + border: 1px solid #e6e6e6; + border-radius: 4px; + box-sizing: border-box; + margin-top: 12px; + padding: 12px; +} + +.external-api-access.has-pending-requests { + background: #fff4f4; + border-color: #df7070; +} + +.external-api-list { + border-top: 1px solid #e6e6e6; + padding: 10px 0; +} + +.external-api-list h5 { + margin: 0 0 8px; +} + +.external-api-row { + align-items: center; + border-top: 1px solid #f1f1f1; + display: flex; + gap: 10px; + justify-content: space-between; + padding: 8px 0; +} + +.external-api-row:first-of-type { + border-top: 0; +} + +.external-api-name { + font-size: 0.8rem; + font-weight: bold; +} + +.external-api-id { + color: #666; + font-family: monospace; + font-size: 0.7rem; + margin-top: 2px; + word-break: break-all; +} + +.external-api-actions { + display: flex; + gap: 6px; +} + +.external-api-actions button { + font-size: 0.75rem; +} + +.external-api-empty { + color: #777; + font-size: 0.8rem; +} diff --git a/dist/popup/popup.js b/dist/popup/popup.js index f03d4eb5..7d5b46bd 100644 --- a/dist/popup/popup.js +++ b/dist/popup/popup.js @@ -26,9 +26,9 @@ mod )); - // node_modules/webextension-polyfill/dist/browser-polyfill.js + // node_modules/.pnpm/webextension-polyfill@0.12.0/node_modules/webextension-polyfill/dist/browser-polyfill.js var require_browser_polyfill = __commonJS({ - "node_modules/webextension-polyfill/dist/browser-polyfill.js"(exports, module) { + "node_modules/.pnpm/webextension-polyfill@0.12.0/node_modules/webextension-polyfill/dist/browser-polyfill.js"(exports, module) { (function(global, factory) { if (typeof define === "function" && define.amd) { define("webextension-polyfill", ["module"], factory); @@ -1016,9 +1016,9 @@ } }); - // node_modules/object-assign/index.js + // node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js var require_object_assign = __commonJS({ - "node_modules/object-assign/index.js"(exports, module) { + "node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js"(exports, module) { "use strict"; var getOwnPropertySymbols = Object.getOwnPropertySymbols; var hasOwnProperty = Object.prototype.hasOwnProperty; @@ -1086,9 +1086,9 @@ } }); - // node_modules/react/cjs/react.production.min.js + // node_modules/.pnpm/react@16.11.0/node_modules/react/cjs/react.production.min.js var require_react_production_min = __commonJS({ - "node_modules/react/cjs/react.production.min.js"(exports, module) { + "node_modules/.pnpm/react@16.11.0/node_modules/react/cjs/react.production.min.js"(exports, module) { "use strict"; var h = require_object_assign(); var n = "function" === typeof Symbol && Symbol.for; @@ -1373,9 +1373,9 @@ } }); - // node_modules/react/index.js + // node_modules/.pnpm/react@16.11.0/node_modules/react/index.js var require_react = __commonJS({ - "node_modules/react/index.js"(exports, module) { + "node_modules/.pnpm/react@16.11.0/node_modules/react/index.js"(exports, module) { "use strict"; if (true) { module.exports = require_react_production_min(); @@ -1385,9 +1385,9 @@ } }); - // node_modules/scheduler/cjs/scheduler.production.min.js + // node_modules/.pnpm/scheduler@0.17.0/node_modules/scheduler/cjs/scheduler.production.min.js var require_scheduler_production_min = __commonJS({ - "node_modules/scheduler/cjs/scheduler.production.min.js"(exports) { + "node_modules/.pnpm/scheduler@0.17.0/node_modules/scheduler/cjs/scheduler.production.min.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var f; @@ -1682,9 +1682,9 @@ } }); - // node_modules/scheduler/index.js + // node_modules/.pnpm/scheduler@0.17.0/node_modules/scheduler/index.js var require_scheduler = __commonJS({ - "node_modules/scheduler/index.js"(exports, module) { + "node_modules/.pnpm/scheduler@0.17.0/node_modules/scheduler/index.js"(exports, module) { "use strict"; if (true) { module.exports = require_scheduler_production_min(); @@ -1694,9 +1694,9 @@ } }); - // node_modules/react-dom/cjs/react-dom.production.min.js + // node_modules/.pnpm/react-dom@16.11.0_react@16.11.0/node_modules/react-dom/cjs/react-dom.production.min.js var require_react_dom_production_min = __commonJS({ - "node_modules/react-dom/cjs/react-dom.production.min.js"(exports, module) { + "node_modules/.pnpm/react-dom@16.11.0_react@16.11.0/node_modules/react-dom/cjs/react-dom.production.min.js"(exports, module) { "use strict"; var aa = require_react(); var n = require_object_assign(); @@ -7217,9 +7217,9 @@ } }); - // node_modules/react-dom/index.js + // node_modules/.pnpm/react-dom@16.11.0_react@16.11.0/node_modules/react-dom/index.js var require_react_dom = __commonJS({ - "node_modules/react-dom/index.js"(exports, module) { + "node_modules/.pnpm/react-dom@16.11.0_react@16.11.0/node_modules/react-dom/index.js"(exports, module) { "use strict"; function checkDCE() { if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === "undefined" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== "function") { @@ -7424,7 +7424,7 @@ let hideWindow = true; let titleAdded = false; let tabsperrow = this.props.layout.indexOf("blocks") > -1 ? Math.ceil(Math.sqrt(this.props.tabs.length + 2)) : this.props.layout === "vertical" ? 1 : 15; - let tabs4 = this.props.tabs.map(function(tab) { + let tabs5 = this.props.tabs.map(function(tab) { let tabId = tab.id * tab.id * tab.id * 100; let isHidden = _this.props.hiddenTabs.has(tabId) && _this.props.filterTabs; let isSelected = _this.props.selection.has(tabId); @@ -7452,13 +7452,13 @@ }); if (!hideWindow) { if (!!this.props.tabactions) { - tabs4.push( + tabs5.push( /* @__PURE__ */ React.createElement("div", { key: "sessionnl_" + _this.props.session.id, className: "newliner" }), /* @__PURE__ */ React.createElement("div", { key: "sessionwa_" + _this.props.session.id, className: "window-actions" }, /* @__PURE__ */ React.createElement( "div", { className: "icon tabaction restore " + (this.props.layout.indexOf("blocks") > -1 ? "" : "windowaction"), - title: "Restore this saved window\nWill restore " + tabs4.length + " tabs. Please note : The tabs will be restored without their history.", + title: "Restore this saved window\nWill restore " + tabs5.length + " tabs. Please note : The tabs will be restored without their history.", onClick: this.windowClick, onMouseEnter: this.props.hoverIcon } @@ -7466,7 +7466,7 @@ "div", { className: "icon tabaction delete " + (this.props.layout.indexOf("blocks") > -1 ? "" : "windowaction"), - title: "Delete this saved window\nWill delete " + tabs4.length + " tabs permanently", + title: "Delete this saved window\nWill delete " + tabs5.length + " tabs permanently", onClick: this.close, onMouseEnter: this.props.hoverIcon } @@ -7475,7 +7475,7 @@ } if (this.props.windowTitles) { if (this.state.name) { - tabs4.unshift( + tabs5.unshift( /* @__PURE__ */ React.createElement("h3", { key: "session-" + this.props.session.id + "-windowTitle", className: "center windowTitle" }, this.state.name) ); titleAdded = true; @@ -7486,10 +7486,10 @@ } var children = []; if (!!titleAdded) { - children.push(tabs4.shift()); + children.push(tabs5.shift()); } - for (var j = 0; j < tabs4.length; j++) { - children.push(tabs4[j]); + for (var j = 0; j < tabs5.length; j++) { + children.push(tabs5[j]); if ((j + 1) % tabsperrow === 0 && j && this.props.layout.indexOf("blocks") > -1) { children.push(/* @__PURE__ */ React.createElement("div", { key: "sessionnl_" + _this.props.session.id + "_" + j, className: "newliner" })); } @@ -7899,37 +7899,37 @@ var openInOwnTab = false; var tabWidth = 800; var tabHeight = 600; - var storage4 = await browser5.storage.local.get(null); - if (!storage4["layout"]) storage4["layout"] = layout; - if (typeof storage4["tabLimit"] === "undefined") storage4["tabLimit"] = tabLimit; - if (typeof storage4["tabWidth"] === "undefined") storage4["tabWidth"] = tabWidth; - if (typeof storage4["tabHeight"] === "undefined") storage4["tabHeight"] = tabHeight; - if (typeof storage4["animations"] === "undefined") storage4["animations"] = animations; - if (typeof storage4["windowTitles"] === "undefined") storage4["windowTitles"] = windowTitles; - if (typeof storage4["tabactions"] === "undefined") storage4["tabactions"] = tabactions; - if (typeof storage4["badge"] === "undefined") storage4["badge"] = badge; - if (typeof storage4["openInOwnTab"] === "undefined") storage4["openInOwnTab"] = openInOwnTab; - if (typeof storage4["compact"] === "undefined") storage4["compact"] = compact; - if (typeof storage4["dark"] === "undefined") storage4["dark"] = dark; - if (typeof storage4["sessionsFeature"] === "undefined") storage4["sessionsFeature"] = sessionsFeature; - if (typeof storage4["hideWindows"] === "undefined") storage4["hideWindows"] = hideWindows; - if (typeof storage4["filter-tabs"] === "undefined") storage4["filter-tabs"] = filterTabs; - storage4["version"] = window.extensionVersion; - await browser5.storage.local.set(storage4); - layout = storage4["layout"]; - tabLimit = storage4["tabLimit"]; - tabWidth = storage4["tabWidth"]; - tabHeight = storage4["tabHeight"]; - openInOwnTab = storage4["openInOwnTab"]; - animations = storage4["animations"]; - windowTitles = storage4["windowTitles"]; - compact = storage4["compact"]; - dark = storage4["dark"]; - tabactions = storage4["tabactions"]; - badge = storage4["badge"]; - sessionsFeature = storage4["sessionsFeature"]; - hideWindows = storage4["hideWindows"]; - filterTabs = storage4["filter-tabs"]; + var storage5 = await browser5.storage.local.get(null); + if (!storage5["layout"]) storage5["layout"] = layout; + if (typeof storage5["tabLimit"] === "undefined") storage5["tabLimit"] = tabLimit; + if (typeof storage5["tabWidth"] === "undefined") storage5["tabWidth"] = tabWidth; + if (typeof storage5["tabHeight"] === "undefined") storage5["tabHeight"] = tabHeight; + if (typeof storage5["animations"] === "undefined") storage5["animations"] = animations; + if (typeof storage5["windowTitles"] === "undefined") storage5["windowTitles"] = windowTitles; + if (typeof storage5["tabactions"] === "undefined") storage5["tabactions"] = tabactions; + if (typeof storage5["badge"] === "undefined") storage5["badge"] = badge; + if (typeof storage5["openInOwnTab"] === "undefined") storage5["openInOwnTab"] = openInOwnTab; + if (typeof storage5["compact"] === "undefined") storage5["compact"] = compact; + if (typeof storage5["dark"] === "undefined") storage5["dark"] = dark; + if (typeof storage5["sessionsFeature"] === "undefined") storage5["sessionsFeature"] = sessionsFeature; + if (typeof storage5["hideWindows"] === "undefined") storage5["hideWindows"] = hideWindows; + if (typeof storage5["filter-tabs"] === "undefined") storage5["filter-tabs"] = filterTabs; + storage5["version"] = window.extensionVersion; + await browser5.storage.local.set(storage5); + layout = storage5["layout"]; + tabLimit = storage5["tabLimit"]; + tabWidth = storage5["tabWidth"]; + tabHeight = storage5["tabHeight"]; + openInOwnTab = storage5["openInOwnTab"]; + animations = storage5["animations"]; + windowTitles = storage5["windowTitles"]; + compact = storage5["compact"]; + dark = storage5["dark"]; + tabactions = storage5["tabactions"]; + badge = storage5["badge"]; + sessionsFeature = storage5["sessionsFeature"]; + hideWindows = storage5["hideWindows"]; + filterTabs = storage5["filter-tabs"]; if (dark) { document.body.className = "dark"; } else { @@ -8280,7 +8280,7 @@ browser5.windows.onFocusChanged.addListener(runUpdate); browser5.windows.onCreated.addListener(runUpdate); browser5.windows.onRemoved.addListener(runUpdate); - browser5.runtime.onMessage.addListener(async function(message, sender, sendResponse) { + browser5.runtime.onMessage.addListener(function(message, sender, sendResponse) { const request = message; console.log(request.command); switch (request.command) { @@ -8292,6 +8292,7 @@ } break; } + return true; }); browser5.storage.onChanged.addListener(this.sessionSync); await this.sessionSync(); @@ -8427,11 +8428,11 @@ } async deleteTabs() { const _this = this; - const tabs4 = [...this.state.selection.keys()].map(function(id) { + const tabs5 = [...this.state.selection.keys()].map(function(id) { return _this.state.tabsbyid.get(id); }); - if (tabs4.length) { - browser5.runtime.sendMessage({ command: close_tabs, tabs: tabs4 }); + if (tabs5.length) { + browser5.runtime.sendMessage({ command: close_tabs, tabs: tabs5 }); } else { const t = await browser5.tabs.query({ currentWindow: true, active: true }); if (t && t.length > 0) { @@ -8445,11 +8446,11 @@ } async discardTabs() { const _this = this; - const tabs4 = [...this.state.selection.keys()].map(function(id) { + const tabs5 = [...this.state.selection.keys()].map(function(id) { return _this.state.tabsbyid.get(id); }); - if (tabs4.length) { - browser5.runtime.sendMessage({ command: discard_tabs, tabs: tabs4 }); + if (tabs5.length) { + browser5.runtime.sendMessage({ command: discard_tabs, tabs: tabs5 }); } this.clearSelection(); } @@ -8459,22 +8460,22 @@ async addWindow() { const _this = this; const count = this.state.selection.size; - const tabs4 = [...this.state.selection.keys()].map(function(id) { + const tabs5 = [...this.state.selection.keys()].map(function(id) { return _this.state.tabsbyid.get(id); }); - const incognito_tabs = tabs4.filter(function(tab) { + const incognito_tabs = tabs5.filter(function(tab) { return tab.incognito; }); - const normal_tabs = tabs4.filter(function(tab) { + const normal_tabs = tabs5.filter(function(tab) { return !tab.incognito; }); if (count === 0) { await browser5.windows.create({}); } else if (count === 1) { if (navigator.userAgent.search("Firefox") > -1) { - await browser5.runtime.sendMessage({ command: focus_on_tab_and_window_delayed, tab: tabs4[0] }); + await browser5.runtime.sendMessage({ command: focus_on_tab_and_window_delayed, tab: tabs5[0] }); } else { - await browser5.runtime.sendMessage({ command: focus_on_tab_and_window, tab: tabs4[0] }); + await browser5.runtime.sendMessage({ command: focus_on_tab_and_window, tab: tabs5[0] }); } } else { if (normal_tabs.length > 0) { @@ -8488,15 +8489,15 @@ } async pinTabs() { const _this = this; - const tabs4 = [...this.state.selection.keys()].map(function(id) { + const tabs5 = [...this.state.selection.keys()].map(function(id) { return _this.state.tabsbyid.get(id); }).sort(function(a, b) { return a.index - b.index; }); - if (tabs4.length) { - if (tabs4[0].pinned) tabs4.reverse(); - for (let i = 0; i < tabs4.length; i++) { - await browser5.tabs.update(tabs4[i].id, { pinned: !tabs4[0].pinned }); + if (tabs5.length) { + if (tabs5[0].pinned) tabs5.reverse(); + for (let i = 0; i < tabs5.length; i++) { + await browser5.tabs.update(tabs5[i].id, { pinned: !tabs5[0].pinned }); } } else { const t = await browser5.tabs.query({ currentWindow: true, active: true }); @@ -9040,7 +9041,7 @@ }); } } - selectTo(id, tabs4) { + selectTo(id, tabs5) { let activate = false; const lastSelect = this.state.lastSelect; if (id === lastSelect) { @@ -9060,11 +9061,11 @@ } let rangeIndex1; let rangeIndex2; - for (let i = 0; i < tabs4.length; i++) { - if (tabs4[i].id === id) { + for (let i = 0; i < tabs5.length; i++) { + if (tabs5[i].id === id) { rangeIndex1 = i; } - if (!!lastSelect && tabs4[i].id === lastSelect) { + if (!!lastSelect && tabs5[i].id === lastSelect) { rangeIndex2 = i; } } @@ -9074,8 +9075,8 @@ } if (!rangeIndex2) { const neighbours = []; - for (let i = 0; i < tabs4.length; i++) { - const tabId = tabs4[i].id; + for (let i = 0; i < tabs5.length; i++) { + const tabId = tabs5[i].id; if (tabId !== id) { if (this.state.selection.has(tabId)) { neighbours.push(tabId); @@ -9084,13 +9085,13 @@ } if (activate) { let leftSibling = 0; - let rightSibling = tabs4.length - 1; + let rightSibling = tabs5.length - 1; for (let i = 0; i < rangeIndex1; i++) { if (neighbours.indexOf(i) > -1) { leftSibling = i; } } - for (let i = tabs4.length - 1; i > rangeIndex1; i--) { + for (let i = tabs5.length - 1; i > rangeIndex1; i--) { if (neighbours.indexOf(i) > -1) { rightSibling = i; } @@ -9110,7 +9111,7 @@ leftSibling = i; } } - for (let i = rangeIndex1; i < tabs4.length; i++) { + for (let i = rangeIndex1; i < tabs5.length; i++) { if (neighbours.indexOf(i) > -1) { rightSibling = i; } @@ -9125,7 +9126,7 @@ } } this.setState({ - lastSelect: tabs4[rangeIndex2].id + lastSelect: tabs5[rangeIndex2].id }); if (rangeIndex2 < rangeIndex1) { let r1 = rangeIndex2; @@ -9133,9 +9134,9 @@ rangeIndex1 = r1; rangeIndex2 = r2; } - for (let i = 0; i < tabs4.length; i++) { + for (let i = 0; i < tabs5.length; i++) { if (i >= rangeIndex1 && i <= rangeIndex2) { - const _tab_id = tabs4[i].id; + const _tab_id = tabs5[i].id; if (activate) { this.state.selection.add(_tab_id); } else { @@ -9175,12 +9176,12 @@ async drop(id, before) { var _this = this; var tab = this.state.tabsbyid.get(id); - var tabs4 = [...this.state.selection.keys()].map(function(id2) { + var tabs5 = [...this.state.selection.keys()].map(function(id2) { return _this.state.tabsbyid.get(id2); }); var index = tab.index + (before ? 0 : 1); - for (let i = 0; i < tabs4.length; i++) { - const t = tabs4[i]; + for (let i = 0; i < tabs5.length; i++) { + const t = tabs5[i]; await browser5.tabs.move(t.id, { windowId: tab.windowId, index }); await browser5.tabs.update(t.id, { pinned: t.pinned }); } @@ -9189,10 +9190,10 @@ } async dropWindow(windowId) { var _this = this; - var tabs4 = [...this.state.selection.keys()].map(function(id) { + var tabs5 = [...this.state.selection.keys()].map(function(id) { return _this.state.tabsbyid.get(id); }); - browser5.runtime.sendMessage({ command: move_tabs_to_window, window_id: windowId, tabs: tabs4 }); + browser5.runtime.sendMessage({ command: move_tabs_to_window, window_id: windowId, tabs: tabs5 }); this.state.selection.clear(); } async changeTabLimit(e) { @@ -9506,11 +9507,92 @@ // src/popup/views/TabOptions.tsx var React4 = __toESM(require_react()); + var browser7 = __toESM(require_browser_polyfill()); + + // src/helpers/external_api.ts var browser6 = __toESM(require_browser_polyfill()); + var externalAccessKey = "externalApiAccess"; + var externalPendingRequestsKey = "externalApiPendingRequests"; + async function getExternalApiAccess() { + const access = await getLocalStorage(externalAccessKey, {}); + return { + allowedExtensions: Array.isArray(access.allowedExtensions) ? access.allowedExtensions : [] + }; + } + async function getExternalApiPendingRequests() { + const requests = await getLocalStorage(externalPendingRequestsKey, []); + return Array.isArray(requests) ? requests : []; + } + async function approveExternalApiRequest(request) { + const access = await getExternalApiAccess(); + const requests = await getExternalApiPendingRequests(); + const allowedExtensions = access.allowedExtensions.filter((extension) => extension.id !== request.id); + allowedExtensions.push({ + id: request.id, + name: request.name || "Unknown extension", + approvedAt: Date.now() + }); + await setLocalStorage(externalAccessKey, { allowedExtensions }); + await setLocalStorage(externalPendingRequestsKey, requests.filter((item) => item.id !== request.id)); + } + async function denyExternalApiRequest(extensionId) { + const requests = await getExternalApiPendingRequests(); + await setLocalStorage(externalPendingRequestsKey, requests.filter((item) => item.id !== extensionId)); + } + async function removeAllowedExternalApiExtension(extensionId) { + const access = await getExternalApiAccess(); + await setLocalStorage(externalAccessKey, { + allowedExtensions: access.allowedExtensions.filter((extension) => extension.id !== extensionId) + }); + } + + // src/popup/views/TabOptions.tsx var TabOptions = class extends React4.Component { constructor(props) { super(props); - this.state = {}; + this.state = { + externalApiAllowedExtensions: [], + externalApiPendingRequests: [] + }; + this.approveExternalRequest = this.approveExternalRequest.bind(this); + this.denyExternalRequest = this.denyExternalRequest.bind(this); + this.handleExternalApiStorageChange = this.handleExternalApiStorageChange.bind(this); + this.refreshExternalApiAccess = this.refreshExternalApiAccess.bind(this); + this.removeAllowedExternalExtension = this.removeAllowedExternalExtension.bind(this); + } + componentDidMount() { + this.refreshExternalApiAccess(); + browser7.storage.onChanged.addListener(this.handleExternalApiStorageChange); + } + componentWillUnmount() { + browser7.storage.onChanged.removeListener(this.handleExternalApiStorageChange); + } + handleExternalApiStorageChange(changes, areaName) { + if (areaName === "local" && (changes[externalAccessKey] || changes[externalPendingRequestsKey])) { + this.refreshExternalApiAccess(); + } + } + async refreshExternalApiAccess() { + const [access, pendingRequests] = await Promise.all([ + getExternalApiAccess(), + getExternalApiPendingRequests() + ]); + this.setState({ + externalApiAllowedExtensions: access.allowedExtensions, + externalApiPendingRequests: pendingRequests + }); + } + async approveExternalRequest(request) { + await approveExternalApiRequest(request); + await this.refreshExternalApiAccess(); + } + async denyExternalRequest(request) { + await denyExternalApiRequest(request.id); + await this.refreshExternalApiAccess(); + } + async removeAllowedExternalExtension(extension) { + await removeAllowedExternalApiExtension(extension.id); + await this.refreshExternalApiAccess(); } logo() { return /* @__PURE__ */ React4.createElement("div", { className: "logo-options", key: "logo" }, /* @__PURE__ */ React4.createElement("div", { className: "logo-box" }, /* @__PURE__ */ React4.createElement("img", { src: "images/browsers.svg", style: { maxWidth: "3rem" }, alt: "Tab Manager Plus" }), /* @__PURE__ */ React4.createElement("h2", { key: "title" }, "Tab Manager Plus ", window.extensionVersion))); @@ -9613,7 +9695,7 @@ name: "session_import", placeholder: "Import/Restore Sessions" } - ), /* @__PURE__ */ React4.createElement("label", { onMouseEnter: this.props.importSessionsText, htmlFor: "session_import", style: { whiteSpace: "pre", lineHeight: "2rem" } })), /* @__PURE__ */ React4.createElement("div", { className: "option-description" }, "Allows you to restore your backup from an external file. The restored windows will be added to your current saved windows."))), /* @__PURE__ */ React4.createElement("div", { className: "optionsBox" }, /* @__PURE__ */ React4.createElement("h4", null, "Popup icon"), /* @__PURE__ */ React4.createElement("div", { className: "toggle-box" }, /* @__PURE__ */ React4.createElement("div", { className: "toggle" }, /* @__PURE__ */ React4.createElement( + ), /* @__PURE__ */ React4.createElement("label", { onMouseEnter: this.props.importSessionsText, htmlFor: "session_import", style: { whiteSpace: "pre", lineHeight: "2rem" } })), /* @__PURE__ */ React4.createElement("div", { className: "option-description" }, "Allows you to restore your backup from an external file. The restored windows will be added to your current saved windows.")), this.externalApiSection()), /* @__PURE__ */ React4.createElement("div", { className: "optionsBox" }, /* @__PURE__ */ React4.createElement("h4", null, "Popup icon"), /* @__PURE__ */ React4.createElement("div", { className: "toggle-box" }, /* @__PURE__ */ React4.createElement("div", { className: "toggle" }, /* @__PURE__ */ React4.createElement( "input", { type: "checkbox", @@ -9655,13 +9737,18 @@ } ), /* @__PURE__ */ React4.createElement("label", { onMouseEnter: this.props.tabActionsText, htmlFor: "tabactions_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } })), /* @__PURE__ */ React4.createElement("label", { className: "textlabel", htmlFor: "tabactions_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } }, "Show action buttons"), /* @__PURE__ */ React4.createElement("div", { className: "option-description" }, "Displays buttons in every window for : opening a new tab, minimizing the window, assigning a color to the window and closing the window.", /* @__PURE__ */ React4.createElement("br", null), /* @__PURE__ */ React4.createElement("i", null, "By default: enabled")))), /* @__PURE__ */ React4.createElement("div", { className: "optionsBox" }, /* @__PURE__ */ React4.createElement("h4", null, "Advanced settings"), /* @__PURE__ */ React4.createElement("div", { className: "toggle-box" }, /* @__PURE__ */ React4.createElement("div", { className: "toggle-box" }, /* @__PURE__ */ React4.createElement("a", { href: "#", onClick: this.openIncognitoOptions }, "Allow in Incognito")), /* @__PURE__ */ React4.createElement("div", { className: "option-description" }, "If you also want to see your incognito tabs in the Tab Manager overview, then enable incognito access for this extension.")), /* @__PURE__ */ React4.createElement("div", { className: "toggle-box" }, /* @__PURE__ */ React4.createElement("a", { href: "#", onClick: this.openShortcuts }, "Change shortcut key"), /* @__PURE__ */ React4.createElement("div", { className: "option-description" }, "If you want to disable or change the shortcut key with which to open Tab Manager Plus, you can do so here."))), /* @__PURE__ */ React4.createElement("div", { className: "optionsBox" }, /* @__PURE__ */ React4.createElement("div", { className: "toggle-box" }, /* @__PURE__ */ React4.createElement("h4", null, "Right mouse button"), /* @__PURE__ */ React4.createElement("div", { className: "option-description" }, "With the right mouse button you can select tabs"), /* @__PURE__ */ React4.createElement("h4", null, "Shift+Right mouse button"), /* @__PURE__ */ React4.createElement("div", { className: "option-description" }, "While holding shift, and pressing the right mouse button you can select all tabs between the last selected tab and the current one"), /* @__PURE__ */ React4.createElement("h4", null, "Middle mouse button"), /* @__PURE__ */ React4.createElement("div", { className: "option-description" }, "With the middle mouse button you can close a tab"), /* @__PURE__ */ React4.createElement("h4", null, "[Enter / Return] button"), /* @__PURE__ */ React4.createElement("div", { className: "option-description" }, "With the return button you can switch to the currently selected tab, or move multiple selected tabs to a new window")))); } + externalApiSection() { + const pendingRequests = this.state.externalApiPendingRequests || []; + const allowedExtensions = this.state.externalApiAllowedExtensions || []; + return /* @__PURE__ */ React4.createElement("div", { className: "toggle-box external-api-access " + (pendingRequests.length > 0 ? "has-pending-requests" : "") }, /* @__PURE__ */ React4.createElement("label", { className: "textlabel", style: { whiteSpace: "pre", lineHeight: "2rem" } }, /* @__PURE__ */ React4.createElement("h4", null, "External Session Access")), /* @__PURE__ */ React4.createElement("div", { className: "option-description" }, "Allow other extensions to request saved session URLs from Tab Manager Plus. This lets tools like ArchiveBox import saved tabs after you approve them."), /* @__PURE__ */ React4.createElement("div", { className: "external-api-list" }, /* @__PURE__ */ React4.createElement("h5", null, "Pending requests"), pendingRequests.length === 0 && /* @__PURE__ */ React4.createElement("div", { className: "external-api-empty" }, "No pending requests."), pendingRequests.map((request) => /* @__PURE__ */ React4.createElement("div", { className: "external-api-row", key: "pending-" + request.id }, /* @__PURE__ */ React4.createElement("div", null, /* @__PURE__ */ React4.createElement("div", { className: "external-api-name" }, request.name || "Unknown extension"), /* @__PURE__ */ React4.createElement("div", { className: "external-api-id" }, request.id)), /* @__PURE__ */ React4.createElement("div", { className: "external-api-actions" }, /* @__PURE__ */ React4.createElement("button", { type: "button", onClick: this.approveExternalRequest.bind(this, request) }, "Approve"), /* @__PURE__ */ React4.createElement("button", { type: "button", onClick: this.denyExternalRequest.bind(this, request) }, "Deny"))))), /* @__PURE__ */ React4.createElement("div", { className: "external-api-list" }, /* @__PURE__ */ React4.createElement("h5", null, "Allowed extensions"), allowedExtensions.length === 0 && /* @__PURE__ */ React4.createElement("div", { className: "external-api-empty" }, "No extensions allowed yet."), allowedExtensions.map((extension) => /* @__PURE__ */ React4.createElement("div", { className: "external-api-row", key: "allowed-" + extension.id }, /* @__PURE__ */ React4.createElement("div", null, /* @__PURE__ */ React4.createElement("div", { className: "external-api-name" }, extension.name || "Unknown extension"), /* @__PURE__ */ React4.createElement("div", { className: "external-api-id" }, extension.id)), /* @__PURE__ */ React4.createElement("div", { className: "external-api-actions" }, /* @__PURE__ */ React4.createElement("button", { type: "button", onClick: this.removeAllowedExternalExtension.bind(this, extension) }, "Remove")))))); + } async openIncognitoOptions() { - await browser6.tabs.create({ + await browser7.tabs.create({ url: "chrome://extensions/?id=cnkdjjdmfiffagllbiiilooaoofcoeff" }); } async openShortcuts() { - await browser6.tabs.create({ url: "chrome://extensions/shortcuts" }); + await browser7.tabs.create({ url: "chrome://extensions/shortcuts" }); } licenses() { return /* @__PURE__ */ React4.createElement("div", { className: "licenses", key: "licenses" }, /* @__PURE__ */ React4.createElement("div", { className: "license" }, "Tab Manager Plus is based on", " ", /* @__PURE__ */ React4.createElement("a", { href: "https://github.com/dsc/Tab-Manager", target: "_blank", title: "Tab-Manager" }, "dsc/Tab-Manager"), ",", " ", /* @__PURE__ */ React4.createElement("a", { href: "https://github.com/joshperry/Tab-Manager", target: "_blank", title: "Tab-Manager" }, "joshperry/Tab-Manager"), " ", "and", " ", /* @__PURE__ */ React4.createElement("a", { href: "https://github.com/JonasNo/Tab-Manager", target: "_blank", title: "Tab-Manager" }, "JonasNo/Tab-Manager"), ".", /* @__PURE__ */ React4.createElement("br", null), "Licensed by", " ", /* @__PURE__ */ React4.createElement("a", { href: "http://creativecommons.org/licenses/by/3.0/", target: "_blank", title: " Mozilla Public License (MPL)" }, "MPLv2"), ". Icons made by", " ", /* @__PURE__ */ React4.createElement("a", { href: "http://www.freepik.com", title: "Freepik" }, "Freepik"), " ", "from", " ", /* @__PURE__ */ React4.createElement("a", { href: "http://www.flaticon.com", title: "Flaticon" }, "www.flaticon.com"), ". Licensed by", " ", /* @__PURE__ */ React4.createElement("a", { href: "http://creativecommons.org/licenses/by/3.0/", target: "_blank", title: "Creative Commons BY 3.0" }, "CC 3.0 BY"), ".")); @@ -9678,7 +9765,7 @@ // src/popup/views/Window.tsx var React5 = __toESM(require_react()); - var browser7 = __toESM(require_browser_polyfill()); + var browser8 = __toESM(require_browser_polyfill()); var Window = class extends React5.Component { constructor(props) { super(props); @@ -9747,13 +9834,13 @@ } let _window_titles = this.state.windowTitles; let _tabs = this.state.tabs; - let tabs4 = await browser7.tabs.query({ windowId: this.props.window.id }); - if (tabs4.length == 0) return; - if (_window_titles.length === 0 || this.state.tabs !== tabs4.length + this.props.window.id * 99) { + let tabs5 = await browser8.tabs.query({ windowId: this.props.window.id }); + if (tabs5.length == 0) return; + if (_window_titles.length === 0 || this.state.tabs !== tabs5.length + this.props.window.id * 99) { _window_titles.length = 0; - _tabs = tabs4.length + this.props.window.id * 99; - for (let i = 0; i < tabs4.length; i++) { - const _tab = tabs4[i]; + _tabs = tabs5.length + this.props.window.id * 99; + for (let i = 0; i < tabs5.length; i++) { + const _tab = tabs5[i]; if (!!_tab && (!!_tab.url || !!_tab.pendingUrl)) { let url; if (!!_tab.pendingUrl) { @@ -9829,7 +9916,7 @@ let hideWindow = true; let titleAdded = false; let tabsperrow = this.props.layout.indexOf("blocks") > -1 ? Math.ceil(Math.sqrt(this.props.tabs.length + 2)) : this.props.layout === "vertical" ? 1 : 15; - let tabs4 = this.props.tabs.map(function(tab) { + let tabs5 = this.props.tabs.map(function(tab) { let isHidden = _this.props.hiddenTabs.has(tab.id) && _this.props.filterTabs; let isSelected = _this.props.selection.has(tab.id); if (!isHidden) hideWindow = false; @@ -9860,13 +9947,13 @@ }); if (!hideWindow) { if (!!this.props.tabactions) { - tabs4.push( + tabs5.push( /* @__PURE__ */ React5.createElement("div", { key: "windownl_" + _this.props.window.id, className: "newliner" }), /* @__PURE__ */ React5.createElement("div", { key: "windowactions_" + this.props.window.id, className: "window-actions" }, this.props.sessionsFeature ? /* @__PURE__ */ React5.createElement( "div", { className: "icon tabaction save " + (this.props.layout.indexOf("blocks") > -1 ? "" : "windowaction"), - title: "Save this window for later\nWill save " + tabs4.length + " tabs with this window for later. Please note : The saved tabs will lose their history.", + title: "Save this window for later\nWill save " + tabs5.length + " tabs with this window for later. Please note : The saved tabs will lose their history.", onClick: this.save, onMouseEnter: this.props.hoverIcon } @@ -9890,7 +9977,7 @@ "div", { className: "icon tabaction maximize " + (this.props.layout.indexOf("blocks") > -1 ? "" : "windowaction"), - title: "Maximize this window\nWill maximize " + tabs4.length + " tabs", + title: "Maximize this window\nWill maximize " + tabs5.length + " tabs", onClick: this.maximize, onMouseEnter: this.props.hoverIcon } @@ -9898,7 +9985,7 @@ "div", { className: "icon tabaction minimize " + (this.props.layout.indexOf("blocks") > -1 ? "" : "windowaction"), - title: "Minimize this window\nWill minimize " + tabs4.length + " tabs", + title: "Minimize this window\nWill minimize " + tabs5.length + " tabs", onClick: this.minimize, onMouseEnter: this.props.hoverIcon } @@ -9906,7 +9993,7 @@ "div", { className: "icon tabaction close " + (this.props.layout.indexOf("blocks") > -1 ? "" : "windowaction"), - title: "Close this window\nWill close " + tabs4.length + " tabs", + title: "Close this window\nWill close " + tabs5.length + " tabs", onClick: this.close, onMouseEnter: this.props.hoverIcon } @@ -9914,7 +10001,7 @@ ); } if (this.state.colorActive) { - tabs4.push( + tabs5.push( /* @__PURE__ */ React5.createElement("div", { key: "windowcolors_" + _this.props.window.id, className: "window-colors " + (this.state.colorActive ? "" : "hidden"), onClick: this.stop, onKeyDown: this.checkKey }, /* @__PURE__ */ React5.createElement("h2", { className: "window-x", onClick: this.closePopup }, "x"), /* @__PURE__ */ React5.createElement("h3", { className: "center" }, "Name the window"), /* @__PURE__ */ React5.createElement( "input", { @@ -10140,7 +10227,7 @@ } if (this.props.windowTitles) { titleAdded = true; - tabs4.unshift( + tabs5.unshift( /* @__PURE__ */ React5.createElement( "h3", { @@ -10160,15 +10247,15 @@ } let children = []; if (!!titleAdded) { - children.push(tabs4.shift()); + children.push(tabs5.shift()); } let z = -1; - for (let j = 0; j < tabs4.length; j++) { - let tab = tabs4[j].props.tab; + for (let j = 0; j < tabs5.length; j++) { + let tab = tabs5[j].props.tab; let isHidden = !!tab && !!tab.id && this.props.hiddenTabs.has(tab.id) && this.props.filterTabs; if (isHidden) continue; z++; - children.push(tabs4[j]); + children.push(tabs5[j]); if ((z + 1) % tabsperrow === 0 && z && this.props.layout.indexOf("blocks") > -1) { children.push(/* @__PURE__ */ React5.createElement("div", { className: "newliner", key: "windownlz_" + _this.props.window.id + "_" + z })); } @@ -10188,11 +10275,11 @@ onDragLeave: this.dragLeave, onClick: this.windowClick, title: "", - onMouseEnter: this.hoverWindow.bind(null, tabs4), + onMouseEnter: this.hoverWindow.bind(null, tabs5), onMouseLeave: this.hoverWindowOut, onDrop: this.drop }, - /* @__PURE__ */ React5.createElement("div", { key: "windowcontainer_" + this.props.window.id, className: "windowcontainer", title: "Focus this window\nWill select this window with " + tabs4.length + " tabs" }, children) + /* @__PURE__ */ React5.createElement("div", { key: "windowcontainer_" + this.props.window.id, className: "windowcontainer", title: "Focus this window\nWill select this window with " + tabs5.length + " tabs" }, children) ); } else { return null; @@ -10203,7 +10290,7 @@ } addTab(e) { this.stopProp(e); - browser7.tabs.create({ windowId: this.props.window.id }); + browser8.tabs.create({ windowId: this.props.window.id }); } dragOver(e) { this.setState({ hover: true }); @@ -10246,9 +10333,9 @@ this.props.dropWindow(this.props.window.id); } } - hoverWindow(tabs4, _) { + hoverWindow(tabs5, _) { this.setState({ hover: true }); - this.props.hoverIcon("Focus this window\nWill select this window with " + tabs4.length + " tabs"); + this.props.hoverIcon("Focus this window\nWill select this window with " + tabs5.length + " tabs"); } hoverWindowOut(_) { this.setState({ hover: false }); @@ -10263,9 +10350,9 @@ this.stopProp(e); let windowId = this.props.window.id; if (navigator.userAgent.search("Firefox") > -1) { - browser7.runtime.sendMessage({ command: focus_on_window_delayed, window_id: windowId }); + browser8.runtime.sendMessage({ command: focus_on_window_delayed, window_id: windowId }); } else { - browser7.runtime.sendMessage({ command: focus_on_window, window_id: windowId }); + browser8.runtime.sendMessage({ command: focus_on_window, window_id: windowId }); } this.props.parentUpdate(); if (!!window.inPopup) window.close(); @@ -10276,7 +10363,7 @@ } async close(e) { this.stopProp(e); - await browser7.windows.remove(this.props.window.id); + await browser8.windows.remove(this.props.window.id); } uuidv4() { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) { @@ -10305,19 +10392,19 @@ windowId: this.props.window.id }; console.log(queryInfo); - let tabs4 = await browser7.tabs.query(queryInfo); - console.log(tabs4); - for (let tabkey in tabs4) { + let tabs5 = await browser8.tabs.query(queryInfo); + console.log(tabs5); + for (let tabkey in tabs5) { if (navigator.userAgent.search("Firefox") > -1) { - let newTab = tabs4[tabkey]; + let newTab = tabs5[tabkey]; if (!!newTab.url && newTab.url.search("about:") > -1) { continue; } } - session.tabs.push(tabs4[tabkey]); + session.tabs.push(tabs5[tabkey]); } console.log(session.tabs); - session.windowsInfo = await browser7.windows.get(this.props.window.id); + session.windowsInfo = await browser8.windows.get(this.props.window.id); console.log(session); let sessions = await getLocalStorage("sessions", {}); sessions[session.id] = session; @@ -10333,14 +10420,14 @@ } async minimize(e) { this.stopProp(e); - await browser7.windows.update(this.props.window.id, { + await browser8.windows.update(this.props.window.id, { state: "minimized" }); this.props.parentUpdate(); } async maximize(e) { this.stopProp(e); - await browser7.windows.update(this.props.window.id, { + await browser8.windows.update(this.props.window.id, { state: "normal" }); this.props.parentUpdate(); @@ -10361,7 +10448,7 @@ this.setState(a); this.props.toggleColors(!this.state.colorActive, this.props.window.id); let color = a.color || "default"; - browser7.runtime.sendMessage({ + browser8.runtime.sendMessage({ command: set_window_color, window_id: this.props.window.id, color @@ -10380,7 +10467,7 @@ async changeName(e) { let name = ""; if (e && e.target && e.target.value) name = e.target.value; - browser7.runtime.sendMessage({ + browser8.runtime.sendMessage({ command: set_window_name, window_id: this.props.window.id, name @@ -10390,11 +10477,11 @@ }); if (navigator.userAgent.search("Firefox") > -1) { if (!!name) { - await browser7.windows.update(this.props.window.id, { + await browser8.windows.update(this.props.window.id, { titlePreface: name + " - " }); } else { - await browser7.windows.update(this.props.window.id, { + await browser8.windows.update(this.props.window.id, { titlePreface: name }); } diff --git a/dist/popup/popup.js.map b/dist/popup/popup.js.map index 9fb5dcdb..125517e6 100644 --- a/dist/popup/popup.js.map +++ b/dist/popup/popup.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../../node_modules/webextension-polyfill/dist/browser-polyfill.js", "../../node_modules/object-assign/index.js", "../../node_modules/react/cjs/react.production.min.js", "../../node_modules/react/index.js", "../../node_modules/scheduler/cjs/scheduler.production.min.js", "../../node_modules/scheduler/index.js", "../../node_modules/react-dom/cjs/react-dom.production.min.js", "../../node_modules/react-dom/index.js", "../../src/helpers/utils.ts", "../../src/strings/strings.ts", "../../src/helpers/migrate.ts", "../../src/helpers/storage.ts", "../../src/popup/views/Session.tsx", "../../src/popup/views/Tab.tsx", "../../src/popup/views/TabManager.tsx", "../../src/popup/views/TabOptions.tsx", "../../src/popup/views/Window.tsx", "../../src/popup/popup.tsx"], - "sourcesContent": ["/* webextension-polyfill - v0.12.0 - Tue May 14 2024 18:01:29 */\n/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */\n/* vim: set sts=2 sw=2 et tw=80: */\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nif (!(globalThis.chrome && globalThis.chrome.runtime && globalThis.chrome.runtime.id)) {\n throw new Error(\"This script should only be loaded in a browser extension.\");\n}\n\nif (!(globalThis.browser && globalThis.browser.runtime && globalThis.browser.runtime.id)) {\n const CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE = \"The message port closed before a response was received.\";\n\n // Wrapping the bulk of this polyfill in a one-time-use function is a minor\n // optimization for Firefox. Since Spidermonkey does not fully parse the\n // contents of a function until the first time it's called, and since it will\n // never actually need to be called, this allows the polyfill to be included\n // in Firefox nearly for free.\n const wrapAPIs = extensionAPIs => {\n // NOTE: apiMetadata is associated to the content of the api-metadata.json file\n // at build time by replacing the following \"include\" with the content of the\n // JSON file.\n const apiMetadata = {\n \"alarms\": {\n \"clear\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"clearAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"bookmarks\": {\n \"create\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getChildren\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getRecent\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getSubTree\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getTree\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"move\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeTree\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"search\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n },\n \"browserAction\": {\n \"disable\": {\n \"minArgs\": 0,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"enable\": {\n \"minArgs\": 0,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"getBadgeBackgroundColor\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getBadgeText\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"openPopup\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"setBadgeBackgroundColor\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setBadgeText\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setIcon\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"setPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n }\n },\n \"browsingData\": {\n \"remove\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"removeCache\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeCookies\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeDownloads\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeFormData\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeHistory\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeLocalStorage\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removePasswords\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removePluginData\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"settings\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"commands\": {\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"contextMenus\": {\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n },\n \"cookies\": {\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAllCookieStores\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"set\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"devtools\": {\n \"inspectedWindow\": {\n \"eval\": {\n \"minArgs\": 1,\n \"maxArgs\": 2,\n \"singleCallbackArg\": false\n }\n },\n \"panels\": {\n \"create\": {\n \"minArgs\": 3,\n \"maxArgs\": 3,\n \"singleCallbackArg\": true\n },\n \"elements\": {\n \"createSidebarPane\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n }\n }\n },\n \"downloads\": {\n \"cancel\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"download\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"erase\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getFileIcon\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"open\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"pause\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeFile\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"resume\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"search\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"show\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n }\n },\n \"extension\": {\n \"isAllowedFileSchemeAccess\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"isAllowedIncognitoAccess\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"history\": {\n \"addUrl\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"deleteAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"deleteRange\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"deleteUrl\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getVisits\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"search\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"i18n\": {\n \"detectLanguage\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAcceptLanguages\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"identity\": {\n \"launchWebAuthFlow\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"idle\": {\n \"queryState\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"management\": {\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getSelf\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"setEnabled\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"uninstallSelf\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n }\n },\n \"notifications\": {\n \"clear\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"create\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getPermissionLevel\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n },\n \"pageAction\": {\n \"getPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"hide\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setIcon\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"setPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"show\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n }\n },\n \"permissions\": {\n \"contains\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"request\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"runtime\": {\n \"getBackgroundPage\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getPlatformInfo\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"openOptionsPage\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"requestUpdateCheck\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"sendMessage\": {\n \"minArgs\": 1,\n \"maxArgs\": 3\n },\n \"sendNativeMessage\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"setUninstallURL\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"sessions\": {\n \"getDevices\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getRecentlyClosed\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"restore\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n }\n },\n \"storage\": {\n \"local\": {\n \"clear\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getBytesInUse\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"set\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"managed\": {\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getBytesInUse\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n }\n },\n \"sync\": {\n \"clear\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getBytesInUse\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"set\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n }\n },\n \"tabs\": {\n \"captureVisibleTab\": {\n \"minArgs\": 0,\n \"maxArgs\": 2\n },\n \"create\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"detectLanguage\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"discard\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"duplicate\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"executeScript\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getCurrent\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getZoom\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getZoomSettings\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"goBack\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"goForward\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"highlight\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"insertCSS\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"move\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"query\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"reload\": {\n \"minArgs\": 0,\n \"maxArgs\": 2\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeCSS\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"sendMessage\": {\n \"minArgs\": 2,\n \"maxArgs\": 3\n },\n \"setZoom\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"setZoomSettings\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"update\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n }\n },\n \"topSites\": {\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"webNavigation\": {\n \"getAllFrames\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getFrame\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"webRequest\": {\n \"handlerBehaviorChanged\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"windows\": {\n \"create\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getCurrent\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getLastFocused\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n }\n };\n\n if (Object.keys(apiMetadata).length === 0) {\n throw new Error(\"api-metadata.json has not been included in browser-polyfill\");\n }\n\n /**\n * A WeakMap subclass which creates and stores a value for any key which does\n * not exist when accessed, but behaves exactly as an ordinary WeakMap\n * otherwise.\n *\n * @param {function} createItem\n * A function which will be called in order to create the value for any\n * key which does not exist, the first time it is accessed. The\n * function receives, as its only argument, the key being created.\n */\n class DefaultWeakMap extends WeakMap {\n constructor(createItem, items = undefined) {\n super(items);\n this.createItem = createItem;\n }\n\n get(key) {\n if (!this.has(key)) {\n this.set(key, this.createItem(key));\n }\n\n return super.get(key);\n }\n }\n\n /**\n * Returns true if the given object is an object with a `then` method, and can\n * therefore be assumed to behave as a Promise.\n *\n * @param {*} value The value to test.\n * @returns {boolean} True if the value is thenable.\n */\n const isThenable = value => {\n return value && typeof value === \"object\" && typeof value.then === \"function\";\n };\n\n /**\n * Creates and returns a function which, when called, will resolve or reject\n * the given promise based on how it is called:\n *\n * - If, when called, `chrome.runtime.lastError` contains a non-null object,\n * the promise is rejected with that value.\n * - If the function is called with exactly one argument, the promise is\n * resolved to that value.\n * - Otherwise, the promise is resolved to an array containing all of the\n * function's arguments.\n *\n * @param {object} promise\n * An object containing the resolution and rejection functions of a\n * promise.\n * @param {function} promise.resolve\n * The promise's resolution function.\n * @param {function} promise.reject\n * The promise's rejection function.\n * @param {object} metadata\n * Metadata about the wrapped method which has created the callback.\n * @param {boolean} metadata.singleCallbackArg\n * Whether or not the promise is resolved with only the first\n * argument of the callback, alternatively an array of all the\n * callback arguments is resolved. By default, if the callback\n * function is invoked with only a single argument, that will be\n * resolved to the promise, while all arguments will be resolved as\n * an array if multiple are given.\n *\n * @returns {function}\n * The generated callback function.\n */\n const makeCallback = (promise, metadata) => {\n return (...callbackArgs) => {\n if (extensionAPIs.runtime.lastError) {\n promise.reject(new Error(extensionAPIs.runtime.lastError.message));\n } else if (metadata.singleCallbackArg ||\n (callbackArgs.length <= 1 && metadata.singleCallbackArg !== false)) {\n promise.resolve(callbackArgs[0]);\n } else {\n promise.resolve(callbackArgs);\n }\n };\n };\n\n const pluralizeArguments = (numArgs) => numArgs == 1 ? \"argument\" : \"arguments\";\n\n /**\n * Creates a wrapper function for a method with the given name and metadata.\n *\n * @param {string} name\n * The name of the method which is being wrapped.\n * @param {object} metadata\n * Metadata about the method being wrapped.\n * @param {integer} metadata.minArgs\n * The minimum number of arguments which must be passed to the\n * function. If called with fewer than this number of arguments, the\n * wrapper will raise an exception.\n * @param {integer} metadata.maxArgs\n * The maximum number of arguments which may be passed to the\n * function. If called with more than this number of arguments, the\n * wrapper will raise an exception.\n * @param {boolean} metadata.singleCallbackArg\n * Whether or not the promise is resolved with only the first\n * argument of the callback, alternatively an array of all the\n * callback arguments is resolved. By default, if the callback\n * function is invoked with only a single argument, that will be\n * resolved to the promise, while all arguments will be resolved as\n * an array if multiple are given.\n *\n * @returns {function(object, ...*)}\n * The generated wrapper function.\n */\n const wrapAsyncFunction = (name, metadata) => {\n return function asyncFunctionWrapper(target, ...args) {\n if (args.length < metadata.minArgs) {\n throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`);\n }\n\n if (args.length > metadata.maxArgs) {\n throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`);\n }\n\n return new Promise((resolve, reject) => {\n if (metadata.fallbackToNoCallback) {\n // This API method has currently no callback on Chrome, but it return a promise on Firefox,\n // and so the polyfill will try to call it with a callback first, and it will fallback\n // to not passing the callback if the first call fails.\n try {\n target[name](...args, makeCallback({resolve, reject}, metadata));\n } catch (cbError) {\n console.warn(`${name} API method doesn't seem to support the callback parameter, ` +\n \"falling back to call it without a callback: \", cbError);\n\n target[name](...args);\n\n // Update the API method metadata, so that the next API calls will not try to\n // use the unsupported callback anymore.\n metadata.fallbackToNoCallback = false;\n metadata.noCallback = true;\n\n resolve();\n }\n } else if (metadata.noCallback) {\n target[name](...args);\n resolve();\n } else {\n target[name](...args, makeCallback({resolve, reject}, metadata));\n }\n });\n };\n };\n\n /**\n * Wraps an existing method of the target object, so that calls to it are\n * intercepted by the given wrapper function. The wrapper function receives,\n * as its first argument, the original `target` object, followed by each of\n * the arguments passed to the original method.\n *\n * @param {object} target\n * The original target object that the wrapped method belongs to.\n * @param {function} method\n * The method being wrapped. This is used as the target of the Proxy\n * object which is created to wrap the method.\n * @param {function} wrapper\n * The wrapper function which is called in place of a direct invocation\n * of the wrapped method.\n *\n * @returns {Proxy}\n * A Proxy object for the given method, which invokes the given wrapper\n * method in its place.\n */\n const wrapMethod = (target, method, wrapper) => {\n return new Proxy(method, {\n apply(targetMethod, thisObj, args) {\n return wrapper.call(thisObj, target, ...args);\n },\n });\n };\n\n let hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n\n /**\n * Wraps an object in a Proxy which intercepts and wraps certain methods\n * based on the given `wrappers` and `metadata` objects.\n *\n * @param {object} target\n * The target object to wrap.\n *\n * @param {object} [wrappers = {}]\n * An object tree containing wrapper functions for special cases. Any\n * function present in this object tree is called in place of the\n * method in the same location in the `target` object tree. These\n * wrapper methods are invoked as described in {@see wrapMethod}.\n *\n * @param {object} [metadata = {}]\n * An object tree containing metadata used to automatically generate\n * Promise-based wrapper functions for asynchronous. Any function in\n * the `target` object tree which has a corresponding metadata object\n * in the same location in the `metadata` tree is replaced with an\n * automatically-generated wrapper function, as described in\n * {@see wrapAsyncFunction}\n *\n * @returns {Proxy}\n */\n const wrapObject = (target, wrappers = {}, metadata = {}) => {\n let cache = Object.create(null);\n let handlers = {\n has(proxyTarget, prop) {\n return prop in target || prop in cache;\n },\n\n get(proxyTarget, prop, receiver) {\n if (prop in cache) {\n return cache[prop];\n }\n\n if (!(prop in target)) {\n return undefined;\n }\n\n let value = target[prop];\n\n if (typeof value === \"function\") {\n // This is a method on the underlying object. Check if we need to do\n // any wrapping.\n\n if (typeof wrappers[prop] === \"function\") {\n // We have a special-case wrapper for this method.\n value = wrapMethod(target, target[prop], wrappers[prop]);\n } else if (hasOwnProperty(metadata, prop)) {\n // This is an async method that we have metadata for. Create a\n // Promise wrapper for it.\n let wrapper = wrapAsyncFunction(prop, metadata[prop]);\n value = wrapMethod(target, target[prop], wrapper);\n } else {\n // This is a method that we don't know or care about. Return the\n // original method, bound to the underlying object.\n value = value.bind(target);\n }\n } else if (typeof value === \"object\" && value !== null &&\n (hasOwnProperty(wrappers, prop) ||\n hasOwnProperty(metadata, prop))) {\n // This is an object that we need to do some wrapping for the children\n // of. Create a sub-object wrapper for it with the appropriate child\n // metadata.\n value = wrapObject(value, wrappers[prop], metadata[prop]);\n } else if (hasOwnProperty(metadata, \"*\")) {\n // Wrap all properties in * namespace.\n value = wrapObject(value, wrappers[prop], metadata[\"*\"]);\n } else {\n // We don't need to do any wrapping for this property,\n // so just forward all access to the underlying object.\n Object.defineProperty(cache, prop, {\n configurable: true,\n enumerable: true,\n get() {\n return target[prop];\n },\n set(value) {\n target[prop] = value;\n },\n });\n\n return value;\n }\n\n cache[prop] = value;\n return value;\n },\n\n set(proxyTarget, prop, value, receiver) {\n if (prop in cache) {\n cache[prop] = value;\n } else {\n target[prop] = value;\n }\n return true;\n },\n\n defineProperty(proxyTarget, prop, desc) {\n return Reflect.defineProperty(cache, prop, desc);\n },\n\n deleteProperty(proxyTarget, prop) {\n return Reflect.deleteProperty(cache, prop);\n },\n };\n\n // Per contract of the Proxy API, the \"get\" proxy handler must return the\n // original value of the target if that value is declared read-only and\n // non-configurable. For this reason, we create an object with the\n // prototype set to `target` instead of using `target` directly.\n // Otherwise we cannot return a custom object for APIs that\n // are declared read-only and non-configurable, such as `chrome.devtools`.\n //\n // The proxy handlers themselves will still use the original `target`\n // instead of the `proxyTarget`, so that the methods and properties are\n // dereferenced via the original targets.\n let proxyTarget = Object.create(target);\n return new Proxy(proxyTarget, handlers);\n };\n\n /**\n * Creates a set of wrapper functions for an event object, which handles\n * wrapping of listener functions that those messages are passed.\n *\n * A single wrapper is created for each listener function, and stored in a\n * map. Subsequent calls to `addListener`, `hasListener`, or `removeListener`\n * retrieve the original wrapper, so that attempts to remove a\n * previously-added listener work as expected.\n *\n * @param {DefaultWeakMap} wrapperMap\n * A DefaultWeakMap object which will create the appropriate wrapper\n * for a given listener function when one does not exist, and retrieve\n * an existing one when it does.\n *\n * @returns {object}\n */\n const wrapEvent = wrapperMap => ({\n addListener(target, listener, ...args) {\n target.addListener(wrapperMap.get(listener), ...args);\n },\n\n hasListener(target, listener) {\n return target.hasListener(wrapperMap.get(listener));\n },\n\n removeListener(target, listener) {\n target.removeListener(wrapperMap.get(listener));\n },\n });\n\n const onRequestFinishedWrappers = new DefaultWeakMap(listener => {\n if (typeof listener !== \"function\") {\n return listener;\n }\n\n /**\n * Wraps an onRequestFinished listener function so that it will return a\n * `getContent()` property which returns a `Promise` rather than using a\n * callback API.\n *\n * @param {object} req\n * The HAR entry object representing the network request.\n */\n return function onRequestFinished(req) {\n const wrappedReq = wrapObject(req, {} /* wrappers */, {\n getContent: {\n minArgs: 0,\n maxArgs: 0,\n },\n });\n listener(wrappedReq);\n };\n });\n\n const onMessageWrappers = new DefaultWeakMap(listener => {\n if (typeof listener !== \"function\") {\n return listener;\n }\n\n /**\n * Wraps a message listener function so that it may send responses based on\n * its return value, rather than by returning a sentinel value and calling a\n * callback. If the listener function returns a Promise, the response is\n * sent when the promise either resolves or rejects.\n *\n * @param {*} message\n * The message sent by the other end of the channel.\n * @param {object} sender\n * Details about the sender of the message.\n * @param {function(*)} sendResponse\n * A callback which, when called with an arbitrary argument, sends\n * that value as a response.\n * @returns {boolean}\n * True if the wrapped listener returned a Promise, which will later\n * yield a response. False otherwise.\n */\n return function onMessage(message, sender, sendResponse) {\n let didCallSendResponse = false;\n\n let wrappedSendResponse;\n let sendResponsePromise = new Promise(resolve => {\n wrappedSendResponse = function(response) {\n didCallSendResponse = true;\n resolve(response);\n };\n });\n\n let result;\n try {\n result = listener(message, sender, wrappedSendResponse);\n } catch (err) {\n result = Promise.reject(err);\n }\n\n const isResultThenable = result !== true && isThenable(result);\n\n // If the listener didn't returned true or a Promise, or called\n // wrappedSendResponse synchronously, we can exit earlier\n // because there will be no response sent from this listener.\n if (result !== true && !isResultThenable && !didCallSendResponse) {\n return false;\n }\n\n // A small helper to send the message if the promise resolves\n // and an error if the promise rejects (a wrapped sendMessage has\n // to translate the message into a resolved promise or a rejected\n // promise).\n const sendPromisedResult = (promise) => {\n promise.then(msg => {\n // send the message value.\n sendResponse(msg);\n }, error => {\n // Send a JSON representation of the error if the rejected value\n // is an instance of error, or the object itself otherwise.\n let message;\n if (error && (error instanceof Error ||\n typeof error.message === \"string\")) {\n message = error.message;\n } else {\n message = \"An unexpected error occurred\";\n }\n\n sendResponse({\n __mozWebExtensionPolyfillReject__: true,\n message,\n });\n }).catch(err => {\n // Print an error on the console if unable to send the response.\n console.error(\"Failed to send onMessage rejected reply\", err);\n });\n };\n\n // If the listener returned a Promise, send the resolved value as a\n // result, otherwise wait the promise related to the wrappedSendResponse\n // callback to resolve and send it as a response.\n if (isResultThenable) {\n sendPromisedResult(result);\n } else {\n sendPromisedResult(sendResponsePromise);\n }\n\n // Let Chrome know that the listener is replying.\n return true;\n };\n });\n\n const wrappedSendMessageCallback = ({reject, resolve}, reply) => {\n if (extensionAPIs.runtime.lastError) {\n // Detect when none of the listeners replied to the sendMessage call and resolve\n // the promise to undefined as in Firefox.\n // See https://github.com/mozilla/webextension-polyfill/issues/130\n if (extensionAPIs.runtime.lastError.message === CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE) {\n resolve();\n } else {\n reject(new Error(extensionAPIs.runtime.lastError.message));\n }\n } else if (reply && reply.__mozWebExtensionPolyfillReject__) {\n // Convert back the JSON representation of the error into\n // an Error instance.\n reject(new Error(reply.message));\n } else {\n resolve(reply);\n }\n };\n\n const wrappedSendMessage = (name, metadata, apiNamespaceObj, ...args) => {\n if (args.length < metadata.minArgs) {\n throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`);\n }\n\n if (args.length > metadata.maxArgs) {\n throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`);\n }\n\n return new Promise((resolve, reject) => {\n const wrappedCb = wrappedSendMessageCallback.bind(null, {resolve, reject});\n args.push(wrappedCb);\n apiNamespaceObj.sendMessage(...args);\n });\n };\n\n const staticWrappers = {\n devtools: {\n network: {\n onRequestFinished: wrapEvent(onRequestFinishedWrappers),\n },\n },\n runtime: {\n onMessage: wrapEvent(onMessageWrappers),\n onMessageExternal: wrapEvent(onMessageWrappers),\n sendMessage: wrappedSendMessage.bind(null, \"sendMessage\", {minArgs: 1, maxArgs: 3}),\n },\n tabs: {\n sendMessage: wrappedSendMessage.bind(null, \"sendMessage\", {minArgs: 2, maxArgs: 3}),\n },\n };\n const settingMetadata = {\n clear: {minArgs: 1, maxArgs: 1},\n get: {minArgs: 1, maxArgs: 1},\n set: {minArgs: 1, maxArgs: 1},\n };\n apiMetadata.privacy = {\n network: {\"*\": settingMetadata},\n services: {\"*\": settingMetadata},\n websites: {\"*\": settingMetadata},\n };\n\n return wrapObject(extensionAPIs, staticWrappers, apiMetadata);\n };\n\n // The build process adds a UMD wrapper around this file, which makes the\n // `module` variable available.\n module.exports = wrapAPIs(chrome);\n} else {\n module.exports = globalThis.browser;\n}\n", "/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n", "/** @license React v16.11.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var h=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113;n&&Symbol.for(\"react.suspense_list\");\nvar z=n?Symbol.for(\"react.memo\"):60115,aa=n?Symbol.for(\"react.lazy\"):60116;n&&Symbol.for(\"react.fundamental\");n&&Symbol.for(\"react.responder\");n&&Symbol.for(\"react.scope\");var A=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction B(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cP.length&&P.push(a)}\nfunction S(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+T(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var l=0;l=H};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125L(n,c))void 0!==r&&0>L(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>L(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function L(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var O=[],P=[],Q=1,R=null,S=3,T=!1,U=!1,V=!1;\nfunction W(a){for(var b=M(P);null!==b;){if(null===b.callback)N(P);else if(b.startTime<=a)N(P),b.sortIndex=b.expirationTime,K(O,b);else break;b=M(P)}}function X(a){V=!1;W(a);if(!U)if(null!==M(O))U=!0,f(Y);else{var b=M(P);null!==b&&g(X,b.startTime-a)}}\nfunction Y(a,b){U=!1;V&&(V=!1,h());T=!0;var c=S;try{W(b);for(R=M(O);null!==R&&(!(R.expirationTime>b)||a&&!k());){var d=R.callback;if(null!==d){R.callback=null;S=R.priorityLevel;var e=d(R.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?R.callback=e:R===M(O)&&N(O);W(b)}else N(O);R=M(O)}if(null!==R)var m=!0;else{var n=M(P);null!==n&&g(X,n.startTime-b);m=!1}return m}finally{R=null,S=c,T=!1}}\nfunction Z(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var aa=l;exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=S;S=a;try{return b()}finally{S=c}};\nexports.unstable_next=function(a){switch(S){case 1:case 2:case 3:var b=3;break;default:b=S}var c=S;S=b;try{return a()}finally{S=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,K(P,a),null===M(O)&&a===M(P)&&(V?h():V=!0,g(X,e-d))):(a.sortIndex=c,K(O,a),U||T||(U=!0,f(Y)));return a};exports.unstable_cancelCallback=function(a){a.callback=null};\nexports.unstable_wrapCallback=function(a){var b=S;return function(){var c=S;S=b;try{return a.apply(this,arguments)}finally{S=c}}};exports.unstable_getCurrentPriorityLevel=function(){return S};exports.unstable_shouldYield=function(){var a=exports.unstable_now();W(a);var b=M(O);return b!==R&&null!==R&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTimeb}return!1}function B(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1)});var sb=/[\\-:]([a-z])/g;function tb(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(sb,\ntb);D[b]=new B(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0)});function ub(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}\nfunction vb(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2=b.length))throw Error(u(93));b=b[0]}c=b}null==c&&(c=\"\")}a._wrapperState={initialValue:ub(c)}}\nfunction Mb(a,b){var c=ub(b.value),d=ub(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Nb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Ob={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Pb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Qb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Pb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Rb,Sb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Ob.svg||\"innerHTML\"in a)a.innerHTML=b;else{Rb=Rb||document.createElement(\"div\");Rb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Rb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Tb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Ub(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Vb={animationend:Ub(\"Animation\",\"AnimationEnd\"),animationiteration:Ub(\"Animation\",\"AnimationIteration\"),animationstart:Ub(\"Animation\",\"AnimationStart\"),transitionend:Ub(\"Transition\",\"TransitionEnd\")},Wb={},Xb={};\nYa&&(Xb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Vb.animationend.animation,delete Vb.animationiteration.animation,delete Vb.animationstart.animation),\"TransitionEvent\"in window||delete Vb.transitionend.transition);function Yb(a){if(Wb[a])return Wb[a];if(!Vb[a])return a;var b=Vb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Xb)return Wb[a]=b[c];return a}var Zb=Yb(\"animationend\"),$b=Yb(\"animationiteration\"),ac=Yb(\"animationstart\"),bc=Yb(\"transitionend\"),dc=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \");\nfunction ec(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function fc(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function gc(a){if(ec(a)!==a)throw Error(u(188));}\nfunction hc(a){var b=a.alternate;if(!b){b=ec(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return gc(e),a;if(f===d)return gc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function ic(a){a=hc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nvar jc,kc,lc,mc=!1,nc=[],oc=null,pc=null,qc=null,rc=new Map,sc=new Map,tc=[],uc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),vc=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction wc(a){var b=xc(a);uc.forEach(function(c){yc(c,a,b)});vc.forEach(function(c){yc(c,a,b)})}function zc(a,b,c,d){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:d}}function Ac(a,b){switch(a){case \"focus\":case \"blur\":oc=null;break;case \"dragenter\":case \"dragleave\":pc=null;break;case \"mouseover\":case \"mouseout\":qc=null;break;case \"pointerover\":case \"pointerout\":rc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":sc.delete(b.pointerId)}}\nfunction Bc(a,b,c,d,e){if(null===a||a.nativeEvent!==e)return a=zc(b,c,d,e),null!==b&&(b=Cc(b),null!==b&&kc(b)),a;a.eventSystemFlags|=d;return a}function Dc(a,b,c,d){switch(b){case \"focus\":return oc=Bc(oc,a,b,c,d),!0;case \"dragenter\":return pc=Bc(pc,a,b,c,d),!0;case \"mouseover\":return qc=Bc(qc,a,b,c,d),!0;case \"pointerover\":var e=d.pointerId;rc.set(e,Bc(rc.get(e)||null,a,b,c,d));return!0;case \"gotpointercapture\":return e=d.pointerId,sc.set(e,Bc(sc.get(e)||null,a,b,c,d)),!0}return!1}\nfunction Ec(a){var b=Fc(a.target);if(null!==b){var c=ec(b);if(null!==c)if(b=c.tag,13===b){if(b=fc(c),null!==b){a.blockedOn=b;q.unstable_runWithPriority(a.priority,function(){lc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Gc(a){if(null!==a.blockedOn)return!1;var b=Hc(a.topLevelType,a.eventSystemFlags,a.nativeEvent);if(null!==b){var c=Cc(b);null!==c&&kc(c);a.blockedOn=b;return!1}return!0}\nfunction Ic(a,b,c){Gc(a)&&c.delete(b)}function Jc(){for(mc=!1;0this.eventPool.length&&this.eventPool.push(a)}function Vc(a){a.eventPool=[];a.getPooled=Wc;a.release=Xc}var Yc=E.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Zc=E.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),$c=E.extend({view:null,detail:null}),ad=$c.extend({relatedTarget:null});\nfunction bd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar cd={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},ed={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},fd={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function gd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=fd[a])?!!b[a]:!1}function hd(){return gd}\nvar id=$c.extend({key:function(a){if(a.key){var b=cd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=bd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?ed[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:hd,charCode:function(a){return\"keypress\"===a.type?bd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?bd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),jd=0,kd=0,ld=!1,md=!1,nd=$c.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:hd,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=jd;jd=a.screenX;return ld?\"mousemove\"===a.type?a.screenX-\nb:0:(ld=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;var b=kd;kd=a.screenY;return md?\"mousemove\"===a.type?a.screenY-b:0:(md=!0,0)}}),od=nd.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),pd=nd.extend({dataTransfer:null}),qd=$c.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:hd}),rd=E.extend({propertyName:null,\nelapsedTime:null,pseudoElement:null}),sd=nd.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),td=[[\"blur\",\"blur\",0],[\"cancel\",\"cancel\",0],[\"click\",\"click\",0],[\"close\",\"close\",0],[\"contextmenu\",\"contextMenu\",0],[\"copy\",\"copy\",0],[\"cut\",\"cut\",0],[\"auxclick\",\"auxClick\",0],[\"dblclick\",\"doubleClick\",0],[\"dragend\",\"dragEnd\",\n0],[\"dragstart\",\"dragStart\",0],[\"drop\",\"drop\",0],[\"focus\",\"focus\",0],[\"input\",\"input\",0],[\"invalid\",\"invalid\",0],[\"keydown\",\"keyDown\",0],[\"keypress\",\"keyPress\",0],[\"keyup\",\"keyUp\",0],[\"mousedown\",\"mouseDown\",0],[\"mouseup\",\"mouseUp\",0],[\"paste\",\"paste\",0],[\"pause\",\"pause\",0],[\"play\",\"play\",0],[\"pointercancel\",\"pointerCancel\",0],[\"pointerdown\",\"pointerDown\",0],[\"pointerup\",\"pointerUp\",0],[\"ratechange\",\"rateChange\",0],[\"reset\",\"reset\",0],[\"seeked\",\"seeked\",0],[\"submit\",\"submit\",0],[\"touchcancel\",\"touchCancel\",\n0],[\"touchend\",\"touchEnd\",0],[\"touchstart\",\"touchStart\",0],[\"volumechange\",\"volumeChange\",0],[\"drag\",\"drag\",1],[\"dragenter\",\"dragEnter\",1],[\"dragexit\",\"dragExit\",1],[\"dragleave\",\"dragLeave\",1],[\"dragover\",\"dragOver\",1],[\"mousemove\",\"mouseMove\",1],[\"mouseout\",\"mouseOut\",1],[\"mouseover\",\"mouseOver\",1],[\"pointermove\",\"pointerMove\",1],[\"pointerout\",\"pointerOut\",1],[\"pointerover\",\"pointerOver\",1],[\"scroll\",\"scroll\",1],[\"toggle\",\"toggle\",1],[\"touchmove\",\"touchMove\",1],[\"wheel\",\"wheel\",1],[\"abort\",\"abort\",\n2],[Zb,\"animationEnd\",2],[$b,\"animationIteration\",2],[ac,\"animationStart\",2],[\"canplay\",\"canPlay\",2],[\"canplaythrough\",\"canPlayThrough\",2],[\"durationchange\",\"durationChange\",2],[\"emptied\",\"emptied\",2],[\"encrypted\",\"encrypted\",2],[\"ended\",\"ended\",2],[\"error\",\"error\",2],[\"gotpointercapture\",\"gotPointerCapture\",2],[\"load\",\"load\",2],[\"loadeddata\",\"loadedData\",2],[\"loadedmetadata\",\"loadedMetadata\",2],[\"loadstart\",\"loadStart\",2],[\"lostpointercapture\",\"lostPointerCapture\",2],[\"playing\",\"playing\",2],[\"progress\",\n\"progress\",2],[\"seeking\",\"seeking\",2],[\"stalled\",\"stalled\",2],[\"suspend\",\"suspend\",2],[\"timeupdate\",\"timeUpdate\",2],[bc,\"transitionEnd\",2],[\"waiting\",\"waiting\",2]],ud={},vd={},xd=0;for(;xd=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ce(c)}}\nfunction ee(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?ee(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function fe(){for(var a=window,b=be();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=be(a.document)}return b}\nfunction ge(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var he=\"$\",ie=\"/$\",je=\"$?\",ke=\"$!\",le=null,me=null;function ne(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction oe(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var pe=\"function\"===typeof setTimeout?setTimeout:void 0,qe=\"function\"===typeof clearTimeout?clearTimeout:void 0;function re(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction se(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===he||c===ke||c===je){if(0===b)return a;b--}else c===ie&&b++}a=a.previousSibling}return null}var te=Math.random().toString(36).slice(2),ue=\"__reactInternalInstance$\"+te,ve=\"__reactEventHandlers$\"+te,we=\"__reactContainere$\"+te;\nfunction Fc(a){var b=a[ue];if(b)return b;for(var c=a.parentNode;c;){if(b=c[we]||c[ue]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=se(a);null!==a;){if(c=a[ue])return c;a=se(a)}return b}a=c;c=a.parentNode}return null}function Cc(a){a=a[ue]||a[we];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function xe(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function ye(a){return a[ve]||null}var ze=null,Ae=null,Be=null;\nfunction Ce(){if(Be)return Be;var a,b=Ae,c=b.length,d,e=\"value\"in ze?ze.value:ze.textContent,f=e.length;for(a=0;a=He),Ke=String.fromCharCode(32),Le={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},Me=!1;\nfunction Ne(a,b){switch(a){case \"keyup\":return-1!==Fe.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function Oe(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var Pe=!1;function Qe(a,b){switch(a){case \"compositionend\":return Oe(b);case \"keypress\":if(32!==b.which)return null;Me=!0;return Ke;case \"textInput\":return a=b.data,a===Ke&&Me?null:a;default:return null}}\nfunction Re(a,b){if(Pe)return\"compositionend\"===a||!Ge&&Ne(a,b)?(a=Ce(),Be=Ae=ze=null,Pe=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,sf={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},tf=null,uf=null,vf=null,wf=!1;\nfunction xf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(wf||null==tf||tf!==be(c))return null;c=tf;\"selectionStart\"in c&&ge(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return vf&&qf(vf,c)?null:(vf=c,a=E.getPooled(sf.select,uf,a,b),a.type=\"select\",a.target=tf,Sc(a),a)}\nvar yf={eventTypes:sf,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=xc(e);f=ja.onSelect;for(var g=0;gBf||(a.current=Af[Bf],Af[Bf]=null,Bf--)}\nfunction I(a,b){Bf++;Af[Bf]=a.current;a.current=b}var Cf={},J={current:Cf},K={current:!1},Df=Cf;function Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Ff(a){G(K,a);G(J,a)}function Gf(a){G(K,a);G(J,a)}function Hf(a,b,c){if(J.current!==Cf)throw Error(u(168));I(J,b,a);I(K,c,a)}function If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,Wa(b)||\"Unknown\",e));return n({},c,{},d)}function Jf(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Cf;Df=J.current;I(J,b,a);I(K,K.current,a);return!0}\nfunction Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(b=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=b,G(K,a),G(J,a),I(J,b,a)):G(K,a);I(K,c,a)}\nvar Lf=q.unstable_runWithPriority,Mf=q.unstable_scheduleCallback,Nf=q.unstable_cancelCallback,Of=q.unstable_shouldYield,Pf=q.unstable_requestPaint,Qf=q.unstable_now,Rf=q.unstable_getCurrentPriorityLevel,Sf=q.unstable_ImmediatePriority,Tf=q.unstable_UserBlockingPriority,Uf=q.unstable_NormalPriority,Vf=q.unstable_LowPriority,Wf=q.unstable_IdlePriority,Xf={},Yf=void 0!==Pf?Pf:function(){},Zf=null,$f=null,ag=!1,bg=Qf(),cg=1E4>bg?Qf:function(){return Qf()-bg};\nfunction dg(){switch(Rf()){case Sf:return 99;case Tf:return 98;case Uf:return 97;case Vf:return 96;case Wf:return 95;default:throw Error(u(332));}}function eg(a){switch(a){case 99:return Sf;case 98:return Tf;case 97:return Uf;case 96:return Vf;case 95:return Wf;default:throw Error(u(332));}}function fg(a,b){a=eg(a);return Lf(a,b)}function gg(a,b,c){a=eg(a);return Mf(a,b,c)}function hg(a){null===Zf?(Zf=[a],$f=Mf(Sf,ig)):Zf.push(a);return Xf}function jg(){if(null!==$f){var a=$f;$f=null;Nf(a)}ig()}\nfunction ig(){if(!ag&&null!==Zf){ag=!0;var a=0;try{var b=Zf;fg(99,function(){for(;a=b&&(wg=!0),a.firstContext=null)}function xg(a,b){if(qg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)qg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===pg){if(null===og)throw Error(u(308));pg=b;og.dependencies={expirationTime:0,firstContext:b,responders:null}}else pg=pg.next=b}return a._currentValue}var yg=!1;\nfunction zg(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ag(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction Bg(a,b){return{expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Cg(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction Dg(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=zg(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=zg(a.memoizedState),e=c.updateQueue=zg(c.memoizedState)):d=a.updateQueue=Ag(e):null===e&&(e=c.updateQueue=Ag(d));null===e||d===e?Cg(d,b):null===d.lastUpdate||null===e.lastUpdate?(Cg(d,b),Cg(e,b)):(Cg(d,b),e.lastUpdate=b)}\nfunction Eg(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=zg(a.memoizedState):Fg(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function Fg(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=Ag(b));return b}\nfunction Gg(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-4097|64;case 0:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:yg=!0}return d}\nfunction Hg(a,b,c,d,e){yg=!1;b=Fg(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;mx?(A=r,r=null):A=r.sibling;var p=y(e,r,h[x],k);if(null===p){null===r&&(r=A);break}a&&\nr&&null===p.alternate&&b(e,r);g=f(p,g,x);null===m?l=p:m.sibling=p;m=p;r=A}if(x===h.length)return c(e,r),l;if(null===r){for(;xx?(A=r,r=null):A=r.sibling;var z=y(e,r,p.value,k);if(null===z){null===r&&(r=A);break}a&&r&&null===z.alternate&&b(e,r);g=f(z,g,x);null===m?l=z:m.sibling=z;m=z;r=A}if(p.done)return c(e,r),l;if(null===r){for(;!p.done;x++,p=h.next())p=C(e,p.value,k),null!==p&&(g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);return l}for(r=d(e,r);!p.done;x++,p=h.next())p=H(r,e,x,p.value,k),null!==p&&(a&&null!==\np.alternate&&r.delete(null===p.key?x:p.key),g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);a&&r.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===Ia&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Ga:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===Ia:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===Ia?f.props.children:f.props,h);d.ref=Yg(a,k,f);d.return=a;a=d;break a}else{c(a,\nk);break}else b(a,k);k=k.sibling}f.type===Ia?(d=eh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=ch(f.type,f.key,f.props,null,a.mode,h),h.ref=Yg(a,d,f),h.return=a,a=h)}return g(a);case Ha:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=dh(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===\ntypeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=bh(f,a.mode,h),d.return=a,a=d),g(a);if(Xg(f))return z(a,d,f,h);if(Ua(f))return ta(a,d,f,h);l&&Zg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var fh=$g(!0),gh=$g(!1),hh={},ih={current:hh},jh={current:hh},kh={current:hh};function lh(a){if(a===hh)throw Error(u(174));return a}\nfunction mh(a,b){I(kh,b,a);I(jh,a,a);I(ih,hh,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Qb(null,\"\");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=Qb(b,c)}G(ih,a);I(ih,b,a)}function nh(a){G(ih,a);G(jh,a);G(kh,a)}function oh(a){lh(kh.current);var b=lh(ih.current);var c=Qb(b,a.type);b!==c&&(I(jh,a,a),I(ih,c,a))}function ph(a){jh.current===a&&(G(ih,a),G(jh,a))}var M={current:0};\nfunction qh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===je||c.data===ke))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function rh(a,b){return{responder:a,props:b}}\nvar sh=Ea.ReactCurrentDispatcher,N=Ea.ReactCurrentBatchConfig,th=0,uh=null,O=null,vh=null,wh=null,P=null,xh=null,yh=0,zh=null,Ah=0,Bh=!1,Ch=null,Gh=0;function Q(){throw Error(u(321));}function Hh(a,b){if(null===b)return!1;for(var c=0;cyh&&(yh=m,Jg(yh))):(Ig(m,k.suspenseConfig),f=k.eagerReducer===a?k.eagerState:a(f,k.action));g=k;k=k.next}while(null!==k&&k!==d);l||(h=g,e=f);of(f,b.memoizedState)||(wg=!0);b.memoizedState=f;b.baseUpdate=h;b.baseState=e;c.lastRenderedState=f}return[b.memoizedState,c.dispatch]}\nfunction Rh(a){var b=Nh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={last:null,dispatch:null,lastRenderedReducer:Ph,lastRenderedState:a};a=a.dispatch=Sh.bind(null,uh,a);return[b.memoizedState,a]}function Th(a){return Qh(Ph,a)}function Uh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};null===zh?(zh={lastEffect:null},zh.lastEffect=a.next=a):(b=zh.lastEffect,null===b?zh.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,zh.lastEffect=a));return a}\nfunction Vh(a,b,c,d){var e=Nh();Ah|=a;e.memoizedState=Uh(b,c,void 0,void 0===d?null:d)}function Wh(a,b,c,d){var e=Oh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Hh(d,g.deps)){Uh(0,c,f,d);return}}Ah|=a;e.memoizedState=Uh(b,c,f,d)}function Xh(a,b){return Vh(516,192,a,b)}function Yh(a,b){return Wh(516,192,a,b)}\nfunction Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function $h(){}function ai(a,b){Nh().memoizedState=[a,void 0===b?null:b];return a}function bi(a,b){var c=Oh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Sh(a,b,c){if(!(25>Gh))throw Error(u(301));var d=a.alternate;if(a===uh||null!==d&&d===uh)if(Bh=!0,a={expirationTime:th,suspenseConfig:null,action:c,eagerReducer:null,eagerState:null,next:null},null===Ch&&(Ch=new Map),c=Ch.get(b),void 0===c)Ch.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{var e=Pg(),f=Mg.suspense;e=Qg(e,a,f);f={expirationTime:e,suspenseConfig:f,action:c,eagerReducer:null,eagerState:null,next:null};var g=b.last;if(null===g)f.next=f;else{var h=g.next;null!==h&&\n(f.next=h);g.next=f}b.last=f;if(0===a.expirationTime&&(null===d||0===d.expirationTime)&&(d=b.lastRenderedReducer,null!==d))try{var k=b.lastRenderedState,l=d(k,c);f.eagerReducer=d;f.eagerState=l;if(of(l,k))return}catch(m){}finally{}Rg(a,e)}}\nvar Lh={readContext:xg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},Jh={readContext:xg,useCallback:ai,useContext:xg,useEffect:Xh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Vh(4,36,a,b)},useMemo:function(a,b){var c=Nh();b=void 0===b?null:b;a=a();c.memoizedState=\n[a,b];return a},useReducer:function(a,b,c){var d=Nh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={last:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Sh.bind(null,uh,a);return[d.memoizedState,a]},useRef:function(a){var b=Nh();a={current:a};return b.memoizedState=a},useState:Rh,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Rh(a),d=c[0],e=c[1];Xh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=\nc}})},[a,b]);return d},useTransition:function(a){var b=Rh(!1),c=b[0],d=b[1];return[ai(function(b){d(!0);q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},Kh={readContext:xg,useCallback:bi,useContext:xg,useEffect:Yh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Wh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Wh(4,36,a,b)},useMemo:function(a,b){var c=Oh();b=void 0===b?\nnull:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a},useReducer:Qh,useRef:function(){return Oh().memoizedState},useState:Th,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Th(a),d=c[0],e=c[1];Yh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=c}})},[a,b]);return d},useTransition:function(a){var b=Th(!1),c=b[0],d=b[1];return[bi(function(b){d(!0);q.unstable_next(function(){var c=\nN.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},ci=null,di=null,ei=!1;function fi(a,b){var c=gi(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction hi(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ii(a){if(ei){var b=di;if(b){var c=b;if(!hi(a,b)){b=re(c.nextSibling);if(!b||!hi(a,b)){a.effectTag=a.effectTag&-1025|2;ei=!1;ci=a;return}fi(ci,c)}ci=a;di=re(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,ei=!1,ci=a}}function ji(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;ci=a}\nfunction ki(a){if(a!==ci)return!1;if(!ei)return ji(a),ei=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!oe(b,a.memoizedProps))for(b=di;b;)fi(a,b),b=re(b.nextSibling);ji(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===ie){if(0===b){di=re(a.nextSibling);break a}b--}else c!==he&&c!==ke&&c!==je||b++}a=a.nextSibling}di=null}}else di=ci?re(a.stateNode.nextSibling):null;return!0}\nfunction li(){di=ci=null;ei=!1}var mi=Ea.ReactCurrentOwner,wg=!1;function R(a,b,c,d){b.child=null===a?gh(b,null,c,d):fh(b,a.child,c,d)}function ni(a,b,c,d,e){c=c.render;var f=b.ref;vg(b,e);d=Ih(a,b,c,d,f,e);if(null!==a&&!wg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),oi(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction pi(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!qi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ri(a,b,g,d,e,f);a=ch(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(eb)&&Gj.set(a,b)))}}\nfunction Kj(a,b){a.expirationTimea?b:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=hg(Lj.bind(null,a));else{var b=Oj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Pg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Xf&&Nf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?hg(Lj.bind(null,a)):gg(d,Qj.bind(null,a),{timeout:10*(1073741821-b)-cg()});a.callbackNode=b}}}\nfunction Qj(a,b){Jj=0;if(b)return b=Pg(),Rj(a,b),Z(a),null;var c=Oj(a);if(0!==c){b=a.callbackNode;if((T&(oj|pj))!==S)throw Error(u(327));Sj();a===U&&c===W||Tj(a,c);if(null!==V){var d=T;T|=oj;var e=Uj(a);do try{Vj();break}catch(h){Wj(a,h)}while(1);rg();T=d;lj.current=e;if(X===rj)throw b=wj,Tj(a,c),Mj(a,c),Z(a),b;if(null===V)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=X,U=null,d){case qj:case rj:throw Error(u(345));case sj:Rj(a,2=c){a.lastPingedTime=c;Tj(a,c);break}}f=Oj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=pe(Yj.bind(null,a),e);break}Yj(a);break;case uj:Mj(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Xj(e));if(Bj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Tj(a,c);break}e=Oj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==yj?d=10*(1073741821-yj)-cg():1073741823===xj?d=0:(d=10*(1073741821-xj)-5E3,e=cg(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*kj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=cg()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+Xa(e))}X!==vj&&(X=sj);f=Ni(f,e);k=d;do{switch(k.tag){case 3:g=f;k.effectTag|=4096;k.expirationTime=b;var x=fj(k,g,b);Eg(k,x);break a;case 1:g=f;var A=k.type,p=k.stateNode;if(0===(k.effectTag&64)&&(\"function\"===typeof A.getDerivedStateFromError||null!==p&&\"function\"===typeof p.componentDidCatch&&\n(null===jj||!jj.has(p)))){k.effectTag|=4096;k.expirationTime=b;var t=ij(k,g,b);Eg(k,t);break a}}k=k.return}while(null!==k)}V=ek(V)}catch(v){b=v;continue}break}while(1)}function Uj(){var a=lj.current;lj.current=Lh;return null===a?Lh:a}function Ig(a,b){aAj&&(Aj=a)}function Zj(){for(;null!==V;)V=fk(V)}function Vj(){for(;null!==V&&!Of();)V=fk(V)}\nfunction fk(a){var b=gk(a.alternate,a,W);a.memoizedProps=a.pendingProps;null===b&&(b=ek(a));mj.current=null;return b}\nfunction ek(a){V=a;do{var b=V.alternate;a=V.return;if(0===(V.effectTag&2048)){a:{var c=b;b=V;var d=W;var e=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:L(b.type)&&Ff(b);break;case 3:nh(b);Gf(b);e=b.stateNode;e.pendingContext&&(e.context=e.pendingContext,e.pendingContext=null);(null===c||null===c.child)&&ki(b)&&Ci(b);Ii(b);break;case 5:ph(b);d=lh(kh.current);var f=b.type;if(null!==c&&null!=b.stateNode)Ji(c,b,f,e,d),c.ref!==b.ref&&(b.effectTag|=128);else if(e){var g=\nlh(ih.current);if(ki(b)){e=b;var h=e.stateNode;c=e.type;var k=e.memoizedProps,l=d;h[ue]=e;h[ve]=k;f=void 0;d=h;switch(c){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(h=0;h\\x3c/script>\",h=k.removeChild(k.firstChild)):\"string\"===typeof k.is?h=h.createElement(l,{is:k.is}):(h=h.createElement(l),\"select\"===l&&(l=h,k.multiple?l.multiple=!0:k.size&&(l.size=k.size))):h=h.createElementNS(g,l);k=h;k[ue]=c;k[ve]=e;Hi(k,b,!1,!1);b.stateNode=k;l=f;c=e;var m=d,C=Zd(l,c);switch(l){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\nk);d=c;break;case \"video\":case \"audio\":for(d=0;de.tailExpiration&&1f&&(f=c),k>f&&(f=k),d=d.sibling;e.childExpirationTime=f}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=V.firstEffect),null!==V.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=V.firstEffect),\na.lastEffect=V.lastEffect),1a?b:a}function Yj(a){var b=dg();fg(99,ik.bind(null,a,b));return null}\nfunction ik(a,b){Sj();if((T&(oj|pj))!==S)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Xj(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=d-1);d<=a.lastPingedTime&&\n(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===U&&(V=U=null,W=0);1h&&(l=h,h=g,g=l),l=de(p,g),m=de(p,h),l&&m&&(1!==v.rangeCount||v.anchorNode!==l.node||v.anchorOffset!==l.offset||v.focusNode!==m.node||v.focusOffset!==m.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),v.removeAllRanges(),g>h?(v.addRange(t),v.extend(m.node,m.offset)):(t.setEnd(m.node,m.offset),v.addRange(t))))));t=[];for(v=p;v=v.parentNode;)1===v.nodeType&&t.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===\ntypeof p.focus&&p.focus();for(p=0;p=c)return yi(a,b,c);I(M,M.current&\n1,b);b=oi(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1,b);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return Bi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current,b);if(!d)return null}return oi(a,b,c)}wg=!1}}else wg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Ef(b,J.current);vg(b,c);e=Ih(null,b,d,a,e,c);b.effectTag|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;Mh();if(L(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Og(b,d,g,a);e.updater=Sg;b.stateNode=e;e._reactInternalFiber=b;Wg(b,d,a,c);b=vi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;Va(e);if(1!==e._status)throw e._result;\ne=e._result;b.type=e;f=b.tag=nk(e);a=mg(e,a);switch(f){case 0:b=si(null,b,e,a,c);break;case 1:b=ui(null,b,e,a,c);break;case 11:b=ni(null,b,e,a,c);break;case 14:b=pi(null,b,e,mg(e.type,a),d,c);break;default:throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),si(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ui(a,b,d,e,c);case 3:wi(b);d=b.updateQueue;if(null===d)throw Error(u(282));e=b.memoizedState;e=null!==e?e.element:\nnull;Hg(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)li(),b=oi(a,b,c);else{if(e=b.stateNode.hydrate)di=re(b.stateNode.containerInfo.firstChild),ci=b,e=ei=!0;if(e)for(c=gh(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),li();b=b.child}return b;case 5:return oh(b),null===a&&ii(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,oe(d,e)?g=null:null!==f&&oe(d,f)&&(b.effectTag|=16),ti(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=\nb.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&ii(b),null;case 13:return yi(a,b,c);case 4:return mh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=fh(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ni(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,b,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;\ne=b.pendingProps;g=b.memoizedProps;f=e.value;sg(b,f);if(null!==g){var h=g.value;f=of(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!K.current){b=oi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=Bg(c,null),l.tag=2,Dg(h,l));h.expirationTime=b&&a<=b}function Mj(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction Nj(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Rj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction rk(a,b,c,d){var e=b.current,f=Pg(),g=Mg.suspense;f=Qg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(ec(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=Bg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);Dg(e,b);Rg(e,f);return f}function sk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function tk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime= B.left && C.left <= B.left + B.width) {\n\t\tif (C.top >= B.top && C.top <= B.top + B.height) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nexport function isInViewport(element, ofElement) {\n\tvar rect = element.getBoundingClientRect();\n\treturn rect.top >= 0 && rect.left >= 0 && rect.bottom <= ofElement.height && rect.right <= ofElement.width;\n}\n\nexport function stringHashcode(string) : number {\n\tvar hash = 0;\n\tfor (var i = 0; i < string.length; i++) {\n\t\tvar code = string.charCodeAt(i);\n\t\thash = ((hash << 5) - hash) + code;\n\t\thash = hash & hash; // Convert to 32bit integer\n\t}\n\treturn hash;\n}\n\nexport function maybePluralize(count, noun, suffix = 's') {\n\treturn `${count} ${noun}${count !== 1 ? suffix : ''}`;\n}\n\nexport function toBoolean(str) {\n\tif (typeof str === \"undefined\" || str === null) {\n\t\treturn false;\n\t} else if (typeof str === \"string\") {\n\t\tswitch (str.toLowerCase()) {\n\t\t\tcase \"false\":\n\t\t\tcase \"no\":\n\t\t\tcase \"0\":\n\t\t\tcase \"\":\n\t\t\t\treturn false;\n\t\t\tdefault:\n\t\t\t\treturn true;\n\t\t}\n\t} else if (typeof str === \"number\") {\n\t\treturn str !== 0;\n\t} else {\n\t\treturn true;\n\t}\n}", "\uFEFF\"use strict\";\n\n// commands\nexport const reload_popup_controls = \"reload_popup_controls\";\nexport const update_tab_count = \"update_tab_count\";\nexport const discard_tabs = \"discard_tabs\";\nexport const move_tabs_to_window = \"move_tabs_to_window\";\nexport const focus_on_tab_and_window = \"focus_on_tab_and_window\";\nexport const focus_on_tab_and_window_delayed = \"focus_on_tab_and_window_delayed\";\nexport const focus_on_window = \"focus_on_window\";\nexport const focus_on_window_delayed = \"focus_on_window_delayed\";\nexport const set_window_color = \"set_window_color\";\nexport const set_window_name = \"set_window_name\";\nexport const create_window_with_tabs = \"create_window_with_tabs\";\nexport const create_window_with_session_tabs = \"create_window_with_session_tabs\";\nexport const close_tabs = \"close_tabs\";\nexport const switch_to_previous_active_tab = \"switch_to_previous_active_tab\";\nexport const refresh_windows = \"refresh_windows\";\n\n// context menues\nexport const open_in_own_tab = \"open_in_own_tab\";\nexport const open_popup = \"open_popup\";\nexport const open_sidebar = \"open_sidebar\";\nexport const sep1 = \"sep1\";\nexport const support_menu = \"support_menu\";\nexport const review = \"review\";\nexport const donate = \"donate\";\nexport const patron = \"patron\";\nexport const twitter = \"twitter\";\nexport const code_menu = \"code_menu\";\nexport const changelog = \"changelog\";\nexport const options = \"options\";\nexport const source = \"source\";\nexport const report = \"report\";\nexport const send = \"send\";\n\n// storage keys\nexport const windowHashes = \"windowHashes\";\nexport const windowColors = \"windowColors\";\nexport const windowNames = \"windowNames\";", "\uFEFF\"use strict\";\nimport { toBoolean } from \"./utils.js\";\nimport * as S from \"@strings\";\nimport * as browser from 'webextension-polyfill';\nimport {ISavedSession} from \"@types\";\n\nconst stringkeys = [\n\t\"layout\",\n\t\"version\"\n];\n\nconst jsonkeys = [\n\t\"tabLimit\",\n\t\"tabWidth\",\n\t\"tabHeight\",\n\t\"windowAge\",\n\tS.windowNames,\n\tS.windowColors\n];\n\nconst boolkeys = [\n\t\"openInOwnTab\",\n\t\"animations\",\n\t\"windowTitles\",\n\t\"compact\",\n\t\"dark\",\n\t\"tabactions\",\n\t\"badge\",\n\t\"sessionsFeature\",\n\t\"hideWindows\",\n\t\"filter-tabs\"\n];\n\n(async function () {\n\n\tlet needsMigration = false;\n\n\tfor (const key of stringkeys) {\n\t\tif (!!localStorage[key]) { needsMigration = true; break; }\n\t}\n\n\tfor (const key of boolkeys) {\n\t\tif (!!localStorage[key]) { needsMigration = true; break; }\n\t}\n\n\tfor (const key of jsonkeys) {\n\t\tif (!!localStorage[key]) { needsMigration = true; break; }\n\t}\n\n\tif (needsMigration) {\n\t\tlet keyValue = {};\n\t\tlet values : Record = await browser.storage.local.get(null);\n\t\tif (!!values) {\n\t\t\t// delete all values that don't have a tabs array\n\t\t\tfor (const key in values) {\n\t\t\t\tif (!!(values[key] as ISavedSession).tabs) {\n\t\t\t\t\tconsole.log(\"session deleting \" + key);\n\t\t\t\t\tawait browser.storage.local.remove(key);\n\t\t\t\t} else {\n\t\t\t\t\tdelete values[key];\n\t\t\t\t}\n\t\t\t}\n\t\t\tkeyValue[\"sessions\"] = values;\n\t\t}\n\n\t\tfor (const key of stringkeys) {\n\t\t\tif (!!localStorage[key]) keyValue[key] = localStorage[key];\n\t\t}\n\n\t\tfor (const key of boolkeys) {\n\t\t\tif (!!localStorage[key]) keyValue[key] = toBoolean(localStorage[key]);\n\t\t}\n\n\t\tfor (const key of jsonkeys) {\n\t\t\tif (!!localStorage[key]) keyValue[key] = JSON.parse(localStorage[key]);\n\t\t}\n\t\tawait browser.storage.local.set(keyValue);\n\n\t\t// clear old localstorage\n\t\tfor (const key of stringkeys) localStorage.removeItem(key);\n\t\tfor (const key of boolkeys) localStorage.removeItem(key);\n\t\tfor (const key of jsonkeys) localStorage.removeItem(key);\n\t}\n})();", "\uFEFFimport * as browser from 'webextension-polyfill';\n\nexport async function getLocalStorage(key, default_value = null){\n\tconst result = await browser.storage.local.get([key]);\n\treturn result[key] === undefined ? default_value : result[key];\n}\n\nexport async function getLocalStorageMap(key: string): Promise>{\n\tconst result = await browser.storage.local.get([key]);\n\tif (result[key] === undefined) {\n\t\treturn new Map();\n\t}\n\tlet newMap = new Map();\n\tlet obj: Object = result[key];\n\tfor (const [k, v] of Object.entries(obj)) {\n\t\tlet key = parseInt(k);\n\t\tnewMap.set(key as T, v as V);\n\t}\n\treturn newMap;\n}\n\nexport async function getLocalStorageStringMap(key : string) : Promise> {\n\tconst result = await browser.storage.local.get([key]);\n\tif (result[key] === undefined) {\n\t\treturn new Map();\n\t}\n\tlet newMap = new Map();\n\tlet obj : Object = result[key];\n\tfor (const [k, v] of Object.entries(obj)) {\n\t\tnewMap.set(k as T, v as V);\n\t}\n\treturn newMap;\n}\n\nexport async function setLocalStorage(key : string, value){\n\tconst obj = {};\n\tobj[key] = value;\n\treturn browser.storage.local.set(obj);\n}\n\nexport async function setLocalStorageMap(key : string, value : Map) {\n\tconst obj = {};\n\tobj[key] = Object.fromEntries(value);\n\treturn browser.storage.local.set(obj);\n}\n\nexport async function removeLocalStorage(key){\n\treturn browser.storage.local.remove(key);\n}", "\"use strict\"\n\nimport {getLocalStorage, setLocalStorage} from \"@helpers/storage\";\nimport {Tab} from \"@views\";\nimport * as React from \"react\";\nimport * as browser from 'webextension-polyfill';\nimport {ICommand, ISession, ISessionState} from '@types';\nimport * as S from \"@strings\";\n\nexport class Session extends React.Component {\n\tconstructor(props : ISession) {\n\t\tsuper(props);\n\n\t\tlet name = this.props.session.name;\n\t\tlet color = this.props.session.color || \"default\";\n\n\t\tthis.state = {\n\t\t\tname: name,\n\t\t\tcolor: color\n\t\t};\n\n\t\tthis.stop = this.stop.bind(this);\n\t\tthis.windowClick = this.windowClick.bind(this);\n\t\tthis.windowTabClick = this.windowTabClick.bind(this);\n\t\tthis.close = this.close.bind(this);\n\t\tthis.openTab = this.openTab.bind(this);\n\t\tthis.maximize = this.maximize.bind(this);\n\n\t}\n\trender() {\n\t\tlet _this = this;\n\t\tlet hideWindow = true;\n\t\tlet titleAdded = false;\n\t\tlet tabsperrow = this.props.layout.indexOf(\"blocks\") > -1 ? Math.ceil(Math.sqrt(this.props.tabs.length + 2)) : this.props.layout === \"vertical\" ? 1 : 15;\n\t\tlet tabs = this.props.tabs.map(function(tab) {\n\t\t\tlet tabId = tab.id * tab.id * tab.id * 100;\n\t\t\tlet isHidden = _this.props.hiddenTabs.has(tabId) && _this.props.filterTabs;\n\t\t\tlet isSelected = _this.props.selection.has(tabId);\n\t\t\ttab.id = tab.index;\n\t\t\tif (!isHidden) hideWindow = false;\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\t});\n\t\tif (!hideWindow) {\n\t\t\tif (!!this.props.tabactions) {\n\t\t\t\ttabs.push(\n\t\t\t\t\t
,\n\t\t\t\t\t
\n\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\ttitle={\"Restore this saved window\\nWill restore \" + tabs.length + \" tabs. Please note : The tabs will be restored without their history.\"}\n\t\t\t\t\t\t\tonClick={this.windowClick}\n\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\ttitle={\"Delete this saved window\\nWill delete \" + tabs.length + \" tabs permanently\"}\n\t\t\t\t\t\t\tonClick={this.close}\n\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (this.props.windowTitles) {\n\t\t\t\tif (this.state.name) {\n\t\t\t\t\ttabs.unshift(\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\t{this.state.name}\n\t\t\t\t\t\t

\n\t\t\t\t\t);\n\t\t\t\t\ttitleAdded = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (tabsperrow < 3) {\n\t\t\t\ttabsperrow = 3;\n\t\t\t}\n\t\t\tvar children = [];\n\t\t\tif (!!titleAdded) {\n\t\t\t\tchildren.push(tabs.shift());\n\t\t\t}\n\t\t\tfor (var j = 0; j < tabs.length; j++) {\n\t\t\t\tchildren.push(tabs[j]);\n\t\t\t\tif ((j + 1) % tabsperrow === 0 && j && this.props.layout.indexOf(\"blocks\") > -1) {\n\t\t\t\t\tchildren.push(
);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar focused = false;\n\t\t\tif (this.props.session.windowsInfo.focused || this.props.lastOpenWindow === this.props.session.windowsInfo.id) {\n\t\t\t\tfocused = true;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t -1 ? \"block\" : \"\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tthis.props.layout +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tthis.state.color +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(this.props.session.windowsInfo.incognito ? \" incognito\" : \"\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(focused ? \" focused\" : \"\")\n\t\t\t\t\t}\n\t\t\t\t\tonClick={this.windowClick}\n\t\t\t\t>\n\t\t\t\t\t
{children}
\n\t\t\t\t
\n\t\t\t);\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tshouldComponentUpdate(nextProps, nextState) {\n\t\t//console.log(\"should update?\", nextProps, nextState);\n\t\treturn true;\n\t}\n\tstop(e) {\n\t\te.stopPropagation();\n\t}\n\tasync windowTabClick(e : React.MouseEvent) {\n\t\te.stopPropagation();\n\t}\n\tasync windowClick(e : React.MouseEvent) {\n\t\tthis.restoreSession(e, null);\n\t}\n\tasync openTab(e : React.MouseEvent, index : number) {\n\t\tthis.restoreSession(e, index);\n\t}\n\tasync restoreSession(e : React.MouseEvent, tabId : number) {\n\t\te.stopPropagation();\n\n\t\tawait browser.runtime.sendMessage({\n\t\t\tcommand: S.create_window_with_session_tabs,\n\t\t\tsession: this.props.session,\n\t\t\ttab_id: tabId\n\t\t});\n\n\t\tthis.props.parentUpdate();\n\n\t\tif (!!window.inPopup) {\n\t\t\twindow.close();\n\t\t}else{\n\t\t\tsetTimeout(function() {\n\t\t\t\tthis.props.scrollTo(\"window\", browser.windows.WINDOW_ID_CURRENT);\n\t\t\t}.bind(this), 500);\n\t\t}\n\t}\n\tasync close(e) {\n\t\te.stopPropagation();\n\n\t\tvar sessions = await getLocalStorage('sessions', {});\n\t\tdelete sessions[this.props.session.id];\n\n\t\tvar value = await setLocalStorage('sessions', sessions).catch(function (err) {\n\t\t\tconsole.log(err);\n\t\t\tconsole.error(err.message);\n\t\t});\n\n\t\tconsole.log(value);\n\t\tthis.props.parentUpdate();\n\t\t// browser.windows.remove(this.props.session.windowsInfo.id);\n\t}\n\tmaximize(e) {\n\t\te.stopPropagation();\n\t\t// browser.windows.update(this.props.session.windowsInfo.id, {\n\t\t// \t\"state\": \"normal\" },\n\t\t// function (a) {this.props.parentUpdate();}.bind(this));\n\t}\n}\n", "\"use strict\";\n\nimport * as S from \"@strings\";\nimport * as React from \"react\";\nimport * as browser from 'webextension-polyfill';\nimport {ICommand, ITab, ITabState} from '@types';\n\nexport class Tab extends React.Component {\n\tconstructor(props : ITab) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfavIcon: \"\",\n\t\t\tdragFavIcon: \"\",\n\t\t\tdraggingOver: \"\",\n\t\t\thovered: false,\n\t\t\ttabRef: React.createRef()\n\t\t};\n\n\t\tthis.onHover = this.onHover.bind(this);\n\t\tthis.onHoverOut = this.onHoverOut.bind(this);\n\t\tthis.onMouseDown = this.onMouseDown.bind(this);\n\t\tthis.click = this.click.bind(this);\n\t\tthis.dragStart = this.dragStart.bind(this);\n\t\tthis.dragOver = this.dragOver.bind(this);\n\t\tthis.dragOut = this.dragOut.bind(this);\n\t\tthis.drop = this.drop.bind(this);\n\t\tthis.resolveFavIconUrl = this.resolveFavIconUrl.bind(this);\n\t\tthis.checkSettings = this.checkSettings.bind(this);\n\t}\n\n\tasync componentDidMount() {\n\t\tawait this.checkSettings();\n\t}\n\n\tasync checkSettings() {\n\t\tawait this.resolveFavIconUrl();\n\t}\n\n\trender() {\n\t\tconst children = [];\n\t\tif (this.props.layout === \"vertical\") {\n\t\t\tchildren.push(\n\t\t\t\t
\n\t\t\t\t\tPinned\n\t\t\t\t
\n\t\t\t);\n\t\t\tchildren.push(\n\t\t\t\t
\n\t\t\t\t\tActive\n\t\t\t\t
\n\t\t\t);\n\t\t\tchildren.push(\n\t\t\t\t
\n\t\t\t\t\tSelected\n\t\t\t\t
\n\t\t\t);\n\t\t\tchildren.push(\n\t\t\t\t\n\t\t\t);\n\t\t\tchildren.push(\n\t\t\t\t
\n\t\t\t\t\t{this.props.tab.title || \"\"}\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\tvar tabDom = {\n\t\t\tclassName:\n\t\t\t\t\"icon tab \" +\n\t\t\t\t(this.props.selected ? \"selected \" : \"\") +\n\t\t\t\t(this.props.tab.pinned ? \"pinned \" : \"\") +\n\t\t\t\t(this.props.tab.highlighted ? \"highlighted \" : \"\") +\n\t\t\t\t(this.props.hidden ? \"hidden \" : \"\") +\n\t\t\t\t((this.props.tab.mutedInfo && this.props.tab.mutedInfo.muted) ? \"muted \" : \"\") +\n\t\t\t\t(this.props.tab.audible ? \"audible \" : \"\") +\n\t\t\t\t(this.props.tab.discarded ? \"discarded \" : \"\") +\n\t\t\t\t(this.props.layout === \"vertical\" ? \"full \" : \"\") +\n\t\t\t\t(this.props.tab.incognito ? \"incognito \" : \"\") +\n\t\t\t\t(this.state.draggingOver) +\n\t\t\t\t(this.props.searchActive ? \"search-active \" : \"\") +\n\t\t\t\t\" tab-\" +\n\t\t\t\tthis.props.tab.id +\n\t\t\t\t\" \" +\n\t\t\t\t(this.props.layout === \"vertical\" ? \"vertical \" : \"blocks \"),\n\t\t\tstyle:\n\t\t\t\t(this.props.layout === \"vertical\"\n\t\t\t\t\t? { }\n\t\t\t\t\t: { backgroundImage: !!this.state.favIcon ? \"url(\" + this.state.favIcon + \")\" : \"\" }\n\t\t\t\t)\n\t\t\t,\n\t\t\tid: this.props.id,\n\t\t\ttitle: this.props.tab.title,\n\t\t\tonClick: this.click,\n\t\t\tonMouseDown: this.onMouseDown,\n\t\t\tonMouseEnter: this.onHover,\n\t\t\tonMouseOut: this.onHoverOut,\n\t\t\tref: this.state.tabRef\n\t\t};\n\n\t\tif (!!this.props.draggable) {\n\t\t\ttabDom[\"onDragStart\"] = this.dragStart;\n\t\t\ttabDom[\"onDragOver\"] = this.dragOver;\n\t\t\ttabDom[\"onDragLeave\"] = this.dragOut;\n\t\t\ttabDom[\"onDrop\"] = this.drop;\n\t\t\ttabDom[\"draggable\"] = \"true\";\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{children}\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\tonHover(e) {\n\t\tthis.setState({hovered: true});\n\t\tthis.props.hoverHandler(this.props.tab);\n\t}\n\tonHoverOut(e) {\n\t\tthis.setState({hovered: false});\n\t}\n\tasync onMouseDown(e : React.MouseEvent) {\n\t\tif (e.button === 0) return;\n\t\tif (!this.props.draggable) return;\n\t\tawait this.click(e);\n\t}\n\tasync click(e : React.MouseEvent) {\n\t\tthis.stopProp(e);\n\n\t\tvar tabId : number = this.props.tab.id;\n\n\t\tif (e.button === 1) {\n\t\t\tthis.props.middleClick(tabId);\n\t\t} else if (e.button === 2 || e.nativeEvent.metaKey || e.nativeEvent.altKey || e.nativeEvent.shiftKey || e.nativeEvent.ctrlKey) {\n\t\t\te.preventDefault();\n\t\t\tif (e.button === 2 && (e.nativeEvent.metaKey || e.nativeEvent.altKey || e.nativeEvent.shiftKey || e.nativeEvent.ctrlKey)) {\n\t\t\t\tthis.props.selectTo(tabId);\n\t\t\t} else {\n\t\t\t\tthis.props.select(tabId);\n\t\t\t}\n\t\t} else {\n\t\t\tif (!!this.props.click) {\n\t\t\t\tthis.props.click(e, this.props.tab.id);\n\t\t\t} else {\n\t\t\t\tlet windowId = this.props.window.id;\n\n\t\t\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\t\t\tbrowser.runtime.sendMessage({\n\t\t\t\t\t\tcommand: S.focus_on_tab_and_window_delayed,\n\t\t\t\t\t\tsaved_tab: {tabId: tabId, windowId: windowId}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tbrowser.runtime.sendMessage({\n\t\t\t\t\t\tcommand: S.focus_on_tab_and_window,\n\t\t\t\t\t\tsaved_tab: {tabId: tabId, windowId: windowId}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!!window.inPopup) window.close();\n\t\t}\n\t\treturn false;\n\t}\n\tdragStart(e : React.DragEvent) {\n\t\tif (!this.props.draggable) return false;\n\t\tif (!this.props.drag) return false;\n\n\t\tthis.setState({\n\t\t\tdragFavIcon: \"\"\n\t\t});\n\t\tthis.props.dragFavicon(this.state.favIcon);\n\t\te.dataTransfer.setData(\"Text\", this.props.tab.id.toString());\n\t\te.dataTransfer.setData(\"text/uri-list\", this.props.tab.url || \"\");\n\t\tthis.props.drag(e, this.props.tab.id);\n\t}\n\tdragOver(e : React.DragEvent) {\n\t\tif (!this.props.draggable) return false;\n\t\tif (!this.props.drag) return false;\n\n\t\tlet favicon = this.props.dragFavicon();\n\t\tlet draggingover;\n\n\t\tvar before = this.state.draggingOver;\n\t\tif (this.props.layout === \"vertical\") {\n\t\t\tdraggingover = e.nativeEvent.offsetY > this.state.tabRef.current.clientHeight / 2 ? \"bottom\" : \"top\";\n\t\t} else {\n\t\t\tdraggingover = e.nativeEvent.offsetX > this.state.tabRef.current.clientWidth / 2 ? \"right\" : \"left\";\n\t\t}\n\n\t\tthis.setState({\n\t\t\tdraggingOver: draggingover,\n\t\t\tdragFavIcon: favicon\n\t\t});\n\n\t\tif (before !== this.state.draggingOver) {\n\t\t\tthis.forceUpdate();\n\t\t\tthis.props.parentUpdate();\n\t\t}\n\t}\n\tdragOut() {\n\t\tif (!this.props.draggable) return false;\n\t\tif (!this.props.drag) return;\n\n\t\tthis.setState({\n\t\t\tdragFavIcon: \"\",\n\t\t\tdraggingOver: \"\"\n\t\t});\n\t\tthis.forceUpdate();\n\t\tthis.props.parentUpdate();\n\t}\n\tdrop(e : React.DragEvent) {\n\t\tif (!this.props.draggable) return false;\n\t\tif (!this.props.drag) return false;\n\t\tif (!this.props.drop) return;\n\n\t\tthis.stopProp(e);\n\n\t\tvar before = this.state.draggingOver === \"top\" || this.state.draggingOver === \"left\";\n\n\t\tthis.setState({\n\t\t\tdraggingOver: \"\",\n\t\t\tdragFavIcon: \"\"\n\t\t});\n\n\t\tthis.props.drop(this.props.tab.id, before);\n\t\tthis.forceUpdate();\n\t\tthis.props.parentUpdate();\n\t}\n\tasync resolveFavIconUrl() {\n\t\tlet image : string;\n\t\t// firefox screenshots; needs \n\t\t// if(!!browser.tabs.captureTab) {\n\t\t// \tconsole.log(\"tabs captureTab\");\n\t\t// \timage = await browser.tabs.captureTab(this.props.tab.id);\n\t\t// \timage = \"url(\" + image + \")\";\n\t\t// }else\n\n\t\tvar _url : string = this.props.tab.url || this.props.tab.pendingUrl || \"\";\n\n\t\tif (!!_url && navigator.userAgent.search(\"Firefox\") === -1) {\n\t\t\timage = \"chrome-extension://\" + chrome.runtime.id + \"/_favicon/?pageUrl=\" + encodeURIComponent(_url) + \"&size=64\"; // &\" + Date.now();\n\t\t} else if (!!_url && _url.indexOf(\"chrome://\") !== 0 && _url.indexOf(\"about:\") !== 0) {\n\t\t\t image = this.props.tab.favIconUrl ? \"\" + this.props.tab.favIconUrl + \"\" : \"\";\n\t\t } else {\n\t\t\tconst favIcons = [\"bookmarks\", \"chrome\", \"crashes\", \"downloads\", \"extensions\", \"flags\", \"history\", \"settings\"];\n\t\t\tlet iconUrl = _url;\n\t\t\tif (iconUrl.length > 9) {\n\t\t\t\tlet iconName = iconUrl.slice(9).match(/^\\w+/g);\n\t\t\t\tconsole.log(iconName);\n\t\t\t\timage = !iconName || favIcons.indexOf(iconName[0]) < 0 ? \"\" : \"../images/chrome/\" + iconName[0] + \".png\";\n\t\t\t}\n\t\t}\n\t\tthis.setState({\n\t\t\tfavIcon: image\n\t\t});\n\t}\n\tstopProp(e) {\n\t\tif(e && e.nativeEvent) {\n\t\t\te.nativeEvent.preventDefault();\n\t\t\te.nativeEvent.stopPropagation();\n\t\t}\n\t\tif(e && e.preventDefault) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n}\n", "import {getLocalStorage, setLocalStorage} from \"@helpers/storage\";\nimport {debounce, maybePluralize} from \"@helpers/utils\";\nimport {Window, Session, TabOptions, Tab} from \"@views\";\nimport * as React from \"react\";\nimport * as S from \"@strings\";\nimport * as browser from 'webextension-polyfill';\nimport {ICommand, ITabManager, ITabManagerState, ISavedSession} from \"@types\";\n\nconst {setTimeout, clearTimeout} = window\n\nexport class TabManager extends React.Component {\n\tconstructor(props : ITabManager) {\n\t\tsuper(props);\n\n\t\tlet layout = \"blocks\";\n\t\tlet animations = true;\n\t\tlet windowTitles = true;\n\t\tlet compact = false;\n\t\tlet dark = false;\n\t\tlet tabactions = true;\n\t\tlet badge = true;\n\t\tlet sessionsFeature = false;\n\t\tlet hideWindows = false;\n\t\tlet filterTabs = false;\n\t\tlet tabLimit = 0;\n\t\tlet openInOwnTab = false;\n\t\tlet tabWidth = 800;\n\t\tlet tabHeight = 600;\n\n\t\tlet resetTimeout = -1;\n\t\t// var closeTimeout;\n\n\t\tthis.state = {\n\t\t\tlayout: layout,\n\t\t\tanimations: animations,\n\t\t\twindowTitles: windowTitles,\n\t\t\ttabLimit: tabLimit,\n\t\t\topenInOwnTab: openInOwnTab,\n\t\t\ttabWidth: tabWidth,\n\t\t\ttabHeight: tabHeight,\n\t\t\tcompact: compact,\n\t\t\tdark: dark,\n\t\t\ttabactions: tabactions,\n\t\t\tbadge: badge,\n\t\t\thideWindows: hideWindows,\n\t\t\tsessionsFeature: sessionsFeature,\n\t\t\tlastOpenWindow: -1,\n\t\t\twindows: [],\n\t\t\tsessions: [],\n\t\t\tselection: new Set(),\n\t\t\tlastSelect: 0,\n\t\t\thiddenTabs: new Set(),\n\t\t\ttabsbyid: new Map(),\n\t\t\twindowsbyid: new Map(),\n\t\t\tresetTimeout: resetTimeout,\n\t\t\theight: 600,\n\t\t\thasScrollBar: false,\n\t\t\tfocusUpdates: 0,\n\t\t\ttopText: \"\",\n\t\t\tbottomText: \"\",\n\t\t\tlastDirection: \"\",\n\t\t\toptionsActive: !!this.props.optionsActive,\n\t\t\tfilterTabs: filterTabs,\n\t\t\tdupTabs: false,\n\t\t\tdragFavicon: \"\",\n\t\t\tcolorsActive: 0,\n\n\t\t\ttabCount: 0,\n\t\t\thiddenCount: 0,\n\t\t\tsearchLen: 0\n\t\t};\n\n\t\tthis.addWindow = this.addWindow.bind(this);\n\t\tthis.animationsText = this.animationsText.bind(this);\n\t\tthis.badgeText = this.badgeText.bind(this);\n\t\tthis.changelayout = this.changelayout.bind(this);\n\t\tthis.changeTabHeight = this.changeTabHeight.bind(this);\n\t\tthis.changeTabLimit = this.changeTabLimit.bind(this);\n\t\tthis.changeTabWidth = this.changeTabWidth.bind(this);\n\t\tthis.checkKey = this.checkKey.bind(this);\n\t\tthis.clearSelection = this.clearSelection.bind(this);\n\t\tthis.compactText = this.compactText.bind(this);\n\t\tthis.darkText = this.darkText.bind(this);\n\t\tthis.deleteTabs = this.deleteTabs.bind(this);\n\t\tthis.discardTabs = this.discardTabs.bind(this);\n\t\tthis.donate = this.donate.bind(this);\n\t\tthis.exportSessions = this.exportSessions.bind(this);\n\t\tthis.exportSessionsText = this.exportSessionsText.bind(this);\n\t\tthis.getTip = this.getTip.bind(this);\n\t\tthis.hideText = this.hideText.bind(this);\n\t\tthis.highlightDuplicates = this.highlightDuplicates.bind(this);\n\t\tthis.hoverIcon = this.hoverIcon.bind(this);\n\t\tthis.importSessions = this.importSessions.bind(this);\n\t\tthis.importSessionsText = this.importSessionsText.bind(this);\n\t\tthis.openInOwnTabText = this.openInOwnTabText.bind(this);\n\t\tthis.pinTabs = this.pinTabs.bind(this);\n\t\tthis.rateExtension = this.rateExtension.bind(this);\n\t\tthis.scrollTo = this.scrollTo.bind(this);\n\t\tthis.search = this.search.bind(this);\n\t\tthis.sessionsText = this.sessionsText.bind(this);\n\t\tthis.sessionSync = this.sessionSync.bind(this);\n\t\tthis.tabActionsText = this.tabActionsText.bind(this);\n\t\tthis.tabHeightText = this.tabHeightText.bind(this);\n\t\tthis.tabLimitText = this.tabLimitText.bind(this);\n\t\tthis.tabWidthText = this.tabWidthText.bind(this);\n\t\tthis.toggleAnimations = this.toggleAnimations.bind(this);\n\t\tthis.toggleBadge = this.toggleBadge.bind(this);\n\t\tthis.toggleCompact = this.toggleCompact.bind(this);\n\t\tthis.toggleDark = this.toggleDark.bind(this);\n\t\tthis.toggleFilterMismatchedTabs = this.toggleFilterMismatchedTabs.bind(this);\n\t\tthis.toggleHide = this.toggleHide.bind(this);\n\t\tthis.toggleOpenInOwnTab = this.toggleOpenInOwnTab.bind(this);\n\t\tthis.toggleOptions = this.toggleOptions.bind(this);\n\t\tthis.toggleSessions = this.toggleSessions.bind(this);\n\t\tthis.toggleTabActions = this.toggleTabActions.bind(this);\n\t\tthis.toggleWindowTitles = this.toggleWindowTitles.bind(this);\n\t\tthis.update = this.update.bind(this);\n\t\tthis.windowTitlesText = this.windowTitlesText.bind(this);\n\t\tthis.onTabDetached = this.onTabDetached.bind(this);\n\t\tthis.onTabAttached = this.onTabAttached.bind(this);\n\t\tthis.onTabRemoved = this.onTabRemoved.bind(this);\n\t\tthis.onTabCreated = this.onTabCreated.bind(this);\n\t\tthis.dirtyWindow = this.dirtyWindow.bind(this);\n\t}\n\tUNSAFE_componentWillMount() {\n\t\tthis.update();\n\t}\n\n\tasync loadStorage() {\n\t\tvar layout = \"blocks\";\n\t\tvar animations = true;\n\t\tvar windowTitles = true;\n\t\tvar compact = false;\n\t\tvar dark = false;\n\t\tvar tabactions = true;\n\t\tvar badge = true;\n\t\tvar sessionsFeature = false;\n\t\tvar hideWindows = false;\n\t\tvar filterTabs = false;\n\t\tvar tabLimit = 0;\n\t\tvar openInOwnTab = false;\n\t\tvar tabWidth = 800;\n\t\tvar tabHeight = 600;\n\n\t\tvar storage = await browser.storage.local.get(null);\n\n\t\tif (!storage[\"layout\"]) storage[\"layout\"] = layout;\n\t\tif (typeof storage[\"tabLimit\"] === \"undefined\") storage[\"tabLimit\"] = tabLimit;\n\t\tif (typeof storage[\"tabWidth\"] === \"undefined\") storage[\"tabWidth\"] = tabWidth;\n\t\tif (typeof storage[\"tabHeight\"] === \"undefined\") storage[\"tabHeight\"] = tabHeight;\n\n\t\tif (typeof storage[\"animations\"] === \"undefined\") storage[\"animations\"] = animations;\n\t\tif (typeof storage[\"windowTitles\"] === \"undefined\") storage[\"windowTitles\"] = windowTitles;\n\t\tif (typeof storage[\"tabactions\"] === \"undefined\") storage[\"tabactions\"] = tabactions;\n\t\tif (typeof storage[\"badge\"] === \"undefined\") storage[\"badge\"] = badge;\n\n\t\tif (typeof storage[\"openInOwnTab\"] === \"undefined\") storage[\"openInOwnTab\"] = openInOwnTab;\n\t\tif (typeof storage[\"compact\"] === \"undefined\") storage[\"compact\"] = compact;\n\t\tif (typeof storage[\"dark\"] === \"undefined\") storage[\"dark\"] = dark;\n\t\tif (typeof storage[\"sessionsFeature\"] === \"undefined\") storage[\"sessionsFeature\"] = sessionsFeature;\n\t\tif (typeof storage[\"hideWindows\"] === \"undefined\") storage[\"hideWindows\"] = hideWindows;\n\t\tif (typeof storage[\"filter-tabs\"] === \"undefined\") storage[\"filter-tabs\"] = filterTabs;\n\n\t\tstorage[\"version\"] = window.extensionVersion;\n\n\t\tawait browser.storage.local.set(storage);\n\n\t\tlayout = storage[\"layout\"] as string;\n\t\ttabLimit = storage[\"tabLimit\"] as number;\n\t\ttabWidth = storage[\"tabWidth\"] as number;\n\t\ttabHeight = storage[\"tabHeight\"] as number;\n\t\topenInOwnTab = storage[\"openInOwnTab\"] as boolean;\n\t\tanimations = storage[\"animations\"] as boolean;\n\t\twindowTitles = storage[\"windowTitles\"] as boolean;\n\t\tcompact = storage[\"compact\"] as boolean;\n\t\tdark = storage[\"dark\"] as boolean;\n\t\ttabactions = storage[\"tabactions\"] as boolean;\n\t\tbadge = storage[\"badge\"] as boolean;\n\t\tsessionsFeature = storage[\"sessionsFeature\"] as boolean;\n\t\thideWindows = storage[\"hideWindows\"] as boolean;\n\t\tfilterTabs = storage[\"filter-tabs\"] as boolean;\n\n\t\tif (dark) {\n\t\t\tdocument.body.className = \"dark\";\n\t\t} else {\n\t\t\tdocument.body.className = \"\";\n\t\t}\n\n\t\tthis.setState({\n\t\t\tlayout: layout,\n\t\t\tanimations: animations,\n\t\t\twindowTitles: windowTitles,\n\t\t\ttabLimit: tabLimit,\n\t\t\topenInOwnTab: openInOwnTab,\n\t\t\ttabWidth: tabWidth,\n\t\t\ttabHeight: tabHeight,\n\t\t\tcompact: compact,\n\t\t\tdark: dark,\n\t\t\ttabactions: tabactions,\n\t\t\tbadge: badge,\n\t\t\thideWindows: hideWindows,\n\t\t\tsessionsFeature: sessionsFeature,\n\t\t\tfilterTabs: filterTabs\n\t\t});\n\t}\n\n\thoverHandler(tab : browser.Tabs.Tab) {\n\t\tthis.setState({ topText: tab.title || \"\" });\n\t\tthis.setState({ bottomText: tab.url || tab.pendingUrl || \"\" });\n\t\t// clearTimeout(this.state.closeTimeout);\n\t\t// this.state.closeTimeout = setTimeout(function () {\n\t\t// window.close();\n\t\t// }, 100000);\n\t\tvar _reset_timeout = this.state.resetTimeout;\n\t\tclearTimeout(_reset_timeout);\n\t\t_reset_timeout = setTimeout(\n\t\t\tfunction() {\n\t\t\t\tthis.setState({ topText: \"\", bottomText: \"\" });\n\t\t\t\tthis.update();\n\t\t\t}.bind(this),\n\t\t\t15000\n\t\t);\n\t\tthis.setState({resetTimeout: _reset_timeout});\n\t\t//this.update();\n\t}\n\thoverIcon(e : React.MouseEvent | string) {\n\t\tvar text = \"\";\n\t\tif (typeof (e) === \"string\") {\n\t\t\ttext = e;\n\t\t} else {\n\t\t\tif (e && e.nativeEvent) {\n\t\t\t\te.nativeEvent.preventDefault();\n\t\t\t\te.nativeEvent.stopPropagation();\n\t\t\t}\n\n\t\t\tif (e && e.target && !!(e.target as HTMLDivElement).title) {\n\t\t\t\ttext = (e.target as HTMLDivElement).title;\n\t\t\t}\n\t\t}\n\n\t\tvar bottom = \" \";\n\t\tif (text.indexOf(\"\\n\") > -1) {\n\t\t\tvar a = text.split(\"\\n\");\n\t\t\ttext = a[0];\n\t\t\tbottom = a[1];\n\t\t}\n\t\tthis.setState({ topText: text });\n\t\tthis.setState({ bottomText: bottom });\n\t\t//this.update();\n\t\tthis.forceUpdate();\n\t}\n\trender() {\n\t\tlet _this = this;\n\n\t\t// let hiddenCount = this.state.hiddenCount || 0;\n\t\tlet tabCount = this.state.tabCount;\n\n\t\tlet haveMin = false;\n\t\tlet haveSess = false;\n\n\t\tfor (let i = this.state.windows.length - 1; i >= 0; i--) {\n\t\t\tif (this.state.windows[i].state === \"minimized\") haveMin = true;\n\t\t}\n\n\t\tif (this.state.sessionsFeature) {\n\t\t\tif (this.state.sessions.length > 0) haveSess = true;\n\t\t\t// disable session window if we have filtering enabled\n\t\t\t// and filter active\n\t\t\tif (haveSess && this.state.filterTabs) {\n\t\t\t\tif (this.state.searchLen > 0 || this.state.hiddenTabs.size > 0) {\n\t\t\t\t\thaveSess = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{!this.state.optionsActive &&
\n\t\t\t\t\t{this.state.windows.map(function(window : browser.Windows.Window) {\n\t\t\t\t\t\tif (window.state === \"minimized\") return;\n\t\t\t\t\t\tif (!!this.state.colorsActive && this.state.colorsActive !== window.id) return;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t 0}\n\t\t\t\t\t\t\t\tsessionsFeature={_this.state.sessionsFeature}\n\t\t\t\t\t\t\t\ttabactions={_this.state.tabactions}\n\t\t\t\t\t\t\t\thiddenTabs={_this.state.hiddenTabs}\n\t\t\t\t\t\t\t\tfilterTabs={_this.state.filterTabs}\n\t\t\t\t\t\t\t\thoverHandler={_this.hoverHandler.bind(_this)}\n\t\t\t\t\t\t\t\tscrollTo={_this.scrollTo.bind(_this)}\n\t\t\t\t\t\t\t\thoverIcon={_this.hoverIcon.bind(_this)}\n\t\t\t\t\t\t\t\tparentUpdate={_this.update.bind(_this)}\n\t\t\t\t\t\t\t\ttoggleColors={_this.toggleColors.bind(_this)}\n\t\t\t\t\t\t\t\ttabMiddleClick={_this.deleteTab.bind(_this)}\n\t\t\t\t\t\t\t\tselect={_this.select.bind(_this)}\n\t\t\t\t\t\t\t\tselectTo={_this.selectTo.bind(_this)}\n\t\t\t\t\t\t\t\tdraggable={true}\n\t\t\t\t\t\t\t\tdrag={_this.drag.bind(_this)}\n\t\t\t\t\t\t\t\tdrop={_this.drop.bind(_this)}\n\t\t\t\t\t\t\t\tdropWindow={_this.dropWindow.bind(_this)}\n\t\t\t\t\t\t\t\twindowTitles={_this.state.windowTitles}\n\t\t\t\t\t\t\t\tlastOpenWindow={_this.state.lastOpenWindow}\n\t\t\t\t\t\t\t\tdragFavicon={_this.dragFavicon.bind(_this)}\n\t\t\t\t\t\t\t\tref={\"window\" + window.id}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}.bind(this))}\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tMinimized windows\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{this.state.windows.map(function(window) {\n\t\t\t\t\t\tif (window.state !== \"minimized\") return;\n\t\t\t\t\t\tif (!!this.state.colorsActive && this.state.colorsActive !== window.id) return;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t 0}\n\t\t\t\t\t\t\t\tsessionsFeature={_this.state.sessionsFeature}\n\t\t\t\t\t\t\t\ttabactions={_this.state.tabactions}\n\t\t\t\t\t\t\t\thiddenTabs={_this.state.hiddenTabs}\n\t\t\t\t\t\t\t\tfilterTabs={_this.state.filterTabs}\n\t\t\t\t\t\t\t\thoverHandler={_this.hoverHandler.bind(_this)}\n\t\t\t\t\t\t\t\tscrollTo={_this.scrollTo.bind(_this)}\n\t\t\t\t\t\t\t\thoverIcon={_this.hoverIcon.bind(_this)}\n\t\t\t\t\t\t\t\tparentUpdate={_this.update.bind(_this)}\n\t\t\t\t\t\t\t\ttoggleColors={_this.toggleColors.bind(_this)}\n\t\t\t\t\t\t\t\ttabMiddleClick={_this.deleteTab.bind(_this)}\n\t\t\t\t\t\t\t\tselect={_this.select.bind(_this)}\n\t\t\t\t\t\t\t\tselectTo={_this.selectTo.bind(_this)}\n\t\t\t\t\t\t\t\tdraggable={true}\n\t\t\t\t\t\t\t\tdrag={_this.drag.bind(_this)}\n\t\t\t\t\t\t\t\tdrop={_this.drop.bind(_this)}\n\t\t\t\t\t\t\t\tdropWindow={_this.dropWindow.bind(_this)}\n\t\t\t\t\t\t\t\twindowTitles={_this.state.windowTitles}\n\t\t\t\t\t\t\t\tlastOpenWindow={_this.state.lastOpenWindow}\n\t\t\t\t\t\t\t\tdragFavicon={_this.dragFavicon.bind(_this)}\n\t\t\t\t\t\t\t\tref={\"window\" + window.id}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}.bind(this))}\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tSaved windows\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{haveSess\n\t\t\t\t\t\t? this.state.sessions.map(function(window : ISavedSession) {\n\t\t\t\t\t\t\t\tif (!!this.state.colorsActive && this.state.colorsActive !== window.id) return;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t 0}\n\t\t\t\t\t\t\t\t\t\ttabactions={_this.state.tabactions}\n\t\t\t\t\t\t\t\t\t\thiddenTabs={_this.state.hiddenTabs}\n\t\t\t\t\t\t\t\t\t\tfilterTabs={_this.state.filterTabs}\n\t\t\t\t\t\t\t\t\t\thoverHandler={_this.hoverHandler.bind(_this)}\n\t\t\t\t\t\t\t\t\t\tscrollTo={_this.scrollTo.bind(_this)}\n\t\t\t\t\t\t\t\t\t\thoverIcon={_this.hoverIcon.bind(_this)}\n\t\t\t\t\t\t\t\t\t\tparentUpdate={_this.update.bind(_this)}\n\t\t\t\t\t\t\t\t\t\ttoggleColors={_this.toggleColors.bind(_this)}\n\t\t\t\t\t\t\t\t\t\ttabMiddleClick={_this.deleteTab.bind(_this)}\n\t\t\t\t\t\t\t\t\t\tselect={_this.select.bind(_this)}\n\t\t\t\t\t\t\t\t\t\twindowTitles={_this.state.windowTitles}\n\t\t\t\t\t\t\t\t\t\tlastOpenWindow={_this.state.lastOpenWindow}\n\t\t\t\t\t\t\t\t\t\tdraggable={false}\n\t\t\t\t\t\t\t\t\t\tref={\"session\" + window.id}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}.bind(this))\n\t\t\t\t\t\t: false}\n\t\t\t\t
}\n\t\t\t\t{this.state.optionsActive &&
\n\t\t\t\t\t\n\t\t\t\t
}\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{!this.state.optionsActive && !this.state.colorsActive &&
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Close selected tabs\\nWill close \" + maybePluralize(this.state.selection.size, 'tab')\n\t\t\t\t\t\t\t\t\t\t\t\t: \"Close current Tab\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={this.deleteTabs}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={this.hoverIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Discard selected tabs\\nWill discard \" + maybePluralize(this.state.selection.size, 'tab') + \" - freeing memory\"\n\t\t\t\t\t\t\t\t\t\t\t\t: \"Select tabs to discard them and free memory\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\tthis.state.selection.size > 0\n\t\t\t\t\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t\t\t\t\t: { opacity: 0.25 }\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={this.discardTabs}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={this.hoverIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Pin selected tabs\\nWill pin \" + maybePluralize(this.state.selection.size, 'tab')\n\t\t\t\t\t\t\t\t\t\t\t\t: \"Pin current Tab\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={this.pinTabs}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={this.hoverIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t? \"\\n\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\t(this.state.filterTabs ? \"Will reveal \" : \"Will hide \") +\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaybePluralize((this.state.tabsbyid.size - this.state.selection.size), 'tab')\n\t\t\t\t\t\t\t\t\t\t\t\t: \"\")\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={this.toggleFilterMismatchedTabs}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={this.hoverIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Move tabs to new window\\nWill move \" + maybePluralize(this.state.selection.size, 'selected tab') + \" to it\"\n\t\t\t\t\t\t\t\t\t\t\t\t: \"Open new empty window\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={this.addWindow}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={this.hoverIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t
}\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\n\tasync componentDidMount()\n\t{\n\t\tawait this.loadStorage();\n\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t} else {\n\t\t\tlet result = await browser.permissions.contains({permissions: [\"system.display\"]});\n\t\t\tif (!result) {\n\t\t\t\tsetLocalStorage(\"hideWindows\", false);\n\t\t\t\tthis.setState({\n\t\t\t\t\thideWindows: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tlet _this = this;\n\n\t\tlet runUpdate = debounce(this.update, 250);\n\t\trunUpdate = runUpdate.bind(this);\n\n\t\tvar runTabUpdate = async (tabid, changeinfo, tab) => {\n\t\t\tthis.dirtyWindow(tab.windowId);\n\n\t\t\tif (!!_this.refs[\"window\" + tab.windowId]) {\n\t\t\t\tvar window = _this.refs[\"window\" + tab.windowId] as Window;\n\t\t\t\tif (!!window.refs[\"tab\" + tabid]) {\n\t\t\t\t\tvar _tabref = window.refs[\"tab\" + tabid] as Tab;\n\t\t\t\t\tawait _tabref.checkSettings();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbrowser.tabs.onCreated.addListener(runUpdate);\n\t\tbrowser.tabs.onUpdated.addListener(runUpdate);\n\t\tbrowser.tabs.onUpdated.addListener(runTabUpdate);\n\t\tbrowser.tabs.onMoved.addListener(runUpdate);\n\t\tbrowser.tabs.onRemoved.addListener(runUpdate);\n\t\tbrowser.tabs.onReplaced.addListener(runUpdate);\n\t\tbrowser.tabs.onDetached.addListener(runUpdate);\n\t\tbrowser.tabs.onAttached.addListener(runUpdate);\n\n\t\tbrowser.tabs.onCreated.addListener(this.onTabCreated);\n\t\tbrowser.tabs.onDetached.addListener(this.onTabDetached);\n\t\tbrowser.tabs.onAttached.addListener(this.onTabAttached);\n\t\tbrowser.tabs.onRemoved.addListener(this.onTabRemoved);\n\n\t\tbrowser.tabs.onActivated.addListener(runUpdate);\n\t\tbrowser.windows.onFocusChanged.addListener(runUpdate);\n\t\tbrowser.windows.onCreated.addListener(runUpdate);\n\t\tbrowser.windows.onRemoved.addListener(runUpdate);\n\n\t\tbrowser.runtime.onMessage.addListener(async function (message, sender, sendResponse) {\n\t\t\tconst request = message as ICommand;\n\n\t\t\tconsole.log(request.command);\n\t\t\tswitch (request.command) {\n\t\t\t\tcase S.refresh_windows:\n\t\t\t\t\tlet window_ids : number[] = request.window_ids;\n\t\t\t\t\tfor (let window_id of window_ids) {\n\t\t\t\t\t\tif (!_this.refs[\"window\" + window_id]) continue;\n\t\t\t\t\t\t(_this.refs[\"window\" + window_id] as Window).checkSettings();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\n\n\t\tbrowser.storage.onChanged.addListener(this.sessionSync);\n\n\t\tawait this.sessionSync();\n\n\t\t(this.refs.root as HTMLElement).focus();\n\t\tthis.focusRoot();\n\n\t\tsetTimeout(async function() {\n\t\t\tvar scrollArea = document.getElementsByClassName(\"window-container\")[0];\n\t\t\tvar activeWindow = document.getElementsByClassName(\"activeWindow\");\n\t\t\tif (!!activeWindow && activeWindow.length > 0) {\n\t\t\t\tvar activeTab = activeWindow[0].getElementsByClassName(\"highlighted\");\n\t\t\t\tif (!!activeTab && activeTab.length > 0) {\n\t\t\t\t\tif (!!scrollArea && scrollArea.scrollTop > 0) {\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar animations = await getLocalStorage(\"animations\", false);\n\t\t\t\t\t\tactiveTab[0].scrollIntoView({ behavior: animations ? \"smooth\" : \"instant\", block: \"center\", inline: \"nearest\" });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 250);\n\n\t\t// box.select();\n\t\t// box.focus();\n\t}\n\tasync sessionSync() {\n\t\tlet values = await getLocalStorage('sessions', {});\n\t\t//console.log(values);\n\t\tlet sessions : ISavedSession[] = [];\n\t\tfor (let key in values) {\n\t\t\tlet sess = values[key];\n\t\t\tif (sess.id && sess.tabs && sess.windowsInfo) {\n\t\t\t\tsessions.push(sess);\n\t\t\t}\n\t\t}\n\t\tthis.setState({\n\t\t\tsessions: sessions\n\t\t});\n\t\tawait this.update();\n\t}\n\tfocusRoot() {\n\t\tthis.setState({ focusUpdates: (this.state.focusUpdates + 1) });\n\t\tsetTimeout(\n\t\t\tfunction() {\n\t\t\t\tif (document.activeElement === document.body) {\n\t\t\t\t\tthis.refs.root.focus();\n\t\t\t\t\tthis.forceUpdate();\n\t\t\t\t\tif (this.state.focusUpdates < 5) this.focusRoot();\n\t\t\t\t}\n\t\t\t}.bind(this),\n\t\t\t500\n\t\t);\n\t}\n\tdragFavicon(icon : string) : string {\n\t\tif (!icon) {\n\t\t\treturn this.state.dragFavicon;\n\t\t} else {\n\t\t\tthis.setState({ dragFavicon: icon });\n\t\t\treturn icon;\n\t\t}\n\t}\n\trateExtension() {\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\tbrowser.tabs.create({ url: \"https://addons.mozilla.org/en-US/firefox/addon/tab-manager-plus-for-firefox/\" });\n\t\t} else {\n\t\t\tbrowser.tabs.create({ url: \"https://chrome.google.com/webstore/detail/tab-manager-plus-for-chro/cnkdjjdmfiffagllbiiilooaoofcoeff\" });\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\tdonate() {\n\t\tbrowser.tabs.create({ url: \"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=67TZLSEGYQFFW\" });\n\t\tthis.forceUpdate();\n\t}\n\ttoggleOptions() {\n\t\tthis.setState({ optionsActive: !this.state.optionsActive });\n\t\tthis.forceUpdate();\n\t}\n\ttoggleColors(active : boolean, windowId : number) {\n\t\tthis.setState({\n\t\t\tcolorsActive: !!active ? windowId : 0\n\t\t})\n\t\tconsole.log(\"colorsActive\", active, windowId, this.state.colorsActive);\n\t\tthis.forceUpdate();\n\t}\n\n\tonTabCreated(tab : browser.Tabs.Tab) {\n\t\tthis.dirtyWindow(tab.windowId);\n\t}\n\n\tonTabRemoved(tabId : number, removeInfo : browser.Tabs.OnRemovedRemoveInfoType) {\n\t\tthis.dirtyWindow(removeInfo.windowId);\n\t}\n\n\tonTabDetached(tabId : number, detachInfo : browser.Tabs.OnDetachedDetachInfoType) {\n\t\tconst windowId = detachInfo.oldWindowId;\n\t\tthis.dirtyWindow(windowId);\n\t}\n\n\tonTabAttached(tabId : number, attachInfo: browser.Tabs.OnAttachedAttachInfoType) {\n\t\tconst windowId = attachInfo.newWindowId;\n\t\tthis.dirtyWindow(windowId);\n\t}\n\n\tdirtyWindow(windowId : number) {\n\t\tconst window = this.refs['window' + windowId] as Window;\n\t\tif (!window) return;\n\t\twindow.setState({dirty: true});\n\t}\n\n\tasync update() {\n\t\tconst windows : browser.Windows.Window[] = await browser.windows.getAll({ populate: true });\n\t\tconst sort_windows = await getLocalStorage(\"windowAge\", []);\n\n\t\twindows.sort(function(a, b) {\n\t\t\tvar aSort = sort_windows.indexOf(a.id);\n\t\t\tvar bSort = sort_windows.indexOf(b.id);\n\t\t\tif (a.state === \"minimized\" && b.state !== \"minimized\") return 1;\n\t\t\tif (b.state === \"minimized\" && a.state !== \"minimized\") return -1;\n\t\t\tif (aSort < bSort) return -1;\n\t\t\tif (aSort > bSort) return 1;\n\t\t\treturn 0;\n\t\t});\n\n\t\tthis.state.windowsbyid.clear();\n\t\tthis.state.tabsbyid.clear();\n\n\t\tthis.setState({\n\t\t\tlastOpenWindow: windows[0].id,\n\t\t\twindows: windows\n\t\t});\n\n\t\tlet tabCount = 0;\n\n\t\tfor (const window of windows) {\n\t\t\tthis.state.windowsbyid.set(window.id, window);\n\t\t\tfor (const tab of window.tabs) {\n\t\t\t\tthis.state.tabsbyid.set(tab.id, tab);\n\t\t\t\ttabCount++;\n\t\t\t}\n\t\t}\n\t\tfor (let id of this.state.selection.keys()) {\n\t\t\tif (!this.state.tabsbyid.has(id)) {\n\t\t\t\tthis.state.selection.delete(id);\n\t\t\t\tthis.setState({lastSelect: id});\n\t\t\t}\n\t\t}\n\t\tthis.setState({\n\t\t\ttabCount: tabCount\n\t\t});\n\t\t//this.state.searchLen = 0;\n\t\t// this.forceUpdate();\n\t}\n\tasync deleteTabs() {\n\t\tconst _this = this;\n\t\tconst tabs: browser.Tabs.Tab[] = [...this.state.selection.keys()].map(function(id) {\n\t\t\treturn _this.state.tabsbyid.get(id);\n\t\t});\n\t\tif (tabs.length) {\n\t\t\tbrowser.runtime.sendMessage({command: S.close_tabs, tabs: tabs});\n\t\t} else {\n\t\t\tconst t = await browser.tabs.query({ currentWindow: true, active: true });\n\t\t\tif (t && t.length > 0) {\n\t\t\t\tawait browser.tabs.remove(t[0].id);\n\t\t\t}\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\tdeleteTab(tabId : number) {\n\t\tbrowser.tabs.remove(tabId);\n\t}\n\tasync discardTabs() {\n\t\tconst _this = this;\n\t\tconst tabs : browser.Tabs.Tab[] = [...this.state.selection.keys()].map(function(id) {\n\t\t\treturn _this.state.tabsbyid.get(id);\n\t\t});\n\t\tif (tabs.length) {\n\t\t\tbrowser.runtime.sendMessage({command: S.discard_tabs, tabs: tabs});\n\t\t}\n\t\tthis.clearSelection();\n\t}\n\tdiscardTab(tabId) {\n\t\tbrowser.tabs.discard(tabId);\n\t}\n\tasync addWindow() {\n\t\tconst _this = this;\n\t\tconst count = this.state.selection.size;\n\t\tconst tabs : browser.Tabs.Tab[] = [...this.state.selection.keys()].map(function(id) {\n\t\t\treturn _this.state.tabsbyid.get(id);\n\t\t});\n\n\t\tconst incognito_tabs = tabs.filter(function(tab) {\n\t\t\treturn tab.incognito;\n\t\t});\n\n\t\tconst normal_tabs = tabs.filter(function(tab) {\n\t\t\treturn !tab.incognito;\n\t\t});\n\n\t\tif (count === 0) {\n\t\t\tawait browser.windows.create({});\n\t\t} else if (count === 1) {\n\t\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\t\tawait browser.runtime.sendMessage({command: S.focus_on_tab_and_window_delayed, tab: tabs[0]});\n\t\t\t}else{\n\t\t\t\tawait browser.runtime.sendMessage({command: S.focus_on_tab_and_window, tab: tabs[0]});\n\t\t\t}\n\t\t} else {\n\t\t\tif (normal_tabs.length > 0) {\n\t\t\t\tawait browser.runtime.sendMessage({command: S.create_window_with_tabs, tabs: normal_tabs, incognito: false});\n\t\t\t}\n\t\t\tif (incognito_tabs.length > 0) {\n\t\t\t\tawait browser.runtime.sendMessage({command: S.create_window_with_tabs, tabs: incognito_tabs, incognito: true});\n\t\t\t}\n\t\t}\n\t\tif (!!window.inPopup) window.close();\n\t}\n\tasync pinTabs() {\n\t\tconst _this = this;\n\t\tconst tabs : browser.Tabs.Tab[] = [...this.state.selection.keys()]\n\t\t\t.map(function(id) {\n\t\t\t\treturn _this.state.tabsbyid.get(id);\n\t\t\t})\n\t\t\t.sort(function(a, b) {\n\t\t\t\treturn a.index - b.index;\n\t\t\t});\n\t\tif (tabs.length) {\n\t\t\tif (tabs[0].pinned) tabs.reverse();\n\t\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\t\tawait browser.tabs.update(tabs[i].id, { pinned: !tabs[0].pinned });\n\t\t\t}\n\t\t} else {\n\t\t\tconst t = await browser.tabs.query({ currentWindow: true, active: true });\n\t\t\tif (t && t.length > 0) {\n\t\t\t\tawait browser.tabs.update(t[0].id, { pinned: !t[0].pinned });\n\t\t\t}\n\t\t}\n\t}\n\thighlightDuplicates(e) {\n\t\tthis.state.selection.clear();\n\t\tthis.state.hiddenTabs.clear();\n\n\t\tlet searchLen = 0;\n\t\tconst dupTabs = !this.state.dupTabs;\n\n\t\t(this.refs.searchbox as HTMLInputElement).value = \"\";\n\n\t\tif (!dupTabs) {\n\t\t\tthis.setState({\n\t\t\t\thiddenCount: 0,\n\t\t\t\tdupTabs: dupTabs,\n\t\t\t\tsearchLen: searchLen\n\t\t\t});\n\t\t\tthis.forceUpdate();\n\t\t\treturn;\n\t\t}\n\t\tlet hiddenCount = this.state.hiddenCount || 0;\n\t\tconst idList : number[] = [...this.state.tabsbyid.keys()];\n\t\tconst dup = [];\n\t\tfor (const id of idList) {\n\t\t\tvar tab = this.state.tabsbyid.get(id);\n\t\t\tfor (const id2 of idList) {\n\t\t\t\tif (id === id2) continue;\n\t\t\t\tvar tab2 = this.state.tabsbyid.get(id2);\n\t\t\t\tif (tab.url === tab2.url) {\n\t\t\t\t\tdup.push(id);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const dupItem of dup) {\n\t\t\tsearchLen++;\n\t\t\thiddenCount -= this.state.hiddenTabs.has(dupItem) ? 1 : 0;\n\t\t\tthis.state.selection.add(dupItem);\n\t\t\tthis.state.hiddenTabs.delete(dupItem);\n\t\t\tthis.setState({\n\t\t\t\tlastSelect: dupItem\n\t\t\t});\n\t\t}\n\t\tfor (const tab_id of idList) {\n\t\t\t// var tab = this.state.tabsbyid.get(tab_id);\n\t\t\tif (dup.indexOf(tab_id) === -1) {\n\t\t\t\thiddenCount += 1 - (this.state.hiddenTabs.has(tab_id) ? 1 : 0);\n\t\t\t\tthis.state.hiddenTabs.add(tab_id);\n\t\t\t\tthis.state.selection.delete(tab_id);\n\t\t\t\tthis.setState({\n\t\t\t\t\tlastSelect: tab_id\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (dup.length === 0) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"No duplicates found\",\n\t\t\t\tbottomText: \" \"\n\t\t\t});\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"Highlighted \" + dup.length + \" duplicate tabs\",\n\t\t\t\tbottomText: \"Press enter to move them to a new window\"\n\t\t\t});\n\t\t}\n\t\tthis.setState({\n\t\t\thiddenCount: hiddenCount\n\t\t});\n\t\tthis.setState({\n\t\t\tsearchLen: searchLen,\n\t\t\tdupTabs: dupTabs\n\t\t});\n\n\t\tthis.forceUpdate();\n\t}\n\tsearch(e) {\n\t\tlet hiddenCount = this.state.hiddenCount || 0;\n\t\tconst searchQuery = e.target.value || \"\";\n\t\tconst searchLen = searchQuery.length;\n\n\t\tlet searchType = \"normal\";\n\t\tlet searchTerms = [];\n\t\tif(searchQuery.indexOf(\" \") === -1) {\n\t\t\tsearchType = \"normal\";\n\t\t}else if(searchQuery.indexOf(\" OR \") > -1) {\n\t\t\tsearchTerms = searchQuery.split(\" OR \");\n\t\t\tsearchType = \"OR\";\n\t\t}else if(searchQuery.indexOf(\" \") > -1) {\n\t\t\tsearchTerms = searchQuery.split(\" \");\n\t\t\tsearchType = \"AND\";\n\t\t}\n\t\tif(searchType !== \"normal\") {\n\t\t\tsearchTerms = searchTerms.filter(function(entry) { return entry.trim() !== ''; });\n\t\t}\n\n\t\tif (!searchLen) {\n\t\t\tthis.state.selection.clear();\n\t\t\tthis.state.hiddenTabs.clear();\n\t\t\thiddenCount = 0;\n\t\t} else {\n\t\t\tlet idList : number[];\n\t\t\tconst lastSearchLen = this.state.searchLen;\n\t\t\tidList = [ ...this.state.tabsbyid.keys() ];\n\t\t\tif(searchType === \"normal\") {\n\t\t\t\tif (!lastSearchLen) {\n\t\t\t\t\tidList = [ ...this.state.tabsbyid.keys() ];\n\t\t\t\t} else if (lastSearchLen > searchLen) {\n\t\t\t\t\tidList = [ ...this.state.hiddenTabs.keys() ];\n\t\t\t\t} else if (lastSearchLen < searchLen) {\n\t\t\t\t\tidList = [ ...this.state.selection.keys() ];\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const id of idList) {\n\t\t\t\tconst tab = this.state.tabsbyid.get(id);\n\t\t\t\tlet tabSearchTerm;\n\t\t\t\tif (!!tab.title) tabSearchTerm = tab.title;\n\t\t\t\tif (!!tab.url) tabSearchTerm += \" \" + tab.url;\n\t\t\t\ttabSearchTerm = tabSearchTerm.toLowerCase();\n\t\t\t\tlet match = false;\n\t\t\t\tif(searchType === \"normal\") {\n\t\t\t\t\tmatch = (tabSearchTerm.indexOf(e.target.value.toLowerCase()) >= 0);\n\t\t\t\t}else if(searchType === \"OR\") {\n\t\t\t\t\tfor (let searchOR of searchTerms) {\n\t\t\t\t\t\tsearchOR = searchOR.trim().toLowerCase();\n\t\t\t\t\t\tif(tabSearchTerm.indexOf(searchOR) >= 0) {\n\t\t\t\t\t\t\tmatch = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}else if(searchType === \"AND\") {\n\t\t\t\t\tlet andMatch = true;\n\t\t\t\t\tfor (let searchAND of searchTerms) {\n\t\t\t\t\t\tsearchAND = searchAND.trim().toLowerCase();\n\t\t\t\t\t\tif(tabSearchTerm.indexOf(searchAND) >= 0) {\n\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tandMatch = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tmatch = andMatch;\n\t\t\t\t}\n\t\t\t\tif (match) {\n\t\t\t\t\thiddenCount -= this.state.hiddenTabs.has(id) ? 1 : 0;\n\t\t\t\t\tthis.state.selection.add(id);\n\t\t\t\t\tthis.state.hiddenTabs.delete(id);\n\t\t\t\t} else {\n\t\t\t\t\thiddenCount += 1 - (this.state.hiddenTabs.has(id) ? 1 : 0);\n\t\t\t\t\tthis.state.hiddenTabs.add(id);\n\t\t\t\t\tthis.state.selection.delete(id);\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tlastSelect: id\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthis.setState({\n\t\t\thiddenCount: hiddenCount,\n\t\t\tsearchLen: searchLen\n\t\t})\n\n\t\tconst matches = this.state.selection.size;\n\t\t// var matchtext = \"\";\n\t\tif (matches === 0 && searchLen > 0) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"No matches for '\" + searchQuery + \"'\",\n\t\t\t\tbottomText: \"\"\n\t\t\t});\n\t\t} else if (matches === 0) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"\",\n\t\t\t\tbottomText: \"\"\n\t\t\t});\n\t\t} else if (matches > 1) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: this.state.selection.size + \" matches for '\" + searchQuery + \"'\",\n\t\t\t\tbottomText: \"Press enter to move them to a new window\"\n\t\t\t});\n\t\t} else if (matches === 1) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: this.state.selection.size + \" match for '\" + searchQuery + \"'\",\n\t\t\t\tbottomText: \"Press enter to switch to the tab\"\n\t\t\t});\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\tclearSelection() {\n\t\tthis.state.selection.clear();\n\t\tthis.setState({\n\t\t\tlastSelect: 0\n\t\t});\n\t}\n\tcheckKey(e) {\n\t\t// enter\n\t\tif (e.keyCode === 13) this.addWindow();\n\t\t// escape key\n\t\tif (e.keyCode === 27) {\n\t\t\tif(this.state.searchLen > 0 || this.state.selection.size > 0) {\n\t\t\t\t// stop popup from closing if we have search text or selection active\n\t\t\t\te.nativeEvent.preventDefault();\n\t\t\t\te.nativeEvent.stopPropagation();\n\t\t\t}\n\n\t\t\tthis.state.hiddenTabs.clear();\n\t\t\tthis.setState({\n\t\t\t\tsearchLen: 0\n\t\t\t});\n\n\t\t\t(this.refs.searchbox as HTMLInputElement).value = \"\";\n\t\t\tthis.clearSelection();\n\t\t}\n\t\t// any typed keys\n\t\tif (\n\t\t\t(e.keyCode >= 48 && e.keyCode <= 57) ||\n\t\t\t(e.keyCode >= 65 && e.keyCode <= 90) ||\n\t\t\t(e.keyCode >= 186 && e.keyCode <= 192) ||\n\t\t\t(e.keyCode >= 219 && e.keyCode <= 22) ||\n\t\t\te.keyCode === 8 ||\n\t\t\te.keyCode === 46 ||\n\t\t\te.keyCode === 32\n\t\t) {\n\t\t\tif (document.activeElement !== this.refs.searchbox) {\n\t\t\t\tvar activeInputElement = document.activeElement as HTMLInputElement;\n\t\t\t\tconsole.log(activeInputElement);\n\t\t\t\tconsole.log(this.refs.searchbox);\n\t\t\t\tif (activeInputElement.type !== \"text\" && activeInputElement.type !== \"input\") {\n\t\t\t\t\t(this.refs.searchbox as HTMLElement)?.focus();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// arrow keys\n\t\t/*\n\t\t\tleft arrow 37\n\t\t\tup arrow 38\n\t\t\tright arrow 39\n\t\t\tdown arrow 40\n\t\t*/\n\t\tif (e.keyCode >= 37 && e.keyCode <= 40) {\n\t\t\tif (document.activeElement !== this.refs.windowcontainer && document.activeElement !== this.refs.searchbox) {\n\t\t\t\tconsole.log(activeInputElement);\n\t\t\t\tconsole.log(this.refs.windowcontainer);\n\t\t\t\t(this.refs.windowcontainer as HTMLElement)?.focus();\n\t\t\t}\n\n\t\t\tif (document.activeElement !== this.refs.searchbox || !((this.refs.searchbox as HTMLInputElement).value)) {\n\t\t\t\tlet goLeft = e.keyCode === 37;\n\t\t\t\tlet goRight = e.keyCode === 39;\n\t\t\t\tlet goUp = e.keyCode === 38;\n\t\t\t\tlet goDown = e.keyCode === 40;\n\t\t\t\tif (this.state.layout === \"vertical\") {\n\t\t\t\t\tgoLeft = e.keyCode === 38;\n\t\t\t\t\tgoRight = e.keyCode === 40;\n\t\t\t\t\tgoUp = e.keyCode === 37;\n\t\t\t\t\tgoDown = e.keyCode === 39;\n\t\t\t\t}\n\t\t\t\tif (goLeft || goRight || goUp || goDown) {\n\t\t\t\t\te.nativeEvent.preventDefault();\n\t\t\t\t\te.nativeEvent.stopPropagation();\n\t\t\t\t}\n\t\t\t\tconst altKey = e.nativeEvent.metaKey || e.nativeEvent.altKey || e.nativeEvent.shiftKey || e.nativeEvent.ctrlKey;\n\t\t\t\tif (goLeft || goRight) {\n\t\t\t\t\tlet selectedTabs = [...this.state.selection.keys()];\n\t\t\t\t\tif (!altKey && selectedTabs.length > 1) {\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet found = false;\n\t\t\t\t\t\tlet selectedNext = false;\n\t\t\t\t\t\tlet selectedTab = 0;\n\t\t\t\t\t\tlet first = 0;\n\t\t\t\t\t\tlet prev = 0;\n\t\t\t\t\t\tlet last = 0;\n\t\t\t\t\t\tif (selectedTabs.length === 1) {\n\t\t\t\t\t\t\tselectedTab = selectedTabs[0];\n\t\t\t\t\t\t\t// console.log(\"one tab\", selectedTab);\n\t\t\t\t\t\t} else if (selectedTabs.length > 1) {\n\t\t\t\t\t\t\tif (!!this.state.lastSelect) {\n\t\t\t\t\t\t\t\tselectedTab = this.state.lastSelect;\n\t\t\t\t\t\t\t\t// console.log(\"more tabs, last\", selectedTab);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tselectedTab = selectedTabs[0];\n\t\t\t\t\t\t\t\t// console.log(\"more tabs, first\", selectedTab);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (selectedTabs.length === 0 && !!this.state.lastSelect) {\n\t\t\t\t\t\t\tselectedTab = this.state.lastSelect;\n\t\t\t\t\t\t\t// console.log(\"no tabs, last\", selectedTab);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!!this.state.lastDirection) {\n\t\t\t\t\t\t\tif (goRight && this.state.lastDirection === \"goRight\") {\n\t\t\t\t\t\t\t} else if (goLeft && this.state.lastDirection === \"goLeft\") {\n\t\t\t\t\t\t\t} else if (selectedTabs.length > 1) {\n\t\t\t\t\t\t\t\t// console.log(\"turned back, last\", this.state.lastSelect, selectedTab);\n\t\t\t\t\t\t\t\tthis.select(this.state.lastSelect);\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\tlastDirection: \"\"\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\tlastDirection: \"\"\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!this.state.lastDirection) {\n\t\t\t\t\t\t\tif (goRight) this.setState({ lastDirection: \"goRight\" });\n\t\t\t\t\t\t\tif (goLeft) this.setState({ lastDirection: \"goLeft\" });\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const _w of this.state.windows) {\n\t\t\t\t\t\t\tif (found) break;\n\t\t\t\t\t\t\tif (_w.state !== \"minimized\") {\n\t\t\t\t\t\t\t\tfor (const _t of _w.tabs) {\n\t\t\t\t\t\t\t\t\tlast = _t.id;\n\t\t\t\t\t\t\t\t\tif (!first) first = _t.id;\n\t\t\t\t\t\t\t\t\tif (!selectedTab) {\n\t\t\t\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\t\t\t\tthis.select(_t.id);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t} else if (selectedTab === _t.id) {\n\t\t\t\t\t\t\t\t\t\t// console.log(\"select next one\", selectedNext);\n\t\t\t\t\t\t\t\t\t\tif (goRight) {\n\t\t\t\t\t\t\t\t\t\t\tselectedNext = true;\n\t\t\t\t\t\t\t\t\t\t} else if (!!prev) {\n\t\t\t\t\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\t\t\t\t\tthis.select(prev);\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if (selectedNext) {\n\t\t\t\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\t\t\t\tthis.select(_t.id);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tprev = _t.id;\n\t\t\t\t\t\t\t\t\t// console.log(_t, _t.id === selectedTab);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const _w of this.state.windows) {\n\t\t\t\t\t\t\tif (found) break;\n\t\t\t\t\t\t\tif (_w.state === \"minimized\") {\n\t\t\t\t\t\t\t\tfor (const _t of _w.tabs) {\n\t\t\t\t\t\t\t\t\tlast = _t.id;\n\t\t\t\t\t\t\t\t\tif (!first) first = _t.id;\n\t\t\t\t\t\t\t\t\tif (!selectedTab) {\n\t\t\t\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\t\t\t\tthis.select(_t.id);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t} else if (selectedTab === _t.id) {\n\t\t\t\t\t\t\t\t\t\tif (goRight) {\n\t\t\t\t\t\t\t\t\t\t\tselectedNext = true;\n\t\t\t\t\t\t\t\t\t\t} else if (!!prev) {\n\t\t\t\t\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\t\t\t\t\tthis.select(prev);\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if (selectedNext) {\n\t\t\t\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\t\t\t\tthis.select(_t.id);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tprev = _t.id;\n\t\t\t\t\t\t\t\t\t// console.log(_t, _t.id === selectedTab);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!found && goRight && !!first) {\n\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\tthis.select(first);\n\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!found && goLeft && !!last) {\n\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\tthis.select(last);\n\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (goUp || goDown) {\n\t\t\t\t\tlet selectedTabs = [...this.state.selection.keys()];\n\t\t\t\t\tif (selectedTabs.length > 1) {\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet found = false;\n\t\t\t\t\t\tlet selectedNext = false;\n\t\t\t\t\t\tlet selectedTab = -1;\n\t\t\t\t\t\tlet first = 0;\n\t\t\t\t\t\tlet prev = 0;\n\t\t\t\t\t\tlet last = 0;\n\t\t\t\t\t\tlet tabPosition = -1;\n\t\t\t\t\t\tlet i = -1;\n\t\t\t\t\t\tif (selectedTabs.length === 1) {\n\t\t\t\t\t\t\tselectedTab = selectedTabs[0];\n\t\t\t\t\t\t\t// console.log(selectedTab);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const _w of this.state.windows) {\n\t\t\t\t\t\t\ti = 0;\n\t\t\t\t\t\t\tif (found) break;\n\t\t\t\t\t\t\tif (_w.state !== \"minimized\") {\n\t\t\t\t\t\t\t\tif (!first) first = _w.id;\n\t\t\t\t\t\t\t\tfor (const _t of _w.tabs) {\n\t\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t\t\tlast = _w.id;\n\t\t\t\t\t\t\t\t\tif (!selectedTab) {\n\t\t\t\t\t\t\t\t\t\tthis.selectWindowTab(_w.id, tabPosition);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t} else if (selectedTab === _t.id) {\n\t\t\t\t\t\t\t\t\t\ttabPosition = i;\n\t\t\t\t\t\t\t\t\t\t// console.log(\"found tab\", _w.id, _t.id, selectedTab, i);\n\t\t\t\t\t\t\t\t\t\tif (goDown) {\n\t\t\t\t\t\t\t\t\t\t\t// console.log(\"select next window \", selectedNext, tabPosition);\n\t\t\t\t\t\t\t\t\t\t\tselectedNext = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t} else if (!!prev) {\n\t\t\t\t\t\t\t\t\t\t\t// console.log(\"select prev window \", prev, tabPosition);\n\t\t\t\t\t\t\t\t\t\t\tthis.selectWindowTab(prev, tabPosition);\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if (selectedNext) {\n\t\t\t\t\t\t\t\t\t\t// console.log(\"selecting next window \", _w.id, tabPosition);\n\t\t\t\t\t\t\t\t\t\tthis.selectWindowTab(_w.id, tabPosition);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// console.log(_t, _t.id === selectedTab);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tprev = _w.id;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const _w of this.state.windows) {\n\t\t\t\t\t\t\ti = 0;\n\t\t\t\t\t\t\tif (found) break;\n\t\t\t\t\t\t\tif (_w.state === \"minimized\") {\n\t\t\t\t\t\t\t\tif (!first) first = _w.id;\n\t\t\t\t\t\t\t\tfor (const _t of _w.tabs) {\n\t\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t\t\tlast = _w.id;\n\t\t\t\t\t\t\t\t\tif (!selectedTab) {\n\t\t\t\t\t\t\t\t\t\tthis.selectWindowTab(_w.id, tabPosition);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t} else if (selectedTab === _t.id) {\n\t\t\t\t\t\t\t\t\t\ttabPosition = i;\n\t\t\t\t\t\t\t\t\t\t// console.log(\"found tab\", _w.id, _t.id, selectedTab, i);\n\t\t\t\t\t\t\t\t\t\tif (goDown) {\n\t\t\t\t\t\t\t\t\t\t\t// console.log(\"select next window \", selectedNext, tabPosition);\n\t\t\t\t\t\t\t\t\t\t\tselectedNext = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t} else if (!!prev) {\n\t\t\t\t\t\t\t\t\t\t\t// console.log(\"select prev window \", prev, tabPosition);\n\t\t\t\t\t\t\t\t\t\t\tthis.selectWindowTab(prev, tabPosition);\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if (selectedNext) {\n\t\t\t\t\t\t\t\t\t\t// console.log(\"selecting next window \", _w.id, tabPosition);\n\t\t\t\t\t\t\t\t\t\tthis.selectWindowTab(_w.id, tabPosition);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// console.log(_t, _t.id === selectedTab);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tprev = _w.id;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// console.log(found, goDown, first);\n\t\t\t\t\t\tif (!found && goDown && !!first) {\n\t\t\t\t\t\t\t// console.log(\"go first\", first);\n\t\t\t\t\t\t\tthis.state.selection.clear();\n\t\t\t\t\t\t\tthis.selectWindowTab(first, tabPosition);\n\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// console.log(found, goUp, last);\n\t\t\t\t\t\tif (!found && goUp && !!last) {\n\t\t\t\t\t\t\t// console.log(\"go last\", last);\n\t\t\t\t\t\t\tthis.state.selection.clear();\n\t\t\t\t\t\t\tthis.selectWindowTab(last, tabPosition);\n\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// page up / page down\n\t\tif (e.keyCode === 33 || e.keyCode === 34) {\n\t\t\tif (document.activeElement != this.refs.windowcontainer) {\n\t\t\t\t(this.refs.windowcontainer as HTMLElement).focus();\n\t\t\t}\n\t\t}\n\t}\n\tselectWindowTab(windowId, tabPosition) {\n\t\tif (!tabPosition || tabPosition < 1) tabPosition = 1;\n\t\tfor (let _w of this.state.windows) {\n\t\t\tif (_w.id !== windowId) continue;\n\t\t\tlet i = 0;\n\t\t\tfor (let _t of _w.tabs) {\n\t\t\t\ti++;\n\t\t\t\tif ((_w.tabs.length >= tabPosition && tabPosition === i) || (_w.tabs.length < tabPosition && _w.tabs.length === i)) {\n\t\t\t\t\tthis.state.selection.clear();\n\t\t\t\t\tthis.select(_t.id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tscrollTo(what : string, id : number) {\n\t\tvar els = document.getElementById(what + \"-\" + id);\n\t\tif (!!els) {\n\t\t\tif (!this.elVisible(els)) {\n\t\t\t\tels.scrollIntoView({ behavior: this.state.animations ? \"smooth\" : \"instant\", block: \"center\", inline: \"nearest\" });\n\t\t\t}\n\t\t}\n\t}\n\tasync changelayout(layout) {\n\t\tvar newLayout;\n\t\tif (layout && typeof (layout) === \"string\") {\n\t\t\tnewLayout = layout;\n\t\t} else {\n\t\t\tnewLayout = this.nextlayout();\n\t\t}\n\t\tawait setLocalStorage(\"layout\", newLayout);\n\n\t\tthis.setState({\n\t\t\tlayout: newLayout,\n\t\t\ttopText: \"Switched to \" + this.readablelayout(this.state.layout) + \" view\",\n\t\t\tbottomText: \" \"\n\t\t});\n\n\t\tthis.forceUpdate();\n\t}\n\tnextlayout() {\n\t\tswitch (this.state.layout) {\n\t\t\tcase \"blocks\":\n\t\t\t\treturn \"blocks-big\";\n\t\t\tcase \"blocks-big\":\n\t\t\t\treturn \"horizontal\";\n\t\t\tcase \"horizontal\":\n\t\t\t\treturn \"vertical\";\n\t\t\tdefault:\n\t\t\t\treturn \"blocks\";\n\t\t}\n\t}\n\treadablelayout(layout) {\n\t\tswitch (layout) {\n\t\t\tcase \"blocks\":\n\t\t\t\treturn \"Block\";\n\t\t\tcase \"blocks-big\":\n\t\t\t\treturn \"Big Block\";\n\t\t\tcase \"horizontal\":\n\t\t\t\treturn \"Horizontal\";\n\t\t\tdefault:\n\t\t\t\treturn \"Vertical\";\n\t\t}\n\t}\n\tselect(id : number) {\n\t\tif (this.state.selection.has(id)) {\n\t\t\tthis.state.selection.delete(id);\n\t\t\tthis.setState({\n\t\t\t\tlastSelect: id\n\t\t\t});\n\t\t} else {\n\t\t\tthis.state.selection.add(id);\n\t\t\tthis.setState({\n\t\t\t\tlastSelect: id\n\t\t\t});\n\t\t}\n\t\tthis.scrollTo('tab', id);\n\t\tvar tab = this.state.tabsbyid.get(id);\n\t\tif(!!this.refs['window' + tab.windowId] && !!(this.refs['window' + tab.windowId] as Window).refs['tab' + id]) {\n\t\t\t((this.refs['window' + tab.windowId] as Window).refs['tab' + id] as Tab).resolveFavIconUrl();\n\t\t}\n\n\t\tconsole.log(this.state.selection);\n\t\tvar selected = this.state.selection.size;\n\t\tif (selected === 0) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"No tabs selected\",\n\t\t\t\tbottomText: \" \"\n\t\t\t});\n\t\t} else if (selected === 1) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"Selected \" + selected + \" tab\",\n\t\t\t\tbottomText: \"Press enter to switch to it\"\n\t\t\t});\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"Selected \" + selected + \" tabs\",\n\t\t\t\tbottomText: \"Press enter to move them to a new window\"\n\t\t\t});\n\t\t}\n\t}\n\tselectTo(id : number, tabs : browser.Tabs.Tab[]) {\n\t\tlet activate = false;\n\t\tconst lastSelect = this.state.lastSelect;\n\t\tif (id === lastSelect) {\n\t\t\tthis.select(id);\n\t\t\treturn;\n\t\t}\n\t\tif (!!lastSelect) {\n\t\t\tif (this.state.selection.has(lastSelect)) {\n\t\t\t\tactivate = true;\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.state.selection.has(id)) {\n\t\t\t\tactivate = false;\n\t\t\t} else {\n\t\t\t\tactivate = true;\n\t\t\t}\n\t\t}\n\n\t\tlet rangeIndex1 : number;\n\t\tlet rangeIndex2 : number;\n\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\tif (tabs[i].id === id) {\n\t\t\t\trangeIndex1 = i;\n\t\t\t}\n\t\t\tif (!!lastSelect && tabs[i].id === lastSelect) {\n\t\t\t\trangeIndex2 = i;\n\t\t\t}\n\t\t}\n\t\tif (!!lastSelect && !rangeIndex2) {\n\t\t\tthis.select(id);\n\t\t\treturn;\n\t\t}\n\t\tif (!rangeIndex2) {\n\t\t\tconst neighbours = [];\n\t\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\t\tconst tabId = tabs[i].id;\n\t\t\t\tif (tabId !== id) {\n\t\t\t\t\tif (this.state.selection.has(tabId)) {\n\t\t\t\t\t\tneighbours.push(tabId);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (activate) {\n\t\t\t\t// find closest selected item that's not connected\n\t\t\t\tlet leftSibling = 0;\n\t\t\t\tlet rightSibling = tabs.length - 1;\n\t\t\t\tfor (let i = 0; i < rangeIndex1; i++) {\n\t\t\t\t\tif (neighbours.indexOf(i) > -1) {\n\t\t\t\t\t\tleftSibling = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let i = tabs.length - 1; i > rangeIndex1; i--) {\n\t\t\t\t\tif (neighbours.indexOf(i) > -1) {\n\t\t\t\t\t\trightSibling = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet diff1 = rangeIndex1 - leftSibling;\n\t\t\t\tlet diff2 = rightSibling - rangeIndex1;\n\t\t\t\tif (diff1 > diff2) {\n\t\t\t\t\trangeIndex2 = rightSibling;\n\t\t\t\t} else {\n\t\t\t\t\trangeIndex2 = leftSibling;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// find furthest selected item that's connected\n\t\t\t\tlet leftSibling = rangeIndex1;\n\t\t\t\tlet rightSibling = rangeIndex1;\n\t\t\t\tfor (let i = rangeIndex1; i > 0; i--) {\n\t\t\t\t\tif (neighbours.indexOf(i) > -1) {\n\t\t\t\t\t\tleftSibling = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let i = rangeIndex1; i < tabs.length; i++) {\n\t\t\t\t\tif (neighbours.indexOf(i) > -1) {\n\t\t\t\t\t\trightSibling = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet diff1 = rangeIndex1 - leftSibling;\n\t\t\t\tlet diff2 = rightSibling - rangeIndex1;\n\t\t\t\tif (diff1 > diff2) {\n\t\t\t\t\trangeIndex2 = leftSibling;\n\t\t\t\t} else {\n\t\t\t\t\trangeIndex2 = rightSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.setState({\n\t\t\tlastSelect: tabs[rangeIndex2].id\n\t\t});\n\t\tif (rangeIndex2 < rangeIndex1) {\n\t\t\tlet r1 = rangeIndex2;\n\t\t\tlet r2 = rangeIndex1;\n\t\t\trangeIndex1 = r1;\n\t\t\trangeIndex2 = r2;\n\t\t}\n\n\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\tif (i >= rangeIndex1 && i <= rangeIndex2) {\n\t\t\t\tconst _tab_id = tabs[i].id;\n\t\t\t\tif (activate) {\n\t\t\t\t\tthis.state.selection.add(_tab_id);\n\t\t\t\t} else {\n\t\t\t\t\tthis.state.selection.delete(_tab_id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.scrollTo('tab', this.state.lastSelect);\n\n\t\tconst selected = this.state.selection.size;\n\t\tif (selected === 0) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"No tabs selected\",\n\t\t\t\tbottomText: \" \"\n\t\t\t});\n\t\t} else if (selected === 1) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"Selected \" + selected + \" tab\",\n\t\t\t\tbottomText: \"Press enter to switch to it\"\n\t\t\t});\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"Selected \" + selected + \" tabs\",\n\t\t\t\tbottomText: \"Press enter to move them to a new window\"\n\t\t\t});\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\tdrag(e : React.DragEvent, id : number) {\n\t\tif (!this.state.selection.has(id)) {\n\t\t\tthis.state.selection.add(id);\n\t\t\tthis.setState({\n\t\t\t\tlastSelect: id\n\t\t\t});\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\tasync drop(id : number, before : boolean) {\n\t\tvar _this = this;\n\t\tvar tab : browser.Tabs.Tab = this.state.tabsbyid.get(id);\n\t\tvar tabs : browser.Tabs.Tab[] = [...this.state.selection.keys()].map(function(id) {\n\t\t\treturn _this.state.tabsbyid.get(id);\n\t\t});\n\t\tvar index = tab.index + (before ? 0 : 1);\n\n\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\tconst t : browser.Tabs.Tab = tabs[i];\n\t\t\tawait browser.tabs.move(t.id, { windowId: tab.windowId, index: index });\n\t\t\tawait browser.tabs.update(t.id, { pinned: t.pinned });\n\t\t}\n\t\tthis.state.selection.clear();\n\t\tthis.update();\n\t}\n\tasync dropWindow(windowId : number) {\n\t\tvar _this = this;\n\t\tvar tabs : browser.Tabs.Tab[] = [...this.state.selection.keys()].map(function(id) {\n\t\t\treturn _this.state.tabsbyid.get(id);\n\t\t});\n\n\t\tbrowser.runtime.sendMessage({command: S.move_tabs_to_window, window_id: windowId, tabs: tabs});\n\n\t\tthis.state.selection.clear();\n\t}\n\tasync changeTabLimit(e : React.ChangeEvent) {\n\t\tvar _tab_limit = parseInt(e.target.value);\n\t\tthis.setState({\n\t\t\ttabLimit: _tab_limit\n\t\t});\n\t\tawait setLocalStorage(\"tabLimit\", _tab_limit);\n\t\tthis.tabLimitText();\n\t\tthis.forceUpdate();\n\t}\n\ttabLimitText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Limit the number of tabs per window. Will move new tabs into a new window instead. 0 to turn off\"\n\t\t});\n\t}\n\tasync changeTabWidth(e : React.ChangeEvent) {\n\t\tvar _tab_width = parseInt(e.target.value);\n\t\tthis.setState({\n\t\t\ttabWidth: _tab_width\n\t\t});\n\t\tawait setLocalStorage(\"tabWidth\", _tab_width);\n\t\tdocument.body.style.width = _tab_width + \"px\";\n\t\tthis.tabWidthText();\n\t\tthis.forceUpdate();\n\t}\n\ttabWidthText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Change the width of this window. 800 by default.\"\n\t\t});\n\t}\n\tasync changeTabHeight(e : React.ChangeEvent) {\n\t\tvar _tab_height = parseInt(e.target.value);\n\t\tthis.setState({\n\t\t\ttabHeight: _tab_height\n\t\t});\n\t\tawait setLocalStorage(\"tabHeight\", _tab_height);\n\t\tdocument.body.style.height = _tab_height + \"px\";\n\t\tthis.tabHeightText();\n\t\tthis.forceUpdate();\n\t}\n\ttabHeightText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Change the height of this window. 600 by default.\"\n\t\t});\n\t}\n\tasync toggleAnimations() {\n\t\tvar _animations = !this.state.animations;\n\t\tthis.setState({ animations: _animations });\n\t\tawait setLocalStorage(\"animations\", _animations);\n\t\tthis.animationsText();\n\t\tthis.forceUpdate();\n\t}\n\tanimationsText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Enables/disables animations. Default : on\"\n\t\t});\n\t}\n\tasync toggleWindowTitles() {\n\t\tvar _window_titles = !this.state.windowTitles;\n\t\tthis.setState({windowTitles: _window_titles});\n\t\tawait setLocalStorage(\"windowTitles\", _window_titles);\n\t\tthis.windowTitlesText();\n\t\tthis.forceUpdate();\n\t}\n\twindowTitlesText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Enables/disables window titles. Default : on\"\n\t\t});\n\t}\n\tasync toggleCompact() {\n\t\tvar _compact = !this.state.compact;\n\t\tthis.setState({compact: _compact});\n\t\tawait setLocalStorage(\"compact\", _compact);\n\t\tthis.compactText();\n\t\tthis.forceUpdate();\n\t}\n\tcompactText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Compact mode is a more compressed layout. Default : off\"\n\t\t});\n\t}\n\tasync toggleDark() {\n\t\tvar _dark = !this.state.dark;\n\t\tthis.setState({dark: _dark});\n\t\tawait setLocalStorage(\"dark\", _dark);\n\n\t\tthis.darkText();\n\t\tif (_dark) {\n\t\t\tdocument.body.className = \"dark\";\n\t\t\tdocument.documentElement.className = \"dark\";\n\t\t} else {\n\t\t\tdocument.body.className = \"\";\n\t\t\tdocument.documentElement.className = \"\";\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\tdarkText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Dark mode inverts the layout - better on the eyes. Default : off\"\n\t\t});\n\t}\n\tasync toggleTabActions() {\n\t\tvar _tabactions = !this.state.tabactions;\n\t\tthis.setState({tabactions: _tabactions});\n\t\tawait setLocalStorage(\"tabactions\", _tabactions);\n\t\tthis.tabActionsText();\n\t\tthis.forceUpdate();\n\t}\n\ttabActionsText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Adds 'Open a new tab' and 'Close this window' option to each window. Default : on\"\n\t\t});\n\t}\n\tasync toggleBadge() {\n\t\tvar _badge = !this.state.badge;\n\t\tthis.setState({badge: _badge});\n\t\tawait setLocalStorage(\"badge\", _badge);\n\t\tthis.badgeText();\n\t\tbrowser.runtime.sendMessage({command: S.update_tab_count});\n\t\tthis.forceUpdate();\n\t}\n\tbadgeText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Shows the number of open tabs on the Tab Manager icon. Default : on\"\n\t\t});\n\t}\n\tasync toggleOpenInOwnTab() {\n\t\tvar _openInOwnTab = !this.state.openInOwnTab;\n\t\tthis.setState({openInOwnTab: _openInOwnTab});\n\t\tawait setLocalStorage(\"openInOwnTab\", _openInOwnTab);\n\t\tthis.openInOwnTabText();\n\t\tbrowser.runtime.sendMessage({ command: S.reload_popup_controls });\n\t\tthis.forceUpdate();\n\t}\n\topenInOwnTabText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Open the Tab Manager by default in own tab, or as a popup?\"\n\t\t});\n\t}\n\tasync toggleSessions() {\n\t\tvar _sessionsFeature = !this.state.sessionsFeature;\n\t\tthis.setState({sessionsFeature: _sessionsFeature});\n\t\tawait setLocalStorage(\"sessionsFeature\", _sessionsFeature);\n\t\tthis.sessionsText();\n\t\tthis.forceUpdate();\n\t}\n\tsessionsText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Allows you to save/restore windows into sessions. ( Tab History will be lost ) Default : off\"\n\t\t});\n\t}\n\texportSessions() {\n\t\tif (this.state.sessions.length === 0) {\n\t\t\twindow.alert(\"You have currently no windows saved for later. There is nothing to export.\");\n\t\t\treturn;\n\t\t}\n\t\tvar exportName = \"tab-manager-plus-backup\";\n\t\tvar today = new Date();\n\t\tvar y = today.getFullYear();\n\t\t// JavaScript months are 0-based.\n\t\tvar m = (\"0\" + (today.getMonth() + 1)).slice(-2);\n\t\tvar d = (\"0\" + today.getDate()).slice(-2);\n\t\tvar h = (\"0\" + today.getHours()).slice(-2);\n\t\tvar mi = (\"0\" + today.getMinutes()).slice(-2);\n\t\tvar s = (\"0\" + today.getSeconds()).slice(-2);\n\t\texportName += \"-\" + y + m + d + \"-\" + h + mi + \"-\" + s;\n\t\tvar dataStr = \"data:text/json;charset=utf-8,\" + encodeURIComponent(JSON.stringify(this.state.sessions, null, 2));\n\t\tvar downloadAnchorNode = document.createElement(\"a\");\n\t\tdownloadAnchorNode.setAttribute(\"href\", dataStr);\n\t\tdownloadAnchorNode.setAttribute(\"download\", exportName + \".json\");\n\t\tdocument.body.appendChild(downloadAnchorNode); // required for firefox\n\t\tdownloadAnchorNode.click();\n\t\tdownloadAnchorNode.remove();\n\t\tthis.exportSessionsText();\n\t\tthis.forceUpdate();\n\t}\n\texportSessionsText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Allows you to export your saved windows to an external backup\"\n\t\t});\n\t}\n\timportSessions(evt : React.ChangeEvent) {\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\tif(window.inPopup) {\n\t\t\t\twindow.alert(\"Due to a Firefox bug session import does not work in the popup. Please use the options screen or open Tab Manager Plus in its' own tab\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\tlet inputField = evt.target; // #session_import\n\t\t\tlet files = evt.target.files;\n\t\t\tif (!files.length) {\n\t\t\t\talert(\"No file selected!\");\n\t\t\t\tthis.setState({ bottomText: \"Error: Could not read the backup file!\" });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet file = files[0];\n\t\t\tlet reader = new FileReader();\n\n\t\t\treader.onload = async event => {\n\t\t\t\t//console.log('FILE CONTENT', event.target.result);\n\t\t\t\tvar backupFile;\n\t\t\t\ttry {\n\t\t\t\t\tbackupFile = JSON.parse(event.target.result.toString());\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconsole.error(err);\n\t\t\t\t\twindow.alert(err);\n\t\t\t\t\tthis.setState({ bottomText: \"Error: Could not read the backup file!\" });\n\t\t\t\t}\n\t\t\t\tif (!!backupFile && backupFile.length > 0) {\n\t\t\t\t\tvar success = backupFile.length;\n\t\t\t\t\tfor (let i = 0; i < backupFile.length; i++) {\n\t\t\t\t\t\tvar newSession = backupFile[i];\n\t\t\t\t\t\tif (newSession.windowsInfo && newSession.tabs && newSession.id) {\n\t\t\t\t\t\t\tlet sessions = await getLocalStorage('sessions', {});\n\t\t\t\t\t\t\tsessions[newSession.id] = newSession;\n\t\t\t\t\t\t\t//this.state.sessions.push(obj);\n\n\t\t\t\t\t\t\tawait setLocalStorage('sessions', sessions).catch(function(err) {\n\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\tconsole.error(err.message);\n\t\t\t\t\t\t\t\tsuccess--;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t//console.log(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.setState({ bottomText: success + \" windows successfully restored!\" });\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ bottomText: \"Error: Could not restore any windows from the backup file!\" });\n\t\t\t\t}\n\t\t\t\tinputField.value = \"\";\n\t\t\t\tthis.sessionSync();\n\t\t\t};\n\t\t\treader.readAsText(file);\n\t\t} catch (err) {\n\t\t\tconsole.error(err);\n\t\t\twindow.alert(err);\n\t\t}\n\t\tthis.importSessionsText();\n\t\tthis.forceUpdate();\n\t}\n\timportSessionsText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Allows you to restore your saved windows from an external backup\"\n\t\t});\n\t}\n\tasync toggleHide() {\n\n\t\tvar _hide_windows = this.state.hideWindows;\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\t_hide_windows = false;\n\t\t} else {\n\t\t\tvar granted = await chrome.permissions.request({ permissions: [\"system.display\"] });\n\t\t\tif (granted) {\n\t\t\t\t_hide_windows = !_hide_windows;\n\t\t\t} else {\n\t\t\t\t_hide_windows = false;\n\t\t\t}\n\t\t}\n\n\t\tawait setLocalStorage(\"hideWindows\", _hide_windows);\n\t\tthis.setState({\n\t\t\thideWindows: _hide_windows\n\t\t});\n\t\tthis.hideText();\n\t\tthis.forceUpdate();\n\t}\n\thideText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Automatically minimizes inactive chrome windows. Default : off\"\n\t\t});\n\t}\n\tasync toggleFilterMismatchedTabs() {\n\t\tvar _filter_tabs = !this.state.filterTabs;\n\t\tthis.setState({\n\t\t\tfilterTabs: _filter_tabs\n\t\t});\n\t\tawait setLocalStorage(\"filter-tabs\", _filter_tabs);\n\t\tthis.forceUpdate();\n\t}\n\tgetTip() {\n\t\tvar tips = [\n\t\t\t\"You can right click on a tab to select it\",\n\t\t\t\"Press enter to move all selected tabs to a new window\",\n\t\t\t\"Middle click to close a tab\",\n\t\t\t\"Tab Manager Plus loves saving time\",\n\t\t\t\"To see incognito tabs, enable incognito access in the extension settings\",\n\t\t\t\"You can drag and drop tabs to other windows\",\n\t\t\t\"You can type to search right away\",\n\t\t\t\"You can search for different tabs : google OR yahoo\"\n\t\t];\n\n\t\treturn \"Tip: \" + tips[Math.floor(Math.random() * tips.length)];\n\t}\n\telVisible(elem : HTMLElement) {\n\t\tif (!(elem instanceof Element)) throw Error(\"DomUtil: elem is not an element.\");\n\t\tvar style = getComputedStyle(elem);\n\t\tif (style.display === \"none\") return false;\n\t\tif (style.visibility !== \"visible\") return false;\n\t\tlet _opacity : number = parseFloat(style.opacity);\n\t\tif (_opacity < 0.1) return false;\n\t\tif (elem.offsetWidth + elem.offsetHeight + elem.getBoundingClientRect().height + elem.getBoundingClientRect().width === 0) {\n\t\t\treturn false;\n\t\t}\n\t\tvar elemCenter = {\n\t\t\tx: elem.getBoundingClientRect().left + elem.offsetWidth / 2,\n\t\t\ty: elem.getBoundingClientRect().top + elem.offsetHeight / 2\n\t\t};\n\n\t\tif (elemCenter.x < 0) return false;\n\t\tif (elemCenter.x > (document.documentElement.clientWidth || window.innerWidth)) return false;\n\t\tif (elemCenter.y < 0) return false;\n\t\tif (elemCenter.y > (document.documentElement.clientHeight || window.innerHeight)) return false;\n\t\tvar pointContainer : ParentNode = document.elementFromPoint(elemCenter.x, elemCenter.y);\n\t\tdo {\n\t\t\tif (pointContainer === elem) return true;\n\t\t} while ((pointContainer = pointContainer.parentNode))\n\t\treturn false;\n\t}\n}", "\"use strict\";\n\nimport * as React from \"react\";\nimport * as browser from 'webextension-polyfill';\nimport { ITabOptions, ITabOptionsState } from \"@types\";\n\nexport class TabOptions extends React.Component {\n\tconstructor(props : ITabOptions) {\n\t\tsuper(props);\n\t\tthis.state = {};\n\t}\n\tlogo() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\"Tab\n\t\t\t\t\t

Tab Manager Plus {window.extensionVersion}

\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\n\toptionsSection() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Tab options

\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Popup size

\n\t\t\t\t\t
\n\t\t\t\t\t\tYou can resize the popup here up to a maximum size of 800x600. This limitation is a browser limitation, and we cannot display a bigger popup due to\n\t\t\t\t\t\tthis. If you want to have a better overview, instead you can right click on the Tab Manager Plus icon, and `open in own tab`. This will open the Tab\n\t\t\t\t\t\tManager in a new tab.\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Window style

\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tDark mode, for working at night time.
\n\t\t\t\t\t\t\tBy default: disabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tSaves a little bit of space around the icons. Makes it less beautiful, but more space efficient.
\n\t\t\t\t\t\t\tBy default: disabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tDisables/enables animations and transitions in the popup.
\n\t\t\t\t\t\t\tBy default: enabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tDisables/enables window titles.
\n\t\t\t\t\t\t\tBy default: enabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Session Management

\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tAllows you to save windows as sessions ( saved windows ). You can restore these saved windows later on. The restored windows won't have the history\n\t\t\t\t\t\t\trestored. This feature is currently in beta.\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\tBy default: disabled ( experimental feature )\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{this.props.sessionsFeature &&
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
Allows you to backup your saved windows to an external file.
\n\t\t\t\t\t
}\n\t\t\t\t\t{this.props.sessionsFeature &&
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tAllows you to restore your backup from an external file. The restored windows will be added to your current saved windows.\n\t\t\t\t\t\t
\n\t\t\t\t\t
}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Popup icon

\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tShows you the number of open tabs over the Tab Manager icon in the top right of your browser.\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\tBy default: enabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tOpens the Tab Manager in own tab by default, instead of the popup.\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\tBy default: disabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Window settings

\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tWith this option enabled, you will only have 1 open window per monitor at all times. When you switch to another window, the other windows will be\n\t\t\t\t\t\t\tminimized to the tray automatically.\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\tBy default: disabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tDisplays buttons in every window for : opening a new tab, minimizing the window, assigning a color to the window and closing the window.\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\tBy default: enabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Advanced settings

\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tIf you also want to see your incognito tabs in the Tab Manager overview, then enable incognito access for this extension.\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tChange shortcut key\n\t\t\t\t\t\t\n\t\t\t\t\t\t
If you want to disable or change the shortcut key with which to open Tab Manager Plus, you can do so here.
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t

Right mouse button

\n\t\t\t\t\t\t
With the right mouse button you can select tabs
\n\t\t\t\t\t\t

Shift+Right mouse button

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tWhile holding shift, and pressing the right mouse button you can select all tabs between the last selected tab and the current one\n\t\t\t\t\t\t
\n\t\t\t\t\t\t

Middle mouse button

\n\t\t\t\t\t\t
With the middle mouse button you can close a tab
\n\t\t\t\t\t\t

[Enter / Return] button

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tWith the return button you can switch to the currently selected tab, or move multiple selected tabs to a new window\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\tasync openIncognitoOptions() {\n\t\tawait browser.tabs.create({\n\t\t\turl: \"chrome://extensions/?id=cnkdjjdmfiffagllbiiilooaoofcoeff\"\n\t\t});\n\t}\n\tasync openShortcuts() {\n\t\tawait browser.tabs.create({ url: \"chrome://extensions/shortcuts\" });\n\t}\n\tlicenses() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tTab Manager Plus is based on{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\tdsc/Tab-Manager\n\t\t\t\t\t\n\t\t\t\t\t,{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\tjoshperry/Tab-Manager\n\t\t\t\t\t{\" \"}\n\t\t\t\t\tand{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\tJonasNo/Tab-Manager\n\t\t\t\t\t\n\t\t\t\t\t.
\n\t\t\t\t\tLicensed by{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\tMPLv2\n\t\t\t\t\t\n\t\t\t\t\t. Icons made by{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\tFreepik\n\t\t\t\t\t{\" \"}\n\t\t\t\t\tfrom{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\twww.flaticon.com\n\t\t\t\t\t\n\t\t\t\t\t. Licensed by{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\tCC 3.0 BY\n\t\t\t\t\t\n\t\t\t\t\t.\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\trender() {\n\t\tvar children = [];\n\n\t\tchildren.push(this.logo());\n\t\tchildren.push(this.optionsSection());\n\t\tchildren.push(
);\n\t\t//children.push(React.createElement('h4', {}, this.props.getTip()));\n\t\tchildren.push(this.licenses());\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t
{children}
\n\t\t\t
\n\t\t);\n\t}\n}", "\"use strict\";\n\nimport {getLocalStorage, setLocalStorage, getLocalStorageMap} from \"@helpers/storage\";\nimport {Tab} from \"@views\";\nimport * as S from \"@strings\";\nimport * as React from \"react\";\nimport * as browser from 'webextension-polyfill';\nimport {ICommand, IWindow, IWindowState, ISavedSession} from '@types';\n\nexport class Window extends React.Component {\n\tconstructor(props : IWindow) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tcolorActive: false,\n\t\t\twindowTitles: [],\n\t\t\tcolor: \"default\",\n\t\t\tname: \"\",\n\t\t\tauto_name: \"\",\n\t\t\ttabs: 0,\n\t\t\thover: false,\n\t\t\tdirty: false\n\t\t};\n\n\t\tthis.addTab = this.addTab.bind(this);\n\t\tthis.changeColors = this.changeColors.bind(this);\n\t\tthis.changeName = this.changeName.bind(this);\n\t\tthis.checkKey = this.checkKey.bind(this);\n\t\tthis.closePopup = this.closePopup.bind(this);\n\t\tthis.close = this.close.bind(this);\n\t\tthis.colors = this.colors.bind(this);\n\t\tthis.dragOver = this.dragOver.bind(this);\n\t\tthis.dragLeave = this.dragLeave.bind(this);\n\t\tthis.drop = this.drop.bind(this);\n\t\tthis.maximize = this.maximize.bind(this);\n\t\tthis.minimize = this.minimize.bind(this);\n\t\tthis.save = this.save.bind(this);\n\t\tthis.stop = this.stop.bind(this);\n\t\tthis.windowClick = this.windowClick.bind(this);\n\t\tthis.selectToFromTab = this.selectToFromTab.bind(this);\n\t\tthis.hoverWindow = this.hoverWindow.bind(this);\n\t\tthis.hoverWindowOut = this.hoverWindowOut.bind(this);\n\t\tthis.checkSettings = this.checkSettings.bind(this);\n\t}\n\n\tasync componentDidMount() {\n\t\tawait this.checkSettings();\n\t\tawait this.update();\n\t}\n\n\tasync componentDidUpdate(prevProps, prevState) {\n\t\tif (this.state.dirty) {\n\t\t\tawait this.update();\n\t\t\tthis.setState({ dirty: false });\n\t\t}\n\t}\n\n\n\tasync checkSettings() {\n\t\tlet colors = await getLocalStorageMap(S.windowColors);\n\t\tlet color = colors.get(this.props.window.id) || \"default\";\n\n\t\tthis.setState({\n\t\t\tcolor: color\n\t\t});\n\t}\n\n\tasync update() {\n\t\tlet name : string;\n\t\tif (!!this.props.window.title) {\n\t\t\tname = this.props.window.title;\n\t\t} else {\n\t\t\tlet names : Map = await getLocalStorageMap(S.windowNames);\n\t\t\tname = names.get(this.props.window.id) || \"\";\n\t\t}\n\n\t\tif (!!name) {\n\t\t\tif (name !== this.state.name) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tname: name\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tlet _window_titles = this.state.windowTitles;\n\t\tlet _tabs = this.state.tabs;\n\t\tlet tabs = await browser.tabs.query({ windowId: this.props.window.id });\n\t\tif (tabs.length == 0) return;\n\n\t\tif (_window_titles.length === 0 || this.state.tabs !== tabs.length + this.props.window.id * 99) {\n\t\t\t_window_titles.length = 0;\n\t\t\t_tabs = tabs.length + this.props.window.id * 99;\n\n\t\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\t\tconst _tab = tabs[i];\n\t\t\t\tif (!!_tab && (!!_tab.url || !!_tab.pendingUrl)) {\n\t\t\t\t\tlet url : URL;\n\t\t\t\t\tif (!!_tab.pendingUrl) {\n\t\t\t\t\t\turl = new URL(_tab.pendingUrl);\n\t\t\t\t\t} else if (!!_tab.url) {\n\t\t\t\t\t\turl = new URL(_tab.url);\n\t\t\t\t\t}\n\n\t\t\t\t\t// force refresh once we've loaded tabs\n\t\t\t\t\tif (_tab.status == \"loading\") _tabs--;\n\n\t\t\t\t\tlet protocol = url.protocol || \"\";\n\t\t\t\t\tlet hostname = url.hostname || \"\";\n\t\t\t\t\tif (protocol.indexOf(\"view-source\") > -1 && !!url.pathname) {\n\t\t\t\t\t\turl = new URL(url.pathname);\n\t\t\t\t\t\thostname = url.hostname || \"source\";\n\t\t\t\t\t} else if (protocol.indexOf(\"chrome-extension\") > -1) {\n\t\t\t\t\t\thostname = _tab.title || \"extension\";\n\t\t\t\t\t} else if (protocol.indexOf(\"about\") > -1) {\n\t\t\t\t\t\thostname = _tab.title || \"about\";\n\t\t\t\t\t} else if (hostname.indexOf(\"mail.google\") > -1) {\n\t\t\t\t\t\thostname = \"gmail\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!hostname) hostname = \"\";\n\t\t\t\t\t\thostname = hostname.replace(\"www.\", \"\");\n\t\t\t\t\t\tif (!isIpAddress(hostname)) {\n\t\t\t\t\t\t\tlet regex_var = new RegExp(/(\\.[^\\.]{0,2})(\\.[^\\.]{0,2})(\\.*$)|(\\.[^\\.]*)(\\.*$)/);\n\t\t\t\t\t\t\thostname = hostname\n\t\t\t\t\t\t\t\t.replace(regex_var, \"\")\n\t\t\t\t\t\t\t\t.split(\".\")\n\t\t\t\t\t\t\t\t.pop();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!!_tab.title) {\n\t\t\t\t\t\t\t\thostname = _tab.title;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tlet ip = hostname.split(\".\");\n\t\t\t\t\t\t\t\thostname = ip[0] + \".\" + ip[1] + \".*.*\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!hostname || hostname.length > 7) {\n\t\t\t\t\t\tlet title = _tab.title || \"\";\n\n\t\t\t\t\t\tconst separators = /\\s[\u2014|\u2022-]\\s/; // Define separators here\n\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\tlet titles = title.split(separators);\n\t\t\t\t\t\t\tlet first = titles[0];\n\t\t\t\t\t\t\tlet last = titles[titles.length - 1];\n\t\t\t\t\t\t\tif (slugify(first) == slugify(hostname) || slugify_no_space(first) == slugify_no_space(hostname) || slugify_no_space(first).startsWith(slugify_no_space(hostname).substring(0, 3)) || slugify_no_space(hostname).startsWith(slugify_no_space(first).substring(0, 3))) {\n\t\t\t\t\t\t\t\ttitle = first;\n\t\t\t\t\t\t\t} else if (slugify(last) == slugify(hostname) || slugify_no_space(last) == slugify_no_space(hostname) || slugify_no_space(last).startsWith(slugify_no_space(hostname).substring(0, 3)) || slugify_no_space(hostname).startsWith(slugify_no_space(last).substring(0, 3))) {\n\t\t\t\t\t\t\t\ttitle = last;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttitles.sort((a : string, b : string) => a.length - b.length);\n\t\t\t\t\t\t\t\ttitles.pop();\n\t\t\t\t\t\t\t\ttitle = titles.join(\"-\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} while (title.length > hostname.length && separators.test(title))\n\n\t\t\t\t\t\tif (!hostname || (!!title && title.length < 23)) {\n\t\t\t\t\t\t\thostname = title;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// while (hostname.length > 21 && hostname.indexOf(\" \") > -1) {\n\t\t\t\t\t\t// \tlet hostnames = hostname.split(\" \");\n\t\t\t\t\t\t// \thostnames.pop();\n\t\t\t\t\t\t// \thostname = hostnames.join(\" \");\n\t\t\t\t\t\t// }\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_window_titles.push(hostname);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\ttabs: _tabs\n\t\t\t})\n\t\t}\n\n\t\tif (_window_titles.length > 0) {\n\t\t\tname = this.topEntries(this.state.windowTitles).join(\"\");\n\t\t\tthis.setState({\n\t\t\t\tauto_name: name\n\t\t\t});\n\t\t}\n\t}\n\n\trender() {\n\t\tlet _this = this;\n\n\t\tlet color = this.state.color || \"default\";\n\n\t\tlet hideWindow = true;\n\t\tlet titleAdded = false;\n\t\tlet tabsperrow = this.props.layout.indexOf(\"blocks\") > -1 ? Math.ceil(Math.sqrt(this.props.tabs.length + 2)) : this.props.layout === \"vertical\" ? 1 : 15;\n\t\tlet tabs = this.props.tabs.map(function(tab) {\n\t\t\tlet isHidden : boolean = _this.props.hiddenTabs.has(tab.id) && _this.props.filterTabs;\n\t\t\tlet isSelected : boolean = _this.props.selection.has(tab.id);\n\t\t\tif (!isHidden) hideWindow = false;\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\t});\n\t\tif (!hideWindow) {\n\t\t\tif (!!this.props.tabactions) {\n\t\t\t\ttabs.push(\n\t\t\t\t\t
,\n\t\t\t\t\t
\n\t\t\t\t\t\t{this.props.sessionsFeature ? (\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\"Save this window for later\\nWill save \" +\n\t\t\t\t\t\t\t\t\ttabs.length +\n\t\t\t\t\t\t\t\t\t\" tabs with this window for later. Please note : The saved tabs will lose their history.\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={this.save}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : false}\n\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\ttitle=\"Open a new tab\"\n\t\t\t\t\t\t\tonClick={this.addTab}\n\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\ttitle=\"Change window name or color\"\n\t\t\t\t\t\t\tonClick={this.colors}\n\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{this.props.window.state === \"minimized\" ? (\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle={\"Maximize this window\\nWill maximize \" + tabs.length + \" tabs\"}\n\t\t\t\t\t\t\t\tonClick={this.maximize}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle={\"Minimize this window\\nWill minimize \" + tabs.length + \" tabs\"}\n\t\t\t\t\t\t\t\tonClick={this.minimize}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\ttitle={\"Close this window\\nWill close \" + tabs.length + \" tabs\"}\n\t\t\t\t\t\t\tonClick={this.close}\n\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (this.state.colorActive) {\n\t\t\t\ttabs.push(\n\t\t\t\t\t
\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tx\n\t\t\t\t\t\t

\n\t\t\t\t\t\t

Name the window

\n\t\t\t\t\t\t\n\t\t\t\t\t\t

Pick a color

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"default\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color1\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color2\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color3\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color4\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color5\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color6\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color7\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color8\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color9\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color10\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color11\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color12\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color13\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color14\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color15\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color16\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color17\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color18\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color19\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color20\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color21\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color22\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color23\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color24\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color25\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (this.props.windowTitles) {\n\t\t\t\ttitleAdded = true;\n\t\t\t\ttabs.unshift(\n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.window.incognito ? \"\uD83D\uDD75\" : \"\"}\n\t\t\t\t\t\t{!!this.state.name ? this.state.name : this.state.auto_name}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (tabsperrow < 5) {\n\t\t\t\ttabsperrow = 5;\n\t\t\t}\n\t\t\tlet children = [];\n\t\t\tif (!!titleAdded) {\n\t\t\t\tchildren.push(tabs.shift());\n\t\t\t}\n\t\t\tlet z = -1;\n\t\t\tfor (let j = 0; j < tabs.length; j++) {\n\t\t\t\tlet tab = tabs[j].props.tab;\n\t\t\t\tlet isHidden = !!tab && !!tab.id && this.props.hiddenTabs.has(tab.id) && this.props.filterTabs;\n\t\t\t\tif(isHidden) continue;\n\t\t\t\tz++;\n\t\t\t\tchildren.push(tabs[j]);\n\n\t\t\t\tif ((z + 1) % tabsperrow === 0 && z && this.props.layout.indexOf(\"blocks\") > -1) {\n\t\t\t\t\tchildren.push(
);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet focused = false;\n\t\t\tif (this.props.window.focused || this.props.lastOpenWindow === this.props.window.id) {\n\t\t\t\tfocused = true;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t -1 ? \"block\" : \"\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tthis.props.layout +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(this.props.window.incognito ? \" incognito\" : \"\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(focused ? \" focused\" : \"\")\n\t\t\t\t\t}\n\t\t\t\t\tonDragEnter={this.dragOver}\n\t\t\t\t\tonDragOver={this.dragOver}\n\t\t\t\t\tonDragLeave={this.dragLeave}\n\t\t\t\t\tonClick={this.windowClick}\n\t\t\t\t\ttitle={\"\"}\n\t\t\t\t\tonMouseEnter={this.hoverWindow.bind(null, tabs)}\n\t\t\t\t\tonMouseLeave={this.hoverWindowOut}\n\t\t\t\t\tonDrop={this.drop}\n\t\t\t\t>\n\t\t\t\t\t
{children}
\n\t\t\t\t
\n\t\t\t);\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tstop(e) {\n\t\tthis.stopProp(e);\n\t}\n\taddTab(e) {\n\t\tthis.stopProp(e);\n\t\tbrowser.tabs.create({ windowId: this.props.window.id });\n\t}\n\tdragOver(e) {\n\t\tthis.setState({hover: true});\n\t\tthis.stopProp(e);\n\t}\n\tdragLeave(e) {\n\t\tthis.setState({hover: false});\n\t\te.nativeEvent.preventDefault();\n\t}\n\tdrop(e) {\n\t\tlet distance = 1000000;\n\t\tlet closestTab = null;\n\t\tlet closestRef = null;\n\n\t\tfor (let i = 0; i < this.props.tabs.length; i++) {\n\t\t\tlet tab = this.props.tabs[i];\n\t\t\tlet tabRef = (this.refs[\"tab\" + tab.id] as Tab).state.tabRef.current;\n\t\t\tlet tabRect = tabRef.getBoundingClientRect();\n\t\t\tlet x = e.nativeEvent.clientX;\n\t\t\tlet y = e.nativeEvent.clientY;\n\t\t\tlet dx = tabRect.x - x;\n\t\t\tlet dy = tabRect.y - y;\n\t\t\tlet d = Math.sqrt(dx * dx + dy * dy);\n\t\t\tif (d < distance) {\n\t\t\t\tdistance = d;\n\t\t\t\tclosestTab = tab.id;\n\t\t\t\tclosestRef = tabRef;\n\t\t\t}\n\t\t}\n\n\t\tthis.stopProp(e);\n\n\t\tif (closestTab != null) {\n\t\t\tlet before : boolean;\n\t\t\tlet boundingRect = closestRef.getBoundingClientRect();\n\t\t\tif (this.props.layout === \"vertical\") {\n\t\t\t\tbefore = e.nativeEvent.clientY < boundingRect.top;\n\t\t\t} else {\n\t\t\t\tbefore = e.nativeEvent.clientX < boundingRect.left;\n\t\t\t}\n\t\t\tthis.props.drop(closestTab, before);\n\t\t} else {\n\t\t\tthis.props.dropWindow(this.props.window.id);\n\t\t}\n\t}\n\thoverWindow(tabs, _) {\n\t\tthis.setState({ hover: true });\n\t\tthis.props.hoverIcon(\"Focus this window\\nWill select this window with \" + tabs.length + \" tabs\");\n\t\t// this.props.hoverIcon(e);\n\t}\n\thoverWindowOut(_) {\n\t\tthis.setState({ hover: false });\n\t}\n\tasync checkKey(e) {\n\t\t// close popup when enter or escape have been pressed\n\t\tif (e.keyCode === 13 || e.keyCode === 27) {\n\t\t\tthis.stopProp(e);\n\t\t\tawait this.closePopup();\n\t\t}\n\t}\n\tasync windowClick(e) {\n\t\tthis.stopProp(e);\n\n\t\tlet windowId = this.props.window.id;\n\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\tbrowser.runtime.sendMessage({command: S.focus_on_window_delayed, window_id: windowId});\n\t\t} else {\n\t\t\tbrowser.runtime.sendMessage({command: S.focus_on_window, window_id: windowId});\n\t\t}\n\n\t\tthis.props.parentUpdate();\n\t\tif (!!window.inPopup) window.close();\n\t\treturn false;\n\t}\n\tselectToFromTab(tabId : number) {\n\t\tif (!!tabId) this.props.selectTo(tabId, this.props.tabs);\n\t}\n\tasync close(e) {\n\t\tthis.stopProp(e);\n\t\tawait browser.windows.remove(this.props.window.id);\n\t}\n\tuuidv4() {\n\t\treturn \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(c) {\n\t\t\tlet r = (Math.random() * 16) | 0,\n\t\t\t\tv = c === \"x\" ? r : (r & 0x3) | 0x8;\n\t\t\treturn v.toString(16);\n\t\t});\n\t}\n\tasync save(e) {\n\t\tthis.stopProp(e);\n\n\t\tconsole.log(\"session name\", this.state.name);\n\t\tlet sessionName = this.state.name || this.topEntries(this.state.windowTitles).join(\"\");\n\t\tlet sessionColor = this.state.color || \"default\";\n\n\t\tconsole.log(\"session name\", sessionName);\n\n\t\tlet session : ISavedSession = {\n\t\t\ttabs: [],\n\t\t\twindowsInfo: null,\n\t\t\tname: sessionName,\n\t\t\tcustomName: !!this.state.name,\n\t\t\tcolor: sessionColor,\n\t\t\tdate: Date.now(),\n\t\t\tsessionStartTime: Date.now(),\n\t\t\tincognito: this.props.window.incognito,\n\t\t\tid: this.uuidv4()\n\t\t};\n\n\t\tlet queryInfo : browser.Tabs.QueryQueryInfoType = {\n\t\t\twindowId: this.props.window.id\n\t\t};\n\t\t//queryInfo.currentWindow = true;\n\n\t\tconsole.log(queryInfo);\n\n\t\tlet tabs : browser.Tabs.Tab[] = await browser.tabs.query(queryInfo);\n\t\tconsole.log(tabs);\n\t\tfor (let tabkey in tabs) {\n\t\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\t\tlet newTab = tabs[tabkey];\n\t\t\t\tif (!!newTab.url && newTab.url.search(\"about:\") > -1) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tsession.tabs.push(tabs[tabkey]);\n\t\t}\n\t\tconsole.log(session.tabs);\n\t\tsession.windowsInfo = await browser.windows.get(this.props.window.id);\n\n\t\tconsole.log(session);\n\n\t\tlet sessions = await getLocalStorage('sessions', {});\n\t\tsessions[session.id] = session;\n\n\t\tlet value = await setLocalStorage('sessions', sessions).catch(function(err) {\n\t\t\tconsole.log(err);\n\t\t\tconsole.error(err.message);\n\t\t});\n\t\tthis.props.parentUpdate();\n\t\tconsole.log(\"Value is set to \" + value);\n\n\t\tsetTimeout(function() {\n\t\t\tthis.props.scrollTo(\"session\", session.id);\n\t\t}.bind(this), 150);\n\t}\n\tasync minimize(e) {\n\t\tthis.stopProp(e);\n\t\tawait browser.windows.update(this.props.window.id, {\n\t\t\tstate: \"minimized\"\n\t\t});\n\t\tthis.props.parentUpdate();\n\t}\n\tasync maximize(e) {\n\t\tthis.stopProp(e);\n\t\tawait browser.windows.update(this.props.window.id, {\n\t\t\tstate: \"normal\"\n\t\t});\n\t\tthis.props.parentUpdate();\n\t}\n\tcolors(e) {\n\t\tthis.stopProp(e);\n\t\tthis.props.toggleColors(!this.state.colorActive, this.props.window.id);\n\t\tthis.setState({\n\t\t\tcolorActive: !this.state.colorActive\n\t\t});\n\t\tsetTimeout(function() {\n\t\t\tif(this.state.colorActive) {\n\t\t\t\tthis.refs.namebox.focus();\n\t\t\t}\n\t\t}.bind(this), 150);\n\t}\n\tasync changeColors(a) {\n\t\tthis.setState(a);\n\t\tthis.props.toggleColors(!this.state.colorActive, this.props.window.id);\n\n\t\tlet color = a.color || \"default\";\n\n\t\tbrowser.runtime.sendMessage({\n\t\t\tcommand: S.set_window_color,\n\t\t\twindow_id: this.props.window.id,\n\t\t\tcolor: color\n\t\t});\n\n\t\tthis.setState({ color: color });\n\t\tawait this.closePopup();\n\t}\n\tasync closePopup() {\n\t\tthis.props.toggleColors(!this.state.colorActive, this.props.window.id);\n\t\tthis.setState({\n\t\t\tcolorActive: !this.state.colorActive\n\t\t});\n\t\tawait this.update();\n\t\tthis.props.parentUpdate();\n\t}\n\tasync changeName(e) {\n\t\t// this.setState(a);\n\t\tlet name = \"\";\n\t\tif(e && e.target && e.target.value) name = e.target.value;\n\n\t\tbrowser.runtime.sendMessage({\n\t\t\tcommand: S.set_window_name,\n\t\t\twindow_id: this.props.window.id,\n\t\t\tname: name\n\t\t});\n\n\t\tthis.setState({\n\t\t\tname: name\n\t\t});\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\tif(!!name) {\n\t\t\t\tawait browser.windows.update(this.props.window.id, {\n\t\t\t\t\ttitlePreface: name + \" - \"\n\t\t\t\t});\n\t\t\t}else{\n\t\t\t\tawait browser.windows.update(this.props.window.id, {\n\t\t\t\t\ttitlePreface: name\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\ttopEntries(arr : string[]) : string[] {\n\t\tlet cnts = arr.reduce(function(obj, val) {\n\t\t\tobj[val] = (obj[val] || 0) + 1;\n\t\t\treturn obj;\n\t\t}, {});\n\t\tlet sorted = Object.keys(cnts).sort(function(a, b) {\n\t\t\treturn cnts[b] - cnts[a];\n\t\t});\n\n\t\tlet more = 0;\n\t\tif (sorted.length === 3) {\n\t\t} else {\n\t\t\twhile (sorted.length > 2) {\n\t\t\t\tsorted.pop();\n\t\t\t\tmore++;\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < sorted.length; i++) {\n\t\t\tif (i > 0) {\n\t\t\t\tsorted[i] = \", \" + sorted[i];\n\t\t\t}\n\t\t}\n\t\tif (more > 0) {\n\t\t\tsorted.push(\" & \" + more + \" more\");\n\t\t}\n\t\treturn sorted;\n\t}\n\tstopProp(e) {\n\t\tif(e && e.nativeEvent) {\n\t\t\te.nativeEvent.preventDefault();\n\t\t\te.nativeEvent.stopPropagation();\n\t\t}\n\t\tif(e && e.preventDefault) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n}\n\nfunction slugify(text) {\n\treturn text\n\t\t.toString()\n\t\t.toLowerCase()\n\t\t.replace(/\\s+/g, \"-\") // Replace spaces with -\n\t\t.replace(/[^\\w-]+/g, \"\") // Remove all non-word chars\n\t\t.replace(/--+/g, \"-\") // Replace multiple - with single -\n\t\t.replace(/^-+/, \"\") // Trim - from start of text\n\t\t.replace(/-+$/, \"\"); // Trim - from end of text\n}\n\nfunction slugify_no_space(text) {\n\treturn text\n\t\t.toString()\n\t\t.toLowerCase()\n\t\t.replace(/\\s+/g, \"\") // Replace spaces with -\n\t\t.replace(/[^\\w-]+/g, \"\") // Remove all non-word chars\n\t\t.replace(/--+/g, \"-\") // Replace multiple - with single -\n\t\t.replace(/^-+/, \"\") // Trim - from start of text\n\t\t.replace(/-+$/, \"\"); // Trim - from end of text\n}\n\n// Function to check if the string is an IP address (IPv4 or IPv6)\nfunction isIpAddress(input) {\n\t// Regex for IPv4: 0-255.0-255.0-255.0-255\n\tconst ipv4Regex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\n\n\t// Regex for IPv6: Matches standard IPv6 formatting (8 groups of 4 hex digits)\n\tconst ipv6Regex = /^([a-fA-F0-9]{1,4}:){7}[a-fA-F0-9]{1,4}$/;\n\n\treturn ipv4Regex.test(input) || ipv6Regex.test(input);\n}", "\"use strict\";\n\nimport '@helpers/migrate';\nimport {getLocalStorage} from \"@helpers/storage\";\nimport {TabManager} from '@views';\nimport * as React from 'react';\nimport * as ReactDOM from \"react-dom\";\n\ndeclare global {\n\tinterface Window {\n\t\tloaded: boolean;\n\t\tinPopup: boolean;\n\t\tinPanel: boolean;\n\t\toptionPage: boolean;\n\t\textensionVersion: string;\n\t}\n}\n\nwindow.loaded = false;\nwindow.inPopup = window.location.search.indexOf(\"?popup\") > -1;\nwindow.inPanel = window.location.search.indexOf(\"?panel\") > -1;\nwindow.extensionVersion = process.env.VERSION;\n\nwindow.onload = () => window.requestAnimationFrame(loadApp);\n\nsetTimeout(loadApp, 75);\nsetTimeout(loadApp, 125);\nsetTimeout(loadApp, 250);\nsetTimeout(loadApp, 375);\nsetTimeout(loadApp, 700);\nsetTimeout(loadApp, 1000);\nsetTimeout(loadApp, 2000);\nsetTimeout(loadApp, 3000);\nsetTimeout(loadApp, 5000);\nsetTimeout(loadApp, 15000);\n\nasync function loadApp() {\n\tif (!!window.loaded) return;\n\tlet height : number = await getLocalStorage(\"tabHeight\", 600);\n\tlet width : number = await getLocalStorage(\"tabWidth\", 800);\n\tconsole.log(height, width);\n\tif (window.inPopup) {\n\n\t\tif (height > 0 && width > 0) {\n\t\t\tdocument.body.style.width = width + \"px\";\n\t\t\tdocument.body.style.height = height + \"px\";\n\t\t}\n\n\t\tvar root = document.getElementById(\"root\");\n\t\tif (root != null) {\n\t\t\tvar _height = parseInt(document.body.style.height.split(\"px\")[0]) || 0;\n\t\t\tif (_height < 300) {\n\t\t\t\t_height = 400;\n\t\t\t\tdocument.body.style.minHeight = _height + \"px\";\n\t\t\t} else {\n\t\t\t\t_height++;\n\t\t\t\tif (_height > 600) _height = 600;\n\t\t\t\tdocument.body.style.minHeight = _height + \"px\";\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (window.inPanel) {\n\t\t\tdocument.documentElement.style.maxHeight = \"auto\";\n\t\t\tdocument.documentElement.style.maxWidth = \"auto\";\n\t\t\tdocument.body.style.maxHeight = \"auto\";\n\t\t\tdocument.body.style.maxWidth = \"auto\";\n\t\t}\n\t\tdocument.documentElement.style.maxHeight = \"100%\";\n\t\tdocument.documentElement.style.maxWidth = \"100%\";\n\t\tdocument.documentElement.style.height = \"100%\";\n\t\tdocument.documentElement.style.width = \"100%\";\n\t\tdocument.body.style.maxHeight = \"100%\";\n\t\tdocument.body.style.maxWidth = \"100%\";\n\t\tdocument.body.style.height = \"100%\";\n\t\tdocument.body.style.width = \"100%\";\n\t}\n\n\tif (!!window.loaded) return;\n\twindow.loaded = true;\n\tReactDOM.render(, document.getElementById(\"TMP\"));\n}\n\nwindow.addEventListener(\"contextmenu\", function (e) {\n\te.preventDefault();\n});\n\n"], - "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;AAEA,YAAI,EAAEA,WAAWC,UAAUD,WAAWC,OAAOC,WAAWF,WAAWC,OAAOC,QAAQC,KAAK;AACrF,gBAAM,IAAIC,MAAM,2DAA2D;QAC7E;AAEA,YAAI,EAAEJ,WAAWK,WAAWL,WAAWK,QAAQH,WAAWF,WAAWK,QAAQH,QAAQC,KAAK;AACxF,gBAAMG,mDAAmD;AAOzD,gBAAMC,WAAWC,mBAAiB;AAIhC,kBAAMC,cAAc;cAClB,UAAU;gBACR,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,aAAa;gBACX,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,iBAAiB;gBACf,WAAW;kBACT,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,2BAA2B;kBACzB,WAAW;kBACX,WAAW;gBACb;gBACA,gBAAgB;kBACd,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,2BAA2B;kBACzB,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,gBAAgB;kBACd,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;cACF;cACA,gBAAgB;gBACd,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,kBAAkB;kBAChB,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,oBAAoB;kBAClB,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,gBAAgB;gBACd,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,mBAAmB;kBACjB,QAAQ;oBACN,WAAW;oBACX,WAAW;oBACX,qBAAqB;kBACvB;gBACF;gBACA,UAAU;kBACR,UAAU;oBACR,WAAW;oBACX,WAAW;oBACX,qBAAqB;kBACvB;kBACA,YAAY;oBACV,qBAAqB;sBACnB,WAAW;sBACX,WAAW;oBACb;kBACF;gBACF;cACF;cACA,aAAa;gBACX,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;cACF;cACA,aAAa;gBACX,6BAA6B;kBAC3B,WAAW;kBACX,WAAW;gBACb;gBACA,4BAA4B;kBAC1B,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,QAAQ;gBACN,kBAAkB;kBAChB,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;cACF;cACA,QAAQ;gBACN,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;cACF;cACA,cAAc;gBACZ,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;cACF;cACA,iBAAiB;gBACf,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,cAAc;gBACZ,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;cACF;cACA,eAAe;gBACb,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,SAAS;kBACP,SAAS;oBACP,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;kBACA,iBAAiB;oBACf,WAAW;oBACX,WAAW;kBACb;kBACA,UAAU;oBACR,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;gBACF;gBACA,WAAW;kBACT,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;kBACA,iBAAiB;oBACf,WAAW;oBACX,WAAW;kBACb;gBACF;gBACA,QAAQ;kBACN,SAAS;oBACP,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;kBACA,iBAAiB;oBACf,WAAW;oBACX,WAAW;kBACb;kBACA,UAAU;oBACR,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;gBACF;cACF;cACA,QAAQ;gBACN,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,kBAAkB;kBAChB,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW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", - "names": ["globalThis", "chrome", "runtime", "id", "Error", "browser", "CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE", "wrapAPIs", "extensionAPIs", "apiMetadata", "Object", "keys", "length", "DefaultWeakMap", "WeakMap", "constructor", "createItem", "items", "undefined", "get", "key", "has", "set", "isThenable", "value", "then", "makeCallback", "promise", "metadata", "callbackArgs", "lastError", "reject", "message", "singleCallbackArg", "resolve", "pluralizeArguments", "numArgs", "wrapAsyncFunction", "name", "asyncFunctionWrapper", "target", "args", "minArgs", "maxArgs", "Promise", "fallbackToNoCallback", "cbError", "console", "warn", "noCallback", "wrapMethod", "method", "wrapper", "Proxy", "apply", "targetMethod", "thisObj", "call", "hasOwnProperty", "Function", "bind", "prototype", "wrapObject", "wrappers", "cache", "create", "handlers", "proxyTarget", "prop", "receiver", "defineProperty", "configurable", "enumerable", "desc", "Reflect", "deleteProperty", "wrapEvent", "wrapperMap", "addListener", "listener", "hasListener", "removeListener", "onRequestFinishedWrappers", "onRequestFinished", "req", "wrappedReq", "getContent", "onMessageWrappers", "onMessage", "sender", "sendResponse", "didCallSendResponse", "wrappedSendResponse", "sendResponsePromise", "response", "result", "err", "isResultThenable", "sendPromisedResult", "msg", "error", "__mozWebExtensionPolyfillReject__", "catch", "wrappedSendMessageCallback", "reply", "wrappedSendMessage", "apiNamespaceObj", "wrappedCb", "push", "sendMessage", "staticWrappers", "devtools", "network", "onMessageExternal", "tabs", "settingMetadata", "clear", "privacy", "services", "websites", "module", "exports", "a", "b", "a", "c", "d", "f", "e", "g", "h", "k", "l", "m", "z", "later", "browser", "key", "browser", "tabs", "React", "browser", "React", "browser", "setTimeout", "clearTimeout", "storage", "window", "windows", "tabs", "id", "React", "browser", "React", "browser", "tabs", "React"] + "sources": ["../../node_modules/.pnpm/webextension-polyfill@0.12.0/node_modules/webextension-polyfill/dist/browser-polyfill.js", "../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js", "../../node_modules/.pnpm/react@16.11.0/node_modules/react/cjs/react.production.min.js", "../../node_modules/.pnpm/react@16.11.0/node_modules/react/index.js", "../../node_modules/.pnpm/scheduler@0.17.0/node_modules/scheduler/cjs/scheduler.production.min.js", "../../node_modules/.pnpm/scheduler@0.17.0/node_modules/scheduler/index.js", "../../node_modules/.pnpm/react-dom@16.11.0_react@16.11.0/node_modules/react-dom/cjs/react-dom.production.min.js", "../../node_modules/.pnpm/react-dom@16.11.0_react@16.11.0/node_modules/react-dom/index.js", "../../src/helpers/utils.ts", "../../src/strings/strings.ts", "../../src/helpers/migrate.ts", "../../src/helpers/storage.ts", "../../src/popup/views/Session.tsx", "../../src/popup/views/Tab.tsx", "../../src/popup/views/TabManager.tsx", "../../src/popup/views/TabOptions.tsx", "../../src/helpers/external_api.ts", "../../src/popup/views/Window.tsx", "../../src/popup/popup.tsx"], + "sourcesContent": ["/* webextension-polyfill - v0.12.0 - Tue May 14 2024 18:01:29 */\n/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */\n/* vim: set sts=2 sw=2 et tw=80: */\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nif (!(globalThis.chrome && globalThis.chrome.runtime && globalThis.chrome.runtime.id)) {\n throw new Error(\"This script should only be loaded in a browser extension.\");\n}\n\nif (!(globalThis.browser && globalThis.browser.runtime && globalThis.browser.runtime.id)) {\n const CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE = \"The message port closed before a response was received.\";\n\n // Wrapping the bulk of this polyfill in a one-time-use function is a minor\n // optimization for Firefox. Since Spidermonkey does not fully parse the\n // contents of a function until the first time it's called, and since it will\n // never actually need to be called, this allows the polyfill to be included\n // in Firefox nearly for free.\n const wrapAPIs = extensionAPIs => {\n // NOTE: apiMetadata is associated to the content of the api-metadata.json file\n // at build time by replacing the following \"include\" with the content of the\n // JSON file.\n const apiMetadata = {\n \"alarms\": {\n \"clear\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"clearAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"bookmarks\": {\n \"create\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getChildren\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getRecent\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getSubTree\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getTree\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"move\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeTree\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"search\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n },\n \"browserAction\": {\n \"disable\": {\n \"minArgs\": 0,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"enable\": {\n \"minArgs\": 0,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"getBadgeBackgroundColor\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getBadgeText\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"openPopup\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"setBadgeBackgroundColor\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setBadgeText\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setIcon\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"setPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n }\n },\n \"browsingData\": {\n \"remove\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"removeCache\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeCookies\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeDownloads\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeFormData\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeHistory\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeLocalStorage\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removePasswords\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removePluginData\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"settings\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"commands\": {\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"contextMenus\": {\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n },\n \"cookies\": {\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAllCookieStores\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"set\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"devtools\": {\n \"inspectedWindow\": {\n \"eval\": {\n \"minArgs\": 1,\n \"maxArgs\": 2,\n \"singleCallbackArg\": false\n }\n },\n \"panels\": {\n \"create\": {\n \"minArgs\": 3,\n \"maxArgs\": 3,\n \"singleCallbackArg\": true\n },\n \"elements\": {\n \"createSidebarPane\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n }\n }\n },\n \"downloads\": {\n \"cancel\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"download\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"erase\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getFileIcon\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"open\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"pause\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeFile\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"resume\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"search\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"show\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n }\n },\n \"extension\": {\n \"isAllowedFileSchemeAccess\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"isAllowedIncognitoAccess\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"history\": {\n \"addUrl\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"deleteAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"deleteRange\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"deleteUrl\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getVisits\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"search\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"i18n\": {\n \"detectLanguage\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAcceptLanguages\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"identity\": {\n \"launchWebAuthFlow\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"idle\": {\n \"queryState\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"management\": {\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getSelf\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"setEnabled\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"uninstallSelf\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n }\n },\n \"notifications\": {\n \"clear\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"create\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getPermissionLevel\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n },\n \"pageAction\": {\n \"getPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"hide\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setIcon\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"setPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"show\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n }\n },\n \"permissions\": {\n \"contains\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"request\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"runtime\": {\n \"getBackgroundPage\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getPlatformInfo\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"openOptionsPage\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"requestUpdateCheck\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"sendMessage\": {\n \"minArgs\": 1,\n \"maxArgs\": 3\n },\n \"sendNativeMessage\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"setUninstallURL\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"sessions\": {\n \"getDevices\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getRecentlyClosed\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"restore\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n }\n },\n \"storage\": {\n \"local\": {\n \"clear\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getBytesInUse\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"set\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"managed\": {\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getBytesInUse\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n }\n },\n \"sync\": {\n \"clear\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getBytesInUse\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"set\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n }\n },\n \"tabs\": {\n \"captureVisibleTab\": {\n \"minArgs\": 0,\n \"maxArgs\": 2\n },\n \"create\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"detectLanguage\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"discard\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"duplicate\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"executeScript\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getCurrent\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getZoom\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getZoomSettings\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"goBack\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"goForward\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"highlight\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"insertCSS\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"move\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"query\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"reload\": {\n \"minArgs\": 0,\n \"maxArgs\": 2\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeCSS\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"sendMessage\": {\n \"minArgs\": 2,\n \"maxArgs\": 3\n },\n \"setZoom\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"setZoomSettings\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"update\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n }\n },\n \"topSites\": {\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"webNavigation\": {\n \"getAllFrames\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getFrame\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"webRequest\": {\n \"handlerBehaviorChanged\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"windows\": {\n \"create\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getCurrent\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getLastFocused\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n }\n };\n\n if (Object.keys(apiMetadata).length === 0) {\n throw new Error(\"api-metadata.json has not been included in browser-polyfill\");\n }\n\n /**\n * A WeakMap subclass which creates and stores a value for any key which does\n * not exist when accessed, but behaves exactly as an ordinary WeakMap\n * otherwise.\n *\n * @param {function} createItem\n * A function which will be called in order to create the value for any\n * key which does not exist, the first time it is accessed. The\n * function receives, as its only argument, the key being created.\n */\n class DefaultWeakMap extends WeakMap {\n constructor(createItem, items = undefined) {\n super(items);\n this.createItem = createItem;\n }\n\n get(key) {\n if (!this.has(key)) {\n this.set(key, this.createItem(key));\n }\n\n return super.get(key);\n }\n }\n\n /**\n * Returns true if the given object is an object with a `then` method, and can\n * therefore be assumed to behave as a Promise.\n *\n * @param {*} value The value to test.\n * @returns {boolean} True if the value is thenable.\n */\n const isThenable = value => {\n return value && typeof value === \"object\" && typeof value.then === \"function\";\n };\n\n /**\n * Creates and returns a function which, when called, will resolve or reject\n * the given promise based on how it is called:\n *\n * - If, when called, `chrome.runtime.lastError` contains a non-null object,\n * the promise is rejected with that value.\n * - If the function is called with exactly one argument, the promise is\n * resolved to that value.\n * - Otherwise, the promise is resolved to an array containing all of the\n * function's arguments.\n *\n * @param {object} promise\n * An object containing the resolution and rejection functions of a\n * promise.\n * @param {function} promise.resolve\n * The promise's resolution function.\n * @param {function} promise.reject\n * The promise's rejection function.\n * @param {object} metadata\n * Metadata about the wrapped method which has created the callback.\n * @param {boolean} metadata.singleCallbackArg\n * Whether or not the promise is resolved with only the first\n * argument of the callback, alternatively an array of all the\n * callback arguments is resolved. By default, if the callback\n * function is invoked with only a single argument, that will be\n * resolved to the promise, while all arguments will be resolved as\n * an array if multiple are given.\n *\n * @returns {function}\n * The generated callback function.\n */\n const makeCallback = (promise, metadata) => {\n return (...callbackArgs) => {\n if (extensionAPIs.runtime.lastError) {\n promise.reject(new Error(extensionAPIs.runtime.lastError.message));\n } else if (metadata.singleCallbackArg ||\n (callbackArgs.length <= 1 && metadata.singleCallbackArg !== false)) {\n promise.resolve(callbackArgs[0]);\n } else {\n promise.resolve(callbackArgs);\n }\n };\n };\n\n const pluralizeArguments = (numArgs) => numArgs == 1 ? \"argument\" : \"arguments\";\n\n /**\n * Creates a wrapper function for a method with the given name and metadata.\n *\n * @param {string} name\n * The name of the method which is being wrapped.\n * @param {object} metadata\n * Metadata about the method being wrapped.\n * @param {integer} metadata.minArgs\n * The minimum number of arguments which must be passed to the\n * function. If called with fewer than this number of arguments, the\n * wrapper will raise an exception.\n * @param {integer} metadata.maxArgs\n * The maximum number of arguments which may be passed to the\n * function. If called with more than this number of arguments, the\n * wrapper will raise an exception.\n * @param {boolean} metadata.singleCallbackArg\n * Whether or not the promise is resolved with only the first\n * argument of the callback, alternatively an array of all the\n * callback arguments is resolved. By default, if the callback\n * function is invoked with only a single argument, that will be\n * resolved to the promise, while all arguments will be resolved as\n * an array if multiple are given.\n *\n * @returns {function(object, ...*)}\n * The generated wrapper function.\n */\n const wrapAsyncFunction = (name, metadata) => {\n return function asyncFunctionWrapper(target, ...args) {\n if (args.length < metadata.minArgs) {\n throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`);\n }\n\n if (args.length > metadata.maxArgs) {\n throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`);\n }\n\n return new Promise((resolve, reject) => {\n if (metadata.fallbackToNoCallback) {\n // This API method has currently no callback on Chrome, but it return a promise on Firefox,\n // and so the polyfill will try to call it with a callback first, and it will fallback\n // to not passing the callback if the first call fails.\n try {\n target[name](...args, makeCallback({resolve, reject}, metadata));\n } catch (cbError) {\n console.warn(`${name} API method doesn't seem to support the callback parameter, ` +\n \"falling back to call it without a callback: \", cbError);\n\n target[name](...args);\n\n // Update the API method metadata, so that the next API calls will not try to\n // use the unsupported callback anymore.\n metadata.fallbackToNoCallback = false;\n metadata.noCallback = true;\n\n resolve();\n }\n } else if (metadata.noCallback) {\n target[name](...args);\n resolve();\n } else {\n target[name](...args, makeCallback({resolve, reject}, metadata));\n }\n });\n };\n };\n\n /**\n * Wraps an existing method of the target object, so that calls to it are\n * intercepted by the given wrapper function. The wrapper function receives,\n * as its first argument, the original `target` object, followed by each of\n * the arguments passed to the original method.\n *\n * @param {object} target\n * The original target object that the wrapped method belongs to.\n * @param {function} method\n * The method being wrapped. This is used as the target of the Proxy\n * object which is created to wrap the method.\n * @param {function} wrapper\n * The wrapper function which is called in place of a direct invocation\n * of the wrapped method.\n *\n * @returns {Proxy}\n * A Proxy object for the given method, which invokes the given wrapper\n * method in its place.\n */\n const wrapMethod = (target, method, wrapper) => {\n return new Proxy(method, {\n apply(targetMethod, thisObj, args) {\n return wrapper.call(thisObj, target, ...args);\n },\n });\n };\n\n let hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n\n /**\n * Wraps an object in a Proxy which intercepts and wraps certain methods\n * based on the given `wrappers` and `metadata` objects.\n *\n * @param {object} target\n * The target object to wrap.\n *\n * @param {object} [wrappers = {}]\n * An object tree containing wrapper functions for special cases. Any\n * function present in this object tree is called in place of the\n * method in the same location in the `target` object tree. These\n * wrapper methods are invoked as described in {@see wrapMethod}.\n *\n * @param {object} [metadata = {}]\n * An object tree containing metadata used to automatically generate\n * Promise-based wrapper functions for asynchronous. Any function in\n * the `target` object tree which has a corresponding metadata object\n * in the same location in the `metadata` tree is replaced with an\n * automatically-generated wrapper function, as described in\n * {@see wrapAsyncFunction}\n *\n * @returns {Proxy}\n */\n const wrapObject = (target, wrappers = {}, metadata = {}) => {\n let cache = Object.create(null);\n let handlers = {\n has(proxyTarget, prop) {\n return prop in target || prop in cache;\n },\n\n get(proxyTarget, prop, receiver) {\n if (prop in cache) {\n return cache[prop];\n }\n\n if (!(prop in target)) {\n return undefined;\n }\n\n let value = target[prop];\n\n if (typeof value === \"function\") {\n // This is a method on the underlying object. Check if we need to do\n // any wrapping.\n\n if (typeof wrappers[prop] === \"function\") {\n // We have a special-case wrapper for this method.\n value = wrapMethod(target, target[prop], wrappers[prop]);\n } else if (hasOwnProperty(metadata, prop)) {\n // This is an async method that we have metadata for. Create a\n // Promise wrapper for it.\n let wrapper = wrapAsyncFunction(prop, metadata[prop]);\n value = wrapMethod(target, target[prop], wrapper);\n } else {\n // This is a method that we don't know or care about. Return the\n // original method, bound to the underlying object.\n value = value.bind(target);\n }\n } else if (typeof value === \"object\" && value !== null &&\n (hasOwnProperty(wrappers, prop) ||\n hasOwnProperty(metadata, prop))) {\n // This is an object that we need to do some wrapping for the children\n // of. Create a sub-object wrapper for it with the appropriate child\n // metadata.\n value = wrapObject(value, wrappers[prop], metadata[prop]);\n } else if (hasOwnProperty(metadata, \"*\")) {\n // Wrap all properties in * namespace.\n value = wrapObject(value, wrappers[prop], metadata[\"*\"]);\n } else {\n // We don't need to do any wrapping for this property,\n // so just forward all access to the underlying object.\n Object.defineProperty(cache, prop, {\n configurable: true,\n enumerable: true,\n get() {\n return target[prop];\n },\n set(value) {\n target[prop] = value;\n },\n });\n\n return value;\n }\n\n cache[prop] = value;\n return value;\n },\n\n set(proxyTarget, prop, value, receiver) {\n if (prop in cache) {\n cache[prop] = value;\n } else {\n target[prop] = value;\n }\n return true;\n },\n\n defineProperty(proxyTarget, prop, desc) {\n return Reflect.defineProperty(cache, prop, desc);\n },\n\n deleteProperty(proxyTarget, prop) {\n return Reflect.deleteProperty(cache, prop);\n },\n };\n\n // Per contract of the Proxy API, the \"get\" proxy handler must return the\n // original value of the target if that value is declared read-only and\n // non-configurable. For this reason, we create an object with the\n // prototype set to `target` instead of using `target` directly.\n // Otherwise we cannot return a custom object for APIs that\n // are declared read-only and non-configurable, such as `chrome.devtools`.\n //\n // The proxy handlers themselves will still use the original `target`\n // instead of the `proxyTarget`, so that the methods and properties are\n // dereferenced via the original targets.\n let proxyTarget = Object.create(target);\n return new Proxy(proxyTarget, handlers);\n };\n\n /**\n * Creates a set of wrapper functions for an event object, which handles\n * wrapping of listener functions that those messages are passed.\n *\n * A single wrapper is created for each listener function, and stored in a\n * map. Subsequent calls to `addListener`, `hasListener`, or `removeListener`\n * retrieve the original wrapper, so that attempts to remove a\n * previously-added listener work as expected.\n *\n * @param {DefaultWeakMap} wrapperMap\n * A DefaultWeakMap object which will create the appropriate wrapper\n * for a given listener function when one does not exist, and retrieve\n * an existing one when it does.\n *\n * @returns {object}\n */\n const wrapEvent = wrapperMap => ({\n addListener(target, listener, ...args) {\n target.addListener(wrapperMap.get(listener), ...args);\n },\n\n hasListener(target, listener) {\n return target.hasListener(wrapperMap.get(listener));\n },\n\n removeListener(target, listener) {\n target.removeListener(wrapperMap.get(listener));\n },\n });\n\n const onRequestFinishedWrappers = new DefaultWeakMap(listener => {\n if (typeof listener !== \"function\") {\n return listener;\n }\n\n /**\n * Wraps an onRequestFinished listener function so that it will return a\n * `getContent()` property which returns a `Promise` rather than using a\n * callback API.\n *\n * @param {object} req\n * The HAR entry object representing the network request.\n */\n return function onRequestFinished(req) {\n const wrappedReq = wrapObject(req, {} /* wrappers */, {\n getContent: {\n minArgs: 0,\n maxArgs: 0,\n },\n });\n listener(wrappedReq);\n };\n });\n\n const onMessageWrappers = new DefaultWeakMap(listener => {\n if (typeof listener !== \"function\") {\n return listener;\n }\n\n /**\n * Wraps a message listener function so that it may send responses based on\n * its return value, rather than by returning a sentinel value and calling a\n * callback. If the listener function returns a Promise, the response is\n * sent when the promise either resolves or rejects.\n *\n * @param {*} message\n * The message sent by the other end of the channel.\n * @param {object} sender\n * Details about the sender of the message.\n * @param {function(*)} sendResponse\n * A callback which, when called with an arbitrary argument, sends\n * that value as a response.\n * @returns {boolean}\n * True if the wrapped listener returned a Promise, which will later\n * yield a response. False otherwise.\n */\n return function onMessage(message, sender, sendResponse) {\n let didCallSendResponse = false;\n\n let wrappedSendResponse;\n let sendResponsePromise = new Promise(resolve => {\n wrappedSendResponse = function(response) {\n didCallSendResponse = true;\n resolve(response);\n };\n });\n\n let result;\n try {\n result = listener(message, sender, wrappedSendResponse);\n } catch (err) {\n result = Promise.reject(err);\n }\n\n const isResultThenable = result !== true && isThenable(result);\n\n // If the listener didn't returned true or a Promise, or called\n // wrappedSendResponse synchronously, we can exit earlier\n // because there will be no response sent from this listener.\n if (result !== true && !isResultThenable && !didCallSendResponse) {\n return false;\n }\n\n // A small helper to send the message if the promise resolves\n // and an error if the promise rejects (a wrapped sendMessage has\n // to translate the message into a resolved promise or a rejected\n // promise).\n const sendPromisedResult = (promise) => {\n promise.then(msg => {\n // send the message value.\n sendResponse(msg);\n }, error => {\n // Send a JSON representation of the error if the rejected value\n // is an instance of error, or the object itself otherwise.\n let message;\n if (error && (error instanceof Error ||\n typeof error.message === \"string\")) {\n message = error.message;\n } else {\n message = \"An unexpected error occurred\";\n }\n\n sendResponse({\n __mozWebExtensionPolyfillReject__: true,\n message,\n });\n }).catch(err => {\n // Print an error on the console if unable to send the response.\n console.error(\"Failed to send onMessage rejected reply\", err);\n });\n };\n\n // If the listener returned a Promise, send the resolved value as a\n // result, otherwise wait the promise related to the wrappedSendResponse\n // callback to resolve and send it as a response.\n if (isResultThenable) {\n sendPromisedResult(result);\n } else {\n sendPromisedResult(sendResponsePromise);\n }\n\n // Let Chrome know that the listener is replying.\n return true;\n };\n });\n\n const wrappedSendMessageCallback = ({reject, resolve}, reply) => {\n if (extensionAPIs.runtime.lastError) {\n // Detect when none of the listeners replied to the sendMessage call and resolve\n // the promise to undefined as in Firefox.\n // See https://github.com/mozilla/webextension-polyfill/issues/130\n if (extensionAPIs.runtime.lastError.message === CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE) {\n resolve();\n } else {\n reject(new Error(extensionAPIs.runtime.lastError.message));\n }\n } else if (reply && reply.__mozWebExtensionPolyfillReject__) {\n // Convert back the JSON representation of the error into\n // an Error instance.\n reject(new Error(reply.message));\n } else {\n resolve(reply);\n }\n };\n\n const wrappedSendMessage = (name, metadata, apiNamespaceObj, ...args) => {\n if (args.length < metadata.minArgs) {\n throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`);\n }\n\n if (args.length > metadata.maxArgs) {\n throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`);\n }\n\n return new Promise((resolve, reject) => {\n const wrappedCb = wrappedSendMessageCallback.bind(null, {resolve, reject});\n args.push(wrappedCb);\n apiNamespaceObj.sendMessage(...args);\n });\n };\n\n const staticWrappers = {\n devtools: {\n network: {\n onRequestFinished: wrapEvent(onRequestFinishedWrappers),\n },\n },\n runtime: {\n onMessage: wrapEvent(onMessageWrappers),\n onMessageExternal: wrapEvent(onMessageWrappers),\n sendMessage: wrappedSendMessage.bind(null, \"sendMessage\", {minArgs: 1, maxArgs: 3}),\n },\n tabs: {\n sendMessage: wrappedSendMessage.bind(null, \"sendMessage\", {minArgs: 2, maxArgs: 3}),\n },\n };\n const settingMetadata = {\n clear: {minArgs: 1, maxArgs: 1},\n get: {minArgs: 1, maxArgs: 1},\n set: {minArgs: 1, maxArgs: 1},\n };\n apiMetadata.privacy = {\n network: {\"*\": settingMetadata},\n services: {\"*\": settingMetadata},\n websites: {\"*\": settingMetadata},\n };\n\n return wrapObject(extensionAPIs, staticWrappers, apiMetadata);\n };\n\n // The build process adds a UMD wrapper around this file, which makes the\n // `module` variable available.\n module.exports = wrapAPIs(chrome);\n} else {\n module.exports = globalThis.browser;\n}\n", "/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n", "/** @license React v16.11.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var h=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113;n&&Symbol.for(\"react.suspense_list\");\nvar z=n?Symbol.for(\"react.memo\"):60115,aa=n?Symbol.for(\"react.lazy\"):60116;n&&Symbol.for(\"react.fundamental\");n&&Symbol.for(\"react.responder\");n&&Symbol.for(\"react.scope\");var A=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction B(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cP.length&&P.push(a)}\nfunction S(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+T(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var l=0;l=H};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125L(n,c))void 0!==r&&0>L(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>L(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function L(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var O=[],P=[],Q=1,R=null,S=3,T=!1,U=!1,V=!1;\nfunction W(a){for(var b=M(P);null!==b;){if(null===b.callback)N(P);else if(b.startTime<=a)N(P),b.sortIndex=b.expirationTime,K(O,b);else break;b=M(P)}}function X(a){V=!1;W(a);if(!U)if(null!==M(O))U=!0,f(Y);else{var b=M(P);null!==b&&g(X,b.startTime-a)}}\nfunction Y(a,b){U=!1;V&&(V=!1,h());T=!0;var c=S;try{W(b);for(R=M(O);null!==R&&(!(R.expirationTime>b)||a&&!k());){var d=R.callback;if(null!==d){R.callback=null;S=R.priorityLevel;var e=d(R.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?R.callback=e:R===M(O)&&N(O);W(b)}else N(O);R=M(O)}if(null!==R)var m=!0;else{var n=M(P);null!==n&&g(X,n.startTime-b);m=!1}return m}finally{R=null,S=c,T=!1}}\nfunction Z(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var aa=l;exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=S;S=a;try{return b()}finally{S=c}};\nexports.unstable_next=function(a){switch(S){case 1:case 2:case 3:var b=3;break;default:b=S}var c=S;S=b;try{return a()}finally{S=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,K(P,a),null===M(O)&&a===M(P)&&(V?h():V=!0,g(X,e-d))):(a.sortIndex=c,K(O,a),U||T||(U=!0,f(Y)));return a};exports.unstable_cancelCallback=function(a){a.callback=null};\nexports.unstable_wrapCallback=function(a){var b=S;return function(){var c=S;S=b;try{return a.apply(this,arguments)}finally{S=c}}};exports.unstable_getCurrentPriorityLevel=function(){return S};exports.unstable_shouldYield=function(){var a=exports.unstable_now();W(a);var b=M(O);return b!==R&&null!==R&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTimeb}return!1}function B(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1)});var sb=/[\\-:]([a-z])/g;function tb(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(sb,\ntb);D[b]=new B(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0)});function ub(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}\nfunction vb(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2=b.length))throw Error(u(93));b=b[0]}c=b}null==c&&(c=\"\")}a._wrapperState={initialValue:ub(c)}}\nfunction Mb(a,b){var c=ub(b.value),d=ub(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Nb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Ob={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Pb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Qb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Pb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Rb,Sb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Ob.svg||\"innerHTML\"in a)a.innerHTML=b;else{Rb=Rb||document.createElement(\"div\");Rb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Rb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Tb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Ub(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Vb={animationend:Ub(\"Animation\",\"AnimationEnd\"),animationiteration:Ub(\"Animation\",\"AnimationIteration\"),animationstart:Ub(\"Animation\",\"AnimationStart\"),transitionend:Ub(\"Transition\",\"TransitionEnd\")},Wb={},Xb={};\nYa&&(Xb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Vb.animationend.animation,delete Vb.animationiteration.animation,delete Vb.animationstart.animation),\"TransitionEvent\"in window||delete Vb.transitionend.transition);function Yb(a){if(Wb[a])return Wb[a];if(!Vb[a])return a;var b=Vb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Xb)return Wb[a]=b[c];return a}var Zb=Yb(\"animationend\"),$b=Yb(\"animationiteration\"),ac=Yb(\"animationstart\"),bc=Yb(\"transitionend\"),dc=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \");\nfunction ec(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function fc(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function gc(a){if(ec(a)!==a)throw Error(u(188));}\nfunction hc(a){var b=a.alternate;if(!b){b=ec(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return gc(e),a;if(f===d)return gc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function ic(a){a=hc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nvar jc,kc,lc,mc=!1,nc=[],oc=null,pc=null,qc=null,rc=new Map,sc=new Map,tc=[],uc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),vc=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction wc(a){var b=xc(a);uc.forEach(function(c){yc(c,a,b)});vc.forEach(function(c){yc(c,a,b)})}function zc(a,b,c,d){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:d}}function Ac(a,b){switch(a){case \"focus\":case \"blur\":oc=null;break;case \"dragenter\":case \"dragleave\":pc=null;break;case \"mouseover\":case \"mouseout\":qc=null;break;case \"pointerover\":case \"pointerout\":rc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":sc.delete(b.pointerId)}}\nfunction Bc(a,b,c,d,e){if(null===a||a.nativeEvent!==e)return a=zc(b,c,d,e),null!==b&&(b=Cc(b),null!==b&&kc(b)),a;a.eventSystemFlags|=d;return a}function Dc(a,b,c,d){switch(b){case \"focus\":return oc=Bc(oc,a,b,c,d),!0;case \"dragenter\":return pc=Bc(pc,a,b,c,d),!0;case \"mouseover\":return qc=Bc(qc,a,b,c,d),!0;case \"pointerover\":var e=d.pointerId;rc.set(e,Bc(rc.get(e)||null,a,b,c,d));return!0;case \"gotpointercapture\":return e=d.pointerId,sc.set(e,Bc(sc.get(e)||null,a,b,c,d)),!0}return!1}\nfunction Ec(a){var b=Fc(a.target);if(null!==b){var c=ec(b);if(null!==c)if(b=c.tag,13===b){if(b=fc(c),null!==b){a.blockedOn=b;q.unstable_runWithPriority(a.priority,function(){lc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Gc(a){if(null!==a.blockedOn)return!1;var b=Hc(a.topLevelType,a.eventSystemFlags,a.nativeEvent);if(null!==b){var c=Cc(b);null!==c&&kc(c);a.blockedOn=b;return!1}return!0}\nfunction Ic(a,b,c){Gc(a)&&c.delete(b)}function Jc(){for(mc=!1;0this.eventPool.length&&this.eventPool.push(a)}function Vc(a){a.eventPool=[];a.getPooled=Wc;a.release=Xc}var Yc=E.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Zc=E.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),$c=E.extend({view:null,detail:null}),ad=$c.extend({relatedTarget:null});\nfunction bd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar cd={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},ed={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},fd={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function gd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=fd[a])?!!b[a]:!1}function hd(){return gd}\nvar id=$c.extend({key:function(a){if(a.key){var b=cd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=bd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?ed[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:hd,charCode:function(a){return\"keypress\"===a.type?bd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?bd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),jd=0,kd=0,ld=!1,md=!1,nd=$c.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:hd,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=jd;jd=a.screenX;return ld?\"mousemove\"===a.type?a.screenX-\nb:0:(ld=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;var b=kd;kd=a.screenY;return md?\"mousemove\"===a.type?a.screenY-b:0:(md=!0,0)}}),od=nd.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),pd=nd.extend({dataTransfer:null}),qd=$c.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:hd}),rd=E.extend({propertyName:null,\nelapsedTime:null,pseudoElement:null}),sd=nd.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),td=[[\"blur\",\"blur\",0],[\"cancel\",\"cancel\",0],[\"click\",\"click\",0],[\"close\",\"close\",0],[\"contextmenu\",\"contextMenu\",0],[\"copy\",\"copy\",0],[\"cut\",\"cut\",0],[\"auxclick\",\"auxClick\",0],[\"dblclick\",\"doubleClick\",0],[\"dragend\",\"dragEnd\",\n0],[\"dragstart\",\"dragStart\",0],[\"drop\",\"drop\",0],[\"focus\",\"focus\",0],[\"input\",\"input\",0],[\"invalid\",\"invalid\",0],[\"keydown\",\"keyDown\",0],[\"keypress\",\"keyPress\",0],[\"keyup\",\"keyUp\",0],[\"mousedown\",\"mouseDown\",0],[\"mouseup\",\"mouseUp\",0],[\"paste\",\"paste\",0],[\"pause\",\"pause\",0],[\"play\",\"play\",0],[\"pointercancel\",\"pointerCancel\",0],[\"pointerdown\",\"pointerDown\",0],[\"pointerup\",\"pointerUp\",0],[\"ratechange\",\"rateChange\",0],[\"reset\",\"reset\",0],[\"seeked\",\"seeked\",0],[\"submit\",\"submit\",0],[\"touchcancel\",\"touchCancel\",\n0],[\"touchend\",\"touchEnd\",0],[\"touchstart\",\"touchStart\",0],[\"volumechange\",\"volumeChange\",0],[\"drag\",\"drag\",1],[\"dragenter\",\"dragEnter\",1],[\"dragexit\",\"dragExit\",1],[\"dragleave\",\"dragLeave\",1],[\"dragover\",\"dragOver\",1],[\"mousemove\",\"mouseMove\",1],[\"mouseout\",\"mouseOut\",1],[\"mouseover\",\"mouseOver\",1],[\"pointermove\",\"pointerMove\",1],[\"pointerout\",\"pointerOut\",1],[\"pointerover\",\"pointerOver\",1],[\"scroll\",\"scroll\",1],[\"toggle\",\"toggle\",1],[\"touchmove\",\"touchMove\",1],[\"wheel\",\"wheel\",1],[\"abort\",\"abort\",\n2],[Zb,\"animationEnd\",2],[$b,\"animationIteration\",2],[ac,\"animationStart\",2],[\"canplay\",\"canPlay\",2],[\"canplaythrough\",\"canPlayThrough\",2],[\"durationchange\",\"durationChange\",2],[\"emptied\",\"emptied\",2],[\"encrypted\",\"encrypted\",2],[\"ended\",\"ended\",2],[\"error\",\"error\",2],[\"gotpointercapture\",\"gotPointerCapture\",2],[\"load\",\"load\",2],[\"loadeddata\",\"loadedData\",2],[\"loadedmetadata\",\"loadedMetadata\",2],[\"loadstart\",\"loadStart\",2],[\"lostpointercapture\",\"lostPointerCapture\",2],[\"playing\",\"playing\",2],[\"progress\",\n\"progress\",2],[\"seeking\",\"seeking\",2],[\"stalled\",\"stalled\",2],[\"suspend\",\"suspend\",2],[\"timeupdate\",\"timeUpdate\",2],[bc,\"transitionEnd\",2],[\"waiting\",\"waiting\",2]],ud={},vd={},xd=0;for(;xd=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ce(c)}}\nfunction ee(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?ee(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function fe(){for(var a=window,b=be();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=be(a.document)}return b}\nfunction ge(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var he=\"$\",ie=\"/$\",je=\"$?\",ke=\"$!\",le=null,me=null;function ne(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction oe(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var pe=\"function\"===typeof setTimeout?setTimeout:void 0,qe=\"function\"===typeof clearTimeout?clearTimeout:void 0;function re(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction se(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===he||c===ke||c===je){if(0===b)return a;b--}else c===ie&&b++}a=a.previousSibling}return null}var te=Math.random().toString(36).slice(2),ue=\"__reactInternalInstance$\"+te,ve=\"__reactEventHandlers$\"+te,we=\"__reactContainere$\"+te;\nfunction Fc(a){var b=a[ue];if(b)return b;for(var c=a.parentNode;c;){if(b=c[we]||c[ue]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=se(a);null!==a;){if(c=a[ue])return c;a=se(a)}return b}a=c;c=a.parentNode}return null}function Cc(a){a=a[ue]||a[we];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function xe(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function ye(a){return a[ve]||null}var ze=null,Ae=null,Be=null;\nfunction Ce(){if(Be)return Be;var a,b=Ae,c=b.length,d,e=\"value\"in ze?ze.value:ze.textContent,f=e.length;for(a=0;a=He),Ke=String.fromCharCode(32),Le={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},Me=!1;\nfunction Ne(a,b){switch(a){case \"keyup\":return-1!==Fe.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function Oe(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var Pe=!1;function Qe(a,b){switch(a){case \"compositionend\":return Oe(b);case \"keypress\":if(32!==b.which)return null;Me=!0;return Ke;case \"textInput\":return a=b.data,a===Ke&&Me?null:a;default:return null}}\nfunction Re(a,b){if(Pe)return\"compositionend\"===a||!Ge&&Ne(a,b)?(a=Ce(),Be=Ae=ze=null,Pe=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,sf={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},tf=null,uf=null,vf=null,wf=!1;\nfunction xf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(wf||null==tf||tf!==be(c))return null;c=tf;\"selectionStart\"in c&&ge(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return vf&&qf(vf,c)?null:(vf=c,a=E.getPooled(sf.select,uf,a,b),a.type=\"select\",a.target=tf,Sc(a),a)}\nvar yf={eventTypes:sf,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=xc(e);f=ja.onSelect;for(var g=0;gBf||(a.current=Af[Bf],Af[Bf]=null,Bf--)}\nfunction I(a,b){Bf++;Af[Bf]=a.current;a.current=b}var Cf={},J={current:Cf},K={current:!1},Df=Cf;function Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Ff(a){G(K,a);G(J,a)}function Gf(a){G(K,a);G(J,a)}function Hf(a,b,c){if(J.current!==Cf)throw Error(u(168));I(J,b,a);I(K,c,a)}function If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,Wa(b)||\"Unknown\",e));return n({},c,{},d)}function Jf(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Cf;Df=J.current;I(J,b,a);I(K,K.current,a);return!0}\nfunction Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(b=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=b,G(K,a),G(J,a),I(J,b,a)):G(K,a);I(K,c,a)}\nvar Lf=q.unstable_runWithPriority,Mf=q.unstable_scheduleCallback,Nf=q.unstable_cancelCallback,Of=q.unstable_shouldYield,Pf=q.unstable_requestPaint,Qf=q.unstable_now,Rf=q.unstable_getCurrentPriorityLevel,Sf=q.unstable_ImmediatePriority,Tf=q.unstable_UserBlockingPriority,Uf=q.unstable_NormalPriority,Vf=q.unstable_LowPriority,Wf=q.unstable_IdlePriority,Xf={},Yf=void 0!==Pf?Pf:function(){},Zf=null,$f=null,ag=!1,bg=Qf(),cg=1E4>bg?Qf:function(){return Qf()-bg};\nfunction dg(){switch(Rf()){case Sf:return 99;case Tf:return 98;case Uf:return 97;case Vf:return 96;case Wf:return 95;default:throw Error(u(332));}}function eg(a){switch(a){case 99:return Sf;case 98:return Tf;case 97:return Uf;case 96:return Vf;case 95:return Wf;default:throw Error(u(332));}}function fg(a,b){a=eg(a);return Lf(a,b)}function gg(a,b,c){a=eg(a);return Mf(a,b,c)}function hg(a){null===Zf?(Zf=[a],$f=Mf(Sf,ig)):Zf.push(a);return Xf}function jg(){if(null!==$f){var a=$f;$f=null;Nf(a)}ig()}\nfunction ig(){if(!ag&&null!==Zf){ag=!0;var a=0;try{var b=Zf;fg(99,function(){for(;a=b&&(wg=!0),a.firstContext=null)}function xg(a,b){if(qg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)qg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===pg){if(null===og)throw Error(u(308));pg=b;og.dependencies={expirationTime:0,firstContext:b,responders:null}}else pg=pg.next=b}return a._currentValue}var yg=!1;\nfunction zg(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ag(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction Bg(a,b){return{expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Cg(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction Dg(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=zg(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=zg(a.memoizedState),e=c.updateQueue=zg(c.memoizedState)):d=a.updateQueue=Ag(e):null===e&&(e=c.updateQueue=Ag(d));null===e||d===e?Cg(d,b):null===d.lastUpdate||null===e.lastUpdate?(Cg(d,b),Cg(e,b)):(Cg(d,b),e.lastUpdate=b)}\nfunction Eg(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=zg(a.memoizedState):Fg(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function Fg(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=Ag(b));return b}\nfunction Gg(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-4097|64;case 0:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:yg=!0}return d}\nfunction Hg(a,b,c,d,e){yg=!1;b=Fg(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;mx?(A=r,r=null):A=r.sibling;var p=y(e,r,h[x],k);if(null===p){null===r&&(r=A);break}a&&\nr&&null===p.alternate&&b(e,r);g=f(p,g,x);null===m?l=p:m.sibling=p;m=p;r=A}if(x===h.length)return c(e,r),l;if(null===r){for(;xx?(A=r,r=null):A=r.sibling;var z=y(e,r,p.value,k);if(null===z){null===r&&(r=A);break}a&&r&&null===z.alternate&&b(e,r);g=f(z,g,x);null===m?l=z:m.sibling=z;m=z;r=A}if(p.done)return c(e,r),l;if(null===r){for(;!p.done;x++,p=h.next())p=C(e,p.value,k),null!==p&&(g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);return l}for(r=d(e,r);!p.done;x++,p=h.next())p=H(r,e,x,p.value,k),null!==p&&(a&&null!==\np.alternate&&r.delete(null===p.key?x:p.key),g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);a&&r.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===Ia&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Ga:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===Ia:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===Ia?f.props.children:f.props,h);d.ref=Yg(a,k,f);d.return=a;a=d;break a}else{c(a,\nk);break}else b(a,k);k=k.sibling}f.type===Ia?(d=eh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=ch(f.type,f.key,f.props,null,a.mode,h),h.ref=Yg(a,d,f),h.return=a,a=h)}return g(a);case Ha:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=dh(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===\ntypeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=bh(f,a.mode,h),d.return=a,a=d),g(a);if(Xg(f))return z(a,d,f,h);if(Ua(f))return ta(a,d,f,h);l&&Zg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var fh=$g(!0),gh=$g(!1),hh={},ih={current:hh},jh={current:hh},kh={current:hh};function lh(a){if(a===hh)throw Error(u(174));return a}\nfunction mh(a,b){I(kh,b,a);I(jh,a,a);I(ih,hh,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Qb(null,\"\");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=Qb(b,c)}G(ih,a);I(ih,b,a)}function nh(a){G(ih,a);G(jh,a);G(kh,a)}function oh(a){lh(kh.current);var b=lh(ih.current);var c=Qb(b,a.type);b!==c&&(I(jh,a,a),I(ih,c,a))}function ph(a){jh.current===a&&(G(ih,a),G(jh,a))}var M={current:0};\nfunction qh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===je||c.data===ke))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function rh(a,b){return{responder:a,props:b}}\nvar sh=Ea.ReactCurrentDispatcher,N=Ea.ReactCurrentBatchConfig,th=0,uh=null,O=null,vh=null,wh=null,P=null,xh=null,yh=0,zh=null,Ah=0,Bh=!1,Ch=null,Gh=0;function Q(){throw Error(u(321));}function Hh(a,b){if(null===b)return!1;for(var c=0;cyh&&(yh=m,Jg(yh))):(Ig(m,k.suspenseConfig),f=k.eagerReducer===a?k.eagerState:a(f,k.action));g=k;k=k.next}while(null!==k&&k!==d);l||(h=g,e=f);of(f,b.memoizedState)||(wg=!0);b.memoizedState=f;b.baseUpdate=h;b.baseState=e;c.lastRenderedState=f}return[b.memoizedState,c.dispatch]}\nfunction Rh(a){var b=Nh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={last:null,dispatch:null,lastRenderedReducer:Ph,lastRenderedState:a};a=a.dispatch=Sh.bind(null,uh,a);return[b.memoizedState,a]}function Th(a){return Qh(Ph,a)}function Uh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};null===zh?(zh={lastEffect:null},zh.lastEffect=a.next=a):(b=zh.lastEffect,null===b?zh.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,zh.lastEffect=a));return a}\nfunction Vh(a,b,c,d){var e=Nh();Ah|=a;e.memoizedState=Uh(b,c,void 0,void 0===d?null:d)}function Wh(a,b,c,d){var e=Oh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Hh(d,g.deps)){Uh(0,c,f,d);return}}Ah|=a;e.memoizedState=Uh(b,c,f,d)}function Xh(a,b){return Vh(516,192,a,b)}function Yh(a,b){return Wh(516,192,a,b)}\nfunction Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function $h(){}function ai(a,b){Nh().memoizedState=[a,void 0===b?null:b];return a}function bi(a,b){var c=Oh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Sh(a,b,c){if(!(25>Gh))throw Error(u(301));var d=a.alternate;if(a===uh||null!==d&&d===uh)if(Bh=!0,a={expirationTime:th,suspenseConfig:null,action:c,eagerReducer:null,eagerState:null,next:null},null===Ch&&(Ch=new Map),c=Ch.get(b),void 0===c)Ch.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{var e=Pg(),f=Mg.suspense;e=Qg(e,a,f);f={expirationTime:e,suspenseConfig:f,action:c,eagerReducer:null,eagerState:null,next:null};var g=b.last;if(null===g)f.next=f;else{var h=g.next;null!==h&&\n(f.next=h);g.next=f}b.last=f;if(0===a.expirationTime&&(null===d||0===d.expirationTime)&&(d=b.lastRenderedReducer,null!==d))try{var k=b.lastRenderedState,l=d(k,c);f.eagerReducer=d;f.eagerState=l;if(of(l,k))return}catch(m){}finally{}Rg(a,e)}}\nvar Lh={readContext:xg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},Jh={readContext:xg,useCallback:ai,useContext:xg,useEffect:Xh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Vh(4,36,a,b)},useMemo:function(a,b){var c=Nh();b=void 0===b?null:b;a=a();c.memoizedState=\n[a,b];return a},useReducer:function(a,b,c){var d=Nh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={last:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Sh.bind(null,uh,a);return[d.memoizedState,a]},useRef:function(a){var b=Nh();a={current:a};return b.memoizedState=a},useState:Rh,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Rh(a),d=c[0],e=c[1];Xh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=\nc}})},[a,b]);return d},useTransition:function(a){var b=Rh(!1),c=b[0],d=b[1];return[ai(function(b){d(!0);q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},Kh={readContext:xg,useCallback:bi,useContext:xg,useEffect:Yh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Wh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Wh(4,36,a,b)},useMemo:function(a,b){var c=Oh();b=void 0===b?\nnull:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a},useReducer:Qh,useRef:function(){return Oh().memoizedState},useState:Th,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Th(a),d=c[0],e=c[1];Yh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=c}})},[a,b]);return d},useTransition:function(a){var b=Th(!1),c=b[0],d=b[1];return[bi(function(b){d(!0);q.unstable_next(function(){var c=\nN.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},ci=null,di=null,ei=!1;function fi(a,b){var c=gi(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction hi(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ii(a){if(ei){var b=di;if(b){var c=b;if(!hi(a,b)){b=re(c.nextSibling);if(!b||!hi(a,b)){a.effectTag=a.effectTag&-1025|2;ei=!1;ci=a;return}fi(ci,c)}ci=a;di=re(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,ei=!1,ci=a}}function ji(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;ci=a}\nfunction ki(a){if(a!==ci)return!1;if(!ei)return ji(a),ei=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!oe(b,a.memoizedProps))for(b=di;b;)fi(a,b),b=re(b.nextSibling);ji(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===ie){if(0===b){di=re(a.nextSibling);break a}b--}else c!==he&&c!==ke&&c!==je||b++}a=a.nextSibling}di=null}}else di=ci?re(a.stateNode.nextSibling):null;return!0}\nfunction li(){di=ci=null;ei=!1}var mi=Ea.ReactCurrentOwner,wg=!1;function R(a,b,c,d){b.child=null===a?gh(b,null,c,d):fh(b,a.child,c,d)}function ni(a,b,c,d,e){c=c.render;var f=b.ref;vg(b,e);d=Ih(a,b,c,d,f,e);if(null!==a&&!wg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),oi(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction pi(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!qi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ri(a,b,g,d,e,f);a=ch(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(eb)&&Gj.set(a,b)))}}\nfunction Kj(a,b){a.expirationTimea?b:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=hg(Lj.bind(null,a));else{var b=Oj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Pg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Xf&&Nf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?hg(Lj.bind(null,a)):gg(d,Qj.bind(null,a),{timeout:10*(1073741821-b)-cg()});a.callbackNode=b}}}\nfunction Qj(a,b){Jj=0;if(b)return b=Pg(),Rj(a,b),Z(a),null;var c=Oj(a);if(0!==c){b=a.callbackNode;if((T&(oj|pj))!==S)throw Error(u(327));Sj();a===U&&c===W||Tj(a,c);if(null!==V){var d=T;T|=oj;var e=Uj(a);do try{Vj();break}catch(h){Wj(a,h)}while(1);rg();T=d;lj.current=e;if(X===rj)throw b=wj,Tj(a,c),Mj(a,c),Z(a),b;if(null===V)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=X,U=null,d){case qj:case rj:throw Error(u(345));case sj:Rj(a,2=c){a.lastPingedTime=c;Tj(a,c);break}}f=Oj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=pe(Yj.bind(null,a),e);break}Yj(a);break;case uj:Mj(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Xj(e));if(Bj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Tj(a,c);break}e=Oj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==yj?d=10*(1073741821-yj)-cg():1073741823===xj?d=0:(d=10*(1073741821-xj)-5E3,e=cg(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*kj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=cg()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+Xa(e))}X!==vj&&(X=sj);f=Ni(f,e);k=d;do{switch(k.tag){case 3:g=f;k.effectTag|=4096;k.expirationTime=b;var x=fj(k,g,b);Eg(k,x);break a;case 1:g=f;var A=k.type,p=k.stateNode;if(0===(k.effectTag&64)&&(\"function\"===typeof A.getDerivedStateFromError||null!==p&&\"function\"===typeof p.componentDidCatch&&\n(null===jj||!jj.has(p)))){k.effectTag|=4096;k.expirationTime=b;var t=ij(k,g,b);Eg(k,t);break a}}k=k.return}while(null!==k)}V=ek(V)}catch(v){b=v;continue}break}while(1)}function Uj(){var a=lj.current;lj.current=Lh;return null===a?Lh:a}function Ig(a,b){aAj&&(Aj=a)}function Zj(){for(;null!==V;)V=fk(V)}function Vj(){for(;null!==V&&!Of();)V=fk(V)}\nfunction fk(a){var b=gk(a.alternate,a,W);a.memoizedProps=a.pendingProps;null===b&&(b=ek(a));mj.current=null;return b}\nfunction ek(a){V=a;do{var b=V.alternate;a=V.return;if(0===(V.effectTag&2048)){a:{var c=b;b=V;var d=W;var e=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:L(b.type)&&Ff(b);break;case 3:nh(b);Gf(b);e=b.stateNode;e.pendingContext&&(e.context=e.pendingContext,e.pendingContext=null);(null===c||null===c.child)&&ki(b)&&Ci(b);Ii(b);break;case 5:ph(b);d=lh(kh.current);var f=b.type;if(null!==c&&null!=b.stateNode)Ji(c,b,f,e,d),c.ref!==b.ref&&(b.effectTag|=128);else if(e){var g=\nlh(ih.current);if(ki(b)){e=b;var h=e.stateNode;c=e.type;var k=e.memoizedProps,l=d;h[ue]=e;h[ve]=k;f=void 0;d=h;switch(c){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(h=0;h\\x3c/script>\",h=k.removeChild(k.firstChild)):\"string\"===typeof k.is?h=h.createElement(l,{is:k.is}):(h=h.createElement(l),\"select\"===l&&(l=h,k.multiple?l.multiple=!0:k.size&&(l.size=k.size))):h=h.createElementNS(g,l);k=h;k[ue]=c;k[ve]=e;Hi(k,b,!1,!1);b.stateNode=k;l=f;c=e;var m=d,C=Zd(l,c);switch(l){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\nk);d=c;break;case \"video\":case \"audio\":for(d=0;de.tailExpiration&&1f&&(f=c),k>f&&(f=k),d=d.sibling;e.childExpirationTime=f}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=V.firstEffect),null!==V.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=V.firstEffect),\na.lastEffect=V.lastEffect),1a?b:a}function Yj(a){var b=dg();fg(99,ik.bind(null,a,b));return null}\nfunction ik(a,b){Sj();if((T&(oj|pj))!==S)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Xj(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=d-1);d<=a.lastPingedTime&&\n(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===U&&(V=U=null,W=0);1h&&(l=h,h=g,g=l),l=de(p,g),m=de(p,h),l&&m&&(1!==v.rangeCount||v.anchorNode!==l.node||v.anchorOffset!==l.offset||v.focusNode!==m.node||v.focusOffset!==m.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),v.removeAllRanges(),g>h?(v.addRange(t),v.extend(m.node,m.offset)):(t.setEnd(m.node,m.offset),v.addRange(t))))));t=[];for(v=p;v=v.parentNode;)1===v.nodeType&&t.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===\ntypeof p.focus&&p.focus();for(p=0;p=c)return yi(a,b,c);I(M,M.current&\n1,b);b=oi(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1,b);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return Bi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current,b);if(!d)return null}return oi(a,b,c)}wg=!1}}else wg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Ef(b,J.current);vg(b,c);e=Ih(null,b,d,a,e,c);b.effectTag|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;Mh();if(L(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Og(b,d,g,a);e.updater=Sg;b.stateNode=e;e._reactInternalFiber=b;Wg(b,d,a,c);b=vi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;Va(e);if(1!==e._status)throw e._result;\ne=e._result;b.type=e;f=b.tag=nk(e);a=mg(e,a);switch(f){case 0:b=si(null,b,e,a,c);break;case 1:b=ui(null,b,e,a,c);break;case 11:b=ni(null,b,e,a,c);break;case 14:b=pi(null,b,e,mg(e.type,a),d,c);break;default:throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),si(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ui(a,b,d,e,c);case 3:wi(b);d=b.updateQueue;if(null===d)throw Error(u(282));e=b.memoizedState;e=null!==e?e.element:\nnull;Hg(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)li(),b=oi(a,b,c);else{if(e=b.stateNode.hydrate)di=re(b.stateNode.containerInfo.firstChild),ci=b,e=ei=!0;if(e)for(c=gh(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),li();b=b.child}return b;case 5:return oh(b),null===a&&ii(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,oe(d,e)?g=null:null!==f&&oe(d,f)&&(b.effectTag|=16),ti(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=\nb.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&ii(b),null;case 13:return yi(a,b,c);case 4:return mh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=fh(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ni(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,b,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;\ne=b.pendingProps;g=b.memoizedProps;f=e.value;sg(b,f);if(null!==g){var h=g.value;f=of(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!K.current){b=oi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=Bg(c,null),l.tag=2,Dg(h,l));h.expirationTime=b&&a<=b}function Mj(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction Nj(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Rj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction rk(a,b,c,d){var e=b.current,f=Pg(),g=Mg.suspense;f=Qg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(ec(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=Bg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);Dg(e,b);Rg(e,f);return f}function sk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function tk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime= B.left && C.left <= B.left + B.width) {\n\t\tif (C.top >= B.top && C.top <= B.top + B.height) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nexport function isInViewport(element, ofElement) {\n\tvar rect = element.getBoundingClientRect();\n\treturn rect.top >= 0 && rect.left >= 0 && rect.bottom <= ofElement.height && rect.right <= ofElement.width;\n}\n\nexport function stringHashcode(string) : number {\n\tvar hash = 0;\n\tfor (var i = 0; i < string.length; i++) {\n\t\tvar code = string.charCodeAt(i);\n\t\thash = ((hash << 5) - hash) + code;\n\t\thash = hash & hash; // Convert to 32bit integer\n\t}\n\treturn hash;\n}\n\nexport function maybePluralize(count, noun, suffix = 's') {\n\treturn `${count} ${noun}${count !== 1 ? suffix : ''}`;\n}\n\nexport function toBoolean(str) {\n\tif (typeof str === \"undefined\" || str === null) {\n\t\treturn false;\n\t} else if (typeof str === \"string\") {\n\t\tswitch (str.toLowerCase()) {\n\t\t\tcase \"false\":\n\t\t\tcase \"no\":\n\t\t\tcase \"0\":\n\t\t\tcase \"\":\n\t\t\t\treturn false;\n\t\t\tdefault:\n\t\t\t\treturn true;\n\t\t}\n\t} else if (typeof str === \"number\") {\n\t\treturn str !== 0;\n\t} else {\n\t\treturn true;\n\t}\n}", "\uFEFF\"use strict\";\n\n// commands\nexport const reload_popup_controls = \"reload_popup_controls\";\nexport const update_tab_count = \"update_tab_count\";\nexport const discard_tabs = \"discard_tabs\";\nexport const move_tabs_to_window = \"move_tabs_to_window\";\nexport const focus_on_tab_and_window = \"focus_on_tab_and_window\";\nexport const focus_on_tab_and_window_delayed = \"focus_on_tab_and_window_delayed\";\nexport const focus_on_window = \"focus_on_window\";\nexport const focus_on_window_delayed = \"focus_on_window_delayed\";\nexport const set_window_color = \"set_window_color\";\nexport const set_window_name = \"set_window_name\";\nexport const create_window_with_tabs = \"create_window_with_tabs\";\nexport const create_window_with_session_tabs = \"create_window_with_session_tabs\";\nexport const close_tabs = \"close_tabs\";\nexport const switch_to_previous_active_tab = \"switch_to_previous_active_tab\";\nexport const refresh_windows = \"refresh_windows\";\n\n// context menues\nexport const open_in_own_tab = \"open_in_own_tab\";\nexport const open_popup = \"open_popup\";\nexport const open_sidebar = \"open_sidebar\";\nexport const sep1 = \"sep1\";\nexport const support_menu = \"support_menu\";\nexport const review = \"review\";\nexport const donate = \"donate\";\nexport const patron = \"patron\";\nexport const twitter = \"twitter\";\nexport const code_menu = \"code_menu\";\nexport const changelog = \"changelog\";\nexport const options = \"options\";\nexport const source = \"source\";\nexport const report = \"report\";\nexport const send = \"send\";\n\n// storage keys\nexport const windowHashes = \"windowHashes\";\nexport const windowColors = \"windowColors\";\nexport const windowNames = \"windowNames\";", "\uFEFF\"use strict\";\nimport { toBoolean } from \"./utils.js\";\nimport * as S from \"@strings\";\nimport * as browser from 'webextension-polyfill';\nimport {ISavedSession} from \"@types\";\n\nconst stringkeys = [\n\t\"layout\",\n\t\"version\"\n];\n\nconst jsonkeys = [\n\t\"tabLimit\",\n\t\"tabWidth\",\n\t\"tabHeight\",\n\t\"windowAge\",\n\tS.windowNames,\n\tS.windowColors\n];\n\nconst boolkeys = [\n\t\"openInOwnTab\",\n\t\"animations\",\n\t\"windowTitles\",\n\t\"compact\",\n\t\"dark\",\n\t\"tabactions\",\n\t\"badge\",\n\t\"sessionsFeature\",\n\t\"hideWindows\",\n\t\"filter-tabs\"\n];\n\n(async function () {\n\n\tlet needsMigration = false;\n\n\tfor (const key of stringkeys) {\n\t\tif (!!localStorage[key]) { needsMigration = true; break; }\n\t}\n\n\tfor (const key of boolkeys) {\n\t\tif (!!localStorage[key]) { needsMigration = true; break; }\n\t}\n\n\tfor (const key of jsonkeys) {\n\t\tif (!!localStorage[key]) { needsMigration = true; break; }\n\t}\n\n\tif (needsMigration) {\n\t\tlet keyValue = {};\n\t\tlet values : Record = await browser.storage.local.get(null);\n\t\tif (!!values) {\n\t\t\t// delete all values that don't have a tabs array\n\t\t\tfor (const key in values) {\n\t\t\t\tif (!!(values[key] as ISavedSession).tabs) {\n\t\t\t\t\tconsole.log(\"session deleting \" + key);\n\t\t\t\t\tawait browser.storage.local.remove(key);\n\t\t\t\t} else {\n\t\t\t\t\tdelete values[key];\n\t\t\t\t}\n\t\t\t}\n\t\t\tkeyValue[\"sessions\"] = values;\n\t\t}\n\n\t\tfor (const key of stringkeys) {\n\t\t\tif (!!localStorage[key]) keyValue[key] = localStorage[key];\n\t\t}\n\n\t\tfor (const key of boolkeys) {\n\t\t\tif (!!localStorage[key]) keyValue[key] = toBoolean(localStorage[key]);\n\t\t}\n\n\t\tfor (const key of jsonkeys) {\n\t\t\tif (!!localStorage[key]) keyValue[key] = JSON.parse(localStorage[key]);\n\t\t}\n\t\tawait browser.storage.local.set(keyValue);\n\n\t\t// clear old localstorage\n\t\tfor (const key of stringkeys) localStorage.removeItem(key);\n\t\tfor (const key of boolkeys) localStorage.removeItem(key);\n\t\tfor (const key of jsonkeys) localStorage.removeItem(key);\n\t}\n})();", "\uFEFFimport * as browser from 'webextension-polyfill';\n\nexport async function getLocalStorage(key, default_value = null){\n\tconst result = await browser.storage.local.get([key]);\n\treturn result[key] === undefined ? default_value : result[key];\n}\n\nexport async function getLocalStorageMap(key: string): Promise>{\n\tconst result = await browser.storage.local.get([key]);\n\tif (result[key] === undefined) {\n\t\treturn new Map();\n\t}\n\tlet newMap = new Map();\n\tlet obj: Object = result[key];\n\tfor (const [k, v] of Object.entries(obj)) {\n\t\tlet key = parseInt(k);\n\t\tnewMap.set(key as T, v as V);\n\t}\n\treturn newMap;\n}\n\nexport async function getLocalStorageStringMap(key : string) : Promise> {\n\tconst result = await browser.storage.local.get([key]);\n\tif (result[key] === undefined) {\n\t\treturn new Map();\n\t}\n\tlet newMap = new Map();\n\tlet obj : Object = result[key];\n\tfor (const [k, v] of Object.entries(obj)) {\n\t\tnewMap.set(k as T, v as V);\n\t}\n\treturn newMap;\n}\n\nexport async function setLocalStorage(key : string, value){\n\tconst obj = {};\n\tobj[key] = value;\n\treturn browser.storage.local.set(obj);\n}\n\nexport async function setLocalStorageMap(key : string, value : Map) {\n\tconst obj = {};\n\tobj[key] = Object.fromEntries(value);\n\treturn browser.storage.local.set(obj);\n}\n\nexport async function removeLocalStorage(key){\n\treturn browser.storage.local.remove(key);\n}", "\"use strict\"\n\nimport {getLocalStorage, setLocalStorage} from \"@helpers/storage\";\nimport {Tab} from \"@views\";\nimport * as React from \"react\";\nimport * as browser from 'webextension-polyfill';\nimport {ICommand, ISession, ISessionState} from '@types';\nimport * as S from \"@strings\";\n\nexport class Session extends React.Component {\n\tconstructor(props : ISession) {\n\t\tsuper(props);\n\n\t\tlet name = this.props.session.name;\n\t\tlet color = this.props.session.color || \"default\";\n\n\t\tthis.state = {\n\t\t\tname: name,\n\t\t\tcolor: color\n\t\t};\n\n\t\tthis.stop = this.stop.bind(this);\n\t\tthis.windowClick = this.windowClick.bind(this);\n\t\tthis.windowTabClick = this.windowTabClick.bind(this);\n\t\tthis.close = this.close.bind(this);\n\t\tthis.openTab = this.openTab.bind(this);\n\t\tthis.maximize = this.maximize.bind(this);\n\n\t}\n\trender() {\n\t\tlet _this = this;\n\t\tlet hideWindow = true;\n\t\tlet titleAdded = false;\n\t\tlet tabsperrow = this.props.layout.indexOf(\"blocks\") > -1 ? Math.ceil(Math.sqrt(this.props.tabs.length + 2)) : this.props.layout === \"vertical\" ? 1 : 15;\n\t\tlet tabs = this.props.tabs.map(function(tab) {\n\t\t\tlet tabId = tab.id * tab.id * tab.id * 100;\n\t\t\tlet isHidden = _this.props.hiddenTabs.has(tabId) && _this.props.filterTabs;\n\t\t\tlet isSelected = _this.props.selection.has(tabId);\n\t\t\ttab.id = tab.index;\n\t\t\tif (!isHidden) hideWindow = false;\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\t});\n\t\tif (!hideWindow) {\n\t\t\tif (!!this.props.tabactions) {\n\t\t\t\ttabs.push(\n\t\t\t\t\t
,\n\t\t\t\t\t
\n\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\ttitle={\"Restore this saved window\\nWill restore \" + tabs.length + \" tabs. Please note : The tabs will be restored without their history.\"}\n\t\t\t\t\t\t\tonClick={this.windowClick}\n\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\ttitle={\"Delete this saved window\\nWill delete \" + tabs.length + \" tabs permanently\"}\n\t\t\t\t\t\t\tonClick={this.close}\n\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (this.props.windowTitles) {\n\t\t\t\tif (this.state.name) {\n\t\t\t\t\ttabs.unshift(\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\t{this.state.name}\n\t\t\t\t\t\t

\n\t\t\t\t\t);\n\t\t\t\t\ttitleAdded = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (tabsperrow < 3) {\n\t\t\t\ttabsperrow = 3;\n\t\t\t}\n\t\t\tvar children = [];\n\t\t\tif (!!titleAdded) {\n\t\t\t\tchildren.push(tabs.shift());\n\t\t\t}\n\t\t\tfor (var j = 0; j < tabs.length; j++) {\n\t\t\t\tchildren.push(tabs[j]);\n\t\t\t\tif ((j + 1) % tabsperrow === 0 && j && this.props.layout.indexOf(\"blocks\") > -1) {\n\t\t\t\t\tchildren.push(
);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar focused = false;\n\t\t\tif (this.props.session.windowsInfo.focused || this.props.lastOpenWindow === this.props.session.windowsInfo.id) {\n\t\t\t\tfocused = true;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t -1 ? \"block\" : \"\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tthis.props.layout +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tthis.state.color +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(this.props.session.windowsInfo.incognito ? \" incognito\" : \"\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(focused ? \" focused\" : \"\")\n\t\t\t\t\t}\n\t\t\t\t\tonClick={this.windowClick}\n\t\t\t\t>\n\t\t\t\t\t
{children}
\n\t\t\t\t
\n\t\t\t);\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tshouldComponentUpdate(nextProps, nextState) {\n\t\t//console.log(\"should update?\", nextProps, nextState);\n\t\treturn true;\n\t}\n\tstop(e) {\n\t\te.stopPropagation();\n\t}\n\tasync windowTabClick(e : React.MouseEvent) {\n\t\te.stopPropagation();\n\t}\n\tasync windowClick(e : React.MouseEvent) {\n\t\tthis.restoreSession(e, null);\n\t}\n\tasync openTab(e : React.MouseEvent, index : number) {\n\t\tthis.restoreSession(e, index);\n\t}\n\tasync restoreSession(e : React.MouseEvent, tabId : number) {\n\t\te.stopPropagation();\n\n\t\tawait browser.runtime.sendMessage({\n\t\t\tcommand: S.create_window_with_session_tabs,\n\t\t\tsession: this.props.session,\n\t\t\ttab_id: tabId\n\t\t});\n\n\t\tthis.props.parentUpdate();\n\n\t\tif (!!window.inPopup) {\n\t\t\twindow.close();\n\t\t}else{\n\t\t\tsetTimeout(function() {\n\t\t\t\tthis.props.scrollTo(\"window\", browser.windows.WINDOW_ID_CURRENT);\n\t\t\t}.bind(this), 500);\n\t\t}\n\t}\n\tasync close(e) {\n\t\te.stopPropagation();\n\n\t\tvar sessions = await getLocalStorage('sessions', {});\n\t\tdelete sessions[this.props.session.id];\n\n\t\tvar value = await setLocalStorage('sessions', sessions).catch(function (err) {\n\t\t\tconsole.log(err);\n\t\t\tconsole.error(err.message);\n\t\t});\n\n\t\tconsole.log(value);\n\t\tthis.props.parentUpdate();\n\t\t// browser.windows.remove(this.props.session.windowsInfo.id);\n\t}\n\tmaximize(e) {\n\t\te.stopPropagation();\n\t\t// browser.windows.update(this.props.session.windowsInfo.id, {\n\t\t// \t\"state\": \"normal\" },\n\t\t// function (a) {this.props.parentUpdate();}.bind(this));\n\t}\n}\n", "\"use strict\";\n\nimport * as S from \"@strings\";\nimport * as React from \"react\";\nimport * as browser from 'webextension-polyfill';\nimport {ICommand, ITab, ITabState} from '@types';\n\nexport class Tab extends React.Component {\n\tconstructor(props : ITab) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfavIcon: \"\",\n\t\t\tdragFavIcon: \"\",\n\t\t\tdraggingOver: \"\",\n\t\t\thovered: false,\n\t\t\ttabRef: React.createRef()\n\t\t};\n\n\t\tthis.onHover = this.onHover.bind(this);\n\t\tthis.onHoverOut = this.onHoverOut.bind(this);\n\t\tthis.onMouseDown = this.onMouseDown.bind(this);\n\t\tthis.click = this.click.bind(this);\n\t\tthis.dragStart = this.dragStart.bind(this);\n\t\tthis.dragOver = this.dragOver.bind(this);\n\t\tthis.dragOut = this.dragOut.bind(this);\n\t\tthis.drop = this.drop.bind(this);\n\t\tthis.resolveFavIconUrl = this.resolveFavIconUrl.bind(this);\n\t\tthis.checkSettings = this.checkSettings.bind(this);\n\t}\n\n\tasync componentDidMount() {\n\t\tawait this.checkSettings();\n\t}\n\n\tasync checkSettings() {\n\t\tawait this.resolveFavIconUrl();\n\t}\n\n\trender() {\n\t\tconst children = [];\n\t\tif (this.props.layout === \"vertical\") {\n\t\t\tchildren.push(\n\t\t\t\t
\n\t\t\t\t\tPinned\n\t\t\t\t
\n\t\t\t);\n\t\t\tchildren.push(\n\t\t\t\t
\n\t\t\t\t\tActive\n\t\t\t\t
\n\t\t\t);\n\t\t\tchildren.push(\n\t\t\t\t
\n\t\t\t\t\tSelected\n\t\t\t\t
\n\t\t\t);\n\t\t\tchildren.push(\n\t\t\t\t\n\t\t\t);\n\t\t\tchildren.push(\n\t\t\t\t
\n\t\t\t\t\t{this.props.tab.title || \"\"}\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\tvar tabDom = {\n\t\t\tclassName:\n\t\t\t\t\"icon tab \" +\n\t\t\t\t(this.props.selected ? \"selected \" : \"\") +\n\t\t\t\t(this.props.tab.pinned ? \"pinned \" : \"\") +\n\t\t\t\t(this.props.tab.highlighted ? \"highlighted \" : \"\") +\n\t\t\t\t(this.props.hidden ? \"hidden \" : \"\") +\n\t\t\t\t((this.props.tab.mutedInfo && this.props.tab.mutedInfo.muted) ? \"muted \" : \"\") +\n\t\t\t\t(this.props.tab.audible ? \"audible \" : \"\") +\n\t\t\t\t(this.props.tab.discarded ? \"discarded \" : \"\") +\n\t\t\t\t(this.props.layout === \"vertical\" ? \"full \" : \"\") +\n\t\t\t\t(this.props.tab.incognito ? \"incognito \" : \"\") +\n\t\t\t\t(this.state.draggingOver) +\n\t\t\t\t(this.props.searchActive ? \"search-active \" : \"\") +\n\t\t\t\t\" tab-\" +\n\t\t\t\tthis.props.tab.id +\n\t\t\t\t\" \" +\n\t\t\t\t(this.props.layout === \"vertical\" ? \"vertical \" : \"blocks \"),\n\t\t\tstyle:\n\t\t\t\t(this.props.layout === \"vertical\"\n\t\t\t\t\t? { }\n\t\t\t\t\t: { backgroundImage: !!this.state.favIcon ? \"url(\" + this.state.favIcon + \")\" : \"\" }\n\t\t\t\t)\n\t\t\t,\n\t\t\tid: this.props.id,\n\t\t\ttitle: this.props.tab.title,\n\t\t\tonClick: this.click,\n\t\t\tonMouseDown: this.onMouseDown,\n\t\t\tonMouseEnter: this.onHover,\n\t\t\tonMouseOut: this.onHoverOut,\n\t\t\tref: this.state.tabRef\n\t\t};\n\n\t\tif (!!this.props.draggable) {\n\t\t\ttabDom[\"onDragStart\"] = this.dragStart;\n\t\t\ttabDom[\"onDragOver\"] = this.dragOver;\n\t\t\ttabDom[\"onDragLeave\"] = this.dragOut;\n\t\t\ttabDom[\"onDrop\"] = this.drop;\n\t\t\ttabDom[\"draggable\"] = \"true\";\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{children}\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\tonHover(e) {\n\t\tthis.setState({hovered: true});\n\t\tthis.props.hoverHandler(this.props.tab);\n\t}\n\tonHoverOut(e) {\n\t\tthis.setState({hovered: false});\n\t}\n\tasync onMouseDown(e : React.MouseEvent) {\n\t\tif (e.button === 0) return;\n\t\tif (!this.props.draggable) return;\n\t\tawait this.click(e);\n\t}\n\tasync click(e : React.MouseEvent) {\n\t\tthis.stopProp(e);\n\n\t\tvar tabId : number = this.props.tab.id;\n\n\t\tif (e.button === 1) {\n\t\t\tthis.props.middleClick(tabId);\n\t\t} else if (e.button === 2 || e.nativeEvent.metaKey || e.nativeEvent.altKey || e.nativeEvent.shiftKey || e.nativeEvent.ctrlKey) {\n\t\t\te.preventDefault();\n\t\t\tif (e.button === 2 && (e.nativeEvent.metaKey || e.nativeEvent.altKey || e.nativeEvent.shiftKey || e.nativeEvent.ctrlKey)) {\n\t\t\t\tthis.props.selectTo(tabId);\n\t\t\t} else {\n\t\t\t\tthis.props.select(tabId);\n\t\t\t}\n\t\t} else {\n\t\t\tif (!!this.props.click) {\n\t\t\t\tthis.props.click(e, this.props.tab.id);\n\t\t\t} else {\n\t\t\t\tlet windowId = this.props.window.id;\n\n\t\t\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\t\t\tbrowser.runtime.sendMessage({\n\t\t\t\t\t\tcommand: S.focus_on_tab_and_window_delayed,\n\t\t\t\t\t\tsaved_tab: {tabId: tabId, windowId: windowId}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tbrowser.runtime.sendMessage({\n\t\t\t\t\t\tcommand: S.focus_on_tab_and_window,\n\t\t\t\t\t\tsaved_tab: {tabId: tabId, windowId: windowId}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!!window.inPopup) window.close();\n\t\t}\n\t\treturn false;\n\t}\n\tdragStart(e : React.DragEvent) {\n\t\tif (!this.props.draggable) return false;\n\t\tif (!this.props.drag) return false;\n\n\t\tthis.setState({\n\t\t\tdragFavIcon: \"\"\n\t\t});\n\t\tthis.props.dragFavicon(this.state.favIcon);\n\t\te.dataTransfer.setData(\"Text\", this.props.tab.id.toString());\n\t\te.dataTransfer.setData(\"text/uri-list\", this.props.tab.url || \"\");\n\t\tthis.props.drag(e, this.props.tab.id);\n\t}\n\tdragOver(e : React.DragEvent) {\n\t\tif (!this.props.draggable) return false;\n\t\tif (!this.props.drag) return false;\n\n\t\tlet favicon = this.props.dragFavicon();\n\t\tlet draggingover;\n\n\t\tvar before = this.state.draggingOver;\n\t\tif (this.props.layout === \"vertical\") {\n\t\t\tdraggingover = e.nativeEvent.offsetY > this.state.tabRef.current.clientHeight / 2 ? \"bottom\" : \"top\";\n\t\t} else {\n\t\t\tdraggingover = e.nativeEvent.offsetX > this.state.tabRef.current.clientWidth / 2 ? \"right\" : \"left\";\n\t\t}\n\n\t\tthis.setState({\n\t\t\tdraggingOver: draggingover,\n\t\t\tdragFavIcon: favicon\n\t\t});\n\n\t\tif (before !== this.state.draggingOver) {\n\t\t\tthis.forceUpdate();\n\t\t\tthis.props.parentUpdate();\n\t\t}\n\t}\n\tdragOut() {\n\t\tif (!this.props.draggable) return false;\n\t\tif (!this.props.drag) return;\n\n\t\tthis.setState({\n\t\t\tdragFavIcon: \"\",\n\t\t\tdraggingOver: \"\"\n\t\t});\n\t\tthis.forceUpdate();\n\t\tthis.props.parentUpdate();\n\t}\n\tdrop(e : React.DragEvent) {\n\t\tif (!this.props.draggable) return false;\n\t\tif (!this.props.drag) return false;\n\t\tif (!this.props.drop) return;\n\n\t\tthis.stopProp(e);\n\n\t\tvar before = this.state.draggingOver === \"top\" || this.state.draggingOver === \"left\";\n\n\t\tthis.setState({\n\t\t\tdraggingOver: \"\",\n\t\t\tdragFavIcon: \"\"\n\t\t});\n\n\t\tthis.props.drop(this.props.tab.id, before);\n\t\tthis.forceUpdate();\n\t\tthis.props.parentUpdate();\n\t}\n\tasync resolveFavIconUrl() {\n\t\tlet image : string;\n\t\t// firefox screenshots; needs \n\t\t// if(!!browser.tabs.captureTab) {\n\t\t// \tconsole.log(\"tabs captureTab\");\n\t\t// \timage = await browser.tabs.captureTab(this.props.tab.id);\n\t\t// \timage = \"url(\" + image + \")\";\n\t\t// }else\n\n\t\tvar _url : string = this.props.tab.url || this.props.tab.pendingUrl || \"\";\n\n\t\tif (!!_url && navigator.userAgent.search(\"Firefox\") === -1) {\n\t\t\timage = \"chrome-extension://\" + chrome.runtime.id + \"/_favicon/?pageUrl=\" + encodeURIComponent(_url) + \"&size=64\"; // &\" + Date.now();\n\t\t} else if (!!_url && _url.indexOf(\"chrome://\") !== 0 && _url.indexOf(\"about:\") !== 0) {\n\t\t\t image = this.props.tab.favIconUrl ? \"\" + this.props.tab.favIconUrl + \"\" : \"\";\n\t\t } else {\n\t\t\tconst favIcons = [\"bookmarks\", \"chrome\", \"crashes\", \"downloads\", \"extensions\", \"flags\", \"history\", \"settings\"];\n\t\t\tlet iconUrl = _url;\n\t\t\tif (iconUrl.length > 9) {\n\t\t\t\tlet iconName = iconUrl.slice(9).match(/^\\w+/g);\n\t\t\t\tconsole.log(iconName);\n\t\t\t\timage = !iconName || favIcons.indexOf(iconName[0]) < 0 ? \"\" : \"../images/chrome/\" + iconName[0] + \".png\";\n\t\t\t}\n\t\t}\n\t\tthis.setState({\n\t\t\tfavIcon: image\n\t\t});\n\t}\n\tstopProp(e) {\n\t\tif(e && e.nativeEvent) {\n\t\t\te.nativeEvent.preventDefault();\n\t\t\te.nativeEvent.stopPropagation();\n\t\t}\n\t\tif(e && e.preventDefault) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n}\n", "import {getLocalStorage, setLocalStorage} from \"@helpers/storage\";\nimport {debounce, maybePluralize} from \"@helpers/utils\";\nimport {Window, Session, TabOptions, Tab} from \"@views\";\nimport * as React from \"react\";\nimport * as S from \"@strings\";\nimport * as browser from 'webextension-polyfill';\nimport {ICommand, ITabManager, ITabManagerState, ISavedSession} from \"@types\";\n\nconst {setTimeout, clearTimeout} = window\n\nexport class TabManager extends React.Component {\n\tconstructor(props : ITabManager) {\n\t\tsuper(props);\n\n\t\tlet layout = \"blocks\";\n\t\tlet animations = true;\n\t\tlet windowTitles = true;\n\t\tlet compact = false;\n\t\tlet dark = false;\n\t\tlet tabactions = true;\n\t\tlet badge = true;\n\t\tlet sessionsFeature = false;\n\t\tlet hideWindows = false;\n\t\tlet filterTabs = false;\n\t\tlet tabLimit = 0;\n\t\tlet openInOwnTab = false;\n\t\tlet tabWidth = 800;\n\t\tlet tabHeight = 600;\n\n\t\tlet resetTimeout = -1;\n\t\t// var closeTimeout;\n\n\t\tthis.state = {\n\t\t\tlayout: layout,\n\t\t\tanimations: animations,\n\t\t\twindowTitles: windowTitles,\n\t\t\ttabLimit: tabLimit,\n\t\t\topenInOwnTab: openInOwnTab,\n\t\t\ttabWidth: tabWidth,\n\t\t\ttabHeight: tabHeight,\n\t\t\tcompact: compact,\n\t\t\tdark: dark,\n\t\t\ttabactions: tabactions,\n\t\t\tbadge: badge,\n\t\t\thideWindows: hideWindows,\n\t\t\tsessionsFeature: sessionsFeature,\n\t\t\tlastOpenWindow: -1,\n\t\t\twindows: [],\n\t\t\tsessions: [],\n\t\t\tselection: new Set(),\n\t\t\tlastSelect: 0,\n\t\t\thiddenTabs: new Set(),\n\t\t\ttabsbyid: new Map(),\n\t\t\twindowsbyid: new Map(),\n\t\t\tresetTimeout: resetTimeout,\n\t\t\theight: 600,\n\t\t\thasScrollBar: false,\n\t\t\tfocusUpdates: 0,\n\t\t\ttopText: \"\",\n\t\t\tbottomText: \"\",\n\t\t\tlastDirection: \"\",\n\t\t\toptionsActive: !!this.props.optionsActive,\n\t\t\tfilterTabs: filterTabs,\n\t\t\tdupTabs: false,\n\t\t\tdragFavicon: \"\",\n\t\t\tcolorsActive: 0,\n\n\t\t\ttabCount: 0,\n\t\t\thiddenCount: 0,\n\t\t\tsearchLen: 0\n\t\t};\n\n\t\tthis.addWindow = this.addWindow.bind(this);\n\t\tthis.animationsText = this.animationsText.bind(this);\n\t\tthis.badgeText = this.badgeText.bind(this);\n\t\tthis.changelayout = this.changelayout.bind(this);\n\t\tthis.changeTabHeight = this.changeTabHeight.bind(this);\n\t\tthis.changeTabLimit = this.changeTabLimit.bind(this);\n\t\tthis.changeTabWidth = this.changeTabWidth.bind(this);\n\t\tthis.checkKey = this.checkKey.bind(this);\n\t\tthis.clearSelection = this.clearSelection.bind(this);\n\t\tthis.compactText = this.compactText.bind(this);\n\t\tthis.darkText = this.darkText.bind(this);\n\t\tthis.deleteTabs = this.deleteTabs.bind(this);\n\t\tthis.discardTabs = this.discardTabs.bind(this);\n\t\tthis.donate = this.donate.bind(this);\n\t\tthis.exportSessions = this.exportSessions.bind(this);\n\t\tthis.exportSessionsText = this.exportSessionsText.bind(this);\n\t\tthis.getTip = this.getTip.bind(this);\n\t\tthis.hideText = this.hideText.bind(this);\n\t\tthis.highlightDuplicates = this.highlightDuplicates.bind(this);\n\t\tthis.hoverIcon = this.hoverIcon.bind(this);\n\t\tthis.importSessions = this.importSessions.bind(this);\n\t\tthis.importSessionsText = this.importSessionsText.bind(this);\n\t\tthis.openInOwnTabText = this.openInOwnTabText.bind(this);\n\t\tthis.pinTabs = this.pinTabs.bind(this);\n\t\tthis.rateExtension = this.rateExtension.bind(this);\n\t\tthis.scrollTo = this.scrollTo.bind(this);\n\t\tthis.search = this.search.bind(this);\n\t\tthis.sessionsText = this.sessionsText.bind(this);\n\t\tthis.sessionSync = this.sessionSync.bind(this);\n\t\tthis.tabActionsText = this.tabActionsText.bind(this);\n\t\tthis.tabHeightText = this.tabHeightText.bind(this);\n\t\tthis.tabLimitText = this.tabLimitText.bind(this);\n\t\tthis.tabWidthText = this.tabWidthText.bind(this);\n\t\tthis.toggleAnimations = this.toggleAnimations.bind(this);\n\t\tthis.toggleBadge = this.toggleBadge.bind(this);\n\t\tthis.toggleCompact = this.toggleCompact.bind(this);\n\t\tthis.toggleDark = this.toggleDark.bind(this);\n\t\tthis.toggleFilterMismatchedTabs = this.toggleFilterMismatchedTabs.bind(this);\n\t\tthis.toggleHide = this.toggleHide.bind(this);\n\t\tthis.toggleOpenInOwnTab = this.toggleOpenInOwnTab.bind(this);\n\t\tthis.toggleOptions = this.toggleOptions.bind(this);\n\t\tthis.toggleSessions = this.toggleSessions.bind(this);\n\t\tthis.toggleTabActions = this.toggleTabActions.bind(this);\n\t\tthis.toggleWindowTitles = this.toggleWindowTitles.bind(this);\n\t\tthis.update = this.update.bind(this);\n\t\tthis.windowTitlesText = this.windowTitlesText.bind(this);\n\t\tthis.onTabDetached = this.onTabDetached.bind(this);\n\t\tthis.onTabAttached = this.onTabAttached.bind(this);\n\t\tthis.onTabRemoved = this.onTabRemoved.bind(this);\n\t\tthis.onTabCreated = this.onTabCreated.bind(this);\n\t\tthis.dirtyWindow = this.dirtyWindow.bind(this);\n\t}\n\tUNSAFE_componentWillMount() {\n\t\tthis.update();\n\t}\n\n\tasync loadStorage() {\n\t\tvar layout = \"blocks\";\n\t\tvar animations = true;\n\t\tvar windowTitles = true;\n\t\tvar compact = false;\n\t\tvar dark = false;\n\t\tvar tabactions = true;\n\t\tvar badge = true;\n\t\tvar sessionsFeature = false;\n\t\tvar hideWindows = false;\n\t\tvar filterTabs = false;\n\t\tvar tabLimit = 0;\n\t\tvar openInOwnTab = false;\n\t\tvar tabWidth = 800;\n\t\tvar tabHeight = 600;\n\n\t\tvar storage = await browser.storage.local.get(null);\n\n\t\tif (!storage[\"layout\"]) storage[\"layout\"] = layout;\n\t\tif (typeof storage[\"tabLimit\"] === \"undefined\") storage[\"tabLimit\"] = tabLimit;\n\t\tif (typeof storage[\"tabWidth\"] === \"undefined\") storage[\"tabWidth\"] = tabWidth;\n\t\tif (typeof storage[\"tabHeight\"] === \"undefined\") storage[\"tabHeight\"] = tabHeight;\n\n\t\tif (typeof storage[\"animations\"] === \"undefined\") storage[\"animations\"] = animations;\n\t\tif (typeof storage[\"windowTitles\"] === \"undefined\") storage[\"windowTitles\"] = windowTitles;\n\t\tif (typeof storage[\"tabactions\"] === \"undefined\") storage[\"tabactions\"] = tabactions;\n\t\tif (typeof storage[\"badge\"] === \"undefined\") storage[\"badge\"] = badge;\n\n\t\tif (typeof storage[\"openInOwnTab\"] === \"undefined\") storage[\"openInOwnTab\"] = openInOwnTab;\n\t\tif (typeof storage[\"compact\"] === \"undefined\") storage[\"compact\"] = compact;\n\t\tif (typeof storage[\"dark\"] === \"undefined\") storage[\"dark\"] = dark;\n\t\tif (typeof storage[\"sessionsFeature\"] === \"undefined\") storage[\"sessionsFeature\"] = sessionsFeature;\n\t\tif (typeof storage[\"hideWindows\"] === \"undefined\") storage[\"hideWindows\"] = hideWindows;\n\t\tif (typeof storage[\"filter-tabs\"] === \"undefined\") storage[\"filter-tabs\"] = filterTabs;\n\n\t\tstorage[\"version\"] = window.extensionVersion;\n\n\t\tawait browser.storage.local.set(storage);\n\n\t\tlayout = storage[\"layout\"] as string;\n\t\ttabLimit = storage[\"tabLimit\"] as number;\n\t\ttabWidth = storage[\"tabWidth\"] as number;\n\t\ttabHeight = storage[\"tabHeight\"] as number;\n\t\topenInOwnTab = storage[\"openInOwnTab\"] as boolean;\n\t\tanimations = storage[\"animations\"] as boolean;\n\t\twindowTitles = storage[\"windowTitles\"] as boolean;\n\t\tcompact = storage[\"compact\"] as boolean;\n\t\tdark = storage[\"dark\"] as boolean;\n\t\ttabactions = storage[\"tabactions\"] as boolean;\n\t\tbadge = storage[\"badge\"] as boolean;\n\t\tsessionsFeature = storage[\"sessionsFeature\"] as boolean;\n\t\thideWindows = storage[\"hideWindows\"] as boolean;\n\t\tfilterTabs = storage[\"filter-tabs\"] as boolean;\n\n\t\tif (dark) {\n\t\t\tdocument.body.className = \"dark\";\n\t\t} else {\n\t\t\tdocument.body.className = \"\";\n\t\t}\n\n\t\tthis.setState({\n\t\t\tlayout: layout,\n\t\t\tanimations: animations,\n\t\t\twindowTitles: windowTitles,\n\t\t\ttabLimit: tabLimit,\n\t\t\topenInOwnTab: openInOwnTab,\n\t\t\ttabWidth: tabWidth,\n\t\t\ttabHeight: tabHeight,\n\t\t\tcompact: compact,\n\t\t\tdark: dark,\n\t\t\ttabactions: tabactions,\n\t\t\tbadge: badge,\n\t\t\thideWindows: hideWindows,\n\t\t\tsessionsFeature: sessionsFeature,\n\t\t\tfilterTabs: filterTabs\n\t\t});\n\t}\n\n\thoverHandler(tab : browser.Tabs.Tab) {\n\t\tthis.setState({ topText: tab.title || \"\" });\n\t\tthis.setState({ bottomText: tab.url || tab.pendingUrl || \"\" });\n\t\t// clearTimeout(this.state.closeTimeout);\n\t\t// this.state.closeTimeout = setTimeout(function () {\n\t\t// window.close();\n\t\t// }, 100000);\n\t\tvar _reset_timeout = this.state.resetTimeout;\n\t\tclearTimeout(_reset_timeout);\n\t\t_reset_timeout = setTimeout(\n\t\t\tfunction() {\n\t\t\t\tthis.setState({ topText: \"\", bottomText: \"\" });\n\t\t\t\tthis.update();\n\t\t\t}.bind(this),\n\t\t\t15000\n\t\t);\n\t\tthis.setState({resetTimeout: _reset_timeout});\n\t\t//this.update();\n\t}\n\thoverIcon(e : React.MouseEvent | string) {\n\t\tvar text = \"\";\n\t\tif (typeof (e) === \"string\") {\n\t\t\ttext = e;\n\t\t} else {\n\t\t\tif (e && e.nativeEvent) {\n\t\t\t\te.nativeEvent.preventDefault();\n\t\t\t\te.nativeEvent.stopPropagation();\n\t\t\t}\n\n\t\t\tif (e && e.target && !!(e.target as HTMLDivElement).title) {\n\t\t\t\ttext = (e.target as HTMLDivElement).title;\n\t\t\t}\n\t\t}\n\n\t\tvar bottom = \" \";\n\t\tif (text.indexOf(\"\\n\") > -1) {\n\t\t\tvar a = text.split(\"\\n\");\n\t\t\ttext = a[0];\n\t\t\tbottom = a[1];\n\t\t}\n\t\tthis.setState({ topText: text });\n\t\tthis.setState({ bottomText: bottom });\n\t\t//this.update();\n\t\tthis.forceUpdate();\n\t}\n\trender() {\n\t\tlet _this = this;\n\n\t\t// let hiddenCount = this.state.hiddenCount || 0;\n\t\tlet tabCount = this.state.tabCount;\n\n\t\tlet haveMin = false;\n\t\tlet haveSess = false;\n\n\t\tfor (let i = this.state.windows.length - 1; i >= 0; i--) {\n\t\t\tif (this.state.windows[i].state === \"minimized\") haveMin = true;\n\t\t}\n\n\t\tif (this.state.sessionsFeature) {\n\t\t\tif (this.state.sessions.length > 0) haveSess = true;\n\t\t\t// disable session window if we have filtering enabled\n\t\t\t// and filter active\n\t\t\tif (haveSess && this.state.filterTabs) {\n\t\t\t\tif (this.state.searchLen > 0 || this.state.hiddenTabs.size > 0) {\n\t\t\t\t\thaveSess = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{!this.state.optionsActive &&
\n\t\t\t\t\t{this.state.windows.map(function(window : browser.Windows.Window) {\n\t\t\t\t\t\tif (window.state === \"minimized\") return;\n\t\t\t\t\t\tif (!!this.state.colorsActive && this.state.colorsActive !== window.id) return;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t 0}\n\t\t\t\t\t\t\t\tsessionsFeature={_this.state.sessionsFeature}\n\t\t\t\t\t\t\t\ttabactions={_this.state.tabactions}\n\t\t\t\t\t\t\t\thiddenTabs={_this.state.hiddenTabs}\n\t\t\t\t\t\t\t\tfilterTabs={_this.state.filterTabs}\n\t\t\t\t\t\t\t\thoverHandler={_this.hoverHandler.bind(_this)}\n\t\t\t\t\t\t\t\tscrollTo={_this.scrollTo.bind(_this)}\n\t\t\t\t\t\t\t\thoverIcon={_this.hoverIcon.bind(_this)}\n\t\t\t\t\t\t\t\tparentUpdate={_this.update.bind(_this)}\n\t\t\t\t\t\t\t\ttoggleColors={_this.toggleColors.bind(_this)}\n\t\t\t\t\t\t\t\ttabMiddleClick={_this.deleteTab.bind(_this)}\n\t\t\t\t\t\t\t\tselect={_this.select.bind(_this)}\n\t\t\t\t\t\t\t\tselectTo={_this.selectTo.bind(_this)}\n\t\t\t\t\t\t\t\tdraggable={true}\n\t\t\t\t\t\t\t\tdrag={_this.drag.bind(_this)}\n\t\t\t\t\t\t\t\tdrop={_this.drop.bind(_this)}\n\t\t\t\t\t\t\t\tdropWindow={_this.dropWindow.bind(_this)}\n\t\t\t\t\t\t\t\twindowTitles={_this.state.windowTitles}\n\t\t\t\t\t\t\t\tlastOpenWindow={_this.state.lastOpenWindow}\n\t\t\t\t\t\t\t\tdragFavicon={_this.dragFavicon.bind(_this)}\n\t\t\t\t\t\t\t\tref={\"window\" + window.id}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}.bind(this))}\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tMinimized windows\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{this.state.windows.map(function(window) {\n\t\t\t\t\t\tif (window.state !== \"minimized\") return;\n\t\t\t\t\t\tif (!!this.state.colorsActive && this.state.colorsActive !== window.id) return;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t 0}\n\t\t\t\t\t\t\t\tsessionsFeature={_this.state.sessionsFeature}\n\t\t\t\t\t\t\t\ttabactions={_this.state.tabactions}\n\t\t\t\t\t\t\t\thiddenTabs={_this.state.hiddenTabs}\n\t\t\t\t\t\t\t\tfilterTabs={_this.state.filterTabs}\n\t\t\t\t\t\t\t\thoverHandler={_this.hoverHandler.bind(_this)}\n\t\t\t\t\t\t\t\tscrollTo={_this.scrollTo.bind(_this)}\n\t\t\t\t\t\t\t\thoverIcon={_this.hoverIcon.bind(_this)}\n\t\t\t\t\t\t\t\tparentUpdate={_this.update.bind(_this)}\n\t\t\t\t\t\t\t\ttoggleColors={_this.toggleColors.bind(_this)}\n\t\t\t\t\t\t\t\ttabMiddleClick={_this.deleteTab.bind(_this)}\n\t\t\t\t\t\t\t\tselect={_this.select.bind(_this)}\n\t\t\t\t\t\t\t\tselectTo={_this.selectTo.bind(_this)}\n\t\t\t\t\t\t\t\tdraggable={true}\n\t\t\t\t\t\t\t\tdrag={_this.drag.bind(_this)}\n\t\t\t\t\t\t\t\tdrop={_this.drop.bind(_this)}\n\t\t\t\t\t\t\t\tdropWindow={_this.dropWindow.bind(_this)}\n\t\t\t\t\t\t\t\twindowTitles={_this.state.windowTitles}\n\t\t\t\t\t\t\t\tlastOpenWindow={_this.state.lastOpenWindow}\n\t\t\t\t\t\t\t\tdragFavicon={_this.dragFavicon.bind(_this)}\n\t\t\t\t\t\t\t\tref={\"window\" + window.id}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}.bind(this))}\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tSaved windows\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{haveSess\n\t\t\t\t\t\t? this.state.sessions.map(function(window : ISavedSession) {\n\t\t\t\t\t\t\t\tif (!!this.state.colorsActive && this.state.colorsActive !== window.id) return;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t 0}\n\t\t\t\t\t\t\t\t\t\ttabactions={_this.state.tabactions}\n\t\t\t\t\t\t\t\t\t\thiddenTabs={_this.state.hiddenTabs}\n\t\t\t\t\t\t\t\t\t\tfilterTabs={_this.state.filterTabs}\n\t\t\t\t\t\t\t\t\t\thoverHandler={_this.hoverHandler.bind(_this)}\n\t\t\t\t\t\t\t\t\t\tscrollTo={_this.scrollTo.bind(_this)}\n\t\t\t\t\t\t\t\t\t\thoverIcon={_this.hoverIcon.bind(_this)}\n\t\t\t\t\t\t\t\t\t\tparentUpdate={_this.update.bind(_this)}\n\t\t\t\t\t\t\t\t\t\ttoggleColors={_this.toggleColors.bind(_this)}\n\t\t\t\t\t\t\t\t\t\ttabMiddleClick={_this.deleteTab.bind(_this)}\n\t\t\t\t\t\t\t\t\t\tselect={_this.select.bind(_this)}\n\t\t\t\t\t\t\t\t\t\twindowTitles={_this.state.windowTitles}\n\t\t\t\t\t\t\t\t\t\tlastOpenWindow={_this.state.lastOpenWindow}\n\t\t\t\t\t\t\t\t\t\tdraggable={false}\n\t\t\t\t\t\t\t\t\t\tref={\"session\" + window.id}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}.bind(this))\n\t\t\t\t\t\t: false}\n\t\t\t\t
}\n\t\t\t\t{this.state.optionsActive &&
\n\t\t\t\t\t\n\t\t\t\t
}\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{!this.state.optionsActive && !this.state.colorsActive &&
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Close selected tabs\\nWill close \" + maybePluralize(this.state.selection.size, 'tab')\n\t\t\t\t\t\t\t\t\t\t\t\t: \"Close current Tab\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={this.deleteTabs}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={this.hoverIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Discard selected tabs\\nWill discard \" + maybePluralize(this.state.selection.size, 'tab') + \" - freeing memory\"\n\t\t\t\t\t\t\t\t\t\t\t\t: \"Select tabs to discard them and free memory\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\tthis.state.selection.size > 0\n\t\t\t\t\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t\t\t\t\t: { opacity: 0.25 }\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={this.discardTabs}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={this.hoverIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Pin selected tabs\\nWill pin \" + maybePluralize(this.state.selection.size, 'tab')\n\t\t\t\t\t\t\t\t\t\t\t\t: \"Pin current Tab\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={this.pinTabs}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={this.hoverIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t? \"\\n\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\t(this.state.filterTabs ? \"Will reveal \" : \"Will hide \") +\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaybePluralize((this.state.tabsbyid.size - this.state.selection.size), 'tab')\n\t\t\t\t\t\t\t\t\t\t\t\t: \"\")\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={this.toggleFilterMismatchedTabs}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={this.hoverIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Move tabs to new window\\nWill move \" + maybePluralize(this.state.selection.size, 'selected tab') + \" to it\"\n\t\t\t\t\t\t\t\t\t\t\t\t: \"Open new empty window\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={this.addWindow}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={this.hoverIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t
}\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\n\tasync componentDidMount()\n\t{\n\t\tawait this.loadStorage();\n\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t} else {\n\t\t\tlet result = await browser.permissions.contains({permissions: [\"system.display\"]});\n\t\t\tif (!result) {\n\t\t\t\tsetLocalStorage(\"hideWindows\", false);\n\t\t\t\tthis.setState({\n\t\t\t\t\thideWindows: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tlet _this = this;\n\n\t\tlet runUpdate = debounce(this.update, 250);\n\t\trunUpdate = runUpdate.bind(this);\n\n\t\tvar runTabUpdate = async (tabid, changeinfo, tab) => {\n\t\t\tthis.dirtyWindow(tab.windowId);\n\n\t\t\tif (!!_this.refs[\"window\" + tab.windowId]) {\n\t\t\t\tvar window = _this.refs[\"window\" + tab.windowId] as Window;\n\t\t\t\tif (!!window.refs[\"tab\" + tabid]) {\n\t\t\t\t\tvar _tabref = window.refs[\"tab\" + tabid] as Tab;\n\t\t\t\t\tawait _tabref.checkSettings();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbrowser.tabs.onCreated.addListener(runUpdate);\n\t\tbrowser.tabs.onUpdated.addListener(runUpdate);\n\t\tbrowser.tabs.onUpdated.addListener(runTabUpdate);\n\t\tbrowser.tabs.onMoved.addListener(runUpdate);\n\t\tbrowser.tabs.onRemoved.addListener(runUpdate);\n\t\tbrowser.tabs.onReplaced.addListener(runUpdate);\n\t\tbrowser.tabs.onDetached.addListener(runUpdate);\n\t\tbrowser.tabs.onAttached.addListener(runUpdate);\n\n\t\tbrowser.tabs.onCreated.addListener(this.onTabCreated);\n\t\tbrowser.tabs.onDetached.addListener(this.onTabDetached);\n\t\tbrowser.tabs.onAttached.addListener(this.onTabAttached);\n\t\tbrowser.tabs.onRemoved.addListener(this.onTabRemoved);\n\n\t\tbrowser.tabs.onActivated.addListener(runUpdate);\n\t\tbrowser.windows.onFocusChanged.addListener(runUpdate);\n\t\tbrowser.windows.onCreated.addListener(runUpdate);\n\t\tbrowser.windows.onRemoved.addListener(runUpdate);\n\n\t\tbrowser.runtime.onMessage.addListener(function (message, sender, sendResponse) {\n\t\t\tconst request = message as ICommand;\n\n\t\t\tconsole.log(request.command);\n\t\t\tswitch (request.command) {\n\t\t\t\tcase S.refresh_windows:\n\t\t\t\t\tlet window_ids : number[] = request.window_ids;\n\t\t\t\t\tfor (let window_id of window_ids) {\n\t\t\t\t\t\tif (!_this.refs[\"window\" + window_id]) continue;\n\t\t\t\t\t\t(_this.refs[\"window\" + window_id] as Window).checkSettings();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\n\n\t\tbrowser.storage.onChanged.addListener(this.sessionSync);\n\n\t\tawait this.sessionSync();\n\n\t\t(this.refs.root as HTMLElement).focus();\n\t\tthis.focusRoot();\n\n\t\tsetTimeout(async function() {\n\t\t\tvar scrollArea = document.getElementsByClassName(\"window-container\")[0];\n\t\t\tvar activeWindow = document.getElementsByClassName(\"activeWindow\");\n\t\t\tif (!!activeWindow && activeWindow.length > 0) {\n\t\t\t\tvar activeTab = activeWindow[0].getElementsByClassName(\"highlighted\");\n\t\t\t\tif (!!activeTab && activeTab.length > 0) {\n\t\t\t\t\tif (!!scrollArea && scrollArea.scrollTop > 0) {\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar animations = await getLocalStorage(\"animations\", false);\n\t\t\t\t\t\tactiveTab[0].scrollIntoView({ behavior: animations ? \"smooth\" : \"instant\", block: \"center\", inline: \"nearest\" });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 250);\n\n\t\t// box.select();\n\t\t// box.focus();\n\t}\n\tasync sessionSync() {\n\t\tlet values = await getLocalStorage('sessions', {});\n\t\t//console.log(values);\n\t\tlet sessions : ISavedSession[] = [];\n\t\tfor (let key in values) {\n\t\t\tlet sess = values[key];\n\t\t\tif (sess.id && sess.tabs && sess.windowsInfo) {\n\t\t\t\tsessions.push(sess);\n\t\t\t}\n\t\t}\n\t\tthis.setState({\n\t\t\tsessions: sessions\n\t\t});\n\t\tawait this.update();\n\t}\n\tfocusRoot() {\n\t\tthis.setState({ focusUpdates: (this.state.focusUpdates + 1) });\n\t\tsetTimeout(\n\t\t\tfunction() {\n\t\t\t\tif (document.activeElement === document.body) {\n\t\t\t\t\tthis.refs.root.focus();\n\t\t\t\t\tthis.forceUpdate();\n\t\t\t\t\tif (this.state.focusUpdates < 5) this.focusRoot();\n\t\t\t\t}\n\t\t\t}.bind(this),\n\t\t\t500\n\t\t);\n\t}\n\tdragFavicon(icon : string) : string {\n\t\tif (!icon) {\n\t\t\treturn this.state.dragFavicon;\n\t\t} else {\n\t\t\tthis.setState({ dragFavicon: icon });\n\t\t\treturn icon;\n\t\t}\n\t}\n\trateExtension() {\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\tbrowser.tabs.create({ url: \"https://addons.mozilla.org/en-US/firefox/addon/tab-manager-plus-for-firefox/\" });\n\t\t} else {\n\t\t\tbrowser.tabs.create({ url: \"https://chrome.google.com/webstore/detail/tab-manager-plus-for-chro/cnkdjjdmfiffagllbiiilooaoofcoeff\" });\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\tdonate() {\n\t\tbrowser.tabs.create({ url: \"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=67TZLSEGYQFFW\" });\n\t\tthis.forceUpdate();\n\t}\n\ttoggleOptions() {\n\t\tthis.setState({ optionsActive: !this.state.optionsActive });\n\t\tthis.forceUpdate();\n\t}\n\ttoggleColors(active : boolean, windowId : number) {\n\t\tthis.setState({\n\t\t\tcolorsActive: !!active ? windowId : 0\n\t\t})\n\t\tconsole.log(\"colorsActive\", active, windowId, this.state.colorsActive);\n\t\tthis.forceUpdate();\n\t}\n\n\tonTabCreated(tab : browser.Tabs.Tab) {\n\t\tthis.dirtyWindow(tab.windowId);\n\t}\n\n\tonTabRemoved(tabId : number, removeInfo : browser.Tabs.OnRemovedRemoveInfoType) {\n\t\tthis.dirtyWindow(removeInfo.windowId);\n\t}\n\n\tonTabDetached(tabId : number, detachInfo : browser.Tabs.OnDetachedDetachInfoType) {\n\t\tconst windowId = detachInfo.oldWindowId;\n\t\tthis.dirtyWindow(windowId);\n\t}\n\n\tonTabAttached(tabId : number, attachInfo: browser.Tabs.OnAttachedAttachInfoType) {\n\t\tconst windowId = attachInfo.newWindowId;\n\t\tthis.dirtyWindow(windowId);\n\t}\n\n\tdirtyWindow(windowId : number) {\n\t\tconst window = this.refs['window' + windowId] as Window;\n\t\tif (!window) return;\n\t\twindow.setState({dirty: true});\n\t}\n\n\tasync update() {\n\t\tconst windows : browser.Windows.Window[] = await browser.windows.getAll({ populate: true });\n\t\tconst sort_windows = await getLocalStorage(\"windowAge\", []);\n\n\t\twindows.sort(function(a, b) {\n\t\t\tvar aSort = sort_windows.indexOf(a.id);\n\t\t\tvar bSort = sort_windows.indexOf(b.id);\n\t\t\tif (a.state === \"minimized\" && b.state !== \"minimized\") return 1;\n\t\t\tif (b.state === \"minimized\" && a.state !== \"minimized\") return -1;\n\t\t\tif (aSort < bSort) return -1;\n\t\t\tif (aSort > bSort) return 1;\n\t\t\treturn 0;\n\t\t});\n\n\t\tthis.state.windowsbyid.clear();\n\t\tthis.state.tabsbyid.clear();\n\n\t\tthis.setState({\n\t\t\tlastOpenWindow: windows[0].id,\n\t\t\twindows: windows\n\t\t});\n\n\t\tlet tabCount = 0;\n\n\t\tfor (const window of windows) {\n\t\t\tthis.state.windowsbyid.set(window.id, window);\n\t\t\tfor (const tab of window.tabs) {\n\t\t\t\tthis.state.tabsbyid.set(tab.id, tab);\n\t\t\t\ttabCount++;\n\t\t\t}\n\t\t}\n\t\tfor (let id of this.state.selection.keys()) {\n\t\t\tif (!this.state.tabsbyid.has(id)) {\n\t\t\t\tthis.state.selection.delete(id);\n\t\t\t\tthis.setState({lastSelect: id});\n\t\t\t}\n\t\t}\n\t\tthis.setState({\n\t\t\ttabCount: tabCount\n\t\t});\n\t\t//this.state.searchLen = 0;\n\t\t// this.forceUpdate();\n\t}\n\tasync deleteTabs() {\n\t\tconst _this = this;\n\t\tconst tabs: browser.Tabs.Tab[] = [...this.state.selection.keys()].map(function(id) {\n\t\t\treturn _this.state.tabsbyid.get(id);\n\t\t});\n\t\tif (tabs.length) {\n\t\t\tbrowser.runtime.sendMessage({command: S.close_tabs, tabs: tabs});\n\t\t} else {\n\t\t\tconst t = await browser.tabs.query({ currentWindow: true, active: true });\n\t\t\tif (t && t.length > 0) {\n\t\t\t\tawait browser.tabs.remove(t[0].id);\n\t\t\t}\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\tdeleteTab(tabId : number) {\n\t\tbrowser.tabs.remove(tabId);\n\t}\n\tasync discardTabs() {\n\t\tconst _this = this;\n\t\tconst tabs : browser.Tabs.Tab[] = [...this.state.selection.keys()].map(function(id) {\n\t\t\treturn _this.state.tabsbyid.get(id);\n\t\t});\n\t\tif (tabs.length) {\n\t\t\tbrowser.runtime.sendMessage({command: S.discard_tabs, tabs: tabs});\n\t\t}\n\t\tthis.clearSelection();\n\t}\n\tdiscardTab(tabId) {\n\t\tbrowser.tabs.discard(tabId);\n\t}\n\tasync addWindow() {\n\t\tconst _this = this;\n\t\tconst count = this.state.selection.size;\n\t\tconst tabs : browser.Tabs.Tab[] = [...this.state.selection.keys()].map(function(id) {\n\t\t\treturn _this.state.tabsbyid.get(id);\n\t\t});\n\n\t\tconst incognito_tabs = tabs.filter(function(tab) {\n\t\t\treturn tab.incognito;\n\t\t});\n\n\t\tconst normal_tabs = tabs.filter(function(tab) {\n\t\t\treturn !tab.incognito;\n\t\t});\n\n\t\tif (count === 0) {\n\t\t\tawait browser.windows.create({});\n\t\t} else if (count === 1) {\n\t\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\t\tawait browser.runtime.sendMessage({command: S.focus_on_tab_and_window_delayed, tab: tabs[0]});\n\t\t\t}else{\n\t\t\t\tawait browser.runtime.sendMessage({command: S.focus_on_tab_and_window, tab: tabs[0]});\n\t\t\t}\n\t\t} else {\n\t\t\tif (normal_tabs.length > 0) {\n\t\t\t\tawait browser.runtime.sendMessage({command: S.create_window_with_tabs, tabs: normal_tabs, incognito: false});\n\t\t\t}\n\t\t\tif (incognito_tabs.length > 0) {\n\t\t\t\tawait browser.runtime.sendMessage({command: S.create_window_with_tabs, tabs: incognito_tabs, incognito: true});\n\t\t\t}\n\t\t}\n\t\tif (!!window.inPopup) window.close();\n\t}\n\tasync pinTabs() {\n\t\tconst _this = this;\n\t\tconst tabs : browser.Tabs.Tab[] = [...this.state.selection.keys()]\n\t\t\t.map(function(id) {\n\t\t\t\treturn _this.state.tabsbyid.get(id);\n\t\t\t})\n\t\t\t.sort(function(a, b) {\n\t\t\t\treturn a.index - b.index;\n\t\t\t});\n\t\tif (tabs.length) {\n\t\t\tif (tabs[0].pinned) tabs.reverse();\n\t\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\t\tawait browser.tabs.update(tabs[i].id, { pinned: !tabs[0].pinned });\n\t\t\t}\n\t\t} else {\n\t\t\tconst t = await browser.tabs.query({ currentWindow: true, active: true });\n\t\t\tif (t && t.length > 0) {\n\t\t\t\tawait browser.tabs.update(t[0].id, { pinned: !t[0].pinned });\n\t\t\t}\n\t\t}\n\t}\n\thighlightDuplicates(e) {\n\t\tthis.state.selection.clear();\n\t\tthis.state.hiddenTabs.clear();\n\n\t\tlet searchLen = 0;\n\t\tconst dupTabs = !this.state.dupTabs;\n\n\t\t(this.refs.searchbox as HTMLInputElement).value = \"\";\n\n\t\tif (!dupTabs) {\n\t\t\tthis.setState({\n\t\t\t\thiddenCount: 0,\n\t\t\t\tdupTabs: dupTabs,\n\t\t\t\tsearchLen: searchLen\n\t\t\t});\n\t\t\tthis.forceUpdate();\n\t\t\treturn;\n\t\t}\n\t\tlet hiddenCount = this.state.hiddenCount || 0;\n\t\tconst idList : number[] = [...this.state.tabsbyid.keys()];\n\t\tconst dup = [];\n\t\tfor (const id of idList) {\n\t\t\tvar tab = this.state.tabsbyid.get(id);\n\t\t\tfor (const id2 of idList) {\n\t\t\t\tif (id === id2) continue;\n\t\t\t\tvar tab2 = this.state.tabsbyid.get(id2);\n\t\t\t\tif (tab.url === tab2.url) {\n\t\t\t\t\tdup.push(id);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const dupItem of dup) {\n\t\t\tsearchLen++;\n\t\t\thiddenCount -= this.state.hiddenTabs.has(dupItem) ? 1 : 0;\n\t\t\tthis.state.selection.add(dupItem);\n\t\t\tthis.state.hiddenTabs.delete(dupItem);\n\t\t\tthis.setState({\n\t\t\t\tlastSelect: dupItem\n\t\t\t});\n\t\t}\n\t\tfor (const tab_id of idList) {\n\t\t\t// var tab = this.state.tabsbyid.get(tab_id);\n\t\t\tif (dup.indexOf(tab_id) === -1) {\n\t\t\t\thiddenCount += 1 - (this.state.hiddenTabs.has(tab_id) ? 1 : 0);\n\t\t\t\tthis.state.hiddenTabs.add(tab_id);\n\t\t\t\tthis.state.selection.delete(tab_id);\n\t\t\t\tthis.setState({\n\t\t\t\t\tlastSelect: tab_id\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (dup.length === 0) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"No duplicates found\",\n\t\t\t\tbottomText: \" \"\n\t\t\t});\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"Highlighted \" + dup.length + \" duplicate tabs\",\n\t\t\t\tbottomText: \"Press enter to move them to a new window\"\n\t\t\t});\n\t\t}\n\t\tthis.setState({\n\t\t\thiddenCount: hiddenCount\n\t\t});\n\t\tthis.setState({\n\t\t\tsearchLen: searchLen,\n\t\t\tdupTabs: dupTabs\n\t\t});\n\n\t\tthis.forceUpdate();\n\t}\n\tsearch(e) {\n\t\tlet hiddenCount = this.state.hiddenCount || 0;\n\t\tconst searchQuery = e.target.value || \"\";\n\t\tconst searchLen = searchQuery.length;\n\n\t\tlet searchType = \"normal\";\n\t\tlet searchTerms = [];\n\t\tif(searchQuery.indexOf(\" \") === -1) {\n\t\t\tsearchType = \"normal\";\n\t\t}else if(searchQuery.indexOf(\" OR \") > -1) {\n\t\t\tsearchTerms = searchQuery.split(\" OR \");\n\t\t\tsearchType = \"OR\";\n\t\t}else if(searchQuery.indexOf(\" \") > -1) {\n\t\t\tsearchTerms = searchQuery.split(\" \");\n\t\t\tsearchType = \"AND\";\n\t\t}\n\t\tif(searchType !== \"normal\") {\n\t\t\tsearchTerms = searchTerms.filter(function(entry) { return entry.trim() !== ''; });\n\t\t}\n\n\t\tif (!searchLen) {\n\t\t\tthis.state.selection.clear();\n\t\t\tthis.state.hiddenTabs.clear();\n\t\t\thiddenCount = 0;\n\t\t} else {\n\t\t\tlet idList : number[];\n\t\t\tconst lastSearchLen = this.state.searchLen;\n\t\t\tidList = [ ...this.state.tabsbyid.keys() ];\n\t\t\tif(searchType === \"normal\") {\n\t\t\t\tif (!lastSearchLen) {\n\t\t\t\t\tidList = [ ...this.state.tabsbyid.keys() ];\n\t\t\t\t} else if (lastSearchLen > searchLen) {\n\t\t\t\t\tidList = [ ...this.state.hiddenTabs.keys() ];\n\t\t\t\t} else if (lastSearchLen < searchLen) {\n\t\t\t\t\tidList = [ ...this.state.selection.keys() ];\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const id of idList) {\n\t\t\t\tconst tab = this.state.tabsbyid.get(id);\n\t\t\t\tlet tabSearchTerm;\n\t\t\t\tif (!!tab.title) tabSearchTerm = tab.title;\n\t\t\t\tif (!!tab.url) tabSearchTerm += \" \" + tab.url;\n\t\t\t\ttabSearchTerm = tabSearchTerm.toLowerCase();\n\t\t\t\tlet match = false;\n\t\t\t\tif(searchType === \"normal\") {\n\t\t\t\t\tmatch = (tabSearchTerm.indexOf(e.target.value.toLowerCase()) >= 0);\n\t\t\t\t}else if(searchType === \"OR\") {\n\t\t\t\t\tfor (let searchOR of searchTerms) {\n\t\t\t\t\t\tsearchOR = searchOR.trim().toLowerCase();\n\t\t\t\t\t\tif(tabSearchTerm.indexOf(searchOR) >= 0) {\n\t\t\t\t\t\t\tmatch = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}else if(searchType === \"AND\") {\n\t\t\t\t\tlet andMatch = true;\n\t\t\t\t\tfor (let searchAND of searchTerms) {\n\t\t\t\t\t\tsearchAND = searchAND.trim().toLowerCase();\n\t\t\t\t\t\tif(tabSearchTerm.indexOf(searchAND) >= 0) {\n\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tandMatch = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tmatch = andMatch;\n\t\t\t\t}\n\t\t\t\tif (match) {\n\t\t\t\t\thiddenCount -= this.state.hiddenTabs.has(id) ? 1 : 0;\n\t\t\t\t\tthis.state.selection.add(id);\n\t\t\t\t\tthis.state.hiddenTabs.delete(id);\n\t\t\t\t} else {\n\t\t\t\t\thiddenCount += 1 - (this.state.hiddenTabs.has(id) ? 1 : 0);\n\t\t\t\t\tthis.state.hiddenTabs.add(id);\n\t\t\t\t\tthis.state.selection.delete(id);\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tlastSelect: id\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthis.setState({\n\t\t\thiddenCount: hiddenCount,\n\t\t\tsearchLen: searchLen\n\t\t})\n\n\t\tconst matches = this.state.selection.size;\n\t\t// var matchtext = \"\";\n\t\tif (matches === 0 && searchLen > 0) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"No matches for '\" + searchQuery + \"'\",\n\t\t\t\tbottomText: \"\"\n\t\t\t});\n\t\t} else if (matches === 0) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"\",\n\t\t\t\tbottomText: \"\"\n\t\t\t});\n\t\t} else if (matches > 1) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: this.state.selection.size + \" matches for '\" + searchQuery + \"'\",\n\t\t\t\tbottomText: \"Press enter to move them to a new window\"\n\t\t\t});\n\t\t} else if (matches === 1) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: this.state.selection.size + \" match for '\" + searchQuery + \"'\",\n\t\t\t\tbottomText: \"Press enter to switch to the tab\"\n\t\t\t});\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\tclearSelection() {\n\t\tthis.state.selection.clear();\n\t\tthis.setState({\n\t\t\tlastSelect: 0\n\t\t});\n\t}\n\tcheckKey(e) {\n\t\t// enter\n\t\tif (e.keyCode === 13) this.addWindow();\n\t\t// escape key\n\t\tif (e.keyCode === 27) {\n\t\t\tif(this.state.searchLen > 0 || this.state.selection.size > 0) {\n\t\t\t\t// stop popup from closing if we have search text or selection active\n\t\t\t\te.nativeEvent.preventDefault();\n\t\t\t\te.nativeEvent.stopPropagation();\n\t\t\t}\n\n\t\t\tthis.state.hiddenTabs.clear();\n\t\t\tthis.setState({\n\t\t\t\tsearchLen: 0\n\t\t\t});\n\n\t\t\t(this.refs.searchbox as HTMLInputElement).value = \"\";\n\t\t\tthis.clearSelection();\n\t\t}\n\t\t// any typed keys\n\t\tif (\n\t\t\t(e.keyCode >= 48 && e.keyCode <= 57) ||\n\t\t\t(e.keyCode >= 65 && e.keyCode <= 90) ||\n\t\t\t(e.keyCode >= 186 && e.keyCode <= 192) ||\n\t\t\t(e.keyCode >= 219 && e.keyCode <= 22) ||\n\t\t\te.keyCode === 8 ||\n\t\t\te.keyCode === 46 ||\n\t\t\te.keyCode === 32\n\t\t) {\n\t\t\tif (document.activeElement !== this.refs.searchbox) {\n\t\t\t\tvar activeInputElement = document.activeElement as HTMLInputElement;\n\t\t\t\tconsole.log(activeInputElement);\n\t\t\t\tconsole.log(this.refs.searchbox);\n\t\t\t\tif (activeInputElement.type !== \"text\" && activeInputElement.type !== \"input\") {\n\t\t\t\t\t(this.refs.searchbox as HTMLElement)?.focus();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// arrow keys\n\t\t/*\n\t\t\tleft arrow 37\n\t\t\tup arrow 38\n\t\t\tright arrow 39\n\t\t\tdown arrow 40\n\t\t*/\n\t\tif (e.keyCode >= 37 && e.keyCode <= 40) {\n\t\t\tif (document.activeElement !== this.refs.windowcontainer && document.activeElement !== this.refs.searchbox) {\n\t\t\t\tconsole.log(activeInputElement);\n\t\t\t\tconsole.log(this.refs.windowcontainer);\n\t\t\t\t(this.refs.windowcontainer as HTMLElement)?.focus();\n\t\t\t}\n\n\t\t\tif (document.activeElement !== this.refs.searchbox || !((this.refs.searchbox as HTMLInputElement).value)) {\n\t\t\t\tlet goLeft = e.keyCode === 37;\n\t\t\t\tlet goRight = e.keyCode === 39;\n\t\t\t\tlet goUp = e.keyCode === 38;\n\t\t\t\tlet goDown = e.keyCode === 40;\n\t\t\t\tif (this.state.layout === \"vertical\") {\n\t\t\t\t\tgoLeft = e.keyCode === 38;\n\t\t\t\t\tgoRight = e.keyCode === 40;\n\t\t\t\t\tgoUp = e.keyCode === 37;\n\t\t\t\t\tgoDown = e.keyCode === 39;\n\t\t\t\t}\n\t\t\t\tif (goLeft || goRight || goUp || goDown) {\n\t\t\t\t\te.nativeEvent.preventDefault();\n\t\t\t\t\te.nativeEvent.stopPropagation();\n\t\t\t\t}\n\t\t\t\tconst altKey = e.nativeEvent.metaKey || e.nativeEvent.altKey || e.nativeEvent.shiftKey || e.nativeEvent.ctrlKey;\n\t\t\t\tif (goLeft || goRight) {\n\t\t\t\t\tlet selectedTabs = [...this.state.selection.keys()];\n\t\t\t\t\tif (!altKey && selectedTabs.length > 1) {\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet found = false;\n\t\t\t\t\t\tlet selectedNext = false;\n\t\t\t\t\t\tlet selectedTab = 0;\n\t\t\t\t\t\tlet first = 0;\n\t\t\t\t\t\tlet prev = 0;\n\t\t\t\t\t\tlet last = 0;\n\t\t\t\t\t\tif (selectedTabs.length === 1) {\n\t\t\t\t\t\t\tselectedTab = selectedTabs[0];\n\t\t\t\t\t\t\t// console.log(\"one tab\", selectedTab);\n\t\t\t\t\t\t} else if (selectedTabs.length > 1) {\n\t\t\t\t\t\t\tif (!!this.state.lastSelect) {\n\t\t\t\t\t\t\t\tselectedTab = this.state.lastSelect;\n\t\t\t\t\t\t\t\t// console.log(\"more tabs, last\", selectedTab);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tselectedTab = selectedTabs[0];\n\t\t\t\t\t\t\t\t// console.log(\"more tabs, first\", selectedTab);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (selectedTabs.length === 0 && !!this.state.lastSelect) {\n\t\t\t\t\t\t\tselectedTab = this.state.lastSelect;\n\t\t\t\t\t\t\t// console.log(\"no tabs, last\", selectedTab);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!!this.state.lastDirection) {\n\t\t\t\t\t\t\tif (goRight && this.state.lastDirection === \"goRight\") {\n\t\t\t\t\t\t\t} else if (goLeft && this.state.lastDirection === \"goLeft\") {\n\t\t\t\t\t\t\t} else if (selectedTabs.length > 1) {\n\t\t\t\t\t\t\t\t// console.log(\"turned back, last\", this.state.lastSelect, selectedTab);\n\t\t\t\t\t\t\t\tthis.select(this.state.lastSelect);\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\tlastDirection: \"\"\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\tlastDirection: \"\"\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!this.state.lastDirection) {\n\t\t\t\t\t\t\tif (goRight) this.setState({ lastDirection: \"goRight\" });\n\t\t\t\t\t\t\tif (goLeft) this.setState({ lastDirection: \"goLeft\" });\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const _w of this.state.windows) {\n\t\t\t\t\t\t\tif (found) break;\n\t\t\t\t\t\t\tif (_w.state !== \"minimized\") {\n\t\t\t\t\t\t\t\tfor (const _t of _w.tabs) {\n\t\t\t\t\t\t\t\t\tlast = _t.id;\n\t\t\t\t\t\t\t\t\tif (!first) first = _t.id;\n\t\t\t\t\t\t\t\t\tif (!selectedTab) {\n\t\t\t\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\t\t\t\tthis.select(_t.id);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t} else if (selectedTab === _t.id) {\n\t\t\t\t\t\t\t\t\t\t// console.log(\"select next one\", selectedNext);\n\t\t\t\t\t\t\t\t\t\tif (goRight) {\n\t\t\t\t\t\t\t\t\t\t\tselectedNext = true;\n\t\t\t\t\t\t\t\t\t\t} else if (!!prev) {\n\t\t\t\t\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\t\t\t\t\tthis.select(prev);\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if (selectedNext) {\n\t\t\t\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\t\t\t\tthis.select(_t.id);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tprev = _t.id;\n\t\t\t\t\t\t\t\t\t// console.log(_t, _t.id === selectedTab);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const _w of this.state.windows) {\n\t\t\t\t\t\t\tif (found) break;\n\t\t\t\t\t\t\tif (_w.state === \"minimized\") {\n\t\t\t\t\t\t\t\tfor (const _t of _w.tabs) {\n\t\t\t\t\t\t\t\t\tlast = _t.id;\n\t\t\t\t\t\t\t\t\tif (!first) first = _t.id;\n\t\t\t\t\t\t\t\t\tif (!selectedTab) {\n\t\t\t\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\t\t\t\tthis.select(_t.id);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t} else if (selectedTab === _t.id) {\n\t\t\t\t\t\t\t\t\t\tif (goRight) {\n\t\t\t\t\t\t\t\t\t\t\tselectedNext = true;\n\t\t\t\t\t\t\t\t\t\t} else if (!!prev) {\n\t\t\t\t\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\t\t\t\t\tthis.select(prev);\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if (selectedNext) {\n\t\t\t\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\t\t\t\tthis.select(_t.id);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tprev = _t.id;\n\t\t\t\t\t\t\t\t\t// console.log(_t, _t.id === selectedTab);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!found && goRight && !!first) {\n\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\tthis.select(first);\n\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!found && goLeft && !!last) {\n\t\t\t\t\t\t\tif (!altKey) this.state.selection.clear();\n\t\t\t\t\t\t\tthis.select(last);\n\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (goUp || goDown) {\n\t\t\t\t\tlet selectedTabs = [...this.state.selection.keys()];\n\t\t\t\t\tif (selectedTabs.length > 1) {\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet found = false;\n\t\t\t\t\t\tlet selectedNext = false;\n\t\t\t\t\t\tlet selectedTab = -1;\n\t\t\t\t\t\tlet first = 0;\n\t\t\t\t\t\tlet prev = 0;\n\t\t\t\t\t\tlet last = 0;\n\t\t\t\t\t\tlet tabPosition = -1;\n\t\t\t\t\t\tlet i = -1;\n\t\t\t\t\t\tif (selectedTabs.length === 1) {\n\t\t\t\t\t\t\tselectedTab = selectedTabs[0];\n\t\t\t\t\t\t\t// console.log(selectedTab);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const _w of this.state.windows) {\n\t\t\t\t\t\t\ti = 0;\n\t\t\t\t\t\t\tif (found) break;\n\t\t\t\t\t\t\tif (_w.state !== \"minimized\") {\n\t\t\t\t\t\t\t\tif (!first) first = _w.id;\n\t\t\t\t\t\t\t\tfor (const _t of _w.tabs) {\n\t\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t\t\tlast = _w.id;\n\t\t\t\t\t\t\t\t\tif (!selectedTab) {\n\t\t\t\t\t\t\t\t\t\tthis.selectWindowTab(_w.id, tabPosition);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t} else if (selectedTab === _t.id) {\n\t\t\t\t\t\t\t\t\t\ttabPosition = i;\n\t\t\t\t\t\t\t\t\t\t// console.log(\"found tab\", _w.id, _t.id, selectedTab, i);\n\t\t\t\t\t\t\t\t\t\tif (goDown) {\n\t\t\t\t\t\t\t\t\t\t\t// console.log(\"select next window \", selectedNext, tabPosition);\n\t\t\t\t\t\t\t\t\t\t\tselectedNext = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t} else if (!!prev) {\n\t\t\t\t\t\t\t\t\t\t\t// console.log(\"select prev window \", prev, tabPosition);\n\t\t\t\t\t\t\t\t\t\t\tthis.selectWindowTab(prev, tabPosition);\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if (selectedNext) {\n\t\t\t\t\t\t\t\t\t\t// console.log(\"selecting next window \", _w.id, tabPosition);\n\t\t\t\t\t\t\t\t\t\tthis.selectWindowTab(_w.id, tabPosition);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// console.log(_t, _t.id === selectedTab);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tprev = _w.id;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const _w of this.state.windows) {\n\t\t\t\t\t\t\ti = 0;\n\t\t\t\t\t\t\tif (found) break;\n\t\t\t\t\t\t\tif (_w.state === \"minimized\") {\n\t\t\t\t\t\t\t\tif (!first) first = _w.id;\n\t\t\t\t\t\t\t\tfor (const _t of _w.tabs) {\n\t\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t\t\tlast = _w.id;\n\t\t\t\t\t\t\t\t\tif (!selectedTab) {\n\t\t\t\t\t\t\t\t\t\tthis.selectWindowTab(_w.id, tabPosition);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t} else if (selectedTab === _t.id) {\n\t\t\t\t\t\t\t\t\t\ttabPosition = i;\n\t\t\t\t\t\t\t\t\t\t// console.log(\"found tab\", _w.id, _t.id, selectedTab, i);\n\t\t\t\t\t\t\t\t\t\tif (goDown) {\n\t\t\t\t\t\t\t\t\t\t\t// console.log(\"select next window \", selectedNext, tabPosition);\n\t\t\t\t\t\t\t\t\t\t\tselectedNext = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t} else if (!!prev) {\n\t\t\t\t\t\t\t\t\t\t\t// console.log(\"select prev window \", prev, tabPosition);\n\t\t\t\t\t\t\t\t\t\t\tthis.selectWindowTab(prev, tabPosition);\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if (selectedNext) {\n\t\t\t\t\t\t\t\t\t\t// console.log(\"selecting next window \", _w.id, tabPosition);\n\t\t\t\t\t\t\t\t\t\tthis.selectWindowTab(_w.id, tabPosition);\n\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// console.log(_t, _t.id === selectedTab);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tprev = _w.id;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// console.log(found, goDown, first);\n\t\t\t\t\t\tif (!found && goDown && !!first) {\n\t\t\t\t\t\t\t// console.log(\"go first\", first);\n\t\t\t\t\t\t\tthis.state.selection.clear();\n\t\t\t\t\t\t\tthis.selectWindowTab(first, tabPosition);\n\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// console.log(found, goUp, last);\n\t\t\t\t\t\tif (!found && goUp && !!last) {\n\t\t\t\t\t\t\t// console.log(\"go last\", last);\n\t\t\t\t\t\t\tthis.state.selection.clear();\n\t\t\t\t\t\t\tthis.selectWindowTab(last, tabPosition);\n\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// page up / page down\n\t\tif (e.keyCode === 33 || e.keyCode === 34) {\n\t\t\tif (document.activeElement != this.refs.windowcontainer) {\n\t\t\t\t(this.refs.windowcontainer as HTMLElement).focus();\n\t\t\t}\n\t\t}\n\t}\n\tselectWindowTab(windowId, tabPosition) {\n\t\tif (!tabPosition || tabPosition < 1) tabPosition = 1;\n\t\tfor (let _w of this.state.windows) {\n\t\t\tif (_w.id !== windowId) continue;\n\t\t\tlet i = 0;\n\t\t\tfor (let _t of _w.tabs) {\n\t\t\t\ti++;\n\t\t\t\tif ((_w.tabs.length >= tabPosition && tabPosition === i) || (_w.tabs.length < tabPosition && _w.tabs.length === i)) {\n\t\t\t\t\tthis.state.selection.clear();\n\t\t\t\t\tthis.select(_t.id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tscrollTo(what : string, id : number) {\n\t\tvar els = document.getElementById(what + \"-\" + id);\n\t\tif (!!els) {\n\t\t\tif (!this.elVisible(els)) {\n\t\t\t\tels.scrollIntoView({ behavior: this.state.animations ? \"smooth\" : \"instant\", block: \"center\", inline: \"nearest\" });\n\t\t\t}\n\t\t}\n\t}\n\tasync changelayout(layout) {\n\t\tvar newLayout;\n\t\tif (layout && typeof (layout) === \"string\") {\n\t\t\tnewLayout = layout;\n\t\t} else {\n\t\t\tnewLayout = this.nextlayout();\n\t\t}\n\t\tawait setLocalStorage(\"layout\", newLayout);\n\n\t\tthis.setState({\n\t\t\tlayout: newLayout,\n\t\t\ttopText: \"Switched to \" + this.readablelayout(this.state.layout) + \" view\",\n\t\t\tbottomText: \" \"\n\t\t});\n\n\t\tthis.forceUpdate();\n\t}\n\tnextlayout() {\n\t\tswitch (this.state.layout) {\n\t\t\tcase \"blocks\":\n\t\t\t\treturn \"blocks-big\";\n\t\t\tcase \"blocks-big\":\n\t\t\t\treturn \"horizontal\";\n\t\t\tcase \"horizontal\":\n\t\t\t\treturn \"vertical\";\n\t\t\tdefault:\n\t\t\t\treturn \"blocks\";\n\t\t}\n\t}\n\treadablelayout(layout) {\n\t\tswitch (layout) {\n\t\t\tcase \"blocks\":\n\t\t\t\treturn \"Block\";\n\t\t\tcase \"blocks-big\":\n\t\t\t\treturn \"Big Block\";\n\t\t\tcase \"horizontal\":\n\t\t\t\treturn \"Horizontal\";\n\t\t\tdefault:\n\t\t\t\treturn \"Vertical\";\n\t\t}\n\t}\n\tselect(id : number) {\n\t\tif (this.state.selection.has(id)) {\n\t\t\tthis.state.selection.delete(id);\n\t\t\tthis.setState({\n\t\t\t\tlastSelect: id\n\t\t\t});\n\t\t} else {\n\t\t\tthis.state.selection.add(id);\n\t\t\tthis.setState({\n\t\t\t\tlastSelect: id\n\t\t\t});\n\t\t}\n\t\tthis.scrollTo('tab', id);\n\t\tvar tab = this.state.tabsbyid.get(id);\n\t\tif(!!this.refs['window' + tab.windowId] && !!(this.refs['window' + tab.windowId] as Window).refs['tab' + id]) {\n\t\t\t((this.refs['window' + tab.windowId] as Window).refs['tab' + id] as Tab).resolveFavIconUrl();\n\t\t}\n\n\t\tconsole.log(this.state.selection);\n\t\tvar selected = this.state.selection.size;\n\t\tif (selected === 0) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"No tabs selected\",\n\t\t\t\tbottomText: \" \"\n\t\t\t});\n\t\t} else if (selected === 1) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"Selected \" + selected + \" tab\",\n\t\t\t\tbottomText: \"Press enter to switch to it\"\n\t\t\t});\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"Selected \" + selected + \" tabs\",\n\t\t\t\tbottomText: \"Press enter to move them to a new window\"\n\t\t\t});\n\t\t}\n\t}\n\tselectTo(id : number, tabs : browser.Tabs.Tab[]) {\n\t\tlet activate = false;\n\t\tconst lastSelect = this.state.lastSelect;\n\t\tif (id === lastSelect) {\n\t\t\tthis.select(id);\n\t\t\treturn;\n\t\t}\n\t\tif (!!lastSelect) {\n\t\t\tif (this.state.selection.has(lastSelect)) {\n\t\t\t\tactivate = true;\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.state.selection.has(id)) {\n\t\t\t\tactivate = false;\n\t\t\t} else {\n\t\t\t\tactivate = true;\n\t\t\t}\n\t\t}\n\n\t\tlet rangeIndex1 : number;\n\t\tlet rangeIndex2 : number;\n\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\tif (tabs[i].id === id) {\n\t\t\t\trangeIndex1 = i;\n\t\t\t}\n\t\t\tif (!!lastSelect && tabs[i].id === lastSelect) {\n\t\t\t\trangeIndex2 = i;\n\t\t\t}\n\t\t}\n\t\tif (!!lastSelect && !rangeIndex2) {\n\t\t\tthis.select(id);\n\t\t\treturn;\n\t\t}\n\t\tif (!rangeIndex2) {\n\t\t\tconst neighbours = [];\n\t\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\t\tconst tabId = tabs[i].id;\n\t\t\t\tif (tabId !== id) {\n\t\t\t\t\tif (this.state.selection.has(tabId)) {\n\t\t\t\t\t\tneighbours.push(tabId);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (activate) {\n\t\t\t\t// find closest selected item that's not connected\n\t\t\t\tlet leftSibling = 0;\n\t\t\t\tlet rightSibling = tabs.length - 1;\n\t\t\t\tfor (let i = 0; i < rangeIndex1; i++) {\n\t\t\t\t\tif (neighbours.indexOf(i) > -1) {\n\t\t\t\t\t\tleftSibling = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let i = tabs.length - 1; i > rangeIndex1; i--) {\n\t\t\t\t\tif (neighbours.indexOf(i) > -1) {\n\t\t\t\t\t\trightSibling = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet diff1 = rangeIndex1 - leftSibling;\n\t\t\t\tlet diff2 = rightSibling - rangeIndex1;\n\t\t\t\tif (diff1 > diff2) {\n\t\t\t\t\trangeIndex2 = rightSibling;\n\t\t\t\t} else {\n\t\t\t\t\trangeIndex2 = leftSibling;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// find furthest selected item that's connected\n\t\t\t\tlet leftSibling = rangeIndex1;\n\t\t\t\tlet rightSibling = rangeIndex1;\n\t\t\t\tfor (let i = rangeIndex1; i > 0; i--) {\n\t\t\t\t\tif (neighbours.indexOf(i) > -1) {\n\t\t\t\t\t\tleftSibling = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let i = rangeIndex1; i < tabs.length; i++) {\n\t\t\t\t\tif (neighbours.indexOf(i) > -1) {\n\t\t\t\t\t\trightSibling = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet diff1 = rangeIndex1 - leftSibling;\n\t\t\t\tlet diff2 = rightSibling - rangeIndex1;\n\t\t\t\tif (diff1 > diff2) {\n\t\t\t\t\trangeIndex2 = leftSibling;\n\t\t\t\t} else {\n\t\t\t\t\trangeIndex2 = rightSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.setState({\n\t\t\tlastSelect: tabs[rangeIndex2].id\n\t\t});\n\t\tif (rangeIndex2 < rangeIndex1) {\n\t\t\tlet r1 = rangeIndex2;\n\t\t\tlet r2 = rangeIndex1;\n\t\t\trangeIndex1 = r1;\n\t\t\trangeIndex2 = r2;\n\t\t}\n\n\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\tif (i >= rangeIndex1 && i <= rangeIndex2) {\n\t\t\t\tconst _tab_id = tabs[i].id;\n\t\t\t\tif (activate) {\n\t\t\t\t\tthis.state.selection.add(_tab_id);\n\t\t\t\t} else {\n\t\t\t\t\tthis.state.selection.delete(_tab_id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.scrollTo('tab', this.state.lastSelect);\n\n\t\tconst selected = this.state.selection.size;\n\t\tif (selected === 0) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"No tabs selected\",\n\t\t\t\tbottomText: \" \"\n\t\t\t});\n\t\t} else if (selected === 1) {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"Selected \" + selected + \" tab\",\n\t\t\t\tbottomText: \"Press enter to switch to it\"\n\t\t\t});\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\ttopText: \"Selected \" + selected + \" tabs\",\n\t\t\t\tbottomText: \"Press enter to move them to a new window\"\n\t\t\t});\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\tdrag(e : React.DragEvent, id : number) {\n\t\tif (!this.state.selection.has(id)) {\n\t\t\tthis.state.selection.add(id);\n\t\t\tthis.setState({\n\t\t\t\tlastSelect: id\n\t\t\t});\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\tasync drop(id : number, before : boolean) {\n\t\tvar _this = this;\n\t\tvar tab : browser.Tabs.Tab = this.state.tabsbyid.get(id);\n\t\tvar tabs : browser.Tabs.Tab[] = [...this.state.selection.keys()].map(function(id) {\n\t\t\treturn _this.state.tabsbyid.get(id);\n\t\t});\n\t\tvar index = tab.index + (before ? 0 : 1);\n\n\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\tconst t : browser.Tabs.Tab = tabs[i];\n\t\t\tawait browser.tabs.move(t.id, { windowId: tab.windowId, index: index });\n\t\t\tawait browser.tabs.update(t.id, { pinned: t.pinned });\n\t\t}\n\t\tthis.state.selection.clear();\n\t\tthis.update();\n\t}\n\tasync dropWindow(windowId : number) {\n\t\tvar _this = this;\n\t\tvar tabs : browser.Tabs.Tab[] = [...this.state.selection.keys()].map(function(id) {\n\t\t\treturn _this.state.tabsbyid.get(id);\n\t\t});\n\n\t\tbrowser.runtime.sendMessage({command: S.move_tabs_to_window, window_id: windowId, tabs: tabs});\n\n\t\tthis.state.selection.clear();\n\t}\n\tasync changeTabLimit(e : React.ChangeEvent) {\n\t\tvar _tab_limit = parseInt(e.target.value);\n\t\tthis.setState({\n\t\t\ttabLimit: _tab_limit\n\t\t});\n\t\tawait setLocalStorage(\"tabLimit\", _tab_limit);\n\t\tthis.tabLimitText();\n\t\tthis.forceUpdate();\n\t}\n\ttabLimitText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Limit the number of tabs per window. Will move new tabs into a new window instead. 0 to turn off\"\n\t\t});\n\t}\n\tasync changeTabWidth(e : React.ChangeEvent) {\n\t\tvar _tab_width = parseInt(e.target.value);\n\t\tthis.setState({\n\t\t\ttabWidth: _tab_width\n\t\t});\n\t\tawait setLocalStorage(\"tabWidth\", _tab_width);\n\t\tdocument.body.style.width = _tab_width + \"px\";\n\t\tthis.tabWidthText();\n\t\tthis.forceUpdate();\n\t}\n\ttabWidthText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Change the width of this window. 800 by default.\"\n\t\t});\n\t}\n\tasync changeTabHeight(e : React.ChangeEvent) {\n\t\tvar _tab_height = parseInt(e.target.value);\n\t\tthis.setState({\n\t\t\ttabHeight: _tab_height\n\t\t});\n\t\tawait setLocalStorage(\"tabHeight\", _tab_height);\n\t\tdocument.body.style.height = _tab_height + \"px\";\n\t\tthis.tabHeightText();\n\t\tthis.forceUpdate();\n\t}\n\ttabHeightText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Change the height of this window. 600 by default.\"\n\t\t});\n\t}\n\tasync toggleAnimations() {\n\t\tvar _animations = !this.state.animations;\n\t\tthis.setState({ animations: _animations });\n\t\tawait setLocalStorage(\"animations\", _animations);\n\t\tthis.animationsText();\n\t\tthis.forceUpdate();\n\t}\n\tanimationsText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Enables/disables animations. Default : on\"\n\t\t});\n\t}\n\tasync toggleWindowTitles() {\n\t\tvar _window_titles = !this.state.windowTitles;\n\t\tthis.setState({windowTitles: _window_titles});\n\t\tawait setLocalStorage(\"windowTitles\", _window_titles);\n\t\tthis.windowTitlesText();\n\t\tthis.forceUpdate();\n\t}\n\twindowTitlesText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Enables/disables window titles. Default : on\"\n\t\t});\n\t}\n\tasync toggleCompact() {\n\t\tvar _compact = !this.state.compact;\n\t\tthis.setState({compact: _compact});\n\t\tawait setLocalStorage(\"compact\", _compact);\n\t\tthis.compactText();\n\t\tthis.forceUpdate();\n\t}\n\tcompactText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Compact mode is a more compressed layout. Default : off\"\n\t\t});\n\t}\n\tasync toggleDark() {\n\t\tvar _dark = !this.state.dark;\n\t\tthis.setState({dark: _dark});\n\t\tawait setLocalStorage(\"dark\", _dark);\n\n\t\tthis.darkText();\n\t\tif (_dark) {\n\t\t\tdocument.body.className = \"dark\";\n\t\t\tdocument.documentElement.className = \"dark\";\n\t\t} else {\n\t\t\tdocument.body.className = \"\";\n\t\t\tdocument.documentElement.className = \"\";\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\tdarkText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Dark mode inverts the layout - better on the eyes. Default : off\"\n\t\t});\n\t}\n\tasync toggleTabActions() {\n\t\tvar _tabactions = !this.state.tabactions;\n\t\tthis.setState({tabactions: _tabactions});\n\t\tawait setLocalStorage(\"tabactions\", _tabactions);\n\t\tthis.tabActionsText();\n\t\tthis.forceUpdate();\n\t}\n\ttabActionsText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Adds 'Open a new tab' and 'Close this window' option to each window. Default : on\"\n\t\t});\n\t}\n\tasync toggleBadge() {\n\t\tvar _badge = !this.state.badge;\n\t\tthis.setState({badge: _badge});\n\t\tawait setLocalStorage(\"badge\", _badge);\n\t\tthis.badgeText();\n\t\tbrowser.runtime.sendMessage({command: S.update_tab_count});\n\t\tthis.forceUpdate();\n\t}\n\tbadgeText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Shows the number of open tabs on the Tab Manager icon. Default : on\"\n\t\t});\n\t}\n\tasync toggleOpenInOwnTab() {\n\t\tvar _openInOwnTab = !this.state.openInOwnTab;\n\t\tthis.setState({openInOwnTab: _openInOwnTab});\n\t\tawait setLocalStorage(\"openInOwnTab\", _openInOwnTab);\n\t\tthis.openInOwnTabText();\n\t\tbrowser.runtime.sendMessage({ command: S.reload_popup_controls });\n\t\tthis.forceUpdate();\n\t}\n\topenInOwnTabText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Open the Tab Manager by default in own tab, or as a popup?\"\n\t\t});\n\t}\n\tasync toggleSessions() {\n\t\tvar _sessionsFeature = !this.state.sessionsFeature;\n\t\tthis.setState({sessionsFeature: _sessionsFeature});\n\t\tawait setLocalStorage(\"sessionsFeature\", _sessionsFeature);\n\t\tthis.sessionsText();\n\t\tthis.forceUpdate();\n\t}\n\tsessionsText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Allows you to save/restore windows into sessions. ( Tab History will be lost ) Default : off\"\n\t\t});\n\t}\n\texportSessions() {\n\t\tif (this.state.sessions.length === 0) {\n\t\t\twindow.alert(\"You have currently no windows saved for later. There is nothing to export.\");\n\t\t\treturn;\n\t\t}\n\t\tvar exportName = \"tab-manager-plus-backup\";\n\t\tvar today = new Date();\n\t\tvar y = today.getFullYear();\n\t\t// JavaScript months are 0-based.\n\t\tvar m = (\"0\" + (today.getMonth() + 1)).slice(-2);\n\t\tvar d = (\"0\" + today.getDate()).slice(-2);\n\t\tvar h = (\"0\" + today.getHours()).slice(-2);\n\t\tvar mi = (\"0\" + today.getMinutes()).slice(-2);\n\t\tvar s = (\"0\" + today.getSeconds()).slice(-2);\n\t\texportName += \"-\" + y + m + d + \"-\" + h + mi + \"-\" + s;\n\t\tvar dataStr = \"data:text/json;charset=utf-8,\" + encodeURIComponent(JSON.stringify(this.state.sessions, null, 2));\n\t\tvar downloadAnchorNode = document.createElement(\"a\");\n\t\tdownloadAnchorNode.setAttribute(\"href\", dataStr);\n\t\tdownloadAnchorNode.setAttribute(\"download\", exportName + \".json\");\n\t\tdocument.body.appendChild(downloadAnchorNode); // required for firefox\n\t\tdownloadAnchorNode.click();\n\t\tdownloadAnchorNode.remove();\n\t\tthis.exportSessionsText();\n\t\tthis.forceUpdate();\n\t}\n\texportSessionsText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Allows you to export your saved windows to an external backup\"\n\t\t});\n\t}\n\timportSessions(evt : React.ChangeEvent) {\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\tif(window.inPopup) {\n\t\t\t\twindow.alert(\"Due to a Firefox bug session import does not work in the popup. Please use the options screen or open Tab Manager Plus in its' own tab\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\tlet inputField = evt.target; // #session_import\n\t\t\tlet files = evt.target.files;\n\t\t\tif (!files.length) {\n\t\t\t\talert(\"No file selected!\");\n\t\t\t\tthis.setState({ bottomText: \"Error: Could not read the backup file!\" });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet file = files[0];\n\t\t\tlet reader = new FileReader();\n\n\t\t\treader.onload = async event => {\n\t\t\t\t//console.log('FILE CONTENT', event.target.result);\n\t\t\t\tvar backupFile;\n\t\t\t\ttry {\n\t\t\t\t\tbackupFile = JSON.parse(event.target.result.toString());\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconsole.error(err);\n\t\t\t\t\twindow.alert(err);\n\t\t\t\t\tthis.setState({ bottomText: \"Error: Could not read the backup file!\" });\n\t\t\t\t}\n\t\t\t\tif (!!backupFile && backupFile.length > 0) {\n\t\t\t\t\tvar success = backupFile.length;\n\t\t\t\t\tfor (let i = 0; i < backupFile.length; i++) {\n\t\t\t\t\t\tvar newSession = backupFile[i];\n\t\t\t\t\t\tif (newSession.windowsInfo && newSession.tabs && newSession.id) {\n\t\t\t\t\t\t\tlet sessions = await getLocalStorage('sessions', {});\n\t\t\t\t\t\t\tsessions[newSession.id] = newSession;\n\t\t\t\t\t\t\t//this.state.sessions.push(obj);\n\n\t\t\t\t\t\t\tawait setLocalStorage('sessions', sessions).catch(function(err) {\n\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\tconsole.error(err.message);\n\t\t\t\t\t\t\t\tsuccess--;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t//console.log(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.setState({ bottomText: success + \" windows successfully restored!\" });\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ bottomText: \"Error: Could not restore any windows from the backup file!\" });\n\t\t\t\t}\n\t\t\t\tinputField.value = \"\";\n\t\t\t\tthis.sessionSync();\n\t\t\t};\n\t\t\treader.readAsText(file);\n\t\t} catch (err) {\n\t\t\tconsole.error(err);\n\t\t\twindow.alert(err);\n\t\t}\n\t\tthis.importSessionsText();\n\t\tthis.forceUpdate();\n\t}\n\timportSessionsText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Allows you to restore your saved windows from an external backup\"\n\t\t});\n\t}\n\tasync toggleHide() {\n\n\t\tvar _hide_windows = this.state.hideWindows;\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\t_hide_windows = false;\n\t\t} else {\n\t\t\tvar granted = await chrome.permissions.request({ permissions: [\"system.display\"] });\n\t\t\tif (granted) {\n\t\t\t\t_hide_windows = !_hide_windows;\n\t\t\t} else {\n\t\t\t\t_hide_windows = false;\n\t\t\t}\n\t\t}\n\n\t\tawait setLocalStorage(\"hideWindows\", _hide_windows);\n\t\tthis.setState({\n\t\t\thideWindows: _hide_windows\n\t\t});\n\t\tthis.hideText();\n\t\tthis.forceUpdate();\n\t}\n\thideText() {\n\t\tthis.setState({\n\t\t\tbottomText: \"Automatically minimizes inactive chrome windows. Default : off\"\n\t\t});\n\t}\n\tasync toggleFilterMismatchedTabs() {\n\t\tvar _filter_tabs = !this.state.filterTabs;\n\t\tthis.setState({\n\t\t\tfilterTabs: _filter_tabs\n\t\t});\n\t\tawait setLocalStorage(\"filter-tabs\", _filter_tabs);\n\t\tthis.forceUpdate();\n\t}\n\tgetTip() {\n\t\tvar tips = [\n\t\t\t\"You can right click on a tab to select it\",\n\t\t\t\"Press enter to move all selected tabs to a new window\",\n\t\t\t\"Middle click to close a tab\",\n\t\t\t\"Tab Manager Plus loves saving time\",\n\t\t\t\"To see incognito tabs, enable incognito access in the extension settings\",\n\t\t\t\"You can drag and drop tabs to other windows\",\n\t\t\t\"You can type to search right away\",\n\t\t\t\"You can search for different tabs : google OR yahoo\"\n\t\t];\n\n\t\treturn \"Tip: \" + tips[Math.floor(Math.random() * tips.length)];\n\t}\n\telVisible(elem : HTMLElement) {\n\t\tif (!(elem instanceof Element)) throw Error(\"DomUtil: elem is not an element.\");\n\t\tvar style = getComputedStyle(elem);\n\t\tif (style.display === \"none\") return false;\n\t\tif (style.visibility !== \"visible\") return false;\n\t\tlet _opacity : number = parseFloat(style.opacity);\n\t\tif (_opacity < 0.1) return false;\n\t\tif (elem.offsetWidth + elem.offsetHeight + elem.getBoundingClientRect().height + elem.getBoundingClientRect().width === 0) {\n\t\t\treturn false;\n\t\t}\n\t\tvar elemCenter = {\n\t\t\tx: elem.getBoundingClientRect().left + elem.offsetWidth / 2,\n\t\t\ty: elem.getBoundingClientRect().top + elem.offsetHeight / 2\n\t\t};\n\n\t\tif (elemCenter.x < 0) return false;\n\t\tif (elemCenter.x > (document.documentElement.clientWidth || window.innerWidth)) return false;\n\t\tif (elemCenter.y < 0) return false;\n\t\tif (elemCenter.y > (document.documentElement.clientHeight || window.innerHeight)) return false;\n\t\tvar pointContainer : ParentNode = document.elementFromPoint(elemCenter.x, elemCenter.y);\n\t\tdo {\n\t\t\tif (pointContainer === elem) return true;\n\t\t} while ((pointContainer = pointContainer.parentNode))\n\t\treturn false;\n\t}\n}\n", "\"use strict\";\n\nimport * as React from \"react\";\nimport * as browser from 'webextension-polyfill';\nimport { ITabOptions, ITabOptionsState } from \"@types\";\nimport {\n\tapproveExternalApiRequest,\n\tdenyExternalApiRequest,\n\texternalAccessKey,\n\texternalPendingRequestsKey,\n\tgetExternalApiAccess,\n\tgetExternalApiPendingRequests,\n\tIExternalExtension,\n\tremoveAllowedExternalApiExtension\n} from \"@helpers/external_api\";\n\nexport class TabOptions extends React.Component {\n\tconstructor(props : ITabOptions) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\texternalApiAllowedExtensions: [],\n\t\t\texternalApiPendingRequests: []\n\t\t};\n\t\tthis.approveExternalRequest = this.approveExternalRequest.bind(this);\n\t\tthis.denyExternalRequest = this.denyExternalRequest.bind(this);\n\t\tthis.handleExternalApiStorageChange = this.handleExternalApiStorageChange.bind(this);\n\t\tthis.refreshExternalApiAccess = this.refreshExternalApiAccess.bind(this);\n\t\tthis.removeAllowedExternalExtension = this.removeAllowedExternalExtension.bind(this);\n\t}\n\tcomponentDidMount() {\n\t\tthis.refreshExternalApiAccess();\n\t\tbrowser.storage.onChanged.addListener(this.handleExternalApiStorageChange);\n\t}\n\tcomponentWillUnmount() {\n\t\tbrowser.storage.onChanged.removeListener(this.handleExternalApiStorageChange);\n\t}\n\thandleExternalApiStorageChange(changes, areaName) {\n\t\tif (areaName === \"local\" && (changes[externalAccessKey] || changes[externalPendingRequestsKey])) {\n\t\t\tthis.refreshExternalApiAccess();\n\t\t}\n\t}\n\tasync refreshExternalApiAccess() {\n\t\tconst [access, pendingRequests] = await Promise.all([\n\t\t\tgetExternalApiAccess(),\n\t\t\tgetExternalApiPendingRequests()\n\t\t]);\n\t\tthis.setState({\n\t\t\texternalApiAllowedExtensions: access.allowedExtensions,\n\t\t\texternalApiPendingRequests: pendingRequests\n\t\t});\n\t}\n\tasync approveExternalRequest(request : IExternalExtension) {\n\t\tawait approveExternalApiRequest(request);\n\t\tawait this.refreshExternalApiAccess();\n\t}\n\tasync denyExternalRequest(request : IExternalExtension) {\n\t\tawait denyExternalApiRequest(request.id);\n\t\tawait this.refreshExternalApiAccess();\n\t}\n\tasync removeAllowedExternalExtension(extension : IExternalExtension) {\n\t\tawait removeAllowedExternalApiExtension(extension.id);\n\t\tawait this.refreshExternalApiAccess();\n\t}\n\tlogo() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\"Tab\n\t\t\t\t\t

Tab Manager Plus {window.extensionVersion}

\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\n\toptionsSection() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Tab options

\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Popup size

\n\t\t\t\t\t
\n\t\t\t\t\t\tYou can resize the popup here up to a maximum size of 800x600. This limitation is a browser limitation, and we cannot display a bigger popup due to\n\t\t\t\t\t\tthis. If you want to have a better overview, instead you can right click on the Tab Manager Plus icon, and `open in own tab`. This will open the Tab\n\t\t\t\t\t\tManager in a new tab.\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Window style

\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tDark mode, for working at night time.
\n\t\t\t\t\t\t\tBy default: disabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tSaves a little bit of space around the icons. Makes it less beautiful, but more space efficient.
\n\t\t\t\t\t\t\tBy default: disabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tDisables/enables animations and transitions in the popup.
\n\t\t\t\t\t\t\tBy default: enabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tDisables/enables window titles.
\n\t\t\t\t\t\t\tBy default: enabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Session Management

\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tAllows you to save windows as sessions ( saved windows ). You can restore these saved windows later on. The restored windows won't have the history\n\t\t\t\t\t\t\trestored. This feature is currently in beta.\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\tBy default: disabled ( experimental feature )\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{this.props.sessionsFeature &&
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
Allows you to backup your saved windows to an external file.
\n\t\t\t\t\t
}\n\t\t\t\t\t{this.props.sessionsFeature &&
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tAllows you to restore your backup from an external file. The restored windows will be added to your current saved windows.\n\t\t\t\t\t\t
\n\t\t\t\t\t
}\n\t\t\t\t\t{this.externalApiSection()}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Popup icon

\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tShows you the number of open tabs over the Tab Manager icon in the top right of your browser.\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\tBy default: enabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tOpens the Tab Manager in own tab by default, instead of the popup.\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\tBy default: disabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Window settings

\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tWith this option enabled, you will only have 1 open window per monitor at all times. When you switch to another window, the other windows will be\n\t\t\t\t\t\t\tminimized to the tray automatically.\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\tBy default: disabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tDisplays buttons in every window for : opening a new tab, minimizing the window, assigning a color to the window and closing the window.\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\tBy default: enabled\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Advanced settings

\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tIf you also want to see your incognito tabs in the Tab Manager overview, then enable incognito access for this extension.\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tChange shortcut key\n\t\t\t\t\t\t\n\t\t\t\t\t\t
If you want to disable or change the shortcut key with which to open Tab Manager Plus, you can do so here.
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t

Right mouse button

\n\t\t\t\t\t\t
With the right mouse button you can select tabs
\n\t\t\t\t\t\t

Shift+Right mouse button

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tWhile holding shift, and pressing the right mouse button you can select all tabs between the last selected tab and the current one\n\t\t\t\t\t\t
\n\t\t\t\t\t\t

Middle mouse button

\n\t\t\t\t\t\t
With the middle mouse button you can close a tab
\n\t\t\t\t\t\t

[Enter / Return] button

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tWith the return button you can switch to the currently selected tab, or move multiple selected tabs to a new window\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\texternalApiSection() {\n\t\tconst pendingRequests = this.state.externalApiPendingRequests || [];\n\t\tconst allowedExtensions = this.state.externalApiAllowedExtensions || [];\n\t\treturn (\n\t\t\t
0 ? \"has-pending-requests\" : \"\")}>\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\tAllow other extensions to request saved session URLs from Tab Manager Plus. This lets tools like ArchiveBox import saved tabs after you approve them.\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Pending requests
\n\t\t\t\t\t{pendingRequests.length === 0 &&
No pending requests.
}\n\t\t\t\t\t{pendingRequests.map((request) => (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
{request.name || \"Unknown extension\"}
\n\t\t\t\t\t\t\t\t
{request.id}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t))}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Allowed extensions
\n\t\t\t\t\t{allowedExtensions.length === 0 &&
No extensions allowed yet.
}\n\t\t\t\t\t{allowedExtensions.map((extension) => (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
{extension.name || \"Unknown extension\"}
\n\t\t\t\t\t\t\t\t
{extension.id}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t))}\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\tasync openIncognitoOptions() {\n\t\tawait browser.tabs.create({\n\t\t\turl: \"chrome://extensions/?id=cnkdjjdmfiffagllbiiilooaoofcoeff\"\n\t\t});\n\t}\n\tasync openShortcuts() {\n\t\tawait browser.tabs.create({ url: \"chrome://extensions/shortcuts\" });\n\t}\n\tlicenses() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tTab Manager Plus is based on{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\tdsc/Tab-Manager\n\t\t\t\t\t\n\t\t\t\t\t,{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\tjoshperry/Tab-Manager\n\t\t\t\t\t{\" \"}\n\t\t\t\t\tand{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\tJonasNo/Tab-Manager\n\t\t\t\t\t\n\t\t\t\t\t.
\n\t\t\t\t\tLicensed by{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\tMPLv2\n\t\t\t\t\t\n\t\t\t\t\t. Icons made by{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\tFreepik\n\t\t\t\t\t{\" \"}\n\t\t\t\t\tfrom{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\twww.flaticon.com\n\t\t\t\t\t\n\t\t\t\t\t. Licensed by{\" \"}\n\t\t\t\t\t\n\t\t\t\t\t\tCC 3.0 BY\n\t\t\t\t\t\n\t\t\t\t\t.\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\trender() {\n\t\tvar children = [];\n\n\t\tchildren.push(this.logo());\n\t\tchildren.push(this.optionsSection());\n\t\tchildren.push(
);\n\t\t//children.push(React.createElement('h4', {}, this.props.getTip()));\n\t\tchildren.push(this.licenses());\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t
{children}
\n\t\t\t
\n\t\t);\n\t}\n}\n", "import {getLocalStorage, setLocalStorage} from \"@helpers/storage\";\nimport {ISavedSession} from \"@types\";\nimport * as browser from 'webextension-polyfill';\n\nexport const externalAccessKey = \"externalApiAccess\";\nexport const externalPendingRequestsKey = \"externalApiPendingRequests\";\nexport const externalSavedSessionsMethod = \"tabManagerPlus.getSavedSessions\";\n\nexport interface IExternalExtension {\n\tid: string,\n\tname: string,\n\trequestedAt?: number,\n\tapprovedAt?: number\n}\n\nexport interface IExternalApiAccess {\n\tallowedExtensions: IExternalExtension[]\n}\n\nexport interface IExternalSavedTab {\n\ttitle: string,\n\turl: string,\n\tfavIconUrl?: string\n}\n\nexport interface IExternalSavedSession {\n\tid: string,\n\tname: string,\n\tdate: number,\n\ttabs: IExternalSavedTab[]\n}\n\nexport async function getExternalApiAccess(): Promise {\n\tconst access = await getLocalStorage(externalAccessKey, {});\n\treturn {\n\t\tallowedExtensions: Array.isArray(access.allowedExtensions) ? access.allowedExtensions : []\n\t};\n}\n\nexport async function getExternalApiPendingRequests(): Promise {\n\tconst requests = await getLocalStorage(externalPendingRequestsKey, []);\n\treturn Array.isArray(requests) ? requests : [];\n}\n\nexport async function rememberExternalApiRequest(extensionId: string, displayName?: string): Promise {\n\tconst requests = await getExternalApiPendingRequests();\n\tconst name = displayName && displayName.trim() ? displayName.trim() : \"Unknown extension\";\n\tconst nextRequests = requests.filter((request) => request.id !== extensionId);\n\tnextRequests.push({\n\t\tid: extensionId,\n\t\tname: name,\n\t\trequestedAt: Date.now()\n\t});\n\tawait setLocalStorage(externalPendingRequestsKey, nextRequests);\n}\n\nexport async function approveExternalApiRequest(request: IExternalExtension): Promise {\n\tconst access = await getExternalApiAccess();\n\tconst requests = await getExternalApiPendingRequests();\n\tconst allowedExtensions = access.allowedExtensions.filter((extension) => extension.id !== request.id);\n\tallowedExtensions.push({\n\t\tid: request.id,\n\t\tname: request.name || \"Unknown extension\",\n\t\tapprovedAt: Date.now()\n\t});\n\tawait setLocalStorage(externalAccessKey, {allowedExtensions});\n\tawait setLocalStorage(externalPendingRequestsKey, requests.filter((item) => item.id !== request.id));\n}\n\nexport async function denyExternalApiRequest(extensionId: string): Promise {\n\tconst requests = await getExternalApiPendingRequests();\n\tawait setLocalStorage(externalPendingRequestsKey, requests.filter((item) => item.id !== extensionId));\n}\n\nexport async function removeAllowedExternalApiExtension(extensionId: string): Promise {\n\tconst access = await getExternalApiAccess();\n\tawait setLocalStorage(externalAccessKey, {\n\t\tallowedExtensions: access.allowedExtensions.filter((extension) => extension.id !== extensionId)\n\t});\n}\n\nexport async function handleExternalApiMessage(message, sender) {\n\tif (!message || message.method !== externalSavedSessionsMethod) {\n\t\treturn;\n\t}\n\n\tconst extensionId = sender && sender.id;\n\tif (!extensionId) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\terror: \"missing_sender_id\",\n\t\t\tmessage: \"Tab Manager Plus could not identify the requesting extension.\"\n\t\t};\n\t}\n\n\tconst access = await getExternalApiAccess();\n\tconst allowed = access.allowedExtensions.some((extension) => extension.id === extensionId);\n\tif (!allowed) {\n\t\tawait rememberExternalApiRequest(extensionId, message.displayName);\n\t\tawait browser.tabs.create({url: browser.runtime.getURL(\"options.html\")});\n\t\treturn {\n\t\t\tok: false,\n\t\t\terror: \"approval_required\",\n\t\t\tmessage: \"Approve this extension in Tab Manager Plus options, then request saved sessions again.\"\n\t\t};\n\t}\n\n\treturn {\n\t\tok: true,\n\t\tsessions: await getExternalSavedSessions()\n\t};\n}\n\nexport async function getExternalSavedSessions(): Promise {\n\tconst values = await getLocalStorage(\"sessions\", {});\n\treturn Object.keys(values)\n\t\t.map((key) => normalizeExternalSession(values[key]))\n\t\t.filter((session) => !!session);\n}\n\nfunction normalizeExternalSession(session: ISavedSession): IExternalSavedSession | null {\n\tif (!session || !session.id || !Array.isArray(session.tabs)) {\n\t\treturn null;\n\t}\n\n\tconst tabs = session.tabs\n\t\t.map((tab) => {\n\t\t\tconst url = tab.url || tab.pendingUrl;\n\t\t\tif (!url || !/^https?:\\/\\//i.test(url)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ttitle: tab.title || \"\",\n\t\t\t\turl: url,\n\t\t\t\t...(tab.favIconUrl ? {favIconUrl: tab.favIconUrl} : {})\n\t\t\t};\n\t\t})\n\t\t.filter((tab) => !!tab);\n\n\tif (tabs.length === 0) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tid: session.id,\n\t\tname: session.name || \"\",\n\t\tdate: session.date || session.sessionStartTime || Date.now(),\n\t\ttabs: tabs\n\t};\n}\n", "\"use strict\";\n\nimport {getLocalStorage, setLocalStorage, getLocalStorageMap} from \"@helpers/storage\";\nimport {Tab} from \"@views\";\nimport * as S from \"@strings\";\nimport * as React from \"react\";\nimport * as browser from 'webextension-polyfill';\nimport {ICommand, IWindow, IWindowState, ISavedSession} from '@types';\n\nexport class Window extends React.Component {\n\tconstructor(props : IWindow) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tcolorActive: false,\n\t\t\twindowTitles: [],\n\t\t\tcolor: \"default\",\n\t\t\tname: \"\",\n\t\t\tauto_name: \"\",\n\t\t\ttabs: 0,\n\t\t\thover: false,\n\t\t\tdirty: false\n\t\t};\n\n\t\tthis.addTab = this.addTab.bind(this);\n\t\tthis.changeColors = this.changeColors.bind(this);\n\t\tthis.changeName = this.changeName.bind(this);\n\t\tthis.checkKey = this.checkKey.bind(this);\n\t\tthis.closePopup = this.closePopup.bind(this);\n\t\tthis.close = this.close.bind(this);\n\t\tthis.colors = this.colors.bind(this);\n\t\tthis.dragOver = this.dragOver.bind(this);\n\t\tthis.dragLeave = this.dragLeave.bind(this);\n\t\tthis.drop = this.drop.bind(this);\n\t\tthis.maximize = this.maximize.bind(this);\n\t\tthis.minimize = this.minimize.bind(this);\n\t\tthis.save = this.save.bind(this);\n\t\tthis.stop = this.stop.bind(this);\n\t\tthis.windowClick = this.windowClick.bind(this);\n\t\tthis.selectToFromTab = this.selectToFromTab.bind(this);\n\t\tthis.hoverWindow = this.hoverWindow.bind(this);\n\t\tthis.hoverWindowOut = this.hoverWindowOut.bind(this);\n\t\tthis.checkSettings = this.checkSettings.bind(this);\n\t}\n\n\tasync componentDidMount() {\n\t\tawait this.checkSettings();\n\t\tawait this.update();\n\t}\n\n\tasync componentDidUpdate(prevProps, prevState) {\n\t\tif (this.state.dirty) {\n\t\t\tawait this.update();\n\t\t\tthis.setState({ dirty: false });\n\t\t}\n\t}\n\n\n\tasync checkSettings() {\n\t\tlet colors = await getLocalStorageMap(S.windowColors);\n\t\tlet color = colors.get(this.props.window.id) || \"default\";\n\n\t\tthis.setState({\n\t\t\tcolor: color\n\t\t});\n\t}\n\n\tasync update() {\n\t\tlet name : string;\n\t\tif (!!this.props.window.title) {\n\t\t\tname = this.props.window.title;\n\t\t} else {\n\t\t\tlet names : Map = await getLocalStorageMap(S.windowNames);\n\t\t\tname = names.get(this.props.window.id) || \"\";\n\t\t}\n\n\t\tif (!!name) {\n\t\t\tif (name !== this.state.name) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tname: name\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tlet _window_titles = this.state.windowTitles;\n\t\tlet _tabs = this.state.tabs;\n\t\tlet tabs = await browser.tabs.query({ windowId: this.props.window.id });\n\t\tif (tabs.length == 0) return;\n\n\t\tif (_window_titles.length === 0 || this.state.tabs !== tabs.length + this.props.window.id * 99) {\n\t\t\t_window_titles.length = 0;\n\t\t\t_tabs = tabs.length + this.props.window.id * 99;\n\n\t\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\t\tconst _tab = tabs[i];\n\t\t\t\tif (!!_tab && (!!_tab.url || !!_tab.pendingUrl)) {\n\t\t\t\t\tlet url : URL;\n\t\t\t\t\tif (!!_tab.pendingUrl) {\n\t\t\t\t\t\turl = new URL(_tab.pendingUrl);\n\t\t\t\t\t} else if (!!_tab.url) {\n\t\t\t\t\t\turl = new URL(_tab.url);\n\t\t\t\t\t}\n\n\t\t\t\t\t// force refresh once we've loaded tabs\n\t\t\t\t\tif (_tab.status == \"loading\") _tabs--;\n\n\t\t\t\t\tlet protocol = url.protocol || \"\";\n\t\t\t\t\tlet hostname = url.hostname || \"\";\n\t\t\t\t\tif (protocol.indexOf(\"view-source\") > -1 && !!url.pathname) {\n\t\t\t\t\t\turl = new URL(url.pathname);\n\t\t\t\t\t\thostname = url.hostname || \"source\";\n\t\t\t\t\t} else if (protocol.indexOf(\"chrome-extension\") > -1) {\n\t\t\t\t\t\thostname = _tab.title || \"extension\";\n\t\t\t\t\t} else if (protocol.indexOf(\"about\") > -1) {\n\t\t\t\t\t\thostname = _tab.title || \"about\";\n\t\t\t\t\t} else if (hostname.indexOf(\"mail.google\") > -1) {\n\t\t\t\t\t\thostname = \"gmail\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!hostname) hostname = \"\";\n\t\t\t\t\t\thostname = hostname.replace(\"www.\", \"\");\n\t\t\t\t\t\tif (!isIpAddress(hostname)) {\n\t\t\t\t\t\t\tlet regex_var = new RegExp(/(\\.[^\\.]{0,2})(\\.[^\\.]{0,2})(\\.*$)|(\\.[^\\.]*)(\\.*$)/);\n\t\t\t\t\t\t\thostname = hostname\n\t\t\t\t\t\t\t\t.replace(regex_var, \"\")\n\t\t\t\t\t\t\t\t.split(\".\")\n\t\t\t\t\t\t\t\t.pop();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!!_tab.title) {\n\t\t\t\t\t\t\t\thostname = _tab.title;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tlet ip = hostname.split(\".\");\n\t\t\t\t\t\t\t\thostname = ip[0] + \".\" + ip[1] + \".*.*\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!hostname || hostname.length > 7) {\n\t\t\t\t\t\tlet title = _tab.title || \"\";\n\n\t\t\t\t\t\tconst separators = /\\s[\u2014|\u2022-]\\s/; // Define separators here\n\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\tlet titles = title.split(separators);\n\t\t\t\t\t\t\tlet first = titles[0];\n\t\t\t\t\t\t\tlet last = titles[titles.length - 1];\n\t\t\t\t\t\t\tif (slugify(first) == slugify(hostname) || slugify_no_space(first) == slugify_no_space(hostname) || slugify_no_space(first).startsWith(slugify_no_space(hostname).substring(0, 3)) || slugify_no_space(hostname).startsWith(slugify_no_space(first).substring(0, 3))) {\n\t\t\t\t\t\t\t\ttitle = first;\n\t\t\t\t\t\t\t} else if (slugify(last) == slugify(hostname) || slugify_no_space(last) == slugify_no_space(hostname) || slugify_no_space(last).startsWith(slugify_no_space(hostname).substring(0, 3)) || slugify_no_space(hostname).startsWith(slugify_no_space(last).substring(0, 3))) {\n\t\t\t\t\t\t\t\ttitle = last;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttitles.sort((a : string, b : string) => a.length - b.length);\n\t\t\t\t\t\t\t\ttitles.pop();\n\t\t\t\t\t\t\t\ttitle = titles.join(\"-\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} while (title.length > hostname.length && separators.test(title))\n\n\t\t\t\t\t\tif (!hostname || (!!title && title.length < 23)) {\n\t\t\t\t\t\t\thostname = title;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// while (hostname.length > 21 && hostname.indexOf(\" \") > -1) {\n\t\t\t\t\t\t// \tlet hostnames = hostname.split(\" \");\n\t\t\t\t\t\t// \thostnames.pop();\n\t\t\t\t\t\t// \thostname = hostnames.join(\" \");\n\t\t\t\t\t\t// }\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_window_titles.push(hostname);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\ttabs: _tabs\n\t\t\t})\n\t\t}\n\n\t\tif (_window_titles.length > 0) {\n\t\t\tname = this.topEntries(this.state.windowTitles).join(\"\");\n\t\t\tthis.setState({\n\t\t\t\tauto_name: name\n\t\t\t});\n\t\t}\n\t}\n\n\trender() {\n\t\tlet _this = this;\n\n\t\tlet color = this.state.color || \"default\";\n\n\t\tlet hideWindow = true;\n\t\tlet titleAdded = false;\n\t\tlet tabsperrow = this.props.layout.indexOf(\"blocks\") > -1 ? Math.ceil(Math.sqrt(this.props.tabs.length + 2)) : this.props.layout === \"vertical\" ? 1 : 15;\n\t\tlet tabs = this.props.tabs.map(function(tab) {\n\t\t\tlet isHidden : boolean = _this.props.hiddenTabs.has(tab.id) && _this.props.filterTabs;\n\t\t\tlet isSelected : boolean = _this.props.selection.has(tab.id);\n\t\t\tif (!isHidden) hideWindow = false;\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\t});\n\t\tif (!hideWindow) {\n\t\t\tif (!!this.props.tabactions) {\n\t\t\t\ttabs.push(\n\t\t\t\t\t
,\n\t\t\t\t\t
\n\t\t\t\t\t\t{this.props.sessionsFeature ? (\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\"Save this window for later\\nWill save \" +\n\t\t\t\t\t\t\t\t\ttabs.length +\n\t\t\t\t\t\t\t\t\t\" tabs with this window for later. Please note : The saved tabs will lose their history.\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={this.save}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : false}\n\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\ttitle=\"Open a new tab\"\n\t\t\t\t\t\t\tonClick={this.addTab}\n\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\ttitle=\"Change window name or color\"\n\t\t\t\t\t\t\tonClick={this.colors}\n\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{this.props.window.state === \"minimized\" ? (\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle={\"Maximize this window\\nWill maximize \" + tabs.length + \" tabs\"}\n\t\t\t\t\t\t\t\tonClick={this.maximize}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle={\"Minimize this window\\nWill minimize \" + tabs.length + \" tabs\"}\n\t\t\t\t\t\t\t\tonClick={this.minimize}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\ttitle={\"Close this window\\nWill close \" + tabs.length + \" tabs\"}\n\t\t\t\t\t\t\tonClick={this.close}\n\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (this.state.colorActive) {\n\t\t\t\ttabs.push(\n\t\t\t\t\t
\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tx\n\t\t\t\t\t\t

\n\t\t\t\t\t\t

Name the window

\n\t\t\t\t\t\t\n\t\t\t\t\t\t

Pick a color

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"default\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color1\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color2\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color3\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color4\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color5\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color6\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color7\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color8\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color9\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color10\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color11\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color12\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color13\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color14\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color15\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color16\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color17\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color18\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color19\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color20\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color21\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color22\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color23\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color24\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t -1 ? \"\" : \"windowaction\")}\n\t\t\t\t\t\t\t\ttitle=\"Change background color\"\n\t\t\t\t\t\t\t\tonClick={this.changeColors.bind(this, { colorActive: false, color: \"color25\" })}\n\t\t\t\t\t\t\t\tonMouseEnter={this.props.hoverIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (this.props.windowTitles) {\n\t\t\t\ttitleAdded = true;\n\t\t\t\ttabs.unshift(\n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.window.incognito ? \"\uD83D\uDD75\" : \"\"}\n\t\t\t\t\t\t{!!this.state.name ? this.state.name : this.state.auto_name}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (tabsperrow < 5) {\n\t\t\t\ttabsperrow = 5;\n\t\t\t}\n\t\t\tlet children = [];\n\t\t\tif (!!titleAdded) {\n\t\t\t\tchildren.push(tabs.shift());\n\t\t\t}\n\t\t\tlet z = -1;\n\t\t\tfor (let j = 0; j < tabs.length; j++) {\n\t\t\t\tlet tab = tabs[j].props.tab;\n\t\t\t\tlet isHidden = !!tab && !!tab.id && this.props.hiddenTabs.has(tab.id) && this.props.filterTabs;\n\t\t\t\tif(isHidden) continue;\n\t\t\t\tz++;\n\t\t\t\tchildren.push(tabs[j]);\n\n\t\t\t\tif ((z + 1) % tabsperrow === 0 && z && this.props.layout.indexOf(\"blocks\") > -1) {\n\t\t\t\t\tchildren.push(
);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet focused = false;\n\t\t\tif (this.props.window.focused || this.props.lastOpenWindow === this.props.window.id) {\n\t\t\t\tfocused = true;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t -1 ? \"block\" : \"\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tthis.props.layout +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(this.props.window.incognito ? \" incognito\" : \"\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(focused ? \" focused\" : \"\")\n\t\t\t\t\t}\n\t\t\t\t\tonDragEnter={this.dragOver}\n\t\t\t\t\tonDragOver={this.dragOver}\n\t\t\t\t\tonDragLeave={this.dragLeave}\n\t\t\t\t\tonClick={this.windowClick}\n\t\t\t\t\ttitle={\"\"}\n\t\t\t\t\tonMouseEnter={this.hoverWindow.bind(null, tabs)}\n\t\t\t\t\tonMouseLeave={this.hoverWindowOut}\n\t\t\t\t\tonDrop={this.drop}\n\t\t\t\t>\n\t\t\t\t\t
{children}
\n\t\t\t\t
\n\t\t\t);\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tstop(e) {\n\t\tthis.stopProp(e);\n\t}\n\taddTab(e) {\n\t\tthis.stopProp(e);\n\t\tbrowser.tabs.create({ windowId: this.props.window.id });\n\t}\n\tdragOver(e) {\n\t\tthis.setState({hover: true});\n\t\tthis.stopProp(e);\n\t}\n\tdragLeave(e) {\n\t\tthis.setState({hover: false});\n\t\te.nativeEvent.preventDefault();\n\t}\n\tdrop(e) {\n\t\tlet distance = 1000000;\n\t\tlet closestTab = null;\n\t\tlet closestRef = null;\n\n\t\tfor (let i = 0; i < this.props.tabs.length; i++) {\n\t\t\tlet tab = this.props.tabs[i];\n\t\t\tlet tabRef = (this.refs[\"tab\" + tab.id] as Tab).state.tabRef.current;\n\t\t\tlet tabRect = tabRef.getBoundingClientRect();\n\t\t\tlet x = e.nativeEvent.clientX;\n\t\t\tlet y = e.nativeEvent.clientY;\n\t\t\tlet dx = tabRect.x - x;\n\t\t\tlet dy = tabRect.y - y;\n\t\t\tlet d = Math.sqrt(dx * dx + dy * dy);\n\t\t\tif (d < distance) {\n\t\t\t\tdistance = d;\n\t\t\t\tclosestTab = tab.id;\n\t\t\t\tclosestRef = tabRef;\n\t\t\t}\n\t\t}\n\n\t\tthis.stopProp(e);\n\n\t\tif (closestTab != null) {\n\t\t\tlet before : boolean;\n\t\t\tlet boundingRect = closestRef.getBoundingClientRect();\n\t\t\tif (this.props.layout === \"vertical\") {\n\t\t\t\tbefore = e.nativeEvent.clientY < boundingRect.top;\n\t\t\t} else {\n\t\t\t\tbefore = e.nativeEvent.clientX < boundingRect.left;\n\t\t\t}\n\t\t\tthis.props.drop(closestTab, before);\n\t\t} else {\n\t\t\tthis.props.dropWindow(this.props.window.id);\n\t\t}\n\t}\n\thoverWindow(tabs, _) {\n\t\tthis.setState({ hover: true });\n\t\tthis.props.hoverIcon(\"Focus this window\\nWill select this window with \" + tabs.length + \" tabs\");\n\t\t// this.props.hoverIcon(e);\n\t}\n\thoverWindowOut(_) {\n\t\tthis.setState({ hover: false });\n\t}\n\tasync checkKey(e) {\n\t\t// close popup when enter or escape have been pressed\n\t\tif (e.keyCode === 13 || e.keyCode === 27) {\n\t\t\tthis.stopProp(e);\n\t\t\tawait this.closePopup();\n\t\t}\n\t}\n\tasync windowClick(e) {\n\t\tthis.stopProp(e);\n\n\t\tlet windowId = this.props.window.id;\n\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\tbrowser.runtime.sendMessage({command: S.focus_on_window_delayed, window_id: windowId});\n\t\t} else {\n\t\t\tbrowser.runtime.sendMessage({command: S.focus_on_window, window_id: windowId});\n\t\t}\n\n\t\tthis.props.parentUpdate();\n\t\tif (!!window.inPopup) window.close();\n\t\treturn false;\n\t}\n\tselectToFromTab(tabId : number) {\n\t\tif (!!tabId) this.props.selectTo(tabId, this.props.tabs);\n\t}\n\tasync close(e) {\n\t\tthis.stopProp(e);\n\t\tawait browser.windows.remove(this.props.window.id);\n\t}\n\tuuidv4() {\n\t\treturn \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(c) {\n\t\t\tlet r = (Math.random() * 16) | 0,\n\t\t\t\tv = c === \"x\" ? r : (r & 0x3) | 0x8;\n\t\t\treturn v.toString(16);\n\t\t});\n\t}\n\tasync save(e) {\n\t\tthis.stopProp(e);\n\n\t\tconsole.log(\"session name\", this.state.name);\n\t\tlet sessionName = this.state.name || this.topEntries(this.state.windowTitles).join(\"\");\n\t\tlet sessionColor = this.state.color || \"default\";\n\n\t\tconsole.log(\"session name\", sessionName);\n\n\t\tlet session : ISavedSession = {\n\t\t\ttabs: [],\n\t\t\twindowsInfo: null,\n\t\t\tname: sessionName,\n\t\t\tcustomName: !!this.state.name,\n\t\t\tcolor: sessionColor,\n\t\t\tdate: Date.now(),\n\t\t\tsessionStartTime: Date.now(),\n\t\t\tincognito: this.props.window.incognito,\n\t\t\tid: this.uuidv4()\n\t\t};\n\n\t\tlet queryInfo : browser.Tabs.QueryQueryInfoType = {\n\t\t\twindowId: this.props.window.id\n\t\t};\n\t\t//queryInfo.currentWindow = true;\n\n\t\tconsole.log(queryInfo);\n\n\t\tlet tabs : browser.Tabs.Tab[] = await browser.tabs.query(queryInfo);\n\t\tconsole.log(tabs);\n\t\tfor (let tabkey in tabs) {\n\t\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\t\tlet newTab = tabs[tabkey];\n\t\t\t\tif (!!newTab.url && newTab.url.search(\"about:\") > -1) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tsession.tabs.push(tabs[tabkey]);\n\t\t}\n\t\tconsole.log(session.tabs);\n\t\tsession.windowsInfo = await browser.windows.get(this.props.window.id);\n\n\t\tconsole.log(session);\n\n\t\tlet sessions = await getLocalStorage('sessions', {});\n\t\tsessions[session.id] = session;\n\n\t\tlet value = await setLocalStorage('sessions', sessions).catch(function(err) {\n\t\t\tconsole.log(err);\n\t\t\tconsole.error(err.message);\n\t\t});\n\t\tthis.props.parentUpdate();\n\t\tconsole.log(\"Value is set to \" + value);\n\n\t\tsetTimeout(function() {\n\t\t\tthis.props.scrollTo(\"session\", session.id);\n\t\t}.bind(this), 150);\n\t}\n\tasync minimize(e) {\n\t\tthis.stopProp(e);\n\t\tawait browser.windows.update(this.props.window.id, {\n\t\t\tstate: \"minimized\"\n\t\t});\n\t\tthis.props.parentUpdate();\n\t}\n\tasync maximize(e) {\n\t\tthis.stopProp(e);\n\t\tawait browser.windows.update(this.props.window.id, {\n\t\t\tstate: \"normal\"\n\t\t});\n\t\tthis.props.parentUpdate();\n\t}\n\tcolors(e) {\n\t\tthis.stopProp(e);\n\t\tthis.props.toggleColors(!this.state.colorActive, this.props.window.id);\n\t\tthis.setState({\n\t\t\tcolorActive: !this.state.colorActive\n\t\t});\n\t\tsetTimeout(function() {\n\t\t\tif(this.state.colorActive) {\n\t\t\t\tthis.refs.namebox.focus();\n\t\t\t}\n\t\t}.bind(this), 150);\n\t}\n\tasync changeColors(a) {\n\t\tthis.setState(a);\n\t\tthis.props.toggleColors(!this.state.colorActive, this.props.window.id);\n\n\t\tlet color = a.color || \"default\";\n\n\t\tbrowser.runtime.sendMessage({\n\t\t\tcommand: S.set_window_color,\n\t\t\twindow_id: this.props.window.id,\n\t\t\tcolor: color\n\t\t});\n\n\t\tthis.setState({ color: color });\n\t\tawait this.closePopup();\n\t}\n\tasync closePopup() {\n\t\tthis.props.toggleColors(!this.state.colorActive, this.props.window.id);\n\t\tthis.setState({\n\t\t\tcolorActive: !this.state.colorActive\n\t\t});\n\t\tawait this.update();\n\t\tthis.props.parentUpdate();\n\t}\n\tasync changeName(e) {\n\t\t// this.setState(a);\n\t\tlet name = \"\";\n\t\tif(e && e.target && e.target.value) name = e.target.value;\n\n\t\tbrowser.runtime.sendMessage({\n\t\t\tcommand: S.set_window_name,\n\t\t\twindow_id: this.props.window.id,\n\t\t\tname: name\n\t\t});\n\n\t\tthis.setState({\n\t\t\tname: name\n\t\t});\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\tif(!!name) {\n\t\t\t\tawait browser.windows.update(this.props.window.id, {\n\t\t\t\t\ttitlePreface: name + \" - \"\n\t\t\t\t});\n\t\t\t}else{\n\t\t\t\tawait browser.windows.update(this.props.window.id, {\n\t\t\t\t\ttitlePreface: name\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\ttopEntries(arr : string[]) : string[] {\n\t\tlet cnts = arr.reduce(function(obj, val) {\n\t\t\tobj[val] = (obj[val] || 0) + 1;\n\t\t\treturn obj;\n\t\t}, {});\n\t\tlet sorted = Object.keys(cnts).sort(function(a, b) {\n\t\t\treturn cnts[b] - cnts[a];\n\t\t});\n\n\t\tlet more = 0;\n\t\tif (sorted.length === 3) {\n\t\t} else {\n\t\t\twhile (sorted.length > 2) {\n\t\t\t\tsorted.pop();\n\t\t\t\tmore++;\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < sorted.length; i++) {\n\t\t\tif (i > 0) {\n\t\t\t\tsorted[i] = \", \" + sorted[i];\n\t\t\t}\n\t\t}\n\t\tif (more > 0) {\n\t\t\tsorted.push(\" & \" + more + \" more\");\n\t\t}\n\t\treturn sorted;\n\t}\n\tstopProp(e) {\n\t\tif(e && e.nativeEvent) {\n\t\t\te.nativeEvent.preventDefault();\n\t\t\te.nativeEvent.stopPropagation();\n\t\t}\n\t\tif(e && e.preventDefault) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n}\n\nfunction slugify(text) {\n\treturn text\n\t\t.toString()\n\t\t.toLowerCase()\n\t\t.replace(/\\s+/g, \"-\") // Replace spaces with -\n\t\t.replace(/[^\\w-]+/g, \"\") // Remove all non-word chars\n\t\t.replace(/--+/g, \"-\") // Replace multiple - with single -\n\t\t.replace(/^-+/, \"\") // Trim - from start of text\n\t\t.replace(/-+$/, \"\"); // Trim - from end of text\n}\n\nfunction slugify_no_space(text) {\n\treturn text\n\t\t.toString()\n\t\t.toLowerCase()\n\t\t.replace(/\\s+/g, \"\") // Replace spaces with -\n\t\t.replace(/[^\\w-]+/g, \"\") // Remove all non-word chars\n\t\t.replace(/--+/g, \"-\") // Replace multiple - with single -\n\t\t.replace(/^-+/, \"\") // Trim - from start of text\n\t\t.replace(/-+$/, \"\"); // Trim - from end of text\n}\n\n// Function to check if the string is an IP address (IPv4 or IPv6)\nfunction isIpAddress(input) {\n\t// Regex for IPv4: 0-255.0-255.0-255.0-255\n\tconst ipv4Regex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\n\n\t// Regex for IPv6: Matches standard IPv6 formatting (8 groups of 4 hex digits)\n\tconst ipv6Regex = /^([a-fA-F0-9]{1,4}:){7}[a-fA-F0-9]{1,4}$/;\n\n\treturn ipv4Regex.test(input) || ipv6Regex.test(input);\n}", "\"use strict\";\n\nimport '@helpers/migrate';\nimport {getLocalStorage} from \"@helpers/storage\";\nimport {TabManager} from '@views';\nimport * as React from 'react';\nimport * as ReactDOM from \"react-dom\";\n\ndeclare global {\n\tinterface Window {\n\t\tloaded: boolean;\n\t\tinPopup: boolean;\n\t\tinPanel: boolean;\n\t\toptionPage: boolean;\n\t\textensionVersion: string;\n\t}\n}\n\nwindow.loaded = false;\nwindow.inPopup = window.location.search.indexOf(\"?popup\") > -1;\nwindow.inPanel = window.location.search.indexOf(\"?panel\") > -1;\nwindow.extensionVersion = process.env.VERSION;\n\nwindow.onload = () => window.requestAnimationFrame(loadApp);\n\nsetTimeout(loadApp, 75);\nsetTimeout(loadApp, 125);\nsetTimeout(loadApp, 250);\nsetTimeout(loadApp, 375);\nsetTimeout(loadApp, 700);\nsetTimeout(loadApp, 1000);\nsetTimeout(loadApp, 2000);\nsetTimeout(loadApp, 3000);\nsetTimeout(loadApp, 5000);\nsetTimeout(loadApp, 15000);\n\nasync function loadApp() {\n\tif (!!window.loaded) return;\n\tlet height : number = await getLocalStorage(\"tabHeight\", 600);\n\tlet width : number = await getLocalStorage(\"tabWidth\", 800);\n\tconsole.log(height, width);\n\tif (window.inPopup) {\n\n\t\tif (height > 0 && width > 0) {\n\t\t\tdocument.body.style.width = width + \"px\";\n\t\t\tdocument.body.style.height = height + \"px\";\n\t\t}\n\n\t\tvar root = document.getElementById(\"root\");\n\t\tif (root != null) {\n\t\t\tvar _height = parseInt(document.body.style.height.split(\"px\")[0]) || 0;\n\t\t\tif (_height < 300) {\n\t\t\t\t_height = 400;\n\t\t\t\tdocument.body.style.minHeight = _height + \"px\";\n\t\t\t} else {\n\t\t\t\t_height++;\n\t\t\t\tif (_height > 600) _height = 600;\n\t\t\t\tdocument.body.style.minHeight = _height + \"px\";\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (window.inPanel) {\n\t\t\tdocument.documentElement.style.maxHeight = \"auto\";\n\t\t\tdocument.documentElement.style.maxWidth = \"auto\";\n\t\t\tdocument.body.style.maxHeight = \"auto\";\n\t\t\tdocument.body.style.maxWidth = \"auto\";\n\t\t}\n\t\tdocument.documentElement.style.maxHeight = \"100%\";\n\t\tdocument.documentElement.style.maxWidth = \"100%\";\n\t\tdocument.documentElement.style.height = \"100%\";\n\t\tdocument.documentElement.style.width = \"100%\";\n\t\tdocument.body.style.maxHeight = \"100%\";\n\t\tdocument.body.style.maxWidth = \"100%\";\n\t\tdocument.body.style.height = \"100%\";\n\t\tdocument.body.style.width = \"100%\";\n\t}\n\n\tif (!!window.loaded) return;\n\twindow.loaded = true;\n\tReactDOM.render(, document.getElementById(\"TMP\"));\n}\n\nwindow.addEventListener(\"contextmenu\", function (e) {\n\te.preventDefault();\n});\n\n"], + "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;AAEA,YAAI,EAAEA,WAAWC,UAAUD,WAAWC,OAAOC,WAAWF,WAAWC,OAAOC,QAAQC,KAAK;AACrF,gBAAM,IAAIC,MAAM,2DAA2D;QAC7E;AAEA,YAAI,EAAEJ,WAAWK,WAAWL,WAAWK,QAAQH,WAAWF,WAAWK,QAAQH,QAAQC,KAAK;AACxF,gBAAMG,mDAAmD;AAOzD,gBAAMC,WAAWC,mBAAiB;AAIhC,kBAAMC,cAAc;cAClB,UAAU;gBACR,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,aAAa;gBACX,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,iBAAiB;gBACf,WAAW;kBACT,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,2BAA2B;kBACzB,WAAW;kBACX,WAAW;gBACb;gBACA,gBAAgB;kBACd,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,2BAA2B;kBACzB,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,gBAAgB;kBACd,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;cACF;cACA,gBAAgB;gBACd,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,kBAAkB;kBAChB,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,oBAAoB;kBAClB,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,gBAAgB;gBACd,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,mBAAmB;kBACjB,QAAQ;oBACN,WAAW;oBACX,WAAW;oBACX,qBAAqB;kBACvB;gBACF;gBACA,UAAU;kBACR,UAAU;oBACR,WAAW;oBACX,WAAW;oBACX,qBAAqB;kBACvB;kBACA,YAAY;oBACV,qBAAqB;sBACnB,WAAW;sBACX,WAAW;oBACb;kBACF;gBACF;cACF;cACA,aAAa;gBACX,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;cACF;cACA,aAAa;gBACX,6BAA6B;kBAC3B,WAAW;kBACX,WAAW;gBACb;gBACA,4BAA4B;kBAC1B,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,QAAQ;gBACN,kBAAkB;kBAChB,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;cACF;cACA,QAAQ;gBACN,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;cACF;cACA,cAAc;gBACZ,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;cACF;cACA,iBAAiB;gBACf,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,cAAc;gBACZ,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;cACF;cACA,eAAe;gBACb,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,SAAS;kBACP,SAAS;oBACP,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;kBACA,iBAAiB;oBACf,WAAW;oBACX,WAAW;kBACb;kBACA,UAAU;oBACR,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;gBACF;gBACA,WAAW;kBACT,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;kBACA,iBAAiB;oBACf,WAAW;oBACX,WAAW;kBACb;gBACF;gBACA,QAAQ;kBACN,SAAS;oBACP,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;kBACA,iBAAiB;oBACf,WAAW;oBACX,WAAW;kBACb;kBACA,UAAU;oBACR,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;gBACF;cACF;cACA,QAAQ;gBACN,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,kBAAkB;kBAChB,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW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", + "names": ["globalThis", "chrome", "runtime", "id", "Error", "browser", "CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE", "wrapAPIs", "extensionAPIs", "apiMetadata", "Object", "keys", "length", "DefaultWeakMap", "WeakMap", "constructor", "createItem", "items", "undefined", "get", "key", "has", "set", "isThenable", "value", "then", "makeCallback", "promise", "metadata", "callbackArgs", "lastError", "reject", "message", "singleCallbackArg", "resolve", "pluralizeArguments", "numArgs", "wrapAsyncFunction", "name", "asyncFunctionWrapper", "target", "args", "minArgs", "maxArgs", "Promise", "fallbackToNoCallback", "cbError", "console", "warn", "noCallback", "wrapMethod", "method", "wrapper", "Proxy", "apply", "targetMethod", "thisObj", "call", "hasOwnProperty", "Function", "bind", "prototype", "wrapObject", "wrappers", "cache", "create", "handlers", "proxyTarget", "prop", "receiver", "defineProperty", "configurable", "enumerable", "desc", "Reflect", "deleteProperty", "wrapEvent", "wrapperMap", "addListener", "listener", "hasListener", "removeListener", "onRequestFinishedWrappers", "onRequestFinished", "req", "wrappedReq", "getContent", "onMessageWrappers", "onMessage", "sender", "sendResponse", "didCallSendResponse", "wrappedSendResponse", "sendResponsePromise", "response", "result", "err", "isResultThenable", "sendPromisedResult", "msg", "error", "__mozWebExtensionPolyfillReject__", "catch", "wrappedSendMessageCallback", "reply", "wrappedSendMessage", "apiNamespaceObj", "wrappedCb", "push", "sendMessage", "staticWrappers", "devtools", "network", "onMessageExternal", "tabs", "settingMetadata", "clear", "privacy", "services", "websites", "module", "exports", "a", "b", "a", "c", "d", "f", "e", "g", "h", "k", "l", "m", "z", "later", "browser", "key", "browser", "tabs", "React", "browser", "React", "browser", "setTimeout", "clearTimeout", "storage", "window", "windows", "tabs", "id", "React", "browser", "browser", "React", "browser", "tabs", "React"] } diff --git a/dist/service_worker/service_worker.js b/dist/service_worker/service_worker.js index 3e843962..1b789c23 100644 --- a/dist/service_worker/service_worker.js +++ b/dist/service_worker/service_worker.js @@ -26,9 +26,9 @@ mod )); - // node_modules/webextension-polyfill/dist/browser-polyfill.js + // node_modules/.pnpm/webextension-polyfill@0.12.0/node_modules/webextension-polyfill/dist/browser-polyfill.js var require_browser_polyfill = __commonJS({ - "node_modules/webextension-polyfill/dist/browser-polyfill.js"(exports, module) { + "node_modules/.pnpm/webextension-polyfill@0.12.0/node_modules/webextension-polyfill/dist/browser-polyfill.js"(exports, module) { (function(global, factory) { if (typeof define === "function" && define.amd) { define("webextension-polyfill", ["module"], factory); @@ -1216,11 +1216,11 @@ browser3.windows.onCreated.addListener(windowCreated); browser3.windows.onRemoved.addListener(windowRemoved); } - async function createWindowWithTabs(tabs5, isIncognito = false) { + async function createWindowWithTabs(tabs6, isIncognito = false) { var pinnedIndex = 0; - var firstTab = tabs5.shift(); + var firstTab = tabs6.shift(); var t = []; - for (const _tab of tabs5) { + for (const _tab of tabs6) { t.push(_tab.id); } var firstPinned = firstTab.pinned; @@ -1479,8 +1479,8 @@ browser4.tabs.onAttached.addListener(checkTabAttached); browser4.tabs.onMoved.addListener(checkTabMoved); } - async function discardTabs(tabs5) { - for (const tab of tabs5) { + async function discardTabs(tabs6) { + for (const tab of tabs6) { if (!tab.discarded) { browser4.tabs.discard(tab.id).catch(function(e) { console.error(e); @@ -1489,13 +1489,13 @@ } } } - async function closeTabs(tabs5) { - for (const tab of tabs5) { + async function closeTabs(tabs6) { + for (const tab of tabs6) { await browser4.tabs.remove(tab.id); } } - async function moveTabsToWindow(windowId, tabs5) { - for (const tab of tabs5) { + async function moveTabsToWindow(windowId, tabs6) { + for (const tab of tabs6) { await browser4.tabs.move(tab.id, { windowId, index: -1 }); await browser4.tabs.update(tab.id, { pinned: tab.pinned }); } @@ -1600,15 +1600,15 @@ } async function openAsOwnTab() { const popup_page = await browser5.runtime.getURL("popup.html"); - const tabs5 = await browser5.tabs.query({}); + const tabs6 = await browser5.tabs.query({}); let currentTab; let previousTab; if (!!globalTabsActive && globalTabsActive.length > 1) { currentTab = globalTabsActive[globalTabsActive.length - 1]; previousTab = globalTabsActive[globalTabsActive.length - 2]; } - for (var i = 0; i < tabs5.length; i++) { - const tab = tabs5[i]; + for (var i = 0; i < tabs6.length; i++) { + const tab = tabs6[i]; if (tab.url.indexOf("popup.html") > -1 && tab.url.indexOf(popup_page) > -1) { if (currentTab && currentTab.tabId && tab.id === currentTab.tabId && previousTab && previousTab.tabId) { await focusOnTabAndWindow(previousTab.tabId, previousTab.windowId); @@ -1894,22 +1894,124 @@ } } - // src/service_worker/service_worker.ts + // src/helpers/external_api.ts var browser8 = __toESM(require_browser_polyfill()); - browser8.runtime.onStartup.addListener( + var externalAccessKey = "externalApiAccess"; + var externalPendingRequestsKey = "externalApiPendingRequests"; + var externalSavedSessionsMethod = "tabManagerPlus.getSavedSessions"; + async function getExternalApiAccess() { + const access = await getLocalStorage(externalAccessKey, {}); + return { + allowedExtensions: Array.isArray(access.allowedExtensions) ? access.allowedExtensions : [] + }; + } + async function getExternalApiPendingRequests() { + const requests = await getLocalStorage(externalPendingRequestsKey, []); + return Array.isArray(requests) ? requests : []; + } + async function rememberExternalApiRequest(extensionId, displayName) { + const requests = await getExternalApiPendingRequests(); + const name = displayName && displayName.trim() ? displayName.trim() : "Unknown extension"; + const nextRequests = requests.filter((request) => request.id !== extensionId); + nextRequests.push({ + id: extensionId, + name, + requestedAt: Date.now() + }); + await setLocalStorage(externalPendingRequestsKey, nextRequests); + } + async function handleExternalApiMessage(message, sender) { + if (!message || message.method !== externalSavedSessionsMethod) { + return; + } + const extensionId = sender && sender.id; + if (!extensionId) { + return { + ok: false, + error: "missing_sender_id", + message: "Tab Manager Plus could not identify the requesting extension." + }; + } + const access = await getExternalApiAccess(); + const allowed = access.allowedExtensions.some((extension) => extension.id === extensionId); + if (!allowed) { + await rememberExternalApiRequest(extensionId, message.displayName); + await browser8.tabs.create({ url: browser8.runtime.getURL("options.html") }); + return { + ok: false, + error: "approval_required", + message: "Approve this extension in Tab Manager Plus options, then request saved sessions again." + }; + } + return { + ok: true, + sessions: await getExternalSavedSessions() + }; + } + async function getExternalSavedSessions() { + const values = await getLocalStorage("sessions", {}); + return Object.keys(values).map((key) => normalizeExternalSession(values[key])).filter((session) => !!session); + } + function normalizeExternalSession(session) { + if (!session || !session.id || !Array.isArray(session.tabs)) { + return null; + } + const tabs6 = session.tabs.map((tab) => { + const url = tab.url || tab.pendingUrl; + if (!url || !/^https?:\/\//i.test(url)) { + return null; + } + return { + title: tab.title || "", + url, + ...tab.favIconUrl ? { favIconUrl: tab.favIconUrl } : {} + }; + }).filter((tab) => !!tab); + if (tabs6.length === 0) { + return null; + } + return { + id: session.id, + name: session.name || "", + date: session.date || session.sessionStartTime || Date.now(), + tabs: tabs6 + }; + } + + // src/service_worker/service_worker.ts + var browser9 = __toESM(require_browser_polyfill()); + browser9.runtime.onStartup.addListener( async function() { console.log(" ON STARTUP"); } ); - browser8.runtime.onSuspend.addListener( + browser9.runtime.onSuspend.addListener( async function() { console.log(" ON SUSPEND"); } ); - browser8.commands.onCommand.addListener(handleCommands); - browser8.runtime.onMessage.addListener(handleMessages); + browser9.commands.onCommand.addListener(handleCommands); + browser9.runtime.onMessage.addListener((message, sender, sendResponse) => { + handleMessages(message, sender, sendResponse).then(sendResponse).catch((error) => sendResponse({ + error: error && error.message ? error.message : String(error) + })); + return true; + }); + browser9.runtime.onMessageExternal.addListener((message, sender, sendResponse) => { + const request = message; + if (!request || request.method !== externalSavedSessionsMethod) { + sendResponse(void 0); + return true; + } + handleExternalApiMessage(message, sender).then(sendResponse).catch((error) => sendResponse({ + ok: false, + error: "unexpected_error", + message: error && error.message ? error.message : String(error) + })); + return true; + }); (async function() { - let windows7 = await browser8.windows.getAll({ populate: true }); + let windows7 = await browser9.windows.getAll({ populate: true }); await setLocalStorage("windowAge", []); if (!!windows7 && windows7.length > 0) { windows7.sort(function(a, b) { diff --git a/dist/service_worker/service_worker.js.map b/dist/service_worker/service_worker.js.map index 65acfe60..62020746 100644 --- a/dist/service_worker/service_worker.js.map +++ b/dist/service_worker/service_worker.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../../node_modules/webextension-polyfill/dist/browser-polyfill.js", "../../src/helpers/storage.ts", "../../src/service_worker/context.ts", "../../src/strings/strings.ts", "../../src/helpers/utils.ts", "../../src/service_worker/background/tracking.ts", "../../src/service_worker/background/windows.ts", "../../src/service_worker/background/tabs.ts", "../../src/service_worker/ui/open.ts", "../../src/service_worker/background/actions.ts", "../../src/service_worker/ui/context_menus.ts", "../../src/service_worker/service_worker.ts"], - "sourcesContent": ["/* webextension-polyfill - v0.12.0 - Tue May 14 2024 18:01:29 */\n/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */\n/* vim: set sts=2 sw=2 et tw=80: */\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nif (!(globalThis.chrome && globalThis.chrome.runtime && globalThis.chrome.runtime.id)) {\n throw new Error(\"This script should only be loaded in a browser extension.\");\n}\n\nif (!(globalThis.browser && globalThis.browser.runtime && globalThis.browser.runtime.id)) {\n const CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE = \"The message port closed before a response was received.\";\n\n // Wrapping the bulk of this polyfill in a one-time-use function is a minor\n // optimization for Firefox. Since Spidermonkey does not fully parse the\n // contents of a function until the first time it's called, and since it will\n // never actually need to be called, this allows the polyfill to be included\n // in Firefox nearly for free.\n const wrapAPIs = extensionAPIs => {\n // NOTE: apiMetadata is associated to the content of the api-metadata.json file\n // at build time by replacing the following \"include\" with the content of the\n // JSON file.\n const apiMetadata = {\n \"alarms\": {\n \"clear\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"clearAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"bookmarks\": {\n \"create\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getChildren\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getRecent\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getSubTree\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getTree\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"move\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeTree\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"search\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n },\n \"browserAction\": {\n \"disable\": {\n \"minArgs\": 0,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"enable\": {\n \"minArgs\": 0,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"getBadgeBackgroundColor\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getBadgeText\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"openPopup\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"setBadgeBackgroundColor\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setBadgeText\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setIcon\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"setPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n }\n },\n \"browsingData\": {\n \"remove\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"removeCache\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeCookies\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeDownloads\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeFormData\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeHistory\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeLocalStorage\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removePasswords\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removePluginData\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"settings\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"commands\": {\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"contextMenus\": {\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n },\n \"cookies\": {\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAllCookieStores\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"set\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"devtools\": {\n \"inspectedWindow\": {\n \"eval\": {\n \"minArgs\": 1,\n \"maxArgs\": 2,\n \"singleCallbackArg\": false\n }\n },\n \"panels\": {\n \"create\": {\n \"minArgs\": 3,\n \"maxArgs\": 3,\n \"singleCallbackArg\": true\n },\n \"elements\": {\n \"createSidebarPane\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n }\n }\n },\n \"downloads\": {\n \"cancel\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"download\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"erase\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getFileIcon\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"open\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"pause\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeFile\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"resume\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"search\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"show\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n }\n },\n \"extension\": {\n \"isAllowedFileSchemeAccess\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"isAllowedIncognitoAccess\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"history\": {\n \"addUrl\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"deleteAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"deleteRange\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"deleteUrl\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getVisits\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"search\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"i18n\": {\n \"detectLanguage\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAcceptLanguages\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"identity\": {\n \"launchWebAuthFlow\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"idle\": {\n \"queryState\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"management\": {\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getSelf\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"setEnabled\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"uninstallSelf\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n }\n },\n \"notifications\": {\n \"clear\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"create\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getPermissionLevel\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n },\n \"pageAction\": {\n \"getPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"hide\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setIcon\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"setPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"show\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n }\n },\n \"permissions\": {\n \"contains\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"request\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"runtime\": {\n \"getBackgroundPage\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getPlatformInfo\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"openOptionsPage\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"requestUpdateCheck\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"sendMessage\": {\n \"minArgs\": 1,\n \"maxArgs\": 3\n },\n \"sendNativeMessage\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"setUninstallURL\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"sessions\": {\n \"getDevices\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getRecentlyClosed\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"restore\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n }\n },\n \"storage\": {\n \"local\": {\n \"clear\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getBytesInUse\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"set\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"managed\": {\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getBytesInUse\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n }\n },\n \"sync\": {\n \"clear\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getBytesInUse\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"set\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n }\n },\n \"tabs\": {\n \"captureVisibleTab\": {\n \"minArgs\": 0,\n \"maxArgs\": 2\n },\n \"create\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"detectLanguage\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"discard\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"duplicate\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"executeScript\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getCurrent\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getZoom\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getZoomSettings\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"goBack\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"goForward\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"highlight\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"insertCSS\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"move\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"query\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"reload\": {\n \"minArgs\": 0,\n \"maxArgs\": 2\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeCSS\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"sendMessage\": {\n \"minArgs\": 2,\n \"maxArgs\": 3\n },\n \"setZoom\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"setZoomSettings\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"update\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n }\n },\n \"topSites\": {\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"webNavigation\": {\n \"getAllFrames\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getFrame\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"webRequest\": {\n \"handlerBehaviorChanged\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"windows\": {\n \"create\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getCurrent\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getLastFocused\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n }\n };\n\n if (Object.keys(apiMetadata).length === 0) {\n throw new Error(\"api-metadata.json has not been included in browser-polyfill\");\n }\n\n /**\n * A WeakMap subclass which creates and stores a value for any key which does\n * not exist when accessed, but behaves exactly as an ordinary WeakMap\n * otherwise.\n *\n * @param {function} createItem\n * A function which will be called in order to create the value for any\n * key which does not exist, the first time it is accessed. The\n * function receives, as its only argument, the key being created.\n */\n class DefaultWeakMap extends WeakMap {\n constructor(createItem, items = undefined) {\n super(items);\n this.createItem = createItem;\n }\n\n get(key) {\n if (!this.has(key)) {\n this.set(key, this.createItem(key));\n }\n\n return super.get(key);\n }\n }\n\n /**\n * Returns true if the given object is an object with a `then` method, and can\n * therefore be assumed to behave as a Promise.\n *\n * @param {*} value The value to test.\n * @returns {boolean} True if the value is thenable.\n */\n const isThenable = value => {\n return value && typeof value === \"object\" && typeof value.then === \"function\";\n };\n\n /**\n * Creates and returns a function which, when called, will resolve or reject\n * the given promise based on how it is called:\n *\n * - If, when called, `chrome.runtime.lastError` contains a non-null object,\n * the promise is rejected with that value.\n * - If the function is called with exactly one argument, the promise is\n * resolved to that value.\n * - Otherwise, the promise is resolved to an array containing all of the\n * function's arguments.\n *\n * @param {object} promise\n * An object containing the resolution and rejection functions of a\n * promise.\n * @param {function} promise.resolve\n * The promise's resolution function.\n * @param {function} promise.reject\n * The promise's rejection function.\n * @param {object} metadata\n * Metadata about the wrapped method which has created the callback.\n * @param {boolean} metadata.singleCallbackArg\n * Whether or not the promise is resolved with only the first\n * argument of the callback, alternatively an array of all the\n * callback arguments is resolved. By default, if the callback\n * function is invoked with only a single argument, that will be\n * resolved to the promise, while all arguments will be resolved as\n * an array if multiple are given.\n *\n * @returns {function}\n * The generated callback function.\n */\n const makeCallback = (promise, metadata) => {\n return (...callbackArgs) => {\n if (extensionAPIs.runtime.lastError) {\n promise.reject(new Error(extensionAPIs.runtime.lastError.message));\n } else if (metadata.singleCallbackArg ||\n (callbackArgs.length <= 1 && metadata.singleCallbackArg !== false)) {\n promise.resolve(callbackArgs[0]);\n } else {\n promise.resolve(callbackArgs);\n }\n };\n };\n\n const pluralizeArguments = (numArgs) => numArgs == 1 ? \"argument\" : \"arguments\";\n\n /**\n * Creates a wrapper function for a method with the given name and metadata.\n *\n * @param {string} name\n * The name of the method which is being wrapped.\n * @param {object} metadata\n * Metadata about the method being wrapped.\n * @param {integer} metadata.minArgs\n * The minimum number of arguments which must be passed to the\n * function. If called with fewer than this number of arguments, the\n * wrapper will raise an exception.\n * @param {integer} metadata.maxArgs\n * The maximum number of arguments which may be passed to the\n * function. If called with more than this number of arguments, the\n * wrapper will raise an exception.\n * @param {boolean} metadata.singleCallbackArg\n * Whether or not the promise is resolved with only the first\n * argument of the callback, alternatively an array of all the\n * callback arguments is resolved. By default, if the callback\n * function is invoked with only a single argument, that will be\n * resolved to the promise, while all arguments will be resolved as\n * an array if multiple are given.\n *\n * @returns {function(object, ...*)}\n * The generated wrapper function.\n */\n const wrapAsyncFunction = (name, metadata) => {\n return function asyncFunctionWrapper(target, ...args) {\n if (args.length < metadata.minArgs) {\n throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`);\n }\n\n if (args.length > metadata.maxArgs) {\n throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`);\n }\n\n return new Promise((resolve, reject) => {\n if (metadata.fallbackToNoCallback) {\n // This API method has currently no callback on Chrome, but it return a promise on Firefox,\n // and so the polyfill will try to call it with a callback first, and it will fallback\n // to not passing the callback if the first call fails.\n try {\n target[name](...args, makeCallback({resolve, reject}, metadata));\n } catch (cbError) {\n console.warn(`${name} API method doesn't seem to support the callback parameter, ` +\n \"falling back to call it without a callback: \", cbError);\n\n target[name](...args);\n\n // Update the API method metadata, so that the next API calls will not try to\n // use the unsupported callback anymore.\n metadata.fallbackToNoCallback = false;\n metadata.noCallback = true;\n\n resolve();\n }\n } else if (metadata.noCallback) {\n target[name](...args);\n resolve();\n } else {\n target[name](...args, makeCallback({resolve, reject}, metadata));\n }\n });\n };\n };\n\n /**\n * Wraps an existing method of the target object, so that calls to it are\n * intercepted by the given wrapper function. The wrapper function receives,\n * as its first argument, the original `target` object, followed by each of\n * the arguments passed to the original method.\n *\n * @param {object} target\n * The original target object that the wrapped method belongs to.\n * @param {function} method\n * The method being wrapped. This is used as the target of the Proxy\n * object which is created to wrap the method.\n * @param {function} wrapper\n * The wrapper function which is called in place of a direct invocation\n * of the wrapped method.\n *\n * @returns {Proxy}\n * A Proxy object for the given method, which invokes the given wrapper\n * method in its place.\n */\n const wrapMethod = (target, method, wrapper) => {\n return new Proxy(method, {\n apply(targetMethod, thisObj, args) {\n return wrapper.call(thisObj, target, ...args);\n },\n });\n };\n\n let hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n\n /**\n * Wraps an object in a Proxy which intercepts and wraps certain methods\n * based on the given `wrappers` and `metadata` objects.\n *\n * @param {object} target\n * The target object to wrap.\n *\n * @param {object} [wrappers = {}]\n * An object tree containing wrapper functions for special cases. Any\n * function present in this object tree is called in place of the\n * method in the same location in the `target` object tree. These\n * wrapper methods are invoked as described in {@see wrapMethod}.\n *\n * @param {object} [metadata = {}]\n * An object tree containing metadata used to automatically generate\n * Promise-based wrapper functions for asynchronous. Any function in\n * the `target` object tree which has a corresponding metadata object\n * in the same location in the `metadata` tree is replaced with an\n * automatically-generated wrapper function, as described in\n * {@see wrapAsyncFunction}\n *\n * @returns {Proxy}\n */\n const wrapObject = (target, wrappers = {}, metadata = {}) => {\n let cache = Object.create(null);\n let handlers = {\n has(proxyTarget, prop) {\n return prop in target || prop in cache;\n },\n\n get(proxyTarget, prop, receiver) {\n if (prop in cache) {\n return cache[prop];\n }\n\n if (!(prop in target)) {\n return undefined;\n }\n\n let value = target[prop];\n\n if (typeof value === \"function\") {\n // This is a method on the underlying object. Check if we need to do\n // any wrapping.\n\n if (typeof wrappers[prop] === \"function\") {\n // We have a special-case wrapper for this method.\n value = wrapMethod(target, target[prop], wrappers[prop]);\n } else if (hasOwnProperty(metadata, prop)) {\n // This is an async method that we have metadata for. Create a\n // Promise wrapper for it.\n let wrapper = wrapAsyncFunction(prop, metadata[prop]);\n value = wrapMethod(target, target[prop], wrapper);\n } else {\n // This is a method that we don't know or care about. Return the\n // original method, bound to the underlying object.\n value = value.bind(target);\n }\n } else if (typeof value === \"object\" && value !== null &&\n (hasOwnProperty(wrappers, prop) ||\n hasOwnProperty(metadata, prop))) {\n // This is an object that we need to do some wrapping for the children\n // of. Create a sub-object wrapper for it with the appropriate child\n // metadata.\n value = wrapObject(value, wrappers[prop], metadata[prop]);\n } else if (hasOwnProperty(metadata, \"*\")) {\n // Wrap all properties in * namespace.\n value = wrapObject(value, wrappers[prop], metadata[\"*\"]);\n } else {\n // We don't need to do any wrapping for this property,\n // so just forward all access to the underlying object.\n Object.defineProperty(cache, prop, {\n configurable: true,\n enumerable: true,\n get() {\n return target[prop];\n },\n set(value) {\n target[prop] = value;\n },\n });\n\n return value;\n }\n\n cache[prop] = value;\n return value;\n },\n\n set(proxyTarget, prop, value, receiver) {\n if (prop in cache) {\n cache[prop] = value;\n } else {\n target[prop] = value;\n }\n return true;\n },\n\n defineProperty(proxyTarget, prop, desc) {\n return Reflect.defineProperty(cache, prop, desc);\n },\n\n deleteProperty(proxyTarget, prop) {\n return Reflect.deleteProperty(cache, prop);\n },\n };\n\n // Per contract of the Proxy API, the \"get\" proxy handler must return the\n // original value of the target if that value is declared read-only and\n // non-configurable. For this reason, we create an object with the\n // prototype set to `target` instead of using `target` directly.\n // Otherwise we cannot return a custom object for APIs that\n // are declared read-only and non-configurable, such as `chrome.devtools`.\n //\n // The proxy handlers themselves will still use the original `target`\n // instead of the `proxyTarget`, so that the methods and properties are\n // dereferenced via the original targets.\n let proxyTarget = Object.create(target);\n return new Proxy(proxyTarget, handlers);\n };\n\n /**\n * Creates a set of wrapper functions for an event object, which handles\n * wrapping of listener functions that those messages are passed.\n *\n * A single wrapper is created for each listener function, and stored in a\n * map. Subsequent calls to `addListener`, `hasListener`, or `removeListener`\n * retrieve the original wrapper, so that attempts to remove a\n * previously-added listener work as expected.\n *\n * @param {DefaultWeakMap} wrapperMap\n * A DefaultWeakMap object which will create the appropriate wrapper\n * for a given listener function when one does not exist, and retrieve\n * an existing one when it does.\n *\n * @returns {object}\n */\n const wrapEvent = wrapperMap => ({\n addListener(target, listener, ...args) {\n target.addListener(wrapperMap.get(listener), ...args);\n },\n\n hasListener(target, listener) {\n return target.hasListener(wrapperMap.get(listener));\n },\n\n removeListener(target, listener) {\n target.removeListener(wrapperMap.get(listener));\n },\n });\n\n const onRequestFinishedWrappers = new DefaultWeakMap(listener => {\n if (typeof listener !== \"function\") {\n return listener;\n }\n\n /**\n * Wraps an onRequestFinished listener function so that it will return a\n * `getContent()` property which returns a `Promise` rather than using a\n * callback API.\n *\n * @param {object} req\n * The HAR entry object representing the network request.\n */\n return function onRequestFinished(req) {\n const wrappedReq = wrapObject(req, {} /* wrappers */, {\n getContent: {\n minArgs: 0,\n maxArgs: 0,\n },\n });\n listener(wrappedReq);\n };\n });\n\n const onMessageWrappers = new DefaultWeakMap(listener => {\n if (typeof listener !== \"function\") {\n return listener;\n }\n\n /**\n * Wraps a message listener function so that it may send responses based on\n * its return value, rather than by returning a sentinel value and calling a\n * callback. If the listener function returns a Promise, the response is\n * sent when the promise either resolves or rejects.\n *\n * @param {*} message\n * The message sent by the other end of the channel.\n * @param {object} sender\n * Details about the sender of the message.\n * @param {function(*)} sendResponse\n * A callback which, when called with an arbitrary argument, sends\n * that value as a response.\n * @returns {boolean}\n * True if the wrapped listener returned a Promise, which will later\n * yield a response. False otherwise.\n */\n return function onMessage(message, sender, sendResponse) {\n let didCallSendResponse = false;\n\n let wrappedSendResponse;\n let sendResponsePromise = new Promise(resolve => {\n wrappedSendResponse = function(response) {\n didCallSendResponse = true;\n resolve(response);\n };\n });\n\n let result;\n try {\n result = listener(message, sender, wrappedSendResponse);\n } catch (err) {\n result = Promise.reject(err);\n }\n\n const isResultThenable = result !== true && isThenable(result);\n\n // If the listener didn't returned true or a Promise, or called\n // wrappedSendResponse synchronously, we can exit earlier\n // because there will be no response sent from this listener.\n if (result !== true && !isResultThenable && !didCallSendResponse) {\n return false;\n }\n\n // A small helper to send the message if the promise resolves\n // and an error if the promise rejects (a wrapped sendMessage has\n // to translate the message into a resolved promise or a rejected\n // promise).\n const sendPromisedResult = (promise) => {\n promise.then(msg => {\n // send the message value.\n sendResponse(msg);\n }, error => {\n // Send a JSON representation of the error if the rejected value\n // is an instance of error, or the object itself otherwise.\n let message;\n if (error && (error instanceof Error ||\n typeof error.message === \"string\")) {\n message = error.message;\n } else {\n message = \"An unexpected error occurred\";\n }\n\n sendResponse({\n __mozWebExtensionPolyfillReject__: true,\n message,\n });\n }).catch(err => {\n // Print an error on the console if unable to send the response.\n console.error(\"Failed to send onMessage rejected reply\", err);\n });\n };\n\n // If the listener returned a Promise, send the resolved value as a\n // result, otherwise wait the promise related to the wrappedSendResponse\n // callback to resolve and send it as a response.\n if (isResultThenable) {\n sendPromisedResult(result);\n } else {\n sendPromisedResult(sendResponsePromise);\n }\n\n // Let Chrome know that the listener is replying.\n return true;\n };\n });\n\n const wrappedSendMessageCallback = ({reject, resolve}, reply) => {\n if (extensionAPIs.runtime.lastError) {\n // Detect when none of the listeners replied to the sendMessage call and resolve\n // the promise to undefined as in Firefox.\n // See https://github.com/mozilla/webextension-polyfill/issues/130\n if (extensionAPIs.runtime.lastError.message === CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE) {\n resolve();\n } else {\n reject(new Error(extensionAPIs.runtime.lastError.message));\n }\n } else if (reply && reply.__mozWebExtensionPolyfillReject__) {\n // Convert back the JSON representation of the error into\n // an Error instance.\n reject(new Error(reply.message));\n } else {\n resolve(reply);\n }\n };\n\n const wrappedSendMessage = (name, metadata, apiNamespaceObj, ...args) => {\n if (args.length < metadata.minArgs) {\n throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`);\n }\n\n if (args.length > metadata.maxArgs) {\n throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`);\n }\n\n return new Promise((resolve, reject) => {\n const wrappedCb = wrappedSendMessageCallback.bind(null, {resolve, reject});\n args.push(wrappedCb);\n apiNamespaceObj.sendMessage(...args);\n });\n };\n\n const staticWrappers = {\n devtools: {\n network: {\n onRequestFinished: wrapEvent(onRequestFinishedWrappers),\n },\n },\n runtime: {\n onMessage: wrapEvent(onMessageWrappers),\n onMessageExternal: wrapEvent(onMessageWrappers),\n sendMessage: wrappedSendMessage.bind(null, \"sendMessage\", {minArgs: 1, maxArgs: 3}),\n },\n tabs: {\n sendMessage: wrappedSendMessage.bind(null, \"sendMessage\", {minArgs: 2, maxArgs: 3}),\n },\n };\n const settingMetadata = {\n clear: {minArgs: 1, maxArgs: 1},\n get: {minArgs: 1, maxArgs: 1},\n set: {minArgs: 1, maxArgs: 1},\n };\n apiMetadata.privacy = {\n network: {\"*\": settingMetadata},\n services: {\"*\": settingMetadata},\n websites: {\"*\": settingMetadata},\n };\n\n return wrapObject(extensionAPIs, staticWrappers, apiMetadata);\n };\n\n // The build process adds a UMD wrapper around this file, which makes the\n // `module` variable available.\n module.exports = wrapAPIs(chrome);\n} else {\n module.exports = globalThis.browser;\n}\n", "\uFEFFimport * as browser from 'webextension-polyfill';\n\nexport async function getLocalStorage(key, default_value = null){\n\tconst result = await browser.storage.local.get([key]);\n\treturn result[key] === undefined ? default_value : result[key];\n}\n\nexport async function getLocalStorageMap(key: string): Promise>{\n\tconst result = await browser.storage.local.get([key]);\n\tif (result[key] === undefined) {\n\t\treturn new Map();\n\t}\n\tlet newMap = new Map();\n\tlet obj: Object = result[key];\n\tfor (const [k, v] of Object.entries(obj)) {\n\t\tlet key = parseInt(k);\n\t\tnewMap.set(key as T, v as V);\n\t}\n\treturn newMap;\n}\n\nexport async function getLocalStorageStringMap(key : string) : Promise> {\n\tconst result = await browser.storage.local.get([key]);\n\tif (result[key] === undefined) {\n\t\treturn new Map();\n\t}\n\tlet newMap = new Map();\n\tlet obj : Object = result[key];\n\tfor (const [k, v] of Object.entries(obj)) {\n\t\tnewMap.set(k as T, v as V);\n\t}\n\treturn newMap;\n}\n\nexport async function setLocalStorage(key : string, value){\n\tconst obj = {};\n\tobj[key] = value;\n\treturn browser.storage.local.set(obj);\n}\n\nexport async function setLocalStorageMap(key : string, value : Map) {\n\tconst obj = {};\n\tobj[key] = Object.fromEntries(value);\n\treturn browser.storage.local.set(obj);\n}\n\nexport async function removeLocalStorage(key){\n\treturn browser.storage.local.remove(key);\n}", "\uFEFF\"use strict\";\nimport * as browser from 'webextension-polyfill';\n\nexport let globalTabsActive : browser.Tabs.OnActivatedActiveInfoType[] = [];", "\uFEFF\"use strict\";\n\n// commands\nexport const reload_popup_controls = \"reload_popup_controls\";\nexport const update_tab_count = \"update_tab_count\";\nexport const discard_tabs = \"discard_tabs\";\nexport const move_tabs_to_window = \"move_tabs_to_window\";\nexport const focus_on_tab_and_window = \"focus_on_tab_and_window\";\nexport const focus_on_tab_and_window_delayed = \"focus_on_tab_and_window_delayed\";\nexport const focus_on_window = \"focus_on_window\";\nexport const focus_on_window_delayed = \"focus_on_window_delayed\";\nexport const set_window_color = \"set_window_color\";\nexport const set_window_name = \"set_window_name\";\nexport const create_window_with_tabs = \"create_window_with_tabs\";\nexport const create_window_with_session_tabs = \"create_window_with_session_tabs\";\nexport const close_tabs = \"close_tabs\";\nexport const switch_to_previous_active_tab = \"switch_to_previous_active_tab\";\nexport const refresh_windows = \"refresh_windows\";\n\n// context menues\nexport const open_in_own_tab = \"open_in_own_tab\";\nexport const open_popup = \"open_popup\";\nexport const open_sidebar = \"open_sidebar\";\nexport const sep1 = \"sep1\";\nexport const support_menu = \"support_menu\";\nexport const review = \"review\";\nexport const donate = \"donate\";\nexport const patron = \"patron\";\nexport const twitter = \"twitter\";\nexport const code_menu = \"code_menu\";\nexport const changelog = \"changelog\";\nexport const options = \"options\";\nexport const source = \"source\";\nexport const report = \"report\";\nexport const send = \"send\";\n\n// storage keys\nexport const windowHashes = \"windowHashes\";\nexport const windowColors = \"windowColors\";\nexport const windowNames = \"windowNames\";", "\uFEFF// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate = false) {\n\tvar timeout;\n\treturn function () {\n\t\tvar context = this, args = arguments;\n\t\tvar later = function later() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t}\n}\n\nexport function is_in_bounds(object, bounds) {\n\tvar C = object, B = bounds;\n\tif (C.left >= B.left && C.left <= B.left + B.width) {\n\t\tif (C.top >= B.top && C.top <= B.top + B.height) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nexport function isInViewport(element, ofElement) {\n\tvar rect = element.getBoundingClientRect();\n\treturn rect.top >= 0 && rect.left >= 0 && rect.bottom <= ofElement.height && rect.right <= ofElement.width;\n}\n\nexport function stringHashcode(string) : number {\n\tvar hash = 0;\n\tfor (var i = 0; i < string.length; i++) {\n\t\tvar code = string.charCodeAt(i);\n\t\thash = ((hash << 5) - hash) + code;\n\t\thash = hash & hash; // Convert to 32bit integer\n\t}\n\treturn hash;\n}\n\nexport function maybePluralize(count, noun, suffix = 's') {\n\treturn `${count} ${noun}${count !== 1 ? suffix : ''}`;\n}\n\nexport function toBoolean(str) {\n\tif (typeof str === \"undefined\" || str === null) {\n\t\treturn false;\n\t} else if (typeof str === \"string\") {\n\t\tswitch (str.toLowerCase()) {\n\t\t\tcase \"false\":\n\t\t\tcase \"no\":\n\t\t\tcase \"0\":\n\t\t\tcase \"\":\n\t\t\t\treturn false;\n\t\t\tdefault:\n\t\t\t\treturn true;\n\t\t}\n\t} else if (typeof str === \"number\") {\n\t\treturn str !== 0;\n\t} else {\n\t\treturn true;\n\t}\n}", "\uFEFF\"use strict\";\n\nimport {hashcode} from \"@background/windows\"\nimport {debounce} from \"@helpers/utils\";\nimport {getLocalStorageMap, setLocalStorageMap, getLocalStorage, setLocalStorage} from \"@helpers/storage\";\nimport * as S from \"@strings\";\nimport * as browser from 'webextension-polyfill';\nimport {ICommand} from \"@types\";\n\nexport const cleanupDebounce = debounce(cleanUp, 500);\n\nexport async function cleanUp(remove_old = false) {\n\tlet activewindows = await browser.windows.getAll({populate: true});\n\tlet windowids: number[] = [];\n\tfor (let _w of activewindows) {\n\t\twindowids.push(_w.id);\n\t}\n\t// console.log(\"window ids...\", windowids);\n\n\tlet windows = await getLocalStorage(\"windowAge\", []);\n\tif (!(windows instanceof Array)) windows = [];\n\n\t// console.log(\"before\", JSON.parse(JSON.stringify(windows)));\n\tfor (let i = windows.length - 1; i >= 0; i--) {\n\t\tif (windowids.indexOf(windows[i]) < 0) {\n\t\t\t// console.log(\"did not find\", windows[i], i);\n\t\t\twindows.splice(i, 1);\n\t\t}\n\t}\n\n\t// console.log(\"after\", JSON.parse(JSON.stringify(windows)));\n\tawait setLocalStorage(\"windowAge\", windows);\n\n\tlet names : Map = await getLocalStorageMap(S.windowNames);\n\tlet colors : Map = await getLocalStorageMap(S.windowColors);\n\tlet to_check = new Set();\n\tlet exists = new Set();\n\tlet to_refresh : number[] = [];\n\n\t// console.log(\"before\", JSON.parse(JSON.stringify(names)));\n\tfor (const [id, _name] of names) {\n\t\tif (windowids.indexOf(id) < 0) {\n\t\t\t// console.log(\"did not find\", id);\n\t\t\tto_check.add(id);\n\t\t} else {\n\t\t\texists.add(id);\n\t\t}\n\t}\n\n\tfor (const [id, _color] of colors) {\n\t\tif (windowids.indexOf(id) < 0) {\n\t\t\t// console.log(\"did not find\", id);\n\t\t\tto_check.add(id);\n\t\t} else {\n\t\t\texists.add(id);\n\t\t}\n\t}\n\n\tif (to_check.size > 0) {\n\t\tlet hashes : Map = await getLocalStorageMap(S.windowHashes);\n\t\tlet found = false;\n\n\t\tfor (let w of activewindows) {\n\t\t\tconst windowhash = hashcode(w);\n\t\t\tfor (const [id, _hash] of hashes) {\n\t\t\t\tif (!to_check.has(id)) continue;\n\t\t\t\tif (exists.has(id)) continue;\n\t\t\t\tif (w.id === id) break;\n\t\t\t\tif (_hash === windowhash) {\n\t\t\t\t\tconsole.log(\"found by hash, old id \" + id + \" new id \" + w.id);\n\t\t\t\t\tto_refresh.push(w.id);\n\t\t\t\t\tif (!!names.get(id)) {\n\t\t\t\t\t\tnames.set(w.id, names.get(id));\n\t\t\t\t\t\tnames.delete(id);\n\t\t\t\t\t}\n\t\t\t\t\tif (!!colors.get(id)) {\n\t\t\t\t\t\tcolors.set(w.id, colors.get(id));\n\t\t\t\t\t\tcolors.delete(id);\n\t\t\t\t\t}\n\t\t\t\t\thashes.set(w.id, _hash);\n\t\t\t\t\thashes.delete(id);\n\t\t\t\t\tfound = true;\n\t\t\t\t\tto_check.delete(id);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet save = false;\n\t\tif (remove_old) {\n\t\t\tfor (const _id of to_check) {\n\t\t\t\tconsole.log(\"should delete from to check \" + _id);\n\t\t\t\tcolors.delete(_id);\n\t\t\t\tnames.delete(_id);\n\t\t\t\thashes.delete(_id);\n\t\t\t\tsave = true;\n\t\t\t}\n\t\t}\n\n\t\tif (found || save) {\n\t\t\tawait setLocalStorageMap(S.windowNames, names);\n\t\t\tawait setLocalStorageMap(S.windowColors, colors);\n\t\t\tawait setLocalStorageMap(S.windowHashes, hashes);\n\t\t\tif (found) {\n\t\t\t\tbrowser.runtime.sendMessage({\n\t\t\t\t\tcommand: S.refresh_windows,\n\t\t\t\t\twindow_ids: to_refresh\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}", "\uFEFF\"use strict\";\n\nimport {cleanupDebounce} from \"@background/tracking\";\nimport {getLocalStorage, getLocalStorageMap, setLocalStorage, setLocalStorageMap} from \"@helpers/storage\";\nimport {is_in_bounds, stringHashcode} from \"@helpers/utils\";\nimport {setWindowColor, setWindowName} from \"@background/actions\";\nimport * as S from \"@strings\";\nimport * as browser from 'webextension-polyfill';\nimport {ISavedSession} from \"@types\";\n\nexport async function setupWindowListeners() {\n\tbrowser.windows.onFocusChanged.removeListener(windowFocus);\n\tbrowser.windows.onCreated.removeListener(windowCreated);\n\tbrowser.windows.onRemoved.removeListener(windowRemoved);\n\n\tbrowser.windows.onFocusChanged.addListener(windowFocus);\n\tbrowser.windows.onCreated.addListener(windowCreated);\n\tbrowser.windows.onRemoved.addListener(windowRemoved);\n}\n\nexport async function createWindowWithTabs(tabs : browser.Tabs.Tab[], isIncognito : boolean = false) {\n\tvar pinnedIndex = 0;\n\tvar firstTab = tabs.shift();\n\tvar t = [];\n\tfor (const _tab of tabs) {\n\t\tt.push(_tab.id);\n\t}\n\n\tvar firstPinned = firstTab.pinned;\n\tvar w = await browser.windows.create({tabId: firstTab.id, incognito: !!isIncognito});\n\tif (firstPinned) {\n\t\tawait browser.tabs.update(w.tabs[0].id, {pinned: firstPinned});\n\t\tpinnedIndex++;\n\t}\n\n\tif (t.length > 0) {\n\t\tvar i = 0;\n\t\tfor (let oldTabId of t) {\n\t\t\ti++;\n\t\t\tvar oldTab = await browser.tabs.get(oldTabId);\n\t\t\tvar tabPinned = oldTab.pinned;\n\t\t\tvar movedTabs : browser.Tabs.Tab | browser.Tabs.Tab[] = [];\n\t\t\tif (!tabPinned) {\n\t\t\t\tmovedTabs = await browser.tabs.move(oldTabId, {windowId: w.id, index: -1});\n\t\t\t} else {\n\t\t\t\tmovedTabs = await browser.tabs.move(oldTabId, {windowId: w.id, index: pinnedIndex++});\n\t\t\t}\n\n\t\t\tlet firstTab : browser.Tabs.Tab;\n\t\t\tif (Array.isArray(movedTabs)) {\n\t\t\t\tfirstTab = movedTabs[0];\n\t\t\t} else {\n\t\t\t\tfirstTab = movedTabs;\n\t\t\t}\n\n\t\t\tif (!!firstTab) {\n\t\t\t\tif (tabPinned) {\n\t\t\t\t\tawait browser.tabs.update(firstTab.id, {pinned: tabPinned});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tawait browser.windows.update(w.id, {focused: true});\n}\n\nexport async function createWindowWithSessionTabs(session: ISavedSession, tabId: number) {\n\n\tvar customName : string;\n\tif (session && session.name && session.customName) {\n\t\tcustomName = session.name;\n\t}\n\tvar color = \"default\";\n\tif (session && session.color) {\n\t\tcolor = session.color;\n\t}\n\n\tvar whitelistWindow = [\"left\", \"top\", \"width\", \"height\", \"incognito\", \"type\"];\n\n\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\twhitelistWindow = [\"left\", \"top\", \"width\", \"height\", \"incognito\", \"type\"];\n\t}\n\n\tvar whitelistTab = [\"url\", \"active\", \"selected\", \"pinned\", \"index\"];\n\n\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\twhitelistTab = [\"url\", \"active\", \"pinned\", \"index\"];\n\t}\n\n\tvar filteredWindow : browser.Windows.CreateCreateDataType = Object.keys(session.windowsInfo)\n\t\t.filter(function (key) {\n\t\t\treturn whitelistWindow.includes(key);\n\t\t})\n\t\t.reduce(function (obj, key) {\n\t\t\tobj[key] = session.windowsInfo[key];\n\t\t\treturn obj;\n\t\t}, {});\n\n\tif (filteredWindow.left < 0 || filteredWindow.left > 800) filteredWindow.left = 0;\n\tif (filteredWindow.top < 0 || filteredWindow.top > 600) filteredWindow.top = 0;\n\tif (filteredWindow.width > 800) filteredWindow.width = 800;\n\tif (filteredWindow.height > 600) filteredWindow.height = 600;\n\n\tfilteredWindow.type = \"normal\";\n\n\t// console.log(\"filtered window\", filteredWindow);\n\n\tconst newWindow = await browser.windows.create(filteredWindow).catch(function (error) {\n\t\tconsole.error(error);\n\t\tconsole.log(error);\n\t\tconsole.log(error.message);\n\t});\n\n\tif (!newWindow) return;\n\n\tlet emptyTab = newWindow.tabs[0].id;\n\n\tfor (let i = 0; i < session.tabs.length; i++) {\n\t\tlet newTab = Object.keys(session.tabs[i])\n\t\t\t.filter(function (key) {\n\t\t\t\treturn whitelistTab.includes(key);\n\t\t\t})\n\t\t\t.reduce(function (obj, key) {\n\t\t\t\tobj[key] = session.tabs[i][key];\n\t\t\t\treturn obj;\n\t\t\t}, {});\n\n\t\tvar fTab : browser.Tabs.Tab = newTab as browser.Tabs.Tab;\n\n\t\tif (tabId != null && tabId !== fTab.index) {\n\t\t\tcontinue;\n\t\t}\n\t\tfTab.windowId = newWindow.id;\n\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\tif (!!fTab.url && fTab.url.search(\"about:\") > -1) {\n\t\t\t\tconsole.log(\"filtered by about: url\", fTab.url);\n\t\t\t\tfTab.url = \"\";\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\tawait browser.tabs.create(fTab).catch(function (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t\tconsole.log(error);\n\t\t\t\tconsole.log(error.message);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tconsole.log(\"couldn't restore tab\");\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tawait browser.tabs.remove(emptyTab).catch(function (error) {\n\t\tconsole.error(error);\n\t\tconsole.log(error);\n\t\tconsole.log(error.message);\n\t});\n\n\tif (customName) {\n\t\tconsole.log(\"setting name\");\n\t\tawait setWindowName(newWindow.id, customName);\n\t}\n\n\tif (color !== \"default\") {\n\t\tconsole.log(\"setting color\");\n\t\tawait setWindowColor(newWindow.id, color);\n\t}\n\n\tawait browser.windows.update(newWindow.id, {focused: true});\n}\n\nexport function focusOnWindowDelayed(windowId: number) {\n\tsetTimeout(focusOnWindow.bind(this, windowId), 125);\n}\n\nexport async function focusOnWindow(windowId : number) {\n\tawait browser.windows.update(windowId, {focused: true});\n}\n\nasync function hideWindows(windowId : number) {\n\tif (navigator.userAgent.search(\"Firefox\") > -1) return;\n\tif (!windowId || windowId < 0) return;\n\n\tlet hide_windows = await getLocalStorage(\"hideWindows\", false);\n\tif (!hide_windows) return;\n\n\tlet has_permission = await browser.permissions.contains({permissions: ['system.display']});\n\tif (!has_permission) return;\n\n\tlet displaylayouts = await chrome.system.display.getInfo();\n\tlet monitor_bounds = [];\n\n\ttry {\n\t\tfor (let displaylayout of displaylayouts) {\n\t\t\tmonitor_bounds.push(displaylayout.bounds);\n\t\t}\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\treturn;\n\t}\n\n\tlet windows = await browser.windows.getAll({populate: true});\n\tlet monitor = null;\n\n\tfor (let window of windows) {\n\t\tif (window.id === windowId) {\n\t\t\tfor (let bounds_index in monitor_bounds) {\n\t\t\t\tlet _monitor = monitor_bounds[bounds_index];\n\t\t\t\tlet _is_in_bounds = is_in_bounds(window, _monitor);\n\t\t\t\tif (_is_in_bounds) {\n\t\t\t\t\tmonitor = _monitor;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (monitor == null) return;\n\n\tfor (let window of windows) {\n\t\tif (window.id !== windowId) {\n\t\t\tif (is_in_bounds(window, monitor)) {\n\t\t\t\tawait browser.windows.update(window.id, {\"state\": \"minimized\"});\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport async function windowActive(windowId : number) {\n\tif (windowId < 0) return;\n\n\tvar windows = [];\n\tvar windowAge = await getLocalStorage(\"windowAge\", []);\n\tif (windowAge instanceof Array) windows = windowAge;\n\n\tif (windows.indexOf(windowId) > -1) windows.splice(windows.indexOf(windowId), 1);\n\twindows.unshift(windowId);\n\tawait setLocalStorage(\"windowAge\", windows);\n\n\t// browser.windows.getLastFocused({ populate: true }, function (w) {\n\t// \tfor (let i = 0; i < w.tabs.length; i++) {\n\t// \t\tvar tab = w.tabs[i];\n\t// \t\tif (tab.active === true) {\n\t// \t\t\t// console.log(\"get last focused\", tab.id);\n\t// \t\t\t// tabActiveChanged({\n\t// \t\t\t// \ttabId: tab.id,\n\t// \t\t\t// \twindowId: tab.windowId\n\t// \t\t\t// });\n\t// \t\t}\n\t// \t};\n\t// });\n\t// console.log(windows);\n}\n\nasync function windowFocus(windowId : number) {\n\ttry {\n\t\tif (!!windowId) {\n\t\t\tawait windowActive(windowId);\n\t\t\t// console.log(\"onFocused\", windowId);\n\t\t\tawait hideWindows(windowId);\n\t\t}\n\t} catch (e) {\n\n\t}\n}\n\nasync function windowCreated(window : browser.Windows.Window) {\n\ttry {\n\t\tif (!!window && !!window.id) {\n\t\t\tawait windowActive(window.id);\n\t\t}\n\t} catch (e) {\n\n\t}\n\t// console.log(\"onCreated \" + window.id, window);\n\tsetTimeout(cleanupDebounce, 250);\n}\n\nasync function windowRemoved(windowId : number) {\n\ttry {\n\t\tif (!!windowId) {\n\t\t\tawait windowActive(windowId);\n\t\t}\n\t} catch (e) {\n\n\t}\n\t// console.log(\"onRemoved\", windowId);\n}\n\nexport async function checkWindow(windowId : number) {\n\tif (!windowId) return;\n\n\tconst colors: Map = await getLocalStorageMap(S.windowColors);\n\tconst names: Map = await getLocalStorageMap(S.windowNames);\n\n\tif (!names[windowId] && !colors[windowId]) return;\n\n\tconst hashes: Map = await getLocalStorageMap(S.windowHashes);\n\n\ttry {\n\t\tconst window = await browser.windows.get(windowId, {populate: true});\n\n\t\tlet newHash = hashcode(window);\n\t\thashes.set(windowId, newHash);\n\t\tawait setLocalStorageMap(S.windowHashes, hashes);\n\t} catch (e) {\n\t\tconsole.log(e);\n\t}\n}\n\nexport function hashcode(window : browser.Windows.Window) : number {\n\tlet urls = [];\n\tfor (let i = 0; i < window.tabs.length; i++) {\n\t\tif (!window.tabs[i].url) continue;\n\t\turls.push(window.tabs[i].url);\n\t}\n\turls.sort();\n\n\tlet hash = 0;\n\tfor (let i = 0; i < urls.length; i++) {\n\t\tconst code = stringHashcode(urls[i]);\n\t\thash = ((hash << 5) - hash) + code;\n\t\thash = hash & hash; // Convert to 32bit integer\n\t}\n\treturn hash;\n}", "\uFEFF\"use strict\";\n\nimport {getLocalStorage} from \"@helpers/storage\";\nimport {trackLastTab} from \"@background/actions\"\nimport {globalTabsActive} from '@context';\nimport {debounce} from \"@helpers/utils\";\nimport {checkWindow, createWindowWithTabs} from '@background/windows';\nimport * as browser from 'webextension-polyfill';\n\nexport async function setupTabListeners() {\n\tbrowser.tabs.onCreated.removeListener(tabAdded);\n\tbrowser.tabs.onUpdated.removeListener(tabCountChanged);\n\tbrowser.tabs.onRemoved.removeListener(tabCountChanged);\n\tbrowser.tabs.onReplaced.removeListener(tabCountChanged);\n\tbrowser.tabs.onDetached.removeListener(tabCountChanged);\n\tbrowser.tabs.onAttached.removeListener(tabCountChanged);\n\tbrowser.tabs.onActivated.removeListener(tabActiveChanged);\n\tbrowser.tabs.onMoved.removeListener(tabCountChanged);\n\n\tbrowser.tabs.onCreated.removeListener(checkTabCreate);\n\tbrowser.tabs.onUpdated.removeListener(checkTabUpdate);\n\tbrowser.tabs.onRemoved.removeListener(checkTabRemove);\n\tbrowser.tabs.onDetached.removeListener(checkTabDetached);\n\tbrowser.tabs.onAttached.removeListener(checkTabAttached);\n\tbrowser.tabs.onMoved.removeListener(checkTabMoved);\n\n\tbrowser.tabs.onCreated.addListener(tabAdded);\n\tbrowser.tabs.onUpdated.addListener(tabCountChanged);\n\tbrowser.tabs.onRemoved.addListener(tabCountChanged);\n\tbrowser.tabs.onReplaced.addListener(tabCountChanged);\n\tbrowser.tabs.onDetached.addListener(tabCountChanged);\n\tbrowser.tabs.onAttached.addListener(tabCountChanged);\n\tbrowser.tabs.onActivated.addListener(tabActiveChanged);\n\tbrowser.tabs.onMoved.addListener(tabCountChanged);\n\n\tbrowser.tabs.onCreated.addListener(checkTabCreate); // 1, tab\n\tbrowser.tabs.onUpdated.addListener(checkTabUpdate); // 3, tabid, changeinfo, tab\n\tbrowser.tabs.onRemoved.addListener(checkTabRemove); // 2, tabid, removeinfo\n\tbrowser.tabs.onDetached.addListener(checkTabDetached); // 2, tabid, detachinfo\n\tbrowser.tabs.onAttached.addListener(checkTabAttached); // 2, tabid, attachinfo\n\tbrowser.tabs.onMoved.addListener(checkTabMoved); // 2, tabid, moveinfo\n}\n\nexport async function discardTabs(tabs) {\n\tfor (const tab of tabs) {\n\t\tif (!tab.discarded) {\n\t\t\tbrowser.tabs.discard(tab.id).catch(function (e) {\n\t\t\t\tconsole.error(e);\n\t\t\t\tconsole.log(e.message);\n\t\t\t});\n\t\t}\n\t}\n}\n\nexport async function closeTabs(tabs) {\n\tfor (const tab of tabs) {\n\t\tawait browser.tabs.remove(tab.id);\n\t}\n}\n\nexport async function moveTabsToWindow(windowId, tabs) {\n\tfor (const tab of tabs) {\n\t\tawait browser.tabs.move(tab.id, {windowId: windowId, index: -1});\n\t\tawait browser.tabs.update(tab.id, {pinned: tab.pinned});\n\t}\n}\n\nexport function focusOnTabAndWindowDelayed(tabId: number, windowId: number) {\n\tsetTimeout(focusOnTabAndWindow.bind(this, tabId, windowId), 125);\n}\n\nexport async function focusOnTabAndWindow(tabId : number, windowId : number) {\n\tawait browser.windows.update(windowId, {focused: true});\n\tawait browser.tabs.update(tabId, {active: true});\n\tawait tabActiveChanged({tabId: tabId, windowId: windowId});\n}\n\nexport async function updateTabCount() {\n\tlet run = true;\n\n\tconst badge = await getLocalStorage(\"badge\", true);\n\tif (!badge) run = false;\n\n\tif (run) {\n\t\tlet result = await browser.tabs.query({});\n\t\tlet count = 0;\n\t\tif (!!result && !!result.length) {\n\t\t\tcount = result.length;\n\t\t}\n\t\tawait browser.action.setBadgeText({text: count + \"\"});\n\t\tawait browser.action.setBadgeBackgroundColor({color: \"purple\"});\n\t\tconst _to_remove : number[] = [];\n\n\t\tif (!!globalTabsActive) {\n\t\t\tfor (let i = 0; i < globalTabsActive.length; i++) {\n\t\t\t\tconst t = globalTabsActive[i];\n\t\t\t\tlet found = false;\n\t\t\t\tif (!!result && !!result.length) {\n\t\t\t\t\tfor (let j = 0; j < result.length; j++) {\n\t\t\t\t\t\tif (result[j].id === t.tabId) found = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!found) _to_remove.push(i);\n\t\t\t}\n\t\t}\n\n\t\twhile (_to_remove.length > 0) {\n\t\t\tlet index = _to_remove.pop();\n\t\t\tif (!!globalTabsActive && globalTabsActive.length > 0) {\n\t\t\t\tif (!!globalTabsActive[index]) globalTabsActive.splice(index, 1);\n\t\t\t}\n\t\t}\n\n\t} else {\n\t\tawait browser.action.setBadgeText({text: \"\"});\n\t}\n}\n\nfunction tabCountChanged() {\n\tupdateTabCountDebounce();\n}\n\nexport const updateTabCountDebounce = debounce(updateTabCount, 250);\n\nasync function tabAdded(tab) {\n\tconst tabLimit = await getLocalStorage(\"tabLimit\", 0);\n\tif (tabLimit > 0) {\n\t\tif (tab.id !== browser.tabs.TAB_ID_NONE) {\n\t\t\tconst tabCount = await browser.tabs.query({currentWindow: true});\n\t\t\tif (tabCount.length > tabLimit) {\n\t\t\t\tawait createWindowWithTabs([tab], tab.incognito);\n\t\t\t}\n\t\t}\n\t}\n\tupdateTabCountDebounce();\n}\n\nfunction tabActiveChanged(tab : browser.Tabs.OnActivatedActiveInfoType) {\n\ttrackLastTab(tab);\n\tupdateTabCountDebounce();\n}\n\nasync function checkTabCreate(tab) {\n\tawait checkWindow(tab.windowId);\n}\n\nasync function checkTabUpdate(tabid, changeinfo, tab) {\n\tawait checkWindow(tab.windowId);\n}\n\nasync function checkTabRemove(tabid, removeinfo) {\n\tif (removeinfo.isWindowClosing) return;\n\tawait checkWindow(removeinfo.windowId);\n}\n\nasync function checkTabDetached(tabid, detachinfo) {\n\tawait checkWindow(detachinfo.oldWindowId);\n}\n\nasync function checkTabAttached(tabid, attachinfo) {\n\tawait checkWindow(attachinfo.newWindowId);\n}\n\nasync function checkTabMoved(tabid, moveinfo) {\n\tawait checkWindow(moveinfo.windowId);\n}", "\uFEFF\"use strict\";\n\nimport {getLocalStorage} from \"@helpers/storage\";\nimport {globalTabsActive} from '@context';\nimport {focusOnTabAndWindow} from \"@background/tabs\";\nimport * as browser from 'webextension-polyfill';\n\nexport async function openSidebar() {\n\tawait browser.sidebarAction.open();\n}\n\nexport async function openPopup() {\n\tconst openInOwnTab : boolean = await getLocalStorage(\"openInOwnTab\", false);\n\tif (openInOwnTab) {\n\t\tawait browser.action.setPopup({popup: \"popup.html?popup=true\"});\n\t\tawait browser.action.openPopup();\n\t\tawait browser.action.setPopup({popup: \"\"});\n\t} else {\n\t\tawait browser.action.openPopup();\n\t}\n}\n\nexport async function openAsOwnTab() {\n\tconst popup_page = await browser.runtime.getURL(\"popup.html\");\n\tconst tabs = await browser.tabs.query({});\n\n\tlet currentTab : browser.Tabs.OnActivatedActiveInfoType;\n\tlet previousTab : browser.Tabs.OnActivatedActiveInfoType;\n\n\tif (!!globalTabsActive && globalTabsActive.length > 1) {\n\t\tcurrentTab = globalTabsActive[globalTabsActive.length - 1];\n\t\tpreviousTab = globalTabsActive[globalTabsActive.length - 2];\n\t}\n\n\tfor (var i = 0; i < tabs.length; i++) {\n\t\tconst tab = tabs[i];\n\t\tif (tab.url.indexOf(\"popup.html\") > -1 && tab.url.indexOf(popup_page) > -1) {\n\t\t\tif (currentTab && currentTab.tabId && tab.id === currentTab.tabId && previousTab && previousTab.tabId) {\n\t\t\t\tawait focusOnTabAndWindow(previousTab.tabId, previousTab.windowId);\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tawait browser.windows.update(tab.windowId, {focused: true});\n\t\t\t\tawait browser.tabs.highlight({windowId: tab.windowId, tabs: tab.index});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\tawait browser.tabs.create({url: \"popup.html\"});\n}\n\nexport async function setupPopup() {\n\n\tconst openInOwnTab = await getLocalStorage(\"openInOwnTab\", false);\n\n\tbrowser.action.onClicked.removeListener(openAsOwnTab);\n\tif (openInOwnTab) {\n\t\tawait browser.action.setPopup({popup: \"\"});\n\t\tbrowser.action.onClicked.addListener(openAsOwnTab);\n\t} else {\n\t\tawait browser.action.setPopup({popup: \"popup.html?popup=true\"});\n\t}\n\tif (browser.sidebarAction) {\n\t\tawait browser.sidebarAction.setPanel({panel: \"popup.html?panel=true\"});\n\t}\n}", "\uFEFF\"use strict\";\n\nimport { globalTabsActive } from '@context'\nimport * as S from \"@strings\";\nimport { focusOnWindow, focusOnWindowDelayed, createWindowWithTabs, createWindowWithSessionTabs, hashcode } from '@background/windows';\nimport { getLocalStorageMap, setLocalStorageMap } from \"@helpers/storage\";\nimport { setupPopup } from \"@ui/open\";\nimport { updateTabCount, discardTabs, moveTabsToWindow, closeTabs, focusOnTabAndWindow, focusOnTabAndWindowDelayed } from \"@background/tabs\";\nimport * as browser from 'webextension-polyfill';\nimport { ICommand } from '@types';\n\nexport async function handleMessages(message, sender, sendResponse) {\n\tconst request = message as ICommand;\n\n\tswitch (request.command) {\n\t\tcase S.reload_popup_controls:\n\t\t\tsetupPopup();\n\t\t\tbreak;\n\t\tcase S.update_tab_count:\n\t\t\tupdateTabCount();\n\t\t\tbreak;\n\t\tcase S.discard_tabs:\n\t\t\tdiscardTabs(request.tabs);\n\t\t\tbreak;\n\t\tcase S.move_tabs_to_window:\n\t\t\tmoveTabsToWindow(request.window_id, request.tabs);\n\t\t\tbreak;\n\t\tcase S.focus_on_tab_and_window:\n\t\t\tif (!!request.tab) {\n\t\t\t\tfocusOnTabAndWindow(request.tab.id, request.tab.windowId);\n\t\t\t} else {\n\t\t\t\tfocusOnTabAndWindow(request.saved_tab.tabId, request.saved_tab.windowId);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase S.focus_on_tab_and_window_delayed:\n\t\t\tif (!!request.tab) {\n\t\t\t\tfocusOnTabAndWindowDelayed(request.tab.id, request.tab.windowId);\n\t\t\t} else {\n\t\t\t\tfocusOnTabAndWindowDelayed(request.saved_tab.tabId, request.saved_tab.windowId);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase S.focus_on_window:\n\t\t\tfocusOnWindow(request.window_id);\n\t\t\tbreak;\n\t\tcase S.focus_on_window_delayed:\n\t\t\tfocusOnWindowDelayed(request.window_id);\n\t\t\tbreak;\n\t\tcase S.set_window_color:\n\t\t\tsetWindowColor(request.window_id, request.color);\n\t\t\tbreak;\n\t\tcase S.set_window_name:\n\t\t\tsetWindowName(request.window_id, request.name);\n\t\t\tbreak;\n\t\tcase S.create_window_with_tabs:\n\t\t\tcreateWindowWithTabs(request.tabs, request.incognito);\n\t\t\tbreak;\n\t\tcase S.create_window_with_session_tabs:\n\t\t\tcreateWindowWithSessionTabs(request.session, request.tab_id);\n\t\t\tbreak;\n\t\tcase S.close_tabs:\n\t\t\tcloseTabs(request.tabs);\n\t\t\tbreak;\n\t}\n}\n\nexport function handleCommands(command : string) {\n\tif (command === S.switch_to_previous_active_tab) {\n\t\tif (!!globalTabsActive && globalTabsActive.length > 1) {\n\t\t\tvar _tab = globalTabsActive[globalTabsActive.length - 2];\n\t\t\tfocusOnTabAndWindow(_tab.tabId, _tab.windowId);\n\t\t}\n\t}\n}\n\nexport function trackLastTab(tab : browser.Tabs.OnActivatedActiveInfoType) {\n\tif (!!tab && !!tab.tabId) {\n\t\tif (!!globalTabsActive && globalTabsActive.length > 0) {\n\t\t\tvar lastActive = globalTabsActive[globalTabsActive.length - 1];\n\t\t\tif (!!lastActive && lastActive.tabId === tab.tabId && lastActive.windowId === tab.windowId) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\twhile (globalTabsActive.length > 20) {\n\t\t\tglobalTabsActive.shift();\n\t\t}\n\t\tfor (let i = globalTabsActive.length - 1; i >= 0; i--) {\n\t\t\tif (globalTabsActive[i].tabId === tab.tabId) {\n\t\t\t\tglobalTabsActive.splice(i, 1);\n\t\t\t}\n\t\t}\n\t\tglobalTabsActive.push(tab);\n\t}\n}\n\nexport async function setWindowColor(windowId : number, color : string) {\n\tvar colors : Map = await getLocalStorageMap(S.windowColors);\n\tif (!!color) {\n\t\tcolors.set(windowId, color);\n\t} else {\n\t\tcolors.delete(windowId);\n\t}\n\tawait setLocalStorageMap(S.windowColors, colors);\n\tawait updateWindowHash(windowId);\n\tbrowser.runtime.sendMessage({\n\t\tcommand: S.refresh_windows,\n\t\twindow_ids: [windowId]\n\t});\n}\n\nexport async function setWindowName(windowId: number, name : string) {\n\tvar names : Map = await getLocalStorageMap(S.windowNames);\n\tif (!!name) {\n\t\tnames.set(windowId, name);\n\t} else {\n\t\tnames.delete(windowId);\n\t}\n\tawait setLocalStorageMap(S.windowNames, names);\n\tawait updateWindowHash(windowId);\n\tbrowser.runtime.sendMessage({\n\t\tcommand: S.refresh_windows,\n\t\twindow_ids: [windowId]\n\t});\n}\n\nasync function updateWindowHash(windowId : number) {\n\tconst window = await browser.windows.get(windowId, {populate: true});\n\tconst hash = hashcode(window);\n\tconst hashes : Map = await getLocalStorageMap(S.windowHashes);\n\thashes.set(windowId, hash);\n\tawait setLocalStorageMap(S.windowHashes, hashes);\n}", "\uFEFF\"use strict\";\n\nimport {openPopup, openAsOwnTab, openSidebar} from \"@ui/open\";\nimport * as S from \"@strings\";\nimport * as browser from 'webextension-polyfill';\n\nexport async function setupContextMenus() {\n\tawait browser.contextMenus.removeAll();\n\n\tbrowser.contextMenus.create({\n\t\tid: S.open_in_own_tab,\n\t\ttitle: \"\uD83D\uDCD4 Open in own tab\",\n\t\tcontexts: [\"action\"]\n\t});\n\n\tif (!!browser.action.openPopup) {\n\t\tbrowser.contextMenus.create({\n\t\t\tid: S.open_popup,\n\t\t\ttitle: \"\uD83D\uDCD1 Open popup\",\n\t\t\tcontexts: [\"action\"]\n\t\t});\n\t}\n\n\tif (!!browser.sidebarAction) {\n\t\tbrowser.contextMenus.create({\n\t\t\tid: S.open_sidebar,\n\t\t\ttitle: \"\uD83D\uDDC2 Open sidebar\",\n\t\t\tcontexts: [\"action\"]\n\t\t});\n\t}\n\n\tbrowser.contextMenus.create({\n\t\tid: S.sep1,\n\t\ttype: \"separator\",\n\t\tcontexts: [\"action\"]\n\t});\n\n\tbrowser.contextMenus.create({\n\t\ttitle: \"\uD83D\uDE0D Support this extension\",\n\t\tid: S.support_menu,\n\t\t\"contexts\": [\"action\"]\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.review,\n\t\ttitle: \"\u2B50 Leave a review\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"support_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.donate,\n\t\ttitle: \"\u2615 Donate to keep Extensions Alive\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"support_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.patron,\n\t\ttitle: \"\uD83D\uDCB0 Become a Patron\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"support_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.twitter,\n\t\ttitle: \"\uD83D\uDC26 Follow on Twitter\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"support_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\ttitle: \"\uD83E\uDD14 Issues and Suggestions\",\n\t\tid: S.code_menu,\n\t\t\"contexts\": [\"action\"]\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.changelog,\n\t\ttitle: \"\uD83C\uDD95 View recent changes\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"code_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.options,\n\t\ttitle: \"\u2699 Edit Options\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"code_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.source,\n\t\ttitle: \"\uD83D\uDCBB View source code\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"code_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.report,\n\t\ttitle: \"\uD83E\uDD14 Report an issue\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"code_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.send,\n\t\ttitle: \"\uD83D\uDCA1 Send a suggestion\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"code_menu\"\n\t});\n\n\tbrowser.contextMenus.onClicked.removeListener(contextListeners);\n\tbrowser.contextMenus.onClicked.addListener(contextListeners);\n}\n\nasync function contextListeners(info: browser.Menus.OnClickData, tab?: browser.Tabs.Tab)\n{\n\tswitch (info.menuItemId) {\n\t\tcase S.open_in_own_tab:\n\t\t\tawait openAsOwnTab();\n\t\t\tbreak;\n\t\tcase S.open_popup:\n\t\t\tawait openPopup();\n\t\t\tbreak;\n\t\tcase S.open_sidebar:\n\t\t\tawait openSidebar();\n\t\t\tbreak;\n\t\tcase S.donate:\n\t\t\tawait browser.tabs.create({url: 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=67TZLSEGYQFFW'});\n\t\t\tbreak;\n\t\tcase S.patron:\n\t\t\tawait browser.tabs.create({url: 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=67TZLSEGYQFFW'});\n\t\t\tbreak;\n\t\tcase S.changelog:\n\t\t\tawait browser.tabs.create({url: 'changelog.html'});\n\t\t\tbreak;\n\t\tcase S.options:\n\t\t\tawait browser.tabs.create({url: 'options.html'});\n\t\t\tbreak;\n\t\tcase S.report:\n\t\t\tawait browser.tabs.create({url: 'https://github.com/stefanXO/Tab-Manager-Plus/issues'});\n\t\t\tbreak;\n\t\tcase S.source:\n\t\t\tawait browser.tabs.create({url: 'https://github.com/stefanXO/Tab-Manager-Plus'});\n\t\t\tbreak;\n\t\tcase S.twitter:\n\t\t\tawait browser.tabs.create({url: 'https://www.twitter.com/mastef'});\n\t\t\tbreak;\n\t\tcase S.send:\n\t\t\tawait browser.tabs.create({url: 'https://github.com/stefanXO/Tab-Manager-Plus/issues'});\n\t\t\tawait browser.tabs.create({url: 'mailto:markus+tmp@stefanxo.com'});\n\t\t\tbreak;\n\t\tcase S.review:\n\t\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\t\tawait browser.tabs.create({url: 'https://addons.mozilla.org/en-US/firefox/addon/tab-manager-plus-for-firefox/'});\n\t\t\t} else {\n\t\t\t\tawait browser.tabs.create({url: 'https://chrome.google.com/webstore/detail/tab-manager-plus-for-chro/cnkdjjdmfiffagllbiiilooaoofcoeff'});\n\t\t\t}\n\t\t\tbreak;\n\n\t}\n}", "\"use strict\";\n\nimport { setLocalStorage } from \"@helpers/storage\";\nimport * as _a from \"@background/actions\";\nimport * as _w from '@background/windows';\nimport * as _t from '@background/tabs';\nimport { cleanupDebounce, cleanUp } from '@background/tracking';\n\nimport * as _c from '@ui/context_menus';\nimport * as _o from '@ui/open';\nimport {debounce} from \"@helpers/utils\";\nimport * as browser from 'webextension-polyfill';\n\nbrowser.runtime.onStartup.addListener(\n\tasync function () {\n\t\tconsole.log(\" ON STARTUP\");\n\t}\n);\n\nbrowser.runtime.onSuspend.addListener(\n\tasync function () {\n\t\tconsole.log(\" ON SUSPEND\");\n\t}\n);\n\nbrowser.commands.onCommand.addListener(_a.handleCommands);\nbrowser.runtime.onMessage.addListener(_a.handleMessages);\n\n(async function () {\n\tlet windows = await browser.windows.getAll({ populate: true });\n\tawait setLocalStorage(\"windowAge\", []);\n\tif (!!windows && windows.length > 0) {\n\t\twindows.sort(function (a, b) {\n\t\t\tif (a.id < b.id) return 1;\n\t\t\tif (a.id > b.id) return -1;\n\t\t\treturn 0;\n\t\t});\n\t\tfor (let i = 0; i < windows.length; i++) {\n\t\t\tif (!!windows[i].id) await _w.windowActive(windows[i].id);\n\t\t}\n\t}\n})();\n\nexport const setupDebounced = debounce(setup, 2000);\n\nasync function setup() {\n\tawait _c.setupContextMenus();\n\tawait _o.setupPopup();\n\tawait _t.setupTabListeners();\n\tawait _w.setupWindowListeners();\n\n\t_t.updateTabCountDebounce();\n\n\tsetTimeout(cleanupDebounce, 2500);\n}\n\nsetInterval(setupDebounced, 300000);\nsetTimeout(cleanUp.bind(this, true), 2000000);\n\nsetup();"], - "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;AAEA,YAAI,EAAEA,WAAWC,UAAUD,WAAWC,OAAOC,WAAWF,WAAWC,OAAOC,QAAQC,KAAK;AACrF,gBAAM,IAAIC,MAAM,2DAA2D;QAC7E;AAEA,YAAI,EAAEJ,WAAWK,WAAWL,WAAWK,QAAQH,WAAWF,WAAWK,QAAQH,QAAQC,KAAK;AACxF,gBAAMG,mDAAmD;AAOzD,gBAAMC,WAAWC,mBAAiB;AAIhC,kBAAMC,cAAc;cAClB,UAAU;gBACR,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,aAAa;gBACX,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,iBAAiB;gBACf,WAAW;kBACT,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,2BAA2B;kBACzB,WAAW;kBACX,WAAW;gBACb;gBACA,gBAAgB;kBACd,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,2BAA2B;kBACzB,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,gBAAgB;kBACd,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;cACF;cACA,gBAAgB;gBACd,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,kBAAkB;kBAChB,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,oBAAoB;kBAClB,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,gBAAgB;gBACd,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,mBAAmB;kBACjB,QAAQ;oBACN,WAAW;oBACX,WAAW;oBACX,qBAAqB;kBACvB;gBACF;gBACA,UAAU;kBACR,UAAU;oBACR,WAAW;oBACX,WAAW;oBACX,qBAAqB;kBACvB;kBACA,YAAY;oBACV,qBAAqB;sBACnB,WAAW;sBACX,WAAW;oBACb;kBACF;gBACF;cACF;cACA,aAAa;gBACX,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;cACF;cACA,aAAa;gBACX,6BAA6B;kBAC3B,WAAW;kBACX,WAAW;gBACb;gBACA,4BAA4B;kBAC1B,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,QAAQ;gBACN,kBAAkB;kBAChB,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;cACF;cACA,QAAQ;gBACN,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;cACF;cACA,cAAc;gBACZ,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;cACF;cACA,iBAAiB;gBACf,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,cAAc;gBACZ,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;cACF;cACA,eAAe;gBACb,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,SAAS;kBACP,SAAS;oBACP,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;kBACA,iBAAiB;oBACf,WAAW;oBACX,WAAW;kBACb;kBACA,UAAU;oBACR,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;gBACF;gBACA,WAAW;kBACT,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;kBACA,iBAAiB;oBACf,WAAW;oBACX,WAAW;kBACb;gBACF;gBACA,QAAQ;kBACN,SAAS;oBACP,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;kBACA,iBAAiB;oBACf,WAAW;oBACX,WAAW;kBACb;kBACA,UAAU;oBACR,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;gBACF;cACF;cACA,QAAQ;gBACN,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,kBAAkB;kBAChB,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW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", - "names": ["globalThis", "chrome", "runtime", "id", "Error", "browser", "CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE", "wrapAPIs", "extensionAPIs", "apiMetadata", "Object", "keys", "length", "DefaultWeakMap", "WeakMap", "constructor", "createItem", "items", "undefined", "get", "key", "has", "set", "isThenable", "value", "then", "makeCallback", "promise", "metadata", "callbackArgs", "lastError", "reject", "message", "singleCallbackArg", "resolve", "pluralizeArguments", "numArgs", "wrapAsyncFunction", "name", "asyncFunctionWrapper", "target", "args", "minArgs", "maxArgs", "Promise", "fallbackToNoCallback", "cbError", "console", "warn", "noCallback", "wrapMethod", "method", "wrapper", "Proxy", "apply", "targetMethod", "thisObj", "call", "hasOwnProperty", "Function", "bind", "prototype", "wrapObject", "wrappers", "cache", "create", "handlers", "proxyTarget", "prop", "receiver", "defineProperty", "configurable", "enumerable", "desc", "Reflect", "deleteProperty", "wrapEvent", "wrapperMap", "addListener", "listener", "hasListener", "removeListener", "onRequestFinishedWrappers", "onRequestFinished", "req", "wrappedReq", "getContent", "onMessageWrappers", "onMessage", "sender", "sendResponse", "didCallSendResponse", "wrappedSendResponse", "sendResponsePromise", "response", "result", "err", "isResultThenable", "sendPromisedResult", "msg", "error", "__mozWebExtensionPolyfillReject__", "catch", "wrappedSendMessageCallback", "reply", "wrappedSendMessage", "apiNamespaceObj", "wrappedCb", "push", "sendMessage", "staticWrappers", "devtools", "network", "onMessageExternal", "tabs", "settingMetadata", "clear", "privacy", "services", "websites", "module", "exports", "key", "later", "browser", "windows", "browser", "tabs", "firstTab", "windows", "browser", "tabs", "browser", "tabs", "browser", "browser", "browser", "windows"] + "sources": ["../../node_modules/.pnpm/webextension-polyfill@0.12.0/node_modules/webextension-polyfill/dist/browser-polyfill.js", "../../src/helpers/storage.ts", "../../src/service_worker/context.ts", "../../src/strings/strings.ts", "../../src/helpers/utils.ts", "../../src/service_worker/background/tracking.ts", "../../src/service_worker/background/windows.ts", "../../src/service_worker/background/tabs.ts", "../../src/service_worker/ui/open.ts", "../../src/service_worker/background/actions.ts", "../../src/service_worker/ui/context_menus.ts", "../../src/helpers/external_api.ts", "../../src/service_worker/service_worker.ts"], + "sourcesContent": ["/* webextension-polyfill - v0.12.0 - Tue May 14 2024 18:01:29 */\n/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */\n/* vim: set sts=2 sw=2 et tw=80: */\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nif (!(globalThis.chrome && globalThis.chrome.runtime && globalThis.chrome.runtime.id)) {\n throw new Error(\"This script should only be loaded in a browser extension.\");\n}\n\nif (!(globalThis.browser && globalThis.browser.runtime && globalThis.browser.runtime.id)) {\n const CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE = \"The message port closed before a response was received.\";\n\n // Wrapping the bulk of this polyfill in a one-time-use function is a minor\n // optimization for Firefox. Since Spidermonkey does not fully parse the\n // contents of a function until the first time it's called, and since it will\n // never actually need to be called, this allows the polyfill to be included\n // in Firefox nearly for free.\n const wrapAPIs = extensionAPIs => {\n // NOTE: apiMetadata is associated to the content of the api-metadata.json file\n // at build time by replacing the following \"include\" with the content of the\n // JSON file.\n const apiMetadata = {\n \"alarms\": {\n \"clear\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"clearAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"bookmarks\": {\n \"create\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getChildren\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getRecent\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getSubTree\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getTree\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"move\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeTree\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"search\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n },\n \"browserAction\": {\n \"disable\": {\n \"minArgs\": 0,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"enable\": {\n \"minArgs\": 0,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"getBadgeBackgroundColor\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getBadgeText\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"openPopup\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"setBadgeBackgroundColor\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setBadgeText\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setIcon\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"setPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n }\n },\n \"browsingData\": {\n \"remove\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"removeCache\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeCookies\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeDownloads\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeFormData\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeHistory\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeLocalStorage\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removePasswords\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removePluginData\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"settings\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"commands\": {\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"contextMenus\": {\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n },\n \"cookies\": {\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAllCookieStores\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"set\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"devtools\": {\n \"inspectedWindow\": {\n \"eval\": {\n \"minArgs\": 1,\n \"maxArgs\": 2,\n \"singleCallbackArg\": false\n }\n },\n \"panels\": {\n \"create\": {\n \"minArgs\": 3,\n \"maxArgs\": 3,\n \"singleCallbackArg\": true\n },\n \"elements\": {\n \"createSidebarPane\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n }\n }\n },\n \"downloads\": {\n \"cancel\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"download\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"erase\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getFileIcon\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"open\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"pause\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeFile\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"resume\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"search\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"show\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n }\n },\n \"extension\": {\n \"isAllowedFileSchemeAccess\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"isAllowedIncognitoAccess\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"history\": {\n \"addUrl\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"deleteAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"deleteRange\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"deleteUrl\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getVisits\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"search\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"i18n\": {\n \"detectLanguage\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAcceptLanguages\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"identity\": {\n \"launchWebAuthFlow\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"idle\": {\n \"queryState\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"management\": {\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getSelf\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"setEnabled\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"uninstallSelf\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n }\n },\n \"notifications\": {\n \"clear\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"create\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getPermissionLevel\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n },\n \"pageAction\": {\n \"getPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"hide\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setIcon\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"setPopup\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"setTitle\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n },\n \"show\": {\n \"minArgs\": 1,\n \"maxArgs\": 1,\n \"fallbackToNoCallback\": true\n }\n },\n \"permissions\": {\n \"contains\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"request\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"runtime\": {\n \"getBackgroundPage\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getPlatformInfo\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"openOptionsPage\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"requestUpdateCheck\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"sendMessage\": {\n \"minArgs\": 1,\n \"maxArgs\": 3\n },\n \"sendNativeMessage\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"setUninstallURL\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"sessions\": {\n \"getDevices\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getRecentlyClosed\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"restore\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n }\n },\n \"storage\": {\n \"local\": {\n \"clear\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getBytesInUse\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"set\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"managed\": {\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getBytesInUse\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n }\n },\n \"sync\": {\n \"clear\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getBytesInUse\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"set\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n }\n },\n \"tabs\": {\n \"captureVisibleTab\": {\n \"minArgs\": 0,\n \"maxArgs\": 2\n },\n \"create\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"detectLanguage\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"discard\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"duplicate\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"executeScript\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getCurrent\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n },\n \"getZoom\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getZoomSettings\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"goBack\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"goForward\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"highlight\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"insertCSS\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"move\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n },\n \"query\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"reload\": {\n \"minArgs\": 0,\n \"maxArgs\": 2\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"removeCSS\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"sendMessage\": {\n \"minArgs\": 2,\n \"maxArgs\": 3\n },\n \"setZoom\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"setZoomSettings\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"update\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n }\n },\n \"topSites\": {\n \"get\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"webNavigation\": {\n \"getAllFrames\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"getFrame\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n }\n },\n \"webRequest\": {\n \"handlerBehaviorChanged\": {\n \"minArgs\": 0,\n \"maxArgs\": 0\n }\n },\n \"windows\": {\n \"create\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"get\": {\n \"minArgs\": 1,\n \"maxArgs\": 2\n },\n \"getAll\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getCurrent\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"getLastFocused\": {\n \"minArgs\": 0,\n \"maxArgs\": 1\n },\n \"remove\": {\n \"minArgs\": 1,\n \"maxArgs\": 1\n },\n \"update\": {\n \"minArgs\": 2,\n \"maxArgs\": 2\n }\n }\n };\n\n if (Object.keys(apiMetadata).length === 0) {\n throw new Error(\"api-metadata.json has not been included in browser-polyfill\");\n }\n\n /**\n * A WeakMap subclass which creates and stores a value for any key which does\n * not exist when accessed, but behaves exactly as an ordinary WeakMap\n * otherwise.\n *\n * @param {function} createItem\n * A function which will be called in order to create the value for any\n * key which does not exist, the first time it is accessed. The\n * function receives, as its only argument, the key being created.\n */\n class DefaultWeakMap extends WeakMap {\n constructor(createItem, items = undefined) {\n super(items);\n this.createItem = createItem;\n }\n\n get(key) {\n if (!this.has(key)) {\n this.set(key, this.createItem(key));\n }\n\n return super.get(key);\n }\n }\n\n /**\n * Returns true if the given object is an object with a `then` method, and can\n * therefore be assumed to behave as a Promise.\n *\n * @param {*} value The value to test.\n * @returns {boolean} True if the value is thenable.\n */\n const isThenable = value => {\n return value && typeof value === \"object\" && typeof value.then === \"function\";\n };\n\n /**\n * Creates and returns a function which, when called, will resolve or reject\n * the given promise based on how it is called:\n *\n * - If, when called, `chrome.runtime.lastError` contains a non-null object,\n * the promise is rejected with that value.\n * - If the function is called with exactly one argument, the promise is\n * resolved to that value.\n * - Otherwise, the promise is resolved to an array containing all of the\n * function's arguments.\n *\n * @param {object} promise\n * An object containing the resolution and rejection functions of a\n * promise.\n * @param {function} promise.resolve\n * The promise's resolution function.\n * @param {function} promise.reject\n * The promise's rejection function.\n * @param {object} metadata\n * Metadata about the wrapped method which has created the callback.\n * @param {boolean} metadata.singleCallbackArg\n * Whether or not the promise is resolved with only the first\n * argument of the callback, alternatively an array of all the\n * callback arguments is resolved. By default, if the callback\n * function is invoked with only a single argument, that will be\n * resolved to the promise, while all arguments will be resolved as\n * an array if multiple are given.\n *\n * @returns {function}\n * The generated callback function.\n */\n const makeCallback = (promise, metadata) => {\n return (...callbackArgs) => {\n if (extensionAPIs.runtime.lastError) {\n promise.reject(new Error(extensionAPIs.runtime.lastError.message));\n } else if (metadata.singleCallbackArg ||\n (callbackArgs.length <= 1 && metadata.singleCallbackArg !== false)) {\n promise.resolve(callbackArgs[0]);\n } else {\n promise.resolve(callbackArgs);\n }\n };\n };\n\n const pluralizeArguments = (numArgs) => numArgs == 1 ? \"argument\" : \"arguments\";\n\n /**\n * Creates a wrapper function for a method with the given name and metadata.\n *\n * @param {string} name\n * The name of the method which is being wrapped.\n * @param {object} metadata\n * Metadata about the method being wrapped.\n * @param {integer} metadata.minArgs\n * The minimum number of arguments which must be passed to the\n * function. If called with fewer than this number of arguments, the\n * wrapper will raise an exception.\n * @param {integer} metadata.maxArgs\n * The maximum number of arguments which may be passed to the\n * function. If called with more than this number of arguments, the\n * wrapper will raise an exception.\n * @param {boolean} metadata.singleCallbackArg\n * Whether or not the promise is resolved with only the first\n * argument of the callback, alternatively an array of all the\n * callback arguments is resolved. By default, if the callback\n * function is invoked with only a single argument, that will be\n * resolved to the promise, while all arguments will be resolved as\n * an array if multiple are given.\n *\n * @returns {function(object, ...*)}\n * The generated wrapper function.\n */\n const wrapAsyncFunction = (name, metadata) => {\n return function asyncFunctionWrapper(target, ...args) {\n if (args.length < metadata.minArgs) {\n throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`);\n }\n\n if (args.length > metadata.maxArgs) {\n throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`);\n }\n\n return new Promise((resolve, reject) => {\n if (metadata.fallbackToNoCallback) {\n // This API method has currently no callback on Chrome, but it return a promise on Firefox,\n // and so the polyfill will try to call it with a callback first, and it will fallback\n // to not passing the callback if the first call fails.\n try {\n target[name](...args, makeCallback({resolve, reject}, metadata));\n } catch (cbError) {\n console.warn(`${name} API method doesn't seem to support the callback parameter, ` +\n \"falling back to call it without a callback: \", cbError);\n\n target[name](...args);\n\n // Update the API method metadata, so that the next API calls will not try to\n // use the unsupported callback anymore.\n metadata.fallbackToNoCallback = false;\n metadata.noCallback = true;\n\n resolve();\n }\n } else if (metadata.noCallback) {\n target[name](...args);\n resolve();\n } else {\n target[name](...args, makeCallback({resolve, reject}, metadata));\n }\n });\n };\n };\n\n /**\n * Wraps an existing method of the target object, so that calls to it are\n * intercepted by the given wrapper function. The wrapper function receives,\n * as its first argument, the original `target` object, followed by each of\n * the arguments passed to the original method.\n *\n * @param {object} target\n * The original target object that the wrapped method belongs to.\n * @param {function} method\n * The method being wrapped. This is used as the target of the Proxy\n * object which is created to wrap the method.\n * @param {function} wrapper\n * The wrapper function which is called in place of a direct invocation\n * of the wrapped method.\n *\n * @returns {Proxy}\n * A Proxy object for the given method, which invokes the given wrapper\n * method in its place.\n */\n const wrapMethod = (target, method, wrapper) => {\n return new Proxy(method, {\n apply(targetMethod, thisObj, args) {\n return wrapper.call(thisObj, target, ...args);\n },\n });\n };\n\n let hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n\n /**\n * Wraps an object in a Proxy which intercepts and wraps certain methods\n * based on the given `wrappers` and `metadata` objects.\n *\n * @param {object} target\n * The target object to wrap.\n *\n * @param {object} [wrappers = {}]\n * An object tree containing wrapper functions for special cases. Any\n * function present in this object tree is called in place of the\n * method in the same location in the `target` object tree. These\n * wrapper methods are invoked as described in {@see wrapMethod}.\n *\n * @param {object} [metadata = {}]\n * An object tree containing metadata used to automatically generate\n * Promise-based wrapper functions for asynchronous. Any function in\n * the `target` object tree which has a corresponding metadata object\n * in the same location in the `metadata` tree is replaced with an\n * automatically-generated wrapper function, as described in\n * {@see wrapAsyncFunction}\n *\n * @returns {Proxy}\n */\n const wrapObject = (target, wrappers = {}, metadata = {}) => {\n let cache = Object.create(null);\n let handlers = {\n has(proxyTarget, prop) {\n return prop in target || prop in cache;\n },\n\n get(proxyTarget, prop, receiver) {\n if (prop in cache) {\n return cache[prop];\n }\n\n if (!(prop in target)) {\n return undefined;\n }\n\n let value = target[prop];\n\n if (typeof value === \"function\") {\n // This is a method on the underlying object. Check if we need to do\n // any wrapping.\n\n if (typeof wrappers[prop] === \"function\") {\n // We have a special-case wrapper for this method.\n value = wrapMethod(target, target[prop], wrappers[prop]);\n } else if (hasOwnProperty(metadata, prop)) {\n // This is an async method that we have metadata for. Create a\n // Promise wrapper for it.\n let wrapper = wrapAsyncFunction(prop, metadata[prop]);\n value = wrapMethod(target, target[prop], wrapper);\n } else {\n // This is a method that we don't know or care about. Return the\n // original method, bound to the underlying object.\n value = value.bind(target);\n }\n } else if (typeof value === \"object\" && value !== null &&\n (hasOwnProperty(wrappers, prop) ||\n hasOwnProperty(metadata, prop))) {\n // This is an object that we need to do some wrapping for the children\n // of. Create a sub-object wrapper for it with the appropriate child\n // metadata.\n value = wrapObject(value, wrappers[prop], metadata[prop]);\n } else if (hasOwnProperty(metadata, \"*\")) {\n // Wrap all properties in * namespace.\n value = wrapObject(value, wrappers[prop], metadata[\"*\"]);\n } else {\n // We don't need to do any wrapping for this property,\n // so just forward all access to the underlying object.\n Object.defineProperty(cache, prop, {\n configurable: true,\n enumerable: true,\n get() {\n return target[prop];\n },\n set(value) {\n target[prop] = value;\n },\n });\n\n return value;\n }\n\n cache[prop] = value;\n return value;\n },\n\n set(proxyTarget, prop, value, receiver) {\n if (prop in cache) {\n cache[prop] = value;\n } else {\n target[prop] = value;\n }\n return true;\n },\n\n defineProperty(proxyTarget, prop, desc) {\n return Reflect.defineProperty(cache, prop, desc);\n },\n\n deleteProperty(proxyTarget, prop) {\n return Reflect.deleteProperty(cache, prop);\n },\n };\n\n // Per contract of the Proxy API, the \"get\" proxy handler must return the\n // original value of the target if that value is declared read-only and\n // non-configurable. For this reason, we create an object with the\n // prototype set to `target` instead of using `target` directly.\n // Otherwise we cannot return a custom object for APIs that\n // are declared read-only and non-configurable, such as `chrome.devtools`.\n //\n // The proxy handlers themselves will still use the original `target`\n // instead of the `proxyTarget`, so that the methods and properties are\n // dereferenced via the original targets.\n let proxyTarget = Object.create(target);\n return new Proxy(proxyTarget, handlers);\n };\n\n /**\n * Creates a set of wrapper functions for an event object, which handles\n * wrapping of listener functions that those messages are passed.\n *\n * A single wrapper is created for each listener function, and stored in a\n * map. Subsequent calls to `addListener`, `hasListener`, or `removeListener`\n * retrieve the original wrapper, so that attempts to remove a\n * previously-added listener work as expected.\n *\n * @param {DefaultWeakMap} wrapperMap\n * A DefaultWeakMap object which will create the appropriate wrapper\n * for a given listener function when one does not exist, and retrieve\n * an existing one when it does.\n *\n * @returns {object}\n */\n const wrapEvent = wrapperMap => ({\n addListener(target, listener, ...args) {\n target.addListener(wrapperMap.get(listener), ...args);\n },\n\n hasListener(target, listener) {\n return target.hasListener(wrapperMap.get(listener));\n },\n\n removeListener(target, listener) {\n target.removeListener(wrapperMap.get(listener));\n },\n });\n\n const onRequestFinishedWrappers = new DefaultWeakMap(listener => {\n if (typeof listener !== \"function\") {\n return listener;\n }\n\n /**\n * Wraps an onRequestFinished listener function so that it will return a\n * `getContent()` property which returns a `Promise` rather than using a\n * callback API.\n *\n * @param {object} req\n * The HAR entry object representing the network request.\n */\n return function onRequestFinished(req) {\n const wrappedReq = wrapObject(req, {} /* wrappers */, {\n getContent: {\n minArgs: 0,\n maxArgs: 0,\n },\n });\n listener(wrappedReq);\n };\n });\n\n const onMessageWrappers = new DefaultWeakMap(listener => {\n if (typeof listener !== \"function\") {\n return listener;\n }\n\n /**\n * Wraps a message listener function so that it may send responses based on\n * its return value, rather than by returning a sentinel value and calling a\n * callback. If the listener function returns a Promise, the response is\n * sent when the promise either resolves or rejects.\n *\n * @param {*} message\n * The message sent by the other end of the channel.\n * @param {object} sender\n * Details about the sender of the message.\n * @param {function(*)} sendResponse\n * A callback which, when called with an arbitrary argument, sends\n * that value as a response.\n * @returns {boolean}\n * True if the wrapped listener returned a Promise, which will later\n * yield a response. False otherwise.\n */\n return function onMessage(message, sender, sendResponse) {\n let didCallSendResponse = false;\n\n let wrappedSendResponse;\n let sendResponsePromise = new Promise(resolve => {\n wrappedSendResponse = function(response) {\n didCallSendResponse = true;\n resolve(response);\n };\n });\n\n let result;\n try {\n result = listener(message, sender, wrappedSendResponse);\n } catch (err) {\n result = Promise.reject(err);\n }\n\n const isResultThenable = result !== true && isThenable(result);\n\n // If the listener didn't returned true or a Promise, or called\n // wrappedSendResponse synchronously, we can exit earlier\n // because there will be no response sent from this listener.\n if (result !== true && !isResultThenable && !didCallSendResponse) {\n return false;\n }\n\n // A small helper to send the message if the promise resolves\n // and an error if the promise rejects (a wrapped sendMessage has\n // to translate the message into a resolved promise or a rejected\n // promise).\n const sendPromisedResult = (promise) => {\n promise.then(msg => {\n // send the message value.\n sendResponse(msg);\n }, error => {\n // Send a JSON representation of the error if the rejected value\n // is an instance of error, or the object itself otherwise.\n let message;\n if (error && (error instanceof Error ||\n typeof error.message === \"string\")) {\n message = error.message;\n } else {\n message = \"An unexpected error occurred\";\n }\n\n sendResponse({\n __mozWebExtensionPolyfillReject__: true,\n message,\n });\n }).catch(err => {\n // Print an error on the console if unable to send the response.\n console.error(\"Failed to send onMessage rejected reply\", err);\n });\n };\n\n // If the listener returned a Promise, send the resolved value as a\n // result, otherwise wait the promise related to the wrappedSendResponse\n // callback to resolve and send it as a response.\n if (isResultThenable) {\n sendPromisedResult(result);\n } else {\n sendPromisedResult(sendResponsePromise);\n }\n\n // Let Chrome know that the listener is replying.\n return true;\n };\n });\n\n const wrappedSendMessageCallback = ({reject, resolve}, reply) => {\n if (extensionAPIs.runtime.lastError) {\n // Detect when none of the listeners replied to the sendMessage call and resolve\n // the promise to undefined as in Firefox.\n // See https://github.com/mozilla/webextension-polyfill/issues/130\n if (extensionAPIs.runtime.lastError.message === CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE) {\n resolve();\n } else {\n reject(new Error(extensionAPIs.runtime.lastError.message));\n }\n } else if (reply && reply.__mozWebExtensionPolyfillReject__) {\n // Convert back the JSON representation of the error into\n // an Error instance.\n reject(new Error(reply.message));\n } else {\n resolve(reply);\n }\n };\n\n const wrappedSendMessage = (name, metadata, apiNamespaceObj, ...args) => {\n if (args.length < metadata.minArgs) {\n throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`);\n }\n\n if (args.length > metadata.maxArgs) {\n throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`);\n }\n\n return new Promise((resolve, reject) => {\n const wrappedCb = wrappedSendMessageCallback.bind(null, {resolve, reject});\n args.push(wrappedCb);\n apiNamespaceObj.sendMessage(...args);\n });\n };\n\n const staticWrappers = {\n devtools: {\n network: {\n onRequestFinished: wrapEvent(onRequestFinishedWrappers),\n },\n },\n runtime: {\n onMessage: wrapEvent(onMessageWrappers),\n onMessageExternal: wrapEvent(onMessageWrappers),\n sendMessage: wrappedSendMessage.bind(null, \"sendMessage\", {minArgs: 1, maxArgs: 3}),\n },\n tabs: {\n sendMessage: wrappedSendMessage.bind(null, \"sendMessage\", {minArgs: 2, maxArgs: 3}),\n },\n };\n const settingMetadata = {\n clear: {minArgs: 1, maxArgs: 1},\n get: {minArgs: 1, maxArgs: 1},\n set: {minArgs: 1, maxArgs: 1},\n };\n apiMetadata.privacy = {\n network: {\"*\": settingMetadata},\n services: {\"*\": settingMetadata},\n websites: {\"*\": settingMetadata},\n };\n\n return wrapObject(extensionAPIs, staticWrappers, apiMetadata);\n };\n\n // The build process adds a UMD wrapper around this file, which makes the\n // `module` variable available.\n module.exports = wrapAPIs(chrome);\n} else {\n module.exports = globalThis.browser;\n}\n", "\uFEFFimport * as browser from 'webextension-polyfill';\n\nexport async function getLocalStorage(key, default_value = null){\n\tconst result = await browser.storage.local.get([key]);\n\treturn result[key] === undefined ? default_value : result[key];\n}\n\nexport async function getLocalStorageMap(key: string): Promise>{\n\tconst result = await browser.storage.local.get([key]);\n\tif (result[key] === undefined) {\n\t\treturn new Map();\n\t}\n\tlet newMap = new Map();\n\tlet obj: Object = result[key];\n\tfor (const [k, v] of Object.entries(obj)) {\n\t\tlet key = parseInt(k);\n\t\tnewMap.set(key as T, v as V);\n\t}\n\treturn newMap;\n}\n\nexport async function getLocalStorageStringMap(key : string) : Promise> {\n\tconst result = await browser.storage.local.get([key]);\n\tif (result[key] === undefined) {\n\t\treturn new Map();\n\t}\n\tlet newMap = new Map();\n\tlet obj : Object = result[key];\n\tfor (const [k, v] of Object.entries(obj)) {\n\t\tnewMap.set(k as T, v as V);\n\t}\n\treturn newMap;\n}\n\nexport async function setLocalStorage(key : string, value){\n\tconst obj = {};\n\tobj[key] = value;\n\treturn browser.storage.local.set(obj);\n}\n\nexport async function setLocalStorageMap(key : string, value : Map) {\n\tconst obj = {};\n\tobj[key] = Object.fromEntries(value);\n\treturn browser.storage.local.set(obj);\n}\n\nexport async function removeLocalStorage(key){\n\treturn browser.storage.local.remove(key);\n}", "\uFEFF\"use strict\";\nimport * as browser from 'webextension-polyfill';\n\nexport let globalTabsActive : browser.Tabs.OnActivatedActiveInfoType[] = [];", "\uFEFF\"use strict\";\n\n// commands\nexport const reload_popup_controls = \"reload_popup_controls\";\nexport const update_tab_count = \"update_tab_count\";\nexport const discard_tabs = \"discard_tabs\";\nexport const move_tabs_to_window = \"move_tabs_to_window\";\nexport const focus_on_tab_and_window = \"focus_on_tab_and_window\";\nexport const focus_on_tab_and_window_delayed = \"focus_on_tab_and_window_delayed\";\nexport const focus_on_window = \"focus_on_window\";\nexport const focus_on_window_delayed = \"focus_on_window_delayed\";\nexport const set_window_color = \"set_window_color\";\nexport const set_window_name = \"set_window_name\";\nexport const create_window_with_tabs = \"create_window_with_tabs\";\nexport const create_window_with_session_tabs = \"create_window_with_session_tabs\";\nexport const close_tabs = \"close_tabs\";\nexport const switch_to_previous_active_tab = \"switch_to_previous_active_tab\";\nexport const refresh_windows = \"refresh_windows\";\n\n// context menues\nexport const open_in_own_tab = \"open_in_own_tab\";\nexport const open_popup = \"open_popup\";\nexport const open_sidebar = \"open_sidebar\";\nexport const sep1 = \"sep1\";\nexport const support_menu = \"support_menu\";\nexport const review = \"review\";\nexport const donate = \"donate\";\nexport const patron = \"patron\";\nexport const twitter = \"twitter\";\nexport const code_menu = \"code_menu\";\nexport const changelog = \"changelog\";\nexport const options = \"options\";\nexport const source = \"source\";\nexport const report = \"report\";\nexport const send = \"send\";\n\n// storage keys\nexport const windowHashes = \"windowHashes\";\nexport const windowColors = \"windowColors\";\nexport const windowNames = \"windowNames\";", "\uFEFF// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate = false) {\n\tvar timeout;\n\treturn function () {\n\t\tvar context = this, args = arguments;\n\t\tvar later = function later() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t}\n}\n\nexport function is_in_bounds(object, bounds) {\n\tvar C = object, B = bounds;\n\tif (C.left >= B.left && C.left <= B.left + B.width) {\n\t\tif (C.top >= B.top && C.top <= B.top + B.height) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nexport function isInViewport(element, ofElement) {\n\tvar rect = element.getBoundingClientRect();\n\treturn rect.top >= 0 && rect.left >= 0 && rect.bottom <= ofElement.height && rect.right <= ofElement.width;\n}\n\nexport function stringHashcode(string) : number {\n\tvar hash = 0;\n\tfor (var i = 0; i < string.length; i++) {\n\t\tvar code = string.charCodeAt(i);\n\t\thash = ((hash << 5) - hash) + code;\n\t\thash = hash & hash; // Convert to 32bit integer\n\t}\n\treturn hash;\n}\n\nexport function maybePluralize(count, noun, suffix = 's') {\n\treturn `${count} ${noun}${count !== 1 ? suffix : ''}`;\n}\n\nexport function toBoolean(str) {\n\tif (typeof str === \"undefined\" || str === null) {\n\t\treturn false;\n\t} else if (typeof str === \"string\") {\n\t\tswitch (str.toLowerCase()) {\n\t\t\tcase \"false\":\n\t\t\tcase \"no\":\n\t\t\tcase \"0\":\n\t\t\tcase \"\":\n\t\t\t\treturn false;\n\t\t\tdefault:\n\t\t\t\treturn true;\n\t\t}\n\t} else if (typeof str === \"number\") {\n\t\treturn str !== 0;\n\t} else {\n\t\treturn true;\n\t}\n}", "\uFEFF\"use strict\";\n\nimport {hashcode} from \"@background/windows\"\nimport {debounce} from \"@helpers/utils\";\nimport {getLocalStorageMap, setLocalStorageMap, getLocalStorage, setLocalStorage} from \"@helpers/storage\";\nimport * as S from \"@strings\";\nimport * as browser from 'webextension-polyfill';\nimport {ICommand} from \"@types\";\n\nexport const cleanupDebounce = debounce(cleanUp, 500);\n\nexport async function cleanUp(remove_old = false) {\n\tlet activewindows = await browser.windows.getAll({populate: true});\n\tlet windowids: number[] = [];\n\tfor (let _w of activewindows) {\n\t\twindowids.push(_w.id);\n\t}\n\t// console.log(\"window ids...\", windowids);\n\n\tlet windows = await getLocalStorage(\"windowAge\", []);\n\tif (!(windows instanceof Array)) windows = [];\n\n\t// console.log(\"before\", JSON.parse(JSON.stringify(windows)));\n\tfor (let i = windows.length - 1; i >= 0; i--) {\n\t\tif (windowids.indexOf(windows[i]) < 0) {\n\t\t\t// console.log(\"did not find\", windows[i], i);\n\t\t\twindows.splice(i, 1);\n\t\t}\n\t}\n\n\t// console.log(\"after\", JSON.parse(JSON.stringify(windows)));\n\tawait setLocalStorage(\"windowAge\", windows);\n\n\tlet names : Map = await getLocalStorageMap(S.windowNames);\n\tlet colors : Map = await getLocalStorageMap(S.windowColors);\n\tlet to_check = new Set();\n\tlet exists = new Set();\n\tlet to_refresh : number[] = [];\n\n\t// console.log(\"before\", JSON.parse(JSON.stringify(names)));\n\tfor (const [id, _name] of names) {\n\t\tif (windowids.indexOf(id) < 0) {\n\t\t\t// console.log(\"did not find\", id);\n\t\t\tto_check.add(id);\n\t\t} else {\n\t\t\texists.add(id);\n\t\t}\n\t}\n\n\tfor (const [id, _color] of colors) {\n\t\tif (windowids.indexOf(id) < 0) {\n\t\t\t// console.log(\"did not find\", id);\n\t\t\tto_check.add(id);\n\t\t} else {\n\t\t\texists.add(id);\n\t\t}\n\t}\n\n\tif (to_check.size > 0) {\n\t\tlet hashes : Map = await getLocalStorageMap(S.windowHashes);\n\t\tlet found = false;\n\n\t\tfor (let w of activewindows) {\n\t\t\tconst windowhash = hashcode(w);\n\t\t\tfor (const [id, _hash] of hashes) {\n\t\t\t\tif (!to_check.has(id)) continue;\n\t\t\t\tif (exists.has(id)) continue;\n\t\t\t\tif (w.id === id) break;\n\t\t\t\tif (_hash === windowhash) {\n\t\t\t\t\tconsole.log(\"found by hash, old id \" + id + \" new id \" + w.id);\n\t\t\t\t\tto_refresh.push(w.id);\n\t\t\t\t\tif (!!names.get(id)) {\n\t\t\t\t\t\tnames.set(w.id, names.get(id));\n\t\t\t\t\t\tnames.delete(id);\n\t\t\t\t\t}\n\t\t\t\t\tif (!!colors.get(id)) {\n\t\t\t\t\t\tcolors.set(w.id, colors.get(id));\n\t\t\t\t\t\tcolors.delete(id);\n\t\t\t\t\t}\n\t\t\t\t\thashes.set(w.id, _hash);\n\t\t\t\t\thashes.delete(id);\n\t\t\t\t\tfound = true;\n\t\t\t\t\tto_check.delete(id);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet save = false;\n\t\tif (remove_old) {\n\t\t\tfor (const _id of to_check) {\n\t\t\t\tconsole.log(\"should delete from to check \" + _id);\n\t\t\t\tcolors.delete(_id);\n\t\t\t\tnames.delete(_id);\n\t\t\t\thashes.delete(_id);\n\t\t\t\tsave = true;\n\t\t\t}\n\t\t}\n\n\t\tif (found || save) {\n\t\t\tawait setLocalStorageMap(S.windowNames, names);\n\t\t\tawait setLocalStorageMap(S.windowColors, colors);\n\t\t\tawait setLocalStorageMap(S.windowHashes, hashes);\n\t\t\tif (found) {\n\t\t\t\tbrowser.runtime.sendMessage({\n\t\t\t\t\tcommand: S.refresh_windows,\n\t\t\t\t\twindow_ids: to_refresh\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}", "\uFEFF\"use strict\";\n\nimport {cleanupDebounce} from \"@background/tracking\";\nimport {getLocalStorage, getLocalStorageMap, setLocalStorage, setLocalStorageMap} from \"@helpers/storage\";\nimport {is_in_bounds, stringHashcode} from \"@helpers/utils\";\nimport {setWindowColor, setWindowName} from \"@background/actions\";\nimport * as S from \"@strings\";\nimport * as browser from 'webextension-polyfill';\nimport {ISavedSession} from \"@types\";\n\nexport async function setupWindowListeners() {\n\tbrowser.windows.onFocusChanged.removeListener(windowFocus);\n\tbrowser.windows.onCreated.removeListener(windowCreated);\n\tbrowser.windows.onRemoved.removeListener(windowRemoved);\n\n\tbrowser.windows.onFocusChanged.addListener(windowFocus);\n\tbrowser.windows.onCreated.addListener(windowCreated);\n\tbrowser.windows.onRemoved.addListener(windowRemoved);\n}\n\nexport async function createWindowWithTabs(tabs : browser.Tabs.Tab[], isIncognito : boolean = false) {\n\tvar pinnedIndex = 0;\n\tvar firstTab = tabs.shift();\n\tvar t = [];\n\tfor (const _tab of tabs) {\n\t\tt.push(_tab.id);\n\t}\n\n\tvar firstPinned = firstTab.pinned;\n\tvar w = await browser.windows.create({tabId: firstTab.id, incognito: !!isIncognito});\n\tif (firstPinned) {\n\t\tawait browser.tabs.update(w.tabs[0].id, {pinned: firstPinned});\n\t\tpinnedIndex++;\n\t}\n\n\tif (t.length > 0) {\n\t\tvar i = 0;\n\t\tfor (let oldTabId of t) {\n\t\t\ti++;\n\t\t\tvar oldTab = await browser.tabs.get(oldTabId);\n\t\t\tvar tabPinned = oldTab.pinned;\n\t\t\tvar movedTabs : browser.Tabs.Tab | browser.Tabs.Tab[] = [];\n\t\t\tif (!tabPinned) {\n\t\t\t\tmovedTabs = await browser.tabs.move(oldTabId, {windowId: w.id, index: -1});\n\t\t\t} else {\n\t\t\t\tmovedTabs = await browser.tabs.move(oldTabId, {windowId: w.id, index: pinnedIndex++});\n\t\t\t}\n\n\t\t\tlet firstTab : browser.Tabs.Tab;\n\t\t\tif (Array.isArray(movedTabs)) {\n\t\t\t\tfirstTab = movedTabs[0];\n\t\t\t} else {\n\t\t\t\tfirstTab = movedTabs;\n\t\t\t}\n\n\t\t\tif (!!firstTab) {\n\t\t\t\tif (tabPinned) {\n\t\t\t\t\tawait browser.tabs.update(firstTab.id, {pinned: tabPinned});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tawait browser.windows.update(w.id, {focused: true});\n}\n\nexport async function createWindowWithSessionTabs(session: ISavedSession, tabId: number) {\n\n\tvar customName : string;\n\tif (session && session.name && session.customName) {\n\t\tcustomName = session.name;\n\t}\n\tvar color = \"default\";\n\tif (session && session.color) {\n\t\tcolor = session.color;\n\t}\n\n\tvar whitelistWindow = [\"left\", \"top\", \"width\", \"height\", \"incognito\", \"type\"];\n\n\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\twhitelistWindow = [\"left\", \"top\", \"width\", \"height\", \"incognito\", \"type\"];\n\t}\n\n\tvar whitelistTab = [\"url\", \"active\", \"selected\", \"pinned\", \"index\"];\n\n\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\twhitelistTab = [\"url\", \"active\", \"pinned\", \"index\"];\n\t}\n\n\tvar filteredWindow : browser.Windows.CreateCreateDataType = Object.keys(session.windowsInfo)\n\t\t.filter(function (key) {\n\t\t\treturn whitelistWindow.includes(key);\n\t\t})\n\t\t.reduce(function (obj, key) {\n\t\t\tobj[key] = session.windowsInfo[key];\n\t\t\treturn obj;\n\t\t}, {});\n\n\tif (filteredWindow.left < 0 || filteredWindow.left > 800) filteredWindow.left = 0;\n\tif (filteredWindow.top < 0 || filteredWindow.top > 600) filteredWindow.top = 0;\n\tif (filteredWindow.width > 800) filteredWindow.width = 800;\n\tif (filteredWindow.height > 600) filteredWindow.height = 600;\n\n\tfilteredWindow.type = \"normal\";\n\n\t// console.log(\"filtered window\", filteredWindow);\n\n\tconst newWindow = await browser.windows.create(filteredWindow).catch(function (error) {\n\t\tconsole.error(error);\n\t\tconsole.log(error);\n\t\tconsole.log(error.message);\n\t});\n\n\tif (!newWindow) return;\n\n\tlet emptyTab = newWindow.tabs[0].id;\n\n\tfor (let i = 0; i < session.tabs.length; i++) {\n\t\tlet newTab = Object.keys(session.tabs[i])\n\t\t\t.filter(function (key) {\n\t\t\t\treturn whitelistTab.includes(key);\n\t\t\t})\n\t\t\t.reduce(function (obj, key) {\n\t\t\t\tobj[key] = session.tabs[i][key];\n\t\t\t\treturn obj;\n\t\t\t}, {});\n\n\t\tvar fTab : browser.Tabs.Tab = newTab as browser.Tabs.Tab;\n\n\t\tif (tabId != null && tabId !== fTab.index) {\n\t\t\tcontinue;\n\t\t}\n\t\tfTab.windowId = newWindow.id;\n\n\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\tif (!!fTab.url && fTab.url.search(\"about:\") > -1) {\n\t\t\t\tconsole.log(\"filtered by about: url\", fTab.url);\n\t\t\t\tfTab.url = \"\";\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\tawait browser.tabs.create(fTab).catch(function (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t\tconsole.log(error);\n\t\t\t\tconsole.log(error.message);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tconsole.log(\"couldn't restore tab\");\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tawait browser.tabs.remove(emptyTab).catch(function (error) {\n\t\tconsole.error(error);\n\t\tconsole.log(error);\n\t\tconsole.log(error.message);\n\t});\n\n\tif (customName) {\n\t\tconsole.log(\"setting name\");\n\t\tawait setWindowName(newWindow.id, customName);\n\t}\n\n\tif (color !== \"default\") {\n\t\tconsole.log(\"setting color\");\n\t\tawait setWindowColor(newWindow.id, color);\n\t}\n\n\tawait browser.windows.update(newWindow.id, {focused: true});\n}\n\nexport function focusOnWindowDelayed(windowId: number) {\n\tsetTimeout(focusOnWindow.bind(this, windowId), 125);\n}\n\nexport async function focusOnWindow(windowId : number) {\n\tawait browser.windows.update(windowId, {focused: true});\n}\n\nasync function hideWindows(windowId : number) {\n\tif (navigator.userAgent.search(\"Firefox\") > -1) return;\n\tif (!windowId || windowId < 0) return;\n\n\tlet hide_windows = await getLocalStorage(\"hideWindows\", false);\n\tif (!hide_windows) return;\n\n\tlet has_permission = await browser.permissions.contains({permissions: ['system.display']});\n\tif (!has_permission) return;\n\n\tlet displaylayouts = await chrome.system.display.getInfo();\n\tlet monitor_bounds = [];\n\n\ttry {\n\t\tfor (let displaylayout of displaylayouts) {\n\t\t\tmonitor_bounds.push(displaylayout.bounds);\n\t\t}\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\treturn;\n\t}\n\n\tlet windows = await browser.windows.getAll({populate: true});\n\tlet monitor = null;\n\n\tfor (let window of windows) {\n\t\tif (window.id === windowId) {\n\t\t\tfor (let bounds_index in monitor_bounds) {\n\t\t\t\tlet _monitor = monitor_bounds[bounds_index];\n\t\t\t\tlet _is_in_bounds = is_in_bounds(window, _monitor);\n\t\t\t\tif (_is_in_bounds) {\n\t\t\t\t\tmonitor = _monitor;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (monitor == null) return;\n\n\tfor (let window of windows) {\n\t\tif (window.id !== windowId) {\n\t\t\tif (is_in_bounds(window, monitor)) {\n\t\t\t\tawait browser.windows.update(window.id, {\"state\": \"minimized\"});\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport async function windowActive(windowId : number) {\n\tif (windowId < 0) return;\n\n\tvar windows = [];\n\tvar windowAge = await getLocalStorage(\"windowAge\", []);\n\tif (windowAge instanceof Array) windows = windowAge;\n\n\tif (windows.indexOf(windowId) > -1) windows.splice(windows.indexOf(windowId), 1);\n\twindows.unshift(windowId);\n\tawait setLocalStorage(\"windowAge\", windows);\n\n\t// browser.windows.getLastFocused({ populate: true }, function (w) {\n\t// \tfor (let i = 0; i < w.tabs.length; i++) {\n\t// \t\tvar tab = w.tabs[i];\n\t// \t\tif (tab.active === true) {\n\t// \t\t\t// console.log(\"get last focused\", tab.id);\n\t// \t\t\t// tabActiveChanged({\n\t// \t\t\t// \ttabId: tab.id,\n\t// \t\t\t// \twindowId: tab.windowId\n\t// \t\t\t// });\n\t// \t\t}\n\t// \t};\n\t// });\n\t// console.log(windows);\n}\n\nasync function windowFocus(windowId : number) {\n\ttry {\n\t\tif (!!windowId) {\n\t\t\tawait windowActive(windowId);\n\t\t\t// console.log(\"onFocused\", windowId);\n\t\t\tawait hideWindows(windowId);\n\t\t}\n\t} catch (e) {\n\n\t}\n}\n\nasync function windowCreated(window : browser.Windows.Window) {\n\ttry {\n\t\tif (!!window && !!window.id) {\n\t\t\tawait windowActive(window.id);\n\t\t}\n\t} catch (e) {\n\n\t}\n\t// console.log(\"onCreated \" + window.id, window);\n\tsetTimeout(cleanupDebounce, 250);\n}\n\nasync function windowRemoved(windowId : number) {\n\ttry {\n\t\tif (!!windowId) {\n\t\t\tawait windowActive(windowId);\n\t\t}\n\t} catch (e) {\n\n\t}\n\t// console.log(\"onRemoved\", windowId);\n}\n\nexport async function checkWindow(windowId : number) {\n\tif (!windowId) return;\n\n\tconst colors: Map = await getLocalStorageMap(S.windowColors);\n\tconst names: Map = await getLocalStorageMap(S.windowNames);\n\n\tif (!names[windowId] && !colors[windowId]) return;\n\n\tconst hashes: Map = await getLocalStorageMap(S.windowHashes);\n\n\ttry {\n\t\tconst window = await browser.windows.get(windowId, {populate: true});\n\n\t\tlet newHash = hashcode(window);\n\t\thashes.set(windowId, newHash);\n\t\tawait setLocalStorageMap(S.windowHashes, hashes);\n\t} catch (e) {\n\t\tconsole.log(e);\n\t}\n}\n\nexport function hashcode(window : browser.Windows.Window) : number {\n\tlet urls = [];\n\tfor (let i = 0; i < window.tabs.length; i++) {\n\t\tif (!window.tabs[i].url) continue;\n\t\turls.push(window.tabs[i].url);\n\t}\n\turls.sort();\n\n\tlet hash = 0;\n\tfor (let i = 0; i < urls.length; i++) {\n\t\tconst code = stringHashcode(urls[i]);\n\t\thash = ((hash << 5) - hash) + code;\n\t\thash = hash & hash; // Convert to 32bit integer\n\t}\n\treturn hash;\n}", "\uFEFF\"use strict\";\n\nimport {getLocalStorage} from \"@helpers/storage\";\nimport {trackLastTab} from \"@background/actions\"\nimport {globalTabsActive} from '@context';\nimport {debounce} from \"@helpers/utils\";\nimport {checkWindow, createWindowWithTabs} from '@background/windows';\nimport * as browser from 'webextension-polyfill';\n\nexport async function setupTabListeners() {\n\tbrowser.tabs.onCreated.removeListener(tabAdded);\n\tbrowser.tabs.onUpdated.removeListener(tabCountChanged);\n\tbrowser.tabs.onRemoved.removeListener(tabCountChanged);\n\tbrowser.tabs.onReplaced.removeListener(tabCountChanged);\n\tbrowser.tabs.onDetached.removeListener(tabCountChanged);\n\tbrowser.tabs.onAttached.removeListener(tabCountChanged);\n\tbrowser.tabs.onActivated.removeListener(tabActiveChanged);\n\tbrowser.tabs.onMoved.removeListener(tabCountChanged);\n\n\tbrowser.tabs.onCreated.removeListener(checkTabCreate);\n\tbrowser.tabs.onUpdated.removeListener(checkTabUpdate);\n\tbrowser.tabs.onRemoved.removeListener(checkTabRemove);\n\tbrowser.tabs.onDetached.removeListener(checkTabDetached);\n\tbrowser.tabs.onAttached.removeListener(checkTabAttached);\n\tbrowser.tabs.onMoved.removeListener(checkTabMoved);\n\n\tbrowser.tabs.onCreated.addListener(tabAdded);\n\tbrowser.tabs.onUpdated.addListener(tabCountChanged);\n\tbrowser.tabs.onRemoved.addListener(tabCountChanged);\n\tbrowser.tabs.onReplaced.addListener(tabCountChanged);\n\tbrowser.tabs.onDetached.addListener(tabCountChanged);\n\tbrowser.tabs.onAttached.addListener(tabCountChanged);\n\tbrowser.tabs.onActivated.addListener(tabActiveChanged);\n\tbrowser.tabs.onMoved.addListener(tabCountChanged);\n\n\tbrowser.tabs.onCreated.addListener(checkTabCreate); // 1, tab\n\tbrowser.tabs.onUpdated.addListener(checkTabUpdate); // 3, tabid, changeinfo, tab\n\tbrowser.tabs.onRemoved.addListener(checkTabRemove); // 2, tabid, removeinfo\n\tbrowser.tabs.onDetached.addListener(checkTabDetached); // 2, tabid, detachinfo\n\tbrowser.tabs.onAttached.addListener(checkTabAttached); // 2, tabid, attachinfo\n\tbrowser.tabs.onMoved.addListener(checkTabMoved); // 2, tabid, moveinfo\n}\n\nexport async function discardTabs(tabs) {\n\tfor (const tab of tabs) {\n\t\tif (!tab.discarded) {\n\t\t\tbrowser.tabs.discard(tab.id).catch(function (e) {\n\t\t\t\tconsole.error(e);\n\t\t\t\tconsole.log(e.message);\n\t\t\t});\n\t\t}\n\t}\n}\n\nexport async function closeTabs(tabs) {\n\tfor (const tab of tabs) {\n\t\tawait browser.tabs.remove(tab.id);\n\t}\n}\n\nexport async function moveTabsToWindow(windowId, tabs) {\n\tfor (const tab of tabs) {\n\t\tawait browser.tabs.move(tab.id, {windowId: windowId, index: -1});\n\t\tawait browser.tabs.update(tab.id, {pinned: tab.pinned});\n\t}\n}\n\nexport function focusOnTabAndWindowDelayed(tabId: number, windowId: number) {\n\tsetTimeout(focusOnTabAndWindow.bind(this, tabId, windowId), 125);\n}\n\nexport async function focusOnTabAndWindow(tabId : number, windowId : number) {\n\tawait browser.windows.update(windowId, {focused: true});\n\tawait browser.tabs.update(tabId, {active: true});\n\tawait tabActiveChanged({tabId: tabId, windowId: windowId});\n}\n\nexport async function updateTabCount() {\n\tlet run = true;\n\n\tconst badge = await getLocalStorage(\"badge\", true);\n\tif (!badge) run = false;\n\n\tif (run) {\n\t\tlet result = await browser.tabs.query({});\n\t\tlet count = 0;\n\t\tif (!!result && !!result.length) {\n\t\t\tcount = result.length;\n\t\t}\n\t\tawait browser.action.setBadgeText({text: count + \"\"});\n\t\tawait browser.action.setBadgeBackgroundColor({color: \"purple\"});\n\t\tconst _to_remove : number[] = [];\n\n\t\tif (!!globalTabsActive) {\n\t\t\tfor (let i = 0; i < globalTabsActive.length; i++) {\n\t\t\t\tconst t = globalTabsActive[i];\n\t\t\t\tlet found = false;\n\t\t\t\tif (!!result && !!result.length) {\n\t\t\t\t\tfor (let j = 0; j < result.length; j++) {\n\t\t\t\t\t\tif (result[j].id === t.tabId) found = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!found) _to_remove.push(i);\n\t\t\t}\n\t\t}\n\n\t\twhile (_to_remove.length > 0) {\n\t\t\tlet index = _to_remove.pop();\n\t\t\tif (!!globalTabsActive && globalTabsActive.length > 0) {\n\t\t\t\tif (!!globalTabsActive[index]) globalTabsActive.splice(index, 1);\n\t\t\t}\n\t\t}\n\n\t} else {\n\t\tawait browser.action.setBadgeText({text: \"\"});\n\t}\n}\n\nfunction tabCountChanged() {\n\tupdateTabCountDebounce();\n}\n\nexport const updateTabCountDebounce = debounce(updateTabCount, 250);\n\nasync function tabAdded(tab) {\n\tconst tabLimit = await getLocalStorage(\"tabLimit\", 0);\n\tif (tabLimit > 0) {\n\t\tif (tab.id !== browser.tabs.TAB_ID_NONE) {\n\t\t\tconst tabCount = await browser.tabs.query({currentWindow: true});\n\t\t\tif (tabCount.length > tabLimit) {\n\t\t\t\tawait createWindowWithTabs([tab], tab.incognito);\n\t\t\t}\n\t\t}\n\t}\n\tupdateTabCountDebounce();\n}\n\nfunction tabActiveChanged(tab : browser.Tabs.OnActivatedActiveInfoType) {\n\ttrackLastTab(tab);\n\tupdateTabCountDebounce();\n}\n\nasync function checkTabCreate(tab) {\n\tawait checkWindow(tab.windowId);\n}\n\nasync function checkTabUpdate(tabid, changeinfo, tab) {\n\tawait checkWindow(tab.windowId);\n}\n\nasync function checkTabRemove(tabid, removeinfo) {\n\tif (removeinfo.isWindowClosing) return;\n\tawait checkWindow(removeinfo.windowId);\n}\n\nasync function checkTabDetached(tabid, detachinfo) {\n\tawait checkWindow(detachinfo.oldWindowId);\n}\n\nasync function checkTabAttached(tabid, attachinfo) {\n\tawait checkWindow(attachinfo.newWindowId);\n}\n\nasync function checkTabMoved(tabid, moveinfo) {\n\tawait checkWindow(moveinfo.windowId);\n}", "\uFEFF\"use strict\";\n\nimport {getLocalStorage} from \"@helpers/storage\";\nimport {globalTabsActive} from '@context';\nimport {focusOnTabAndWindow} from \"@background/tabs\";\nimport * as browser from 'webextension-polyfill';\n\nexport async function openSidebar() {\n\tawait browser.sidebarAction.open();\n}\n\nexport async function openPopup() {\n\tconst openInOwnTab : boolean = await getLocalStorage(\"openInOwnTab\", false);\n\tif (openInOwnTab) {\n\t\tawait browser.action.setPopup({popup: \"popup.html?popup=true\"});\n\t\tawait browser.action.openPopup();\n\t\tawait browser.action.setPopup({popup: \"\"});\n\t} else {\n\t\tawait browser.action.openPopup();\n\t}\n}\n\nexport async function openAsOwnTab() {\n\tconst popup_page = await browser.runtime.getURL(\"popup.html\");\n\tconst tabs = await browser.tabs.query({});\n\n\tlet currentTab : browser.Tabs.OnActivatedActiveInfoType;\n\tlet previousTab : browser.Tabs.OnActivatedActiveInfoType;\n\n\tif (!!globalTabsActive && globalTabsActive.length > 1) {\n\t\tcurrentTab = globalTabsActive[globalTabsActive.length - 1];\n\t\tpreviousTab = globalTabsActive[globalTabsActive.length - 2];\n\t}\n\n\tfor (var i = 0; i < tabs.length; i++) {\n\t\tconst tab = tabs[i];\n\t\tif (tab.url.indexOf(\"popup.html\") > -1 && tab.url.indexOf(popup_page) > -1) {\n\t\t\tif (currentTab && currentTab.tabId && tab.id === currentTab.tabId && previousTab && previousTab.tabId) {\n\t\t\t\tawait focusOnTabAndWindow(previousTab.tabId, previousTab.windowId);\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tawait browser.windows.update(tab.windowId, {focused: true});\n\t\t\t\tawait browser.tabs.highlight({windowId: tab.windowId, tabs: tab.index});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\tawait browser.tabs.create({url: \"popup.html\"});\n}\n\nexport async function setupPopup() {\n\n\tconst openInOwnTab = await getLocalStorage(\"openInOwnTab\", false);\n\n\tbrowser.action.onClicked.removeListener(openAsOwnTab);\n\tif (openInOwnTab) {\n\t\tawait browser.action.setPopup({popup: \"\"});\n\t\tbrowser.action.onClicked.addListener(openAsOwnTab);\n\t} else {\n\t\tawait browser.action.setPopup({popup: \"popup.html?popup=true\"});\n\t}\n\tif (browser.sidebarAction) {\n\t\tawait browser.sidebarAction.setPanel({panel: \"popup.html?panel=true\"});\n\t}\n}", "\uFEFF\"use strict\";\n\nimport { globalTabsActive } from '@context'\nimport * as S from \"@strings\";\nimport { focusOnWindow, focusOnWindowDelayed, createWindowWithTabs, createWindowWithSessionTabs, hashcode } from '@background/windows';\nimport { getLocalStorageMap, setLocalStorageMap } from \"@helpers/storage\";\nimport { setupPopup } from \"@ui/open\";\nimport { updateTabCount, discardTabs, moveTabsToWindow, closeTabs, focusOnTabAndWindow, focusOnTabAndWindowDelayed } from \"@background/tabs\";\nimport * as browser from 'webextension-polyfill';\nimport { ICommand } from '@types';\n\nexport async function handleMessages(message, sender, sendResponse) {\n\tconst request = message as ICommand;\n\n\tswitch (request.command) {\n\t\tcase S.reload_popup_controls:\n\t\t\tsetupPopup();\n\t\t\tbreak;\n\t\tcase S.update_tab_count:\n\t\t\tupdateTabCount();\n\t\t\tbreak;\n\t\tcase S.discard_tabs:\n\t\t\tdiscardTabs(request.tabs);\n\t\t\tbreak;\n\t\tcase S.move_tabs_to_window:\n\t\t\tmoveTabsToWindow(request.window_id, request.tabs);\n\t\t\tbreak;\n\t\tcase S.focus_on_tab_and_window:\n\t\t\tif (!!request.tab) {\n\t\t\t\tfocusOnTabAndWindow(request.tab.id, request.tab.windowId);\n\t\t\t} else {\n\t\t\t\tfocusOnTabAndWindow(request.saved_tab.tabId, request.saved_tab.windowId);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase S.focus_on_tab_and_window_delayed:\n\t\t\tif (!!request.tab) {\n\t\t\t\tfocusOnTabAndWindowDelayed(request.tab.id, request.tab.windowId);\n\t\t\t} else {\n\t\t\t\tfocusOnTabAndWindowDelayed(request.saved_tab.tabId, request.saved_tab.windowId);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase S.focus_on_window:\n\t\t\tfocusOnWindow(request.window_id);\n\t\t\tbreak;\n\t\tcase S.focus_on_window_delayed:\n\t\t\tfocusOnWindowDelayed(request.window_id);\n\t\t\tbreak;\n\t\tcase S.set_window_color:\n\t\t\tsetWindowColor(request.window_id, request.color);\n\t\t\tbreak;\n\t\tcase S.set_window_name:\n\t\t\tsetWindowName(request.window_id, request.name);\n\t\t\tbreak;\n\t\tcase S.create_window_with_tabs:\n\t\t\tcreateWindowWithTabs(request.tabs, request.incognito);\n\t\t\tbreak;\n\t\tcase S.create_window_with_session_tabs:\n\t\t\tcreateWindowWithSessionTabs(request.session, request.tab_id);\n\t\t\tbreak;\n\t\tcase S.close_tabs:\n\t\t\tcloseTabs(request.tabs);\n\t\t\tbreak;\n\t}\n}\n\nexport function handleCommands(command : string) {\n\tif (command === S.switch_to_previous_active_tab) {\n\t\tif (!!globalTabsActive && globalTabsActive.length > 1) {\n\t\t\tvar _tab = globalTabsActive[globalTabsActive.length - 2];\n\t\t\tfocusOnTabAndWindow(_tab.tabId, _tab.windowId);\n\t\t}\n\t}\n}\n\nexport function trackLastTab(tab : browser.Tabs.OnActivatedActiveInfoType) {\n\tif (!!tab && !!tab.tabId) {\n\t\tif (!!globalTabsActive && globalTabsActive.length > 0) {\n\t\t\tvar lastActive = globalTabsActive[globalTabsActive.length - 1];\n\t\t\tif (!!lastActive && lastActive.tabId === tab.tabId && lastActive.windowId === tab.windowId) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\twhile (globalTabsActive.length > 20) {\n\t\t\tglobalTabsActive.shift();\n\t\t}\n\t\tfor (let i = globalTabsActive.length - 1; i >= 0; i--) {\n\t\t\tif (globalTabsActive[i].tabId === tab.tabId) {\n\t\t\t\tglobalTabsActive.splice(i, 1);\n\t\t\t}\n\t\t}\n\t\tglobalTabsActive.push(tab);\n\t}\n}\n\nexport async function setWindowColor(windowId : number, color : string) {\n\tvar colors : Map = await getLocalStorageMap(S.windowColors);\n\tif (!!color) {\n\t\tcolors.set(windowId, color);\n\t} else {\n\t\tcolors.delete(windowId);\n\t}\n\tawait setLocalStorageMap(S.windowColors, colors);\n\tawait updateWindowHash(windowId);\n\tbrowser.runtime.sendMessage({\n\t\tcommand: S.refresh_windows,\n\t\twindow_ids: [windowId]\n\t});\n}\n\nexport async function setWindowName(windowId: number, name : string) {\n\tvar names : Map = await getLocalStorageMap(S.windowNames);\n\tif (!!name) {\n\t\tnames.set(windowId, name);\n\t} else {\n\t\tnames.delete(windowId);\n\t}\n\tawait setLocalStorageMap(S.windowNames, names);\n\tawait updateWindowHash(windowId);\n\tbrowser.runtime.sendMessage({\n\t\tcommand: S.refresh_windows,\n\t\twindow_ids: [windowId]\n\t});\n}\n\nasync function updateWindowHash(windowId : number) {\n\tconst window = await browser.windows.get(windowId, {populate: true});\n\tconst hash = hashcode(window);\n\tconst hashes : Map = await getLocalStorageMap(S.windowHashes);\n\thashes.set(windowId, hash);\n\tawait setLocalStorageMap(S.windowHashes, hashes);\n}", "\uFEFF\"use strict\";\n\nimport {openPopup, openAsOwnTab, openSidebar} from \"@ui/open\";\nimport * as S from \"@strings\";\nimport * as browser from 'webextension-polyfill';\n\nexport async function setupContextMenus() {\n\tawait browser.contextMenus.removeAll();\n\n\tbrowser.contextMenus.create({\n\t\tid: S.open_in_own_tab,\n\t\ttitle: \"\uD83D\uDCD4 Open in own tab\",\n\t\tcontexts: [\"action\"]\n\t});\n\n\tif (!!browser.action.openPopup) {\n\t\tbrowser.contextMenus.create({\n\t\t\tid: S.open_popup,\n\t\t\ttitle: \"\uD83D\uDCD1 Open popup\",\n\t\t\tcontexts: [\"action\"]\n\t\t});\n\t}\n\n\tif (!!browser.sidebarAction) {\n\t\tbrowser.contextMenus.create({\n\t\t\tid: S.open_sidebar,\n\t\t\ttitle: \"\uD83D\uDDC2 Open sidebar\",\n\t\t\tcontexts: [\"action\"]\n\t\t});\n\t}\n\n\tbrowser.contextMenus.create({\n\t\tid: S.sep1,\n\t\ttype: \"separator\",\n\t\tcontexts: [\"action\"]\n\t});\n\n\tbrowser.contextMenus.create({\n\t\ttitle: \"\uD83D\uDE0D Support this extension\",\n\t\tid: S.support_menu,\n\t\t\"contexts\": [\"action\"]\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.review,\n\t\ttitle: \"\u2B50 Leave a review\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"support_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.donate,\n\t\ttitle: \"\u2615 Donate to keep Extensions Alive\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"support_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.patron,\n\t\ttitle: \"\uD83D\uDCB0 Become a Patron\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"support_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.twitter,\n\t\ttitle: \"\uD83D\uDC26 Follow on Twitter\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"support_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\ttitle: \"\uD83E\uDD14 Issues and Suggestions\",\n\t\tid: S.code_menu,\n\t\t\"contexts\": [\"action\"]\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.changelog,\n\t\ttitle: \"\uD83C\uDD95 View recent changes\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"code_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.options,\n\t\ttitle: \"\u2699 Edit Options\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"code_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.source,\n\t\ttitle: \"\uD83D\uDCBB View source code\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"code_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.report,\n\t\ttitle: \"\uD83E\uDD14 Report an issue\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"code_menu\"\n\t});\n\n\tbrowser.contextMenus.create({\n\t\tid: S.send,\n\t\ttitle: \"\uD83D\uDCA1 Send a suggestion\",\n\t\t\"contexts\": [\"action\"],\n\t\tparentId: \"code_menu\"\n\t});\n\n\tbrowser.contextMenus.onClicked.removeListener(contextListeners);\n\tbrowser.contextMenus.onClicked.addListener(contextListeners);\n}\n\nasync function contextListeners(info: browser.Menus.OnClickData, tab?: browser.Tabs.Tab)\n{\n\tswitch (info.menuItemId) {\n\t\tcase S.open_in_own_tab:\n\t\t\tawait openAsOwnTab();\n\t\t\tbreak;\n\t\tcase S.open_popup:\n\t\t\tawait openPopup();\n\t\t\tbreak;\n\t\tcase S.open_sidebar:\n\t\t\tawait openSidebar();\n\t\t\tbreak;\n\t\tcase S.donate:\n\t\t\tawait browser.tabs.create({url: 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=67TZLSEGYQFFW'});\n\t\t\tbreak;\n\t\tcase S.patron:\n\t\t\tawait browser.tabs.create({url: 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=67TZLSEGYQFFW'});\n\t\t\tbreak;\n\t\tcase S.changelog:\n\t\t\tawait browser.tabs.create({url: 'changelog.html'});\n\t\t\tbreak;\n\t\tcase S.options:\n\t\t\tawait browser.tabs.create({url: 'options.html'});\n\t\t\tbreak;\n\t\tcase S.report:\n\t\t\tawait browser.tabs.create({url: 'https://github.com/stefanXO/Tab-Manager-Plus/issues'});\n\t\t\tbreak;\n\t\tcase S.source:\n\t\t\tawait browser.tabs.create({url: 'https://github.com/stefanXO/Tab-Manager-Plus'});\n\t\t\tbreak;\n\t\tcase S.twitter:\n\t\t\tawait browser.tabs.create({url: 'https://www.twitter.com/mastef'});\n\t\t\tbreak;\n\t\tcase S.send:\n\t\t\tawait browser.tabs.create({url: 'https://github.com/stefanXO/Tab-Manager-Plus/issues'});\n\t\t\tawait browser.tabs.create({url: 'mailto:markus+tmp@stefanxo.com'});\n\t\t\tbreak;\n\t\tcase S.review:\n\t\t\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\t\tawait browser.tabs.create({url: 'https://addons.mozilla.org/en-US/firefox/addon/tab-manager-plus-for-firefox/'});\n\t\t\t} else {\n\t\t\t\tawait browser.tabs.create({url: 'https://chrome.google.com/webstore/detail/tab-manager-plus-for-chro/cnkdjjdmfiffagllbiiilooaoofcoeff'});\n\t\t\t}\n\t\t\tbreak;\n\n\t}\n}", "import {getLocalStorage, setLocalStorage} from \"@helpers/storage\";\nimport {ISavedSession} from \"@types\";\nimport * as browser from 'webextension-polyfill';\n\nexport const externalAccessKey = \"externalApiAccess\";\nexport const externalPendingRequestsKey = \"externalApiPendingRequests\";\nexport const externalSavedSessionsMethod = \"tabManagerPlus.getSavedSessions\";\n\nexport interface IExternalExtension {\n\tid: string,\n\tname: string,\n\trequestedAt?: number,\n\tapprovedAt?: number\n}\n\nexport interface IExternalApiAccess {\n\tallowedExtensions: IExternalExtension[]\n}\n\nexport interface IExternalSavedTab {\n\ttitle: string,\n\turl: string,\n\tfavIconUrl?: string\n}\n\nexport interface IExternalSavedSession {\n\tid: string,\n\tname: string,\n\tdate: number,\n\ttabs: IExternalSavedTab[]\n}\n\nexport async function getExternalApiAccess(): Promise {\n\tconst access = await getLocalStorage(externalAccessKey, {});\n\treturn {\n\t\tallowedExtensions: Array.isArray(access.allowedExtensions) ? access.allowedExtensions : []\n\t};\n}\n\nexport async function getExternalApiPendingRequests(): Promise {\n\tconst requests = await getLocalStorage(externalPendingRequestsKey, []);\n\treturn Array.isArray(requests) ? requests : [];\n}\n\nexport async function rememberExternalApiRequest(extensionId: string, displayName?: string): Promise {\n\tconst requests = await getExternalApiPendingRequests();\n\tconst name = displayName && displayName.trim() ? displayName.trim() : \"Unknown extension\";\n\tconst nextRequests = requests.filter((request) => request.id !== extensionId);\n\tnextRequests.push({\n\t\tid: extensionId,\n\t\tname: name,\n\t\trequestedAt: Date.now()\n\t});\n\tawait setLocalStorage(externalPendingRequestsKey, nextRequests);\n}\n\nexport async function approveExternalApiRequest(request: IExternalExtension): Promise {\n\tconst access = await getExternalApiAccess();\n\tconst requests = await getExternalApiPendingRequests();\n\tconst allowedExtensions = access.allowedExtensions.filter((extension) => extension.id !== request.id);\n\tallowedExtensions.push({\n\t\tid: request.id,\n\t\tname: request.name || \"Unknown extension\",\n\t\tapprovedAt: Date.now()\n\t});\n\tawait setLocalStorage(externalAccessKey, {allowedExtensions});\n\tawait setLocalStorage(externalPendingRequestsKey, requests.filter((item) => item.id !== request.id));\n}\n\nexport async function denyExternalApiRequest(extensionId: string): Promise {\n\tconst requests = await getExternalApiPendingRequests();\n\tawait setLocalStorage(externalPendingRequestsKey, requests.filter((item) => item.id !== extensionId));\n}\n\nexport async function removeAllowedExternalApiExtension(extensionId: string): Promise {\n\tconst access = await getExternalApiAccess();\n\tawait setLocalStorage(externalAccessKey, {\n\t\tallowedExtensions: access.allowedExtensions.filter((extension) => extension.id !== extensionId)\n\t});\n}\n\nexport async function handleExternalApiMessage(message, sender) {\n\tif (!message || message.method !== externalSavedSessionsMethod) {\n\t\treturn;\n\t}\n\n\tconst extensionId = sender && sender.id;\n\tif (!extensionId) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\terror: \"missing_sender_id\",\n\t\t\tmessage: \"Tab Manager Plus could not identify the requesting extension.\"\n\t\t};\n\t}\n\n\tconst access = await getExternalApiAccess();\n\tconst allowed = access.allowedExtensions.some((extension) => extension.id === extensionId);\n\tif (!allowed) {\n\t\tawait rememberExternalApiRequest(extensionId, message.displayName);\n\t\tawait browser.tabs.create({url: browser.runtime.getURL(\"options.html\")});\n\t\treturn {\n\t\t\tok: false,\n\t\t\terror: \"approval_required\",\n\t\t\tmessage: \"Approve this extension in Tab Manager Plus options, then request saved sessions again.\"\n\t\t};\n\t}\n\n\treturn {\n\t\tok: true,\n\t\tsessions: await getExternalSavedSessions()\n\t};\n}\n\nexport async function getExternalSavedSessions(): Promise {\n\tconst values = await getLocalStorage(\"sessions\", {});\n\treturn Object.keys(values)\n\t\t.map((key) => normalizeExternalSession(values[key]))\n\t\t.filter((session) => !!session);\n}\n\nfunction normalizeExternalSession(session: ISavedSession): IExternalSavedSession | null {\n\tif (!session || !session.id || !Array.isArray(session.tabs)) {\n\t\treturn null;\n\t}\n\n\tconst tabs = session.tabs\n\t\t.map((tab) => {\n\t\t\tconst url = tab.url || tab.pendingUrl;\n\t\t\tif (!url || !/^https?:\\/\\//i.test(url)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ttitle: tab.title || \"\",\n\t\t\t\turl: url,\n\t\t\t\t...(tab.favIconUrl ? {favIconUrl: tab.favIconUrl} : {})\n\t\t\t};\n\t\t})\n\t\t.filter((tab) => !!tab);\n\n\tif (tabs.length === 0) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tid: session.id,\n\t\tname: session.name || \"\",\n\t\tdate: session.date || session.sessionStartTime || Date.now(),\n\t\ttabs: tabs\n\t};\n}\n", "\"use strict\";\n\nimport { setLocalStorage } from \"@helpers/storage\";\nimport * as _a from \"@background/actions\";\nimport * as _w from '@background/windows';\nimport * as _t from '@background/tabs';\nimport { cleanupDebounce, cleanUp } from '@background/tracking';\n\nimport * as _c from '@ui/context_menus';\nimport * as _o from '@ui/open';\nimport {debounce} from \"@helpers/utils\";\nimport {externalSavedSessionsMethod, handleExternalApiMessage} from \"@helpers/external_api\";\nimport * as browser from 'webextension-polyfill';\n\nbrowser.runtime.onStartup.addListener(\n\tasync function () {\n\t\tconsole.log(\" ON STARTUP\");\n\t}\n);\n\nbrowser.runtime.onSuspend.addListener(\n\tasync function () {\n\t\tconsole.log(\" ON SUSPEND\");\n\t}\n);\n\nbrowser.commands.onCommand.addListener(_a.handleCommands);\nbrowser.runtime.onMessage.addListener((message, sender, sendResponse) => {\n\t_a.handleMessages(message, sender, sendResponse)\n\t\t.then(sendResponse)\n\t\t.catch((error) => sendResponse({\n\t\t\terror: error && error.message ? error.message : String(error)\n\t\t}));\n\treturn true;\n});\nbrowser.runtime.onMessageExternal.addListener((message, sender, sendResponse) => {\n\tconst request = message as {method?: string};\n\tif (!request || request.method !== externalSavedSessionsMethod) {\n\t\tsendResponse(undefined);\n\t\treturn true;\n\t}\n\n\thandleExternalApiMessage(message, sender)\n\t\t.then(sendResponse)\n\t\t.catch((error) => sendResponse({\n\t\t\tok: false,\n\t\t\terror: \"unexpected_error\",\n\t\t\tmessage: error && error.message ? error.message : String(error)\n\t\t}));\n\treturn true;\n});\n\n(async function () {\n\tlet windows = await browser.windows.getAll({ populate: true });\n\tawait setLocalStorage(\"windowAge\", []);\n\tif (!!windows && windows.length > 0) {\n\t\twindows.sort(function (a, b) {\n\t\t\tif (a.id < b.id) return 1;\n\t\t\tif (a.id > b.id) return -1;\n\t\t\treturn 0;\n\t\t});\n\t\tfor (let i = 0; i < windows.length; i++) {\n\t\t\tif (!!windows[i].id) await _w.windowActive(windows[i].id);\n\t\t}\n\t}\n})();\n\nexport const setupDebounced = debounce(setup, 2000);\n\nasync function setup() {\n\tawait _c.setupContextMenus();\n\tawait _o.setupPopup();\n\tawait _t.setupTabListeners();\n\tawait _w.setupWindowListeners();\n\n\t_t.updateTabCountDebounce();\n\n\tsetTimeout(cleanupDebounce, 2500);\n}\n\nsetInterval(setupDebounced, 300000);\nsetTimeout(cleanUp.bind(this, true), 2000000);\n\nsetup();\n"], + "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;AAEA,YAAI,EAAEA,WAAWC,UAAUD,WAAWC,OAAOC,WAAWF,WAAWC,OAAOC,QAAQC,KAAK;AACrF,gBAAM,IAAIC,MAAM,2DAA2D;QAC7E;AAEA,YAAI,EAAEJ,WAAWK,WAAWL,WAAWK,QAAQH,WAAWF,WAAWK,QAAQH,QAAQC,KAAK;AACxF,gBAAMG,mDAAmD;AAOzD,gBAAMC,WAAWC,mBAAiB;AAIhC,kBAAMC,cAAc;cAClB,UAAU;gBACR,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,aAAa;gBACX,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,iBAAiB;gBACf,WAAW;kBACT,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,2BAA2B;kBACzB,WAAW;kBACX,WAAW;gBACb;gBACA,gBAAgB;kBACd,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,2BAA2B;kBACzB,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,gBAAgB;kBACd,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;cACF;cACA,gBAAgB;gBACd,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,kBAAkB;kBAChB,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,oBAAoB;kBAClB,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,gBAAgB;gBACd,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,mBAAmB;kBACjB,QAAQ;oBACN,WAAW;oBACX,WAAW;oBACX,qBAAqB;kBACvB;gBACF;gBACA,UAAU;kBACR,UAAU;oBACR,WAAW;oBACX,WAAW;oBACX,qBAAqB;kBACvB;kBACA,YAAY;oBACV,qBAAqB;sBACnB,WAAW;sBACX,WAAW;oBACb;kBACF;gBACF;cACF;cACA,aAAa;gBACX,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;cACF;cACA,aAAa;gBACX,6BAA6B;kBAC3B,WAAW;kBACX,WAAW;gBACb;gBACA,4BAA4B;kBAC1B,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,QAAQ;gBACN,kBAAkB;kBAChB,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;cACF;cACA,QAAQ;gBACN,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;cACF;cACA,cAAc;gBACZ,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;cACF;cACA,iBAAiB;gBACf,SAAS;kBACP,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;cACF;cACA,cAAc;gBACZ,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,YAAY;kBACV,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;gBACA,QAAQ;kBACN,WAAW;kBACX,WAAW;kBACX,wBAAwB;gBAC1B;cACF;cACA,eAAe;gBACb,YAAY;kBACV,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,sBAAsB;kBACpB,WAAW;kBACX,WAAW;gBACb;gBACA,eAAe;kBACb,WAAW;kBACX,WAAW;gBACb;gBACA,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;cACF;cACA,YAAY;gBACV,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;cACF;cACA,WAAW;gBACT,SAAS;kBACP,SAAS;oBACP,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;kBACA,iBAAiB;oBACf,WAAW;oBACX,WAAW;kBACb;kBACA,UAAU;oBACR,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;gBACF;gBACA,WAAW;kBACT,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;kBACA,iBAAiB;oBACf,WAAW;oBACX,WAAW;kBACb;gBACF;gBACA,QAAQ;kBACN,SAAS;oBACP,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;kBACA,iBAAiB;oBACf,WAAW;oBACX,WAAW;kBACb;kBACA,UAAU;oBACR,WAAW;oBACX,WAAW;kBACb;kBACA,OAAO;oBACL,WAAW;oBACX,WAAW;kBACb;gBACF;cACF;cACA,QAAQ;gBACN,qBAAqB;kBACnB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,kBAAkB;kBAChB,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,iBAAiB;kBACf,WAAW;kBACX,WAAW;gBACb;gBACA,OAAO;kBACL,WAAW;kBACX,WAAW;gBACb;gBACA,cAAc;kBACZ,WAAW;kBACX,WAAW;gBACb;gBACA,WAAW;kBACT,WAAW;kBACX,WAAW;gBACb;gBACA,mBAAmB;kBACjB,WAAW;kBACX,WAAW;gBACb;gBACA,UAAU;kBACR,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW;gBACb;gBACA,aAAa;kBACX,WAAW;kBACX,WAAW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", + "names": ["globalThis", "chrome", "runtime", "id", "Error", "browser", "CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE", "wrapAPIs", "extensionAPIs", "apiMetadata", "Object", "keys", "length", "DefaultWeakMap", "WeakMap", "constructor", "createItem", "items", "undefined", "get", "key", "has", "set", "isThenable", "value", "then", "makeCallback", "promise", "metadata", "callbackArgs", "lastError", "reject", "message", "singleCallbackArg", "resolve", "pluralizeArguments", "numArgs", "wrapAsyncFunction", "name", "asyncFunctionWrapper", "target", "args", "minArgs", "maxArgs", "Promise", "fallbackToNoCallback", "cbError", "console", "warn", "noCallback", "wrapMethod", "method", "wrapper", "Proxy", "apply", "targetMethod", "thisObj", "call", "hasOwnProperty", "Function", "bind", "prototype", "wrapObject", "wrappers", "cache", "create", "handlers", "proxyTarget", "prop", "receiver", "defineProperty", "configurable", "enumerable", "desc", "Reflect", "deleteProperty", "wrapEvent", "wrapperMap", "addListener", "listener", "hasListener", "removeListener", "onRequestFinishedWrappers", "onRequestFinished", "req", "wrappedReq", "getContent", "onMessageWrappers", "onMessage", "sender", "sendResponse", "didCallSendResponse", "wrappedSendResponse", "sendResponsePromise", "response", "result", "err", "isResultThenable", "sendPromisedResult", "msg", "error", "__mozWebExtensionPolyfillReject__", "catch", "wrappedSendMessageCallback", "reply", "wrappedSendMessage", "apiNamespaceObj", "wrappedCb", "push", "sendMessage", "staticWrappers", "devtools", "network", "onMessageExternal", "tabs", "settingMetadata", "clear", "privacy", "services", "websites", "module", "exports", "key", "later", "browser", "windows", "browser", "tabs", "firstTab", "windows", "browser", "tabs", "browser", "tabs", "browser", "browser", "browser", "tabs", "browser", "windows"] } diff --git a/src/helpers/external_api.ts b/src/helpers/external_api.ts new file mode 100644 index 00000000..b16ae094 --- /dev/null +++ b/src/helpers/external_api.ts @@ -0,0 +1,150 @@ +import {getLocalStorage, setLocalStorage} from "@helpers/storage"; +import {ISavedSession} from "@types"; +import * as browser from 'webextension-polyfill'; + +export const externalAccessKey = "externalApiAccess"; +export const externalPendingRequestsKey = "externalApiPendingRequests"; +export const externalSavedSessionsMethod = "tabManagerPlus.getSavedSessions"; + +export interface IExternalExtension { + id: string, + name: string, + requestedAt?: number, + approvedAt?: number +} + +export interface IExternalApiAccess { + allowedExtensions: IExternalExtension[] +} + +export interface IExternalSavedTab { + title: string, + url: string, + favIconUrl?: string +} + +export interface IExternalSavedSession { + id: string, + name: string, + date: number, + tabs: IExternalSavedTab[] +} + +export async function getExternalApiAccess(): Promise { + const access = await getLocalStorage(externalAccessKey, {}); + return { + allowedExtensions: Array.isArray(access.allowedExtensions) ? access.allowedExtensions : [] + }; +} + +export async function getExternalApiPendingRequests(): Promise { + const requests = await getLocalStorage(externalPendingRequestsKey, []); + return Array.isArray(requests) ? requests : []; +} + +export async function rememberExternalApiRequest(extensionId: string, displayName?: string): Promise { + const requests = await getExternalApiPendingRequests(); + const name = displayName && displayName.trim() ? displayName.trim() : "Unknown extension"; + const nextRequests = requests.filter((request) => request.id !== extensionId); + nextRequests.push({ + id: extensionId, + name: name, + requestedAt: Date.now() + }); + await setLocalStorage(externalPendingRequestsKey, nextRequests); +} + +export async function approveExternalApiRequest(request: IExternalExtension): Promise { + const access = await getExternalApiAccess(); + const requests = await getExternalApiPendingRequests(); + const allowedExtensions = access.allowedExtensions.filter((extension) => extension.id !== request.id); + allowedExtensions.push({ + id: request.id, + name: request.name || "Unknown extension", + approvedAt: Date.now() + }); + await setLocalStorage(externalAccessKey, {allowedExtensions}); + await setLocalStorage(externalPendingRequestsKey, requests.filter((item) => item.id !== request.id)); +} + +export async function denyExternalApiRequest(extensionId: string): Promise { + const requests = await getExternalApiPendingRequests(); + await setLocalStorage(externalPendingRequestsKey, requests.filter((item) => item.id !== extensionId)); +} + +export async function removeAllowedExternalApiExtension(extensionId: string): Promise { + const access = await getExternalApiAccess(); + await setLocalStorage(externalAccessKey, { + allowedExtensions: access.allowedExtensions.filter((extension) => extension.id !== extensionId) + }); +} + +export async function handleExternalApiMessage(message, sender) { + if (!message || message.method !== externalSavedSessionsMethod) { + return; + } + + const extensionId = sender && sender.id; + if (!extensionId) { + return { + ok: false, + error: "missing_sender_id", + message: "Tab Manager Plus could not identify the requesting extension." + }; + } + + const access = await getExternalApiAccess(); + const allowed = access.allowedExtensions.some((extension) => extension.id === extensionId); + if (!allowed) { + await rememberExternalApiRequest(extensionId, message.displayName); + await browser.tabs.create({url: browser.runtime.getURL("options.html")}); + return { + ok: false, + error: "approval_required", + message: "Approve this extension in Tab Manager Plus options, then request saved sessions again." + }; + } + + return { + ok: true, + sessions: await getExternalSavedSessions() + }; +} + +export async function getExternalSavedSessions(): Promise { + const values = await getLocalStorage("sessions", {}); + return Object.keys(values) + .map((key) => normalizeExternalSession(values[key])) + .filter((session) => !!session); +} + +function normalizeExternalSession(session: ISavedSession): IExternalSavedSession | null { + if (!session || !session.id || !Array.isArray(session.tabs)) { + return null; + } + + const tabs = session.tabs + .map((tab) => { + const url = tab.url || tab.pendingUrl; + if (!url || !/^https?:\/\//i.test(url)) { + return null; + } + return { + title: tab.title || "", + url: url, + ...(tab.favIconUrl ? {favIconUrl: tab.favIconUrl} : {}) + }; + }) + .filter((tab) => !!tab); + + if (tabs.length === 0) { + return null; + } + + return { + id: session.id, + name: session.name || "", + date: session.date || session.sessionStartTime || Date.now(), + tabs: tabs + }; +} diff --git a/src/popup/views/TabManager.tsx b/src/popup/views/TabManager.tsx index 5f07ac37..de785368 100644 --- a/src/popup/views/TabManager.tsx +++ b/src/popup/views/TabManager.tsx @@ -603,7 +603,7 @@ export class TabManager extends React.Component { browser.windows.onCreated.addListener(runUpdate); browser.windows.onRemoved.addListener(runUpdate); - browser.runtime.onMessage.addListener(async function (message, sender, sendResponse) { + browser.runtime.onMessage.addListener(function (message, sender, sendResponse) { const request = message as ICommand; console.log(request.command); @@ -616,6 +616,7 @@ export class TabManager extends React.Component { } break; } + return true; }); @@ -1933,4 +1934,4 @@ export class TabManager extends React.Component { } while ((pointContainer = pointContainer.parentNode)) return false; } -} \ No newline at end of file +} diff --git a/src/popup/views/TabOptions.tsx b/src/popup/views/TabOptions.tsx index 654e21df..06892255 100644 --- a/src/popup/views/TabOptions.tsx +++ b/src/popup/views/TabOptions.tsx @@ -3,11 +3,63 @@ import * as React from "react"; import * as browser from 'webextension-polyfill'; import { ITabOptions, ITabOptionsState } from "@types"; +import { + approveExternalApiRequest, + denyExternalApiRequest, + externalAccessKey, + externalPendingRequestsKey, + getExternalApiAccess, + getExternalApiPendingRequests, + IExternalExtension, + removeAllowedExternalApiExtension +} from "@helpers/external_api"; export class TabOptions extends React.Component { constructor(props : ITabOptions) { super(props); - this.state = {}; + this.state = { + externalApiAllowedExtensions: [], + externalApiPendingRequests: [] + }; + this.approveExternalRequest = this.approveExternalRequest.bind(this); + this.denyExternalRequest = this.denyExternalRequest.bind(this); + this.handleExternalApiStorageChange = this.handleExternalApiStorageChange.bind(this); + this.refreshExternalApiAccess = this.refreshExternalApiAccess.bind(this); + this.removeAllowedExternalExtension = this.removeAllowedExternalExtension.bind(this); + } + componentDidMount() { + this.refreshExternalApiAccess(); + browser.storage.onChanged.addListener(this.handleExternalApiStorageChange); + } + componentWillUnmount() { + browser.storage.onChanged.removeListener(this.handleExternalApiStorageChange); + } + handleExternalApiStorageChange(changes, areaName) { + if (areaName === "local" && (changes[externalAccessKey] || changes[externalPendingRequestsKey])) { + this.refreshExternalApiAccess(); + } + } + async refreshExternalApiAccess() { + const [access, pendingRequests] = await Promise.all([ + getExternalApiAccess(), + getExternalApiPendingRequests() + ]); + this.setState({ + externalApiAllowedExtensions: access.allowedExtensions, + externalApiPendingRequests: pendingRequests + }); + } + async approveExternalRequest(request : IExternalExtension) { + await approveExternalApiRequest(request); + await this.refreshExternalApiAccess(); + } + async denyExternalRequest(request : IExternalExtension) { + await denyExternalApiRequest(request.id); + await this.refreshExternalApiAccess(); + } + async removeAllowedExternalExtension(extension : IExternalExtension) { + await removeAllowedExternalApiExtension(extension.id); + await this.refreshExternalApiAccess(); } logo() { return ( @@ -228,6 +280,7 @@ export class TabOptions extends React.Component { Allows you to restore your backup from an external file. The restored windows will be added to your current saved windows. } + {this.externalApiSection()}

Popup icon

@@ -358,6 +411,51 @@ export class TabOptions extends React.Component {
); } + externalApiSection() { + const pendingRequests = this.state.externalApiPendingRequests || []; + const allowedExtensions = this.state.externalApiAllowedExtensions || []; + return ( +
0 ? "has-pending-requests" : "")}> + +
+ Allow other extensions to request saved session URLs from Tab Manager Plus. This lets tools like ArchiveBox import saved tabs after you approve them. +
+
+
Pending requests
+ {pendingRequests.length === 0 &&
No pending requests.
} + {pendingRequests.map((request) => ( +
+
+
{request.name || "Unknown extension"}
+
{request.id}
+
+
+ + +
+
+ ))} +
+
+
Allowed extensions
+ {allowedExtensions.length === 0 &&
No extensions allowed yet.
} + {allowedExtensions.map((extension) => ( +
+
+
{extension.name || "Unknown extension"}
+
{extension.id}
+
+
+ +
+
+ ))} +
+
+ ); + } async openIncognitoOptions() { await browser.tabs.create({ url: "chrome://extensions/?id=cnkdjjdmfiffagllbiiilooaoofcoeff" @@ -419,4 +517,4 @@ export class TabOptions extends React.Component { ); } -} \ No newline at end of file +} diff --git a/src/service_worker/service_worker.ts b/src/service_worker/service_worker.ts index 556b0a2e..b6a37058 100644 --- a/src/service_worker/service_worker.ts +++ b/src/service_worker/service_worker.ts @@ -9,6 +9,7 @@ import { cleanupDebounce, cleanUp } from '@background/tracking'; import * as _c from '@ui/context_menus'; import * as _o from '@ui/open'; import {debounce} from "@helpers/utils"; +import {externalSavedSessionsMethod, handleExternalApiMessage} from "@helpers/external_api"; import * as browser from 'webextension-polyfill'; browser.runtime.onStartup.addListener( @@ -24,7 +25,30 @@ browser.runtime.onSuspend.addListener( ); browser.commands.onCommand.addListener(_a.handleCommands); -browser.runtime.onMessage.addListener(_a.handleMessages); +browser.runtime.onMessage.addListener((message, sender, sendResponse) => { + _a.handleMessages(message, sender, sendResponse) + .then(sendResponse) + .catch((error) => sendResponse({ + error: error && error.message ? error.message : String(error) + })); + return true; +}); +browser.runtime.onMessageExternal.addListener((message, sender, sendResponse) => { + const request = message as {method?: string}; + if (!request || request.method !== externalSavedSessionsMethod) { + sendResponse(undefined); + return true; + } + + handleExternalApiMessage(message, sender) + .then(sendResponse) + .catch((error) => sendResponse({ + ok: false, + error: "unexpected_error", + message: error && error.message ? error.message : String(error) + })); + return true; +}); (async function () { let windows = await browser.windows.getAll({ populate: true }); @@ -57,4 +81,4 @@ async function setup() { setInterval(setupDebounced, 300000); setTimeout(cleanUp.bind(this, true), 2000000); -setup(); \ No newline at end of file +setup(); diff --git a/src/types/ITabOptionsState.ts b/src/types/ITabOptionsState.ts index bbe57112..0bda8338 100644 --- a/src/types/ITabOptionsState.ts +++ b/src/types/ITabOptionsState.ts @@ -1,3 +1,6 @@ -export interface ITabOptionsState { +import {IExternalExtension} from "@helpers/external_api"; -} \ No newline at end of file +export interface ITabOptionsState { + externalApiAllowedExtensions?: IExternalExtension[], + externalApiPendingRequests?: IExternalExtension[] +}