diff --git a/.babelrc b/.babelrc
deleted file mode 100644
index 70ce1cb3..00000000
--- a/.babelrc
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "presets": [
- "es2015",
- "es2016",
- "react"
- ],
- "comments": false,
- "compact": false,
- "retainLines": false,
- "sourceType": "script",
- "sourceMaps": true,
- "plugins": [
- "transform-async-to-generator",
- ["inline-replace-variables", {
- "__VERSION__": "5.3.0"
- }]
- ]
-}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6a10e582..d5366a40 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,9 @@
-next
+6.0.0
=====
- You can now open single tabs from your saved sessions
+- Experimental: Try to restore window names and colors after a browser restart
+- Fix: Vertical layout takes now the full width in popups
+- Fix: Vertical view has now nicer separators when used in full window, that take the whole screen width
- Fix: Sometimes favicons would not load properly
- Fix: Make sure session tabs are fully restored before closing the popup
- Fix: Moving many tabs could stop early because of popup closing in the meantime
@@ -11,6 +14,18 @@ next
- Fix: Windows that were too big for the current monitor, would not be restored
- Fix: Don't animate scrolling if animations are disabled
- Fix: Dragging tabs would sometimes drop them in the wrong location, now they will be added to the closest tab in the new window
+- Fix: Favicons sometimes stuck, based on browser cache
+- Fix: Also use favicon url based on pending url if tab is loading
+- Fix: Don't attempt to show empty favicon
+- Fix: pending urls not being read when calculating window title
+- Fix: window title not updating after tabs fully loaded
+- Fix: IPs being shown as weird numbers in window title/name
+- Fix: title being based on whole url, instead of hostname while tab was loading
+- Fix: Try to find nicer window title if it matches hostname
+- Fix: Group by top-Ips, like 192.168.*.*
+- Fix: If you selected incognito tabs and normal tabs based on a search, and tried to move them to one window then it
+ would fail because they can't be mixed together. Now it will open 2 windows - one with normal tabs, one with incognito
+ tabs.
5.3.0
=====
diff --git a/build.mjs b/build.mjs
new file mode 100644
index 00000000..ed0849a7
--- /dev/null
+++ b/build.mjs
@@ -0,0 +1,37 @@
+import * as esbuild from 'esbuild'
+
+await esbuild.build({
+ entryPoints: ['src/popup/popup.tsx'],
+ bundle: true,
+ sourcemap: true,
+ target: 'chrome88',
+ outfile: 'dist/popup/popup.js',
+ define: {
+ 'process.env.VERSION': '"' + process.env.npm_package_version + '"',
+ 'process.env.NODE_ENV': '"production"'
+ }
+})
+
+await esbuild.build({
+ entryPoints: ['src/service_worker/service_worker.ts'],
+ bundle: true,
+ sourcemap: true,
+ target: 'chrome88',
+ outfile: 'dist/service_worker/service_worker.js',
+ define: {
+ 'process.env.VERSION': '"' + process.env.npm_package_version + '"',
+ 'process.env.NODE_ENV': '"production"'
+ },
+})
+
+await esbuild.build({
+ entryPoints: ['src/popup/options.js'],
+ bundle: true,
+ sourcemap: true,
+ target: 'chrome88',
+ outfile: 'dist/popup/options.js',
+ define: {
+ 'process.env.VERSION': '"' + process.env.npm_package_version + '"',
+ 'process.env.NODE_ENV': '"production"'
+ }
+})
diff --git a/changelog.html b/changelog.html
index e1c516de..59a2f5b8 100644
--- a/changelog.html
+++ b/changelog.html
@@ -19,7 +19,7 @@
-
Tab Manager Plus 5.3.0
+
Tab Manager Plus 6.0.0
@@ -36,9 +36,12 @@
Here's what's planned for future versions
Here's what's new since the last time
-
next
+
6.0.0
You can now open single tabs from your saved sessions
+
Experimental: Try to restore window names and colors after a browser restart
+
Fix: Vertical layout takes now the full width in popups
+
Fix: Vertical view has now nicer separators when used in full window, that take the whole screen width
Fix: Sometimes favicons would not load properly
Fix: Make sure session tabs are fully restored before closing the popup
Fix: Moving many tabs could stop early because of popup closing in the meantime
@@ -49,6 +52,18 @@
next
Fix: Windows that were too big for the current monitor, would not be restored
Fix: Don't animate scrolling if animations are disabled
Fix: Dragging tabs would sometimes drop them in the wrong location, now they will be added to the closest tab in the new window
+
Fix: Favicons sometimes stuck, based on browser cache
+
Fix: Also use favicon url based on pending url if tab is loading
+
Fix: Don't attempt to show empty favicon
+
Fix: pending urls not being read when calculating window title
+
Fix: window title not updating after tabs fully loaded
+
Fix: IPs being shown as weird numbers in window title/name
+
Fix: title being based on whole url, instead of hostname while tab was loading
+
Fix: Try to find nicer window title if it matches hostname
+
Fix: Group by top-Ips, like 192.168.*.*
+
Fix: If you selected incognito tabs and normal tabs based on a search, and tried to move them to one window then it
+ would fail because they can't be mixed together. Now it will open 2 windows - one with normal tabs, one with incognito
+ tabs.
5.3.0
diff --git a/dist/popup/options.js b/dist/popup/options.js
new file mode 100644
index 00000000..eb533242
--- /dev/null
+++ b/dist/popup/options.js
@@ -0,0 +1,6 @@
+"use strict";
+(() => {
+ // src/popup/options.js
+ window.optionPage = true;
+})();
+//# sourceMappingURL=options.js.map
diff --git a/dist/popup/options.js.map b/dist/popup/options.js.map
new file mode 100644
index 00000000..6894095f
--- /dev/null
+++ b/dist/popup/options.js.map
@@ -0,0 +1,7 @@
+{
+ "version": 3,
+ "sources": ["../../src/popup/options.js"],
+ "sourcesContent": ["\"use strict\";\nwindow.optionPage = true;"],
+ "mappings": ";;;AACA,SAAO,aAAa;",
+ "names": []
+}
diff --git a/dist/popup/popup.js b/dist/popup/popup.js
new file mode 100644
index 00000000..f03d4eb5
--- /dev/null
+++ b/dist/popup/popup.js
@@ -0,0 +1,10555 @@
+"use strict";
+(() => {
+ var __create = Object.create;
+ var __defProp = Object.defineProperty;
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+ var __getOwnPropNames = Object.getOwnPropertyNames;
+ var __getProtoOf = Object.getPrototypeOf;
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
+ var __commonJS = (cb, mod) => function __require() {
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
+ };
+ var __copyProps = (to, from, except, desc) => {
+ if (from && typeof from === "object" || typeof from === "function") {
+ for (let key of __getOwnPropNames(from))
+ if (!__hasOwnProp.call(to, key) && key !== except)
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
+ }
+ return to;
+ };
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
+ // If the importer is in node compatibility mode or this is not an ESM
+ // file that has been converted to a CommonJS file using a Babel-
+ // compatible transform (i.e. "__esModule" has not been set), then set
+ // "default" to the CommonJS "module.exports" for node compatibility.
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
+ mod
+ ));
+
+ // node_modules/webextension-polyfill/dist/browser-polyfill.js
+ var require_browser_polyfill = __commonJS({
+ "node_modules/webextension-polyfill/dist/browser-polyfill.js"(exports, module) {
+ (function(global, factory) {
+ if (typeof define === "function" && define.amd) {
+ define("webextension-polyfill", ["module"], factory);
+ } else if (typeof exports !== "undefined") {
+ factory(module);
+ } else {
+ var mod = {
+ exports: {}
+ };
+ factory(mod);
+ global.browser = mod.exports;
+ }
+ })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : exports, function(module2) {
+ "use strict";
+ if (!(globalThis.chrome && globalThis.chrome.runtime && globalThis.chrome.runtime.id)) {
+ throw new Error("This script should only be loaded in a browser extension.");
+ }
+ if (!(globalThis.browser && globalThis.browser.runtime && globalThis.browser.runtime.id)) {
+ const CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE = "The message port closed before a response was received.";
+ const wrapAPIs = (extensionAPIs) => {
+ const apiMetadata = {
+ "alarms": {
+ "clear": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "clearAll": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "get": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "getAll": {
+ "minArgs": 0,
+ "maxArgs": 0
+ }
+ },
+ "bookmarks": {
+ "create": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "get": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getChildren": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getRecent": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getSubTree": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getTree": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "move": {
+ "minArgs": 2,
+ "maxArgs": 2
+ },
+ "remove": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "removeTree": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "search": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "update": {
+ "minArgs": 2,
+ "maxArgs": 2
+ }
+ },
+ "browserAction": {
+ "disable": {
+ "minArgs": 0,
+ "maxArgs": 1,
+ "fallbackToNoCallback": true
+ },
+ "enable": {
+ "minArgs": 0,
+ "maxArgs": 1,
+ "fallbackToNoCallback": true
+ },
+ "getBadgeBackgroundColor": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getBadgeText": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getPopup": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getTitle": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "openPopup": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "setBadgeBackgroundColor": {
+ "minArgs": 1,
+ "maxArgs": 1,
+ "fallbackToNoCallback": true
+ },
+ "setBadgeText": {
+ "minArgs": 1,
+ "maxArgs": 1,
+ "fallbackToNoCallback": true
+ },
+ "setIcon": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "setPopup": {
+ "minArgs": 1,
+ "maxArgs": 1,
+ "fallbackToNoCallback": true
+ },
+ "setTitle": {
+ "minArgs": 1,
+ "maxArgs": 1,
+ "fallbackToNoCallback": true
+ }
+ },
+ "browsingData": {
+ "remove": {
+ "minArgs": 2,
+ "maxArgs": 2
+ },
+ "removeCache": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "removeCookies": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "removeDownloads": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "removeFormData": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "removeHistory": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "removeLocalStorage": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "removePasswords": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "removePluginData": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "settings": {
+ "minArgs": 0,
+ "maxArgs": 0
+ }
+ },
+ "commands": {
+ "getAll": {
+ "minArgs": 0,
+ "maxArgs": 0
+ }
+ },
+ "contextMenus": {
+ "remove": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "removeAll": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "update": {
+ "minArgs": 2,
+ "maxArgs": 2
+ }
+ },
+ "cookies": {
+ "get": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getAll": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getAllCookieStores": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "remove": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "set": {
+ "minArgs": 1,
+ "maxArgs": 1
+ }
+ },
+ "devtools": {
+ "inspectedWindow": {
+ "eval": {
+ "minArgs": 1,
+ "maxArgs": 2,
+ "singleCallbackArg": false
+ }
+ },
+ "panels": {
+ "create": {
+ "minArgs": 3,
+ "maxArgs": 3,
+ "singleCallbackArg": true
+ },
+ "elements": {
+ "createSidebarPane": {
+ "minArgs": 1,
+ "maxArgs": 1
+ }
+ }
+ }
+ },
+ "downloads": {
+ "cancel": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "download": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "erase": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getFileIcon": {
+ "minArgs": 1,
+ "maxArgs": 2
+ },
+ "open": {
+ "minArgs": 1,
+ "maxArgs": 1,
+ "fallbackToNoCallback": true
+ },
+ "pause": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "removeFile": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "resume": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "search": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "show": {
+ "minArgs": 1,
+ "maxArgs": 1,
+ "fallbackToNoCallback": true
+ }
+ },
+ "extension": {
+ "isAllowedFileSchemeAccess": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "isAllowedIncognitoAccess": {
+ "minArgs": 0,
+ "maxArgs": 0
+ }
+ },
+ "history": {
+ "addUrl": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "deleteAll": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "deleteRange": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "deleteUrl": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getVisits": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "search": {
+ "minArgs": 1,
+ "maxArgs": 1
+ }
+ },
+ "i18n": {
+ "detectLanguage": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getAcceptLanguages": {
+ "minArgs": 0,
+ "maxArgs": 0
+ }
+ },
+ "identity": {
+ "launchWebAuthFlow": {
+ "minArgs": 1,
+ "maxArgs": 1
+ }
+ },
+ "idle": {
+ "queryState": {
+ "minArgs": 1,
+ "maxArgs": 1
+ }
+ },
+ "management": {
+ "get": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getAll": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "getSelf": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "setEnabled": {
+ "minArgs": 2,
+ "maxArgs": 2
+ },
+ "uninstallSelf": {
+ "minArgs": 0,
+ "maxArgs": 1
+ }
+ },
+ "notifications": {
+ "clear": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "create": {
+ "minArgs": 1,
+ "maxArgs": 2
+ },
+ "getAll": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "getPermissionLevel": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "update": {
+ "minArgs": 2,
+ "maxArgs": 2
+ }
+ },
+ "pageAction": {
+ "getPopup": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getTitle": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "hide": {
+ "minArgs": 1,
+ "maxArgs": 1,
+ "fallbackToNoCallback": true
+ },
+ "setIcon": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "setPopup": {
+ "minArgs": 1,
+ "maxArgs": 1,
+ "fallbackToNoCallback": true
+ },
+ "setTitle": {
+ "minArgs": 1,
+ "maxArgs": 1,
+ "fallbackToNoCallback": true
+ },
+ "show": {
+ "minArgs": 1,
+ "maxArgs": 1,
+ "fallbackToNoCallback": true
+ }
+ },
+ "permissions": {
+ "contains": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getAll": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "remove": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "request": {
+ "minArgs": 1,
+ "maxArgs": 1
+ }
+ },
+ "runtime": {
+ "getBackgroundPage": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "getPlatformInfo": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "openOptionsPage": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "requestUpdateCheck": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "sendMessage": {
+ "minArgs": 1,
+ "maxArgs": 3
+ },
+ "sendNativeMessage": {
+ "minArgs": 2,
+ "maxArgs": 2
+ },
+ "setUninstallURL": {
+ "minArgs": 1,
+ "maxArgs": 1
+ }
+ },
+ "sessions": {
+ "getDevices": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "getRecentlyClosed": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "restore": {
+ "minArgs": 0,
+ "maxArgs": 1
+ }
+ },
+ "storage": {
+ "local": {
+ "clear": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "get": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "getBytesInUse": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "remove": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "set": {
+ "minArgs": 1,
+ "maxArgs": 1
+ }
+ },
+ "managed": {
+ "get": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "getBytesInUse": {
+ "minArgs": 0,
+ "maxArgs": 1
+ }
+ },
+ "sync": {
+ "clear": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "get": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "getBytesInUse": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "remove": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "set": {
+ "minArgs": 1,
+ "maxArgs": 1
+ }
+ }
+ },
+ "tabs": {
+ "captureVisibleTab": {
+ "minArgs": 0,
+ "maxArgs": 2
+ },
+ "create": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "detectLanguage": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "discard": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "duplicate": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "executeScript": {
+ "minArgs": 1,
+ "maxArgs": 2
+ },
+ "get": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getCurrent": {
+ "minArgs": 0,
+ "maxArgs": 0
+ },
+ "getZoom": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "getZoomSettings": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "goBack": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "goForward": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "highlight": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "insertCSS": {
+ "minArgs": 1,
+ "maxArgs": 2
+ },
+ "move": {
+ "minArgs": 2,
+ "maxArgs": 2
+ },
+ "query": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "reload": {
+ "minArgs": 0,
+ "maxArgs": 2
+ },
+ "remove": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "removeCSS": {
+ "minArgs": 1,
+ "maxArgs": 2
+ },
+ "sendMessage": {
+ "minArgs": 2,
+ "maxArgs": 3
+ },
+ "setZoom": {
+ "minArgs": 1,
+ "maxArgs": 2
+ },
+ "setZoomSettings": {
+ "minArgs": 1,
+ "maxArgs": 2
+ },
+ "update": {
+ "minArgs": 1,
+ "maxArgs": 2
+ }
+ },
+ "topSites": {
+ "get": {
+ "minArgs": 0,
+ "maxArgs": 0
+ }
+ },
+ "webNavigation": {
+ "getAllFrames": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "getFrame": {
+ "minArgs": 1,
+ "maxArgs": 1
+ }
+ },
+ "webRequest": {
+ "handlerBehaviorChanged": {
+ "minArgs": 0,
+ "maxArgs": 0
+ }
+ },
+ "windows": {
+ "create": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "get": {
+ "minArgs": 1,
+ "maxArgs": 2
+ },
+ "getAll": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "getCurrent": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "getLastFocused": {
+ "minArgs": 0,
+ "maxArgs": 1
+ },
+ "remove": {
+ "minArgs": 1,
+ "maxArgs": 1
+ },
+ "update": {
+ "minArgs": 2,
+ "maxArgs": 2
+ }
+ }
+ };
+ if (Object.keys(apiMetadata).length === 0) {
+ throw new Error("api-metadata.json has not been included in browser-polyfill");
+ }
+ class DefaultWeakMap extends WeakMap {
+ constructor(createItem, items = void 0) {
+ super(items);
+ this.createItem = createItem;
+ }
+ get(key) {
+ if (!this.has(key)) {
+ this.set(key, this.createItem(key));
+ }
+ return super.get(key);
+ }
+ }
+ const isThenable = (value) => {
+ return value && typeof value === "object" && typeof value.then === "function";
+ };
+ const makeCallback = (promise, metadata) => {
+ return (...callbackArgs) => {
+ if (extensionAPIs.runtime.lastError) {
+ promise.reject(new Error(extensionAPIs.runtime.lastError.message));
+ } else if (metadata.singleCallbackArg || callbackArgs.length <= 1 && metadata.singleCallbackArg !== false) {
+ promise.resolve(callbackArgs[0]);
+ } else {
+ promise.resolve(callbackArgs);
+ }
+ };
+ };
+ const pluralizeArguments = (numArgs) => numArgs == 1 ? "argument" : "arguments";
+ const wrapAsyncFunction = (name, metadata) => {
+ return function asyncFunctionWrapper(target, ...args) {
+ if (args.length < metadata.minArgs) {
+ throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`);
+ }
+ if (args.length > metadata.maxArgs) {
+ throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`);
+ }
+ return new Promise((resolve, reject) => {
+ if (metadata.fallbackToNoCallback) {
+ try {
+ target[name](...args, makeCallback({
+ resolve,
+ reject
+ }, metadata));
+ } catch (cbError) {
+ console.warn(`${name} API method doesn't seem to support the callback parameter, falling back to call it without a callback: `, cbError);
+ target[name](...args);
+ metadata.fallbackToNoCallback = false;
+ metadata.noCallback = true;
+ resolve();
+ }
+ } else if (metadata.noCallback) {
+ target[name](...args);
+ resolve();
+ } else {
+ target[name](...args, makeCallback({
+ resolve,
+ reject
+ }, metadata));
+ }
+ });
+ };
+ };
+ const wrapMethod = (target, method, wrapper) => {
+ return new Proxy(method, {
+ apply(targetMethod, thisObj, args) {
+ return wrapper.call(thisObj, target, ...args);
+ }
+ });
+ };
+ let hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);
+ const wrapObject = (target, wrappers = {}, metadata = {}) => {
+ let cache = /* @__PURE__ */ Object.create(null);
+ let handlers = {
+ has(proxyTarget2, prop) {
+ return prop in target || prop in cache;
+ },
+ get(proxyTarget2, prop, receiver) {
+ if (prop in cache) {
+ return cache[prop];
+ }
+ if (!(prop in target)) {
+ return void 0;
+ }
+ let value = target[prop];
+ if (typeof value === "function") {
+ if (typeof wrappers[prop] === "function") {
+ value = wrapMethod(target, target[prop], wrappers[prop]);
+ } else if (hasOwnProperty(metadata, prop)) {
+ let wrapper = wrapAsyncFunction(prop, metadata[prop]);
+ value = wrapMethod(target, target[prop], wrapper);
+ } else {
+ value = value.bind(target);
+ }
+ } else if (typeof value === "object" && value !== null && (hasOwnProperty(wrappers, prop) || hasOwnProperty(metadata, prop))) {
+ value = wrapObject(value, wrappers[prop], metadata[prop]);
+ } else if (hasOwnProperty(metadata, "*")) {
+ value = wrapObject(value, wrappers[prop], metadata["*"]);
+ } else {
+ Object.defineProperty(cache, prop, {
+ configurable: true,
+ enumerable: true,
+ get() {
+ return target[prop];
+ },
+ set(value2) {
+ target[prop] = value2;
+ }
+ });
+ return value;
+ }
+ cache[prop] = value;
+ return value;
+ },
+ set(proxyTarget2, prop, value, receiver) {
+ if (prop in cache) {
+ cache[prop] = value;
+ } else {
+ target[prop] = value;
+ }
+ return true;
+ },
+ defineProperty(proxyTarget2, prop, desc) {
+ return Reflect.defineProperty(cache, prop, desc);
+ },
+ deleteProperty(proxyTarget2, prop) {
+ return Reflect.deleteProperty(cache, prop);
+ }
+ };
+ let proxyTarget = Object.create(target);
+ return new Proxy(proxyTarget, handlers);
+ };
+ const wrapEvent = (wrapperMap) => ({
+ addListener(target, listener, ...args) {
+ target.addListener(wrapperMap.get(listener), ...args);
+ },
+ hasListener(target, listener) {
+ return target.hasListener(wrapperMap.get(listener));
+ },
+ removeListener(target, listener) {
+ target.removeListener(wrapperMap.get(listener));
+ }
+ });
+ const onRequestFinishedWrappers = new DefaultWeakMap((listener) => {
+ if (typeof listener !== "function") {
+ return listener;
+ }
+ return function onRequestFinished(req) {
+ const wrappedReq = wrapObject(req, {}, {
+ getContent: {
+ minArgs: 0,
+ maxArgs: 0
+ }
+ });
+ listener(wrappedReq);
+ };
+ });
+ const onMessageWrappers = new DefaultWeakMap((listener) => {
+ if (typeof listener !== "function") {
+ return listener;
+ }
+ return function onMessage(message, sender, sendResponse) {
+ let didCallSendResponse = false;
+ let wrappedSendResponse;
+ let sendResponsePromise = new Promise((resolve) => {
+ wrappedSendResponse = function(response) {
+ didCallSendResponse = true;
+ resolve(response);
+ };
+ });
+ let result;
+ try {
+ result = listener(message, sender, wrappedSendResponse);
+ } catch (err) {
+ result = Promise.reject(err);
+ }
+ const isResultThenable = result !== true && isThenable(result);
+ if (result !== true && !isResultThenable && !didCallSendResponse) {
+ return false;
+ }
+ const sendPromisedResult = (promise) => {
+ promise.then((msg) => {
+ sendResponse(msg);
+ }, (error) => {
+ let message2;
+ if (error && (error instanceof Error || typeof error.message === "string")) {
+ message2 = error.message;
+ } else {
+ message2 = "An unexpected error occurred";
+ }
+ sendResponse({
+ __mozWebExtensionPolyfillReject__: true,
+ message: message2
+ });
+ }).catch((err) => {
+ console.error("Failed to send onMessage rejected reply", err);
+ });
+ };
+ if (isResultThenable) {
+ sendPromisedResult(result);
+ } else {
+ sendPromisedResult(sendResponsePromise);
+ }
+ return true;
+ };
+ });
+ const wrappedSendMessageCallback = ({
+ reject,
+ resolve
+ }, reply) => {
+ if (extensionAPIs.runtime.lastError) {
+ if (extensionAPIs.runtime.lastError.message === CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE) {
+ resolve();
+ } else {
+ reject(new Error(extensionAPIs.runtime.lastError.message));
+ }
+ } else if (reply && reply.__mozWebExtensionPolyfillReject__) {
+ reject(new Error(reply.message));
+ } else {
+ resolve(reply);
+ }
+ };
+ const wrappedSendMessage = (name, metadata, apiNamespaceObj, ...args) => {
+ if (args.length < metadata.minArgs) {
+ throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`);
+ }
+ if (args.length > metadata.maxArgs) {
+ throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`);
+ }
+ return new Promise((resolve, reject) => {
+ const wrappedCb = wrappedSendMessageCallback.bind(null, {
+ resolve,
+ reject
+ });
+ args.push(wrappedCb);
+ apiNamespaceObj.sendMessage(...args);
+ });
+ };
+ const staticWrappers = {
+ devtools: {
+ network: {
+ onRequestFinished: wrapEvent(onRequestFinishedWrappers)
+ }
+ },
+ runtime: {
+ onMessage: wrapEvent(onMessageWrappers),
+ onMessageExternal: wrapEvent(onMessageWrappers),
+ sendMessage: wrappedSendMessage.bind(null, "sendMessage", {
+ minArgs: 1,
+ maxArgs: 3
+ })
+ },
+ tabs: {
+ sendMessage: wrappedSendMessage.bind(null, "sendMessage", {
+ minArgs: 2,
+ maxArgs: 3
+ })
+ }
+ };
+ const settingMetadata = {
+ clear: {
+ minArgs: 1,
+ maxArgs: 1
+ },
+ get: {
+ minArgs: 1,
+ maxArgs: 1
+ },
+ set: {
+ minArgs: 1,
+ maxArgs: 1
+ }
+ };
+ apiMetadata.privacy = {
+ network: {
+ "*": settingMetadata
+ },
+ services: {
+ "*": settingMetadata
+ },
+ websites: {
+ "*": settingMetadata
+ }
+ };
+ return wrapObject(extensionAPIs, staticWrappers, apiMetadata);
+ };
+ module2.exports = wrapAPIs(chrome);
+ } else {
+ module2.exports = globalThis.browser;
+ }
+ });
+ }
+ });
+
+ // node_modules/object-assign/index.js
+ var require_object_assign = __commonJS({
+ "node_modules/object-assign/index.js"(exports, module) {
+ "use strict";
+ var getOwnPropertySymbols = Object.getOwnPropertySymbols;
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ var propIsEnumerable = Object.prototype.propertyIsEnumerable;
+ function toObject(val) {
+ if (val === null || val === void 0) {
+ throw new TypeError("Object.assign cannot be called with null or undefined");
+ }
+ return Object(val);
+ }
+ function shouldUseNative() {
+ try {
+ if (!Object.assign) {
+ return false;
+ }
+ var test1 = new String("abc");
+ test1[5] = "de";
+ if (Object.getOwnPropertyNames(test1)[0] === "5") {
+ return false;
+ }
+ var test2 = {};
+ for (var i = 0; i < 10; i++) {
+ test2["_" + String.fromCharCode(i)] = i;
+ }
+ var order2 = Object.getOwnPropertyNames(test2).map(function(n) {
+ return test2[n];
+ });
+ if (order2.join("") !== "0123456789") {
+ return false;
+ }
+ var test3 = {};
+ "abcdefghijklmnopqrst".split("").forEach(function(letter) {
+ test3[letter] = letter;
+ });
+ if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") {
+ return false;
+ }
+ return true;
+ } catch (err) {
+ return false;
+ }
+ }
+ module.exports = shouldUseNative() ? Object.assign : function(target, source) {
+ var from;
+ var to = toObject(target);
+ var symbols;
+ for (var s = 1; s < arguments.length; s++) {
+ from = Object(arguments[s]);
+ for (var key in from) {
+ if (hasOwnProperty.call(from, key)) {
+ to[key] = from[key];
+ }
+ }
+ if (getOwnPropertySymbols) {
+ symbols = getOwnPropertySymbols(from);
+ for (var i = 0; i < symbols.length; i++) {
+ if (propIsEnumerable.call(from, symbols[i])) {
+ to[symbols[i]] = from[symbols[i]];
+ }
+ }
+ }
+ }
+ return to;
+ };
+ }
+ });
+
+ // node_modules/react/cjs/react.production.min.js
+ var require_react_production_min = __commonJS({
+ "node_modules/react/cjs/react.production.min.js"(exports, module) {
+ "use strict";
+ var h = require_object_assign();
+ var n = "function" === typeof Symbol && Symbol.for;
+ var p = n ? Symbol.for("react.element") : 60103;
+ var q = n ? Symbol.for("react.portal") : 60106;
+ var r = n ? Symbol.for("react.fragment") : 60107;
+ var t = n ? Symbol.for("react.strict_mode") : 60108;
+ var u = n ? Symbol.for("react.profiler") : 60114;
+ var v = n ? Symbol.for("react.provider") : 60109;
+ var w = n ? Symbol.for("react.context") : 60110;
+ var x = n ? Symbol.for("react.forward_ref") : 60112;
+ var y = n ? Symbol.for("react.suspense") : 60113;
+ n && Symbol.for("react.suspense_list");
+ var z = n ? Symbol.for("react.memo") : 60115;
+ var 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;
+ function B(a) {
+ for (var b = "https://reactjs.org/docs/error-decoder.html?invariant=" + a, c = 1; c < arguments.length; c++) b += "&args[]=" + encodeURIComponent(arguments[c]);
+ return "Minified React error #" + a + "; visit " + b + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
+ }
+ var C = { isMounted: function() {
+ return false;
+ }, enqueueForceUpdate: function() {
+ }, enqueueReplaceState: function() {
+ }, enqueueSetState: function() {
+ } };
+ var D = {};
+ function E(a, b, c) {
+ this.props = a;
+ this.context = b;
+ this.refs = D;
+ this.updater = c || C;
+ }
+ E.prototype.isReactComponent = {};
+ E.prototype.setState = function(a, b) {
+ if ("object" !== typeof a && "function" !== typeof a && null != a) throw Error(B(85));
+ this.updater.enqueueSetState(this, a, b, "setState");
+ };
+ E.prototype.forceUpdate = function(a) {
+ this.updater.enqueueForceUpdate(this, a, "forceUpdate");
+ };
+ function F() {
+ }
+ F.prototype = E.prototype;
+ function G(a, b, c) {
+ this.props = a;
+ this.context = b;
+ this.refs = D;
+ this.updater = c || C;
+ }
+ var H = G.prototype = new F();
+ H.constructor = G;
+ h(H, E.prototype);
+ H.isPureReactComponent = true;
+ var I = { current: null };
+ var J = { current: null };
+ var K = Object.prototype.hasOwnProperty;
+ var L = { key: true, ref: true, __self: true, __source: true };
+ function M(a, b, c) {
+ var e, d = {}, g = null, l = null;
+ if (null != b) for (e in void 0 !== b.ref && (l = b.ref), void 0 !== b.key && (g = "" + b.key), b) K.call(b, e) && !L.hasOwnProperty(e) && (d[e] = b[e]);
+ var f = arguments.length - 2;
+ if (1 === f) d.children = c;
+ else if (1 < f) {
+ for (var k = Array(f), m = 0; m < f; m++) k[m] = arguments[m + 2];
+ d.children = k;
+ }
+ if (a && a.defaultProps) for (e in f = a.defaultProps, f) void 0 === d[e] && (d[e] = f[e]);
+ return { $$typeof: p, type: a, key: g, ref: l, props: d, _owner: J.current };
+ }
+ function ba(a, b) {
+ return { $$typeof: p, type: a.type, key: b, ref: a.ref, props: a.props, _owner: a._owner };
+ }
+ function N(a) {
+ return "object" === typeof a && null !== a && a.$$typeof === p;
+ }
+ function escape(a) {
+ var b = { "=": "=0", ":": "=2" };
+ return "$" + ("" + a).replace(/[=:]/g, function(a2) {
+ return b[a2];
+ });
+ }
+ var O = /\/+/g;
+ var P = [];
+ function Q(a, b, c, e) {
+ if (P.length) {
+ var d = P.pop();
+ d.result = a;
+ d.keyPrefix = b;
+ d.func = c;
+ d.context = e;
+ d.count = 0;
+ return d;
+ }
+ return { result: a, keyPrefix: b, func: c, context: e, count: 0 };
+ }
+ function R(a) {
+ a.result = null;
+ a.keyPrefix = null;
+ a.func = null;
+ a.context = null;
+ a.count = 0;
+ 10 > P.length && P.push(a);
+ }
+ function S(a, b, c, e) {
+ var d = typeof a;
+ if ("undefined" === d || "boolean" === d) a = null;
+ var g = false;
+ if (null === a) g = true;
+ else switch (d) {
+ case "string":
+ case "number":
+ g = true;
+ break;
+ case "object":
+ switch (a.$$typeof) {
+ case p:
+ case q:
+ g = true;
+ }
+ }
+ 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 < a.length; l++) {
+ d = a[l];
+ var f = b + T(d, l);
+ g += S(d, f, c, e);
+ }
+ else if (null === a || "object" !== typeof a ? f = null : (f = A && a[A] || a["@@iterator"], f = "function" === typeof f ? f : null), "function" === typeof f) for (a = f.call(a), l = 0; !(d = a.next()).done; ) d = d.value, f = b + T(d, l++), g += S(d, f, c, e);
+ else if ("object" === d) throw c = "" + a, Error(B(31, "[object Object]" === c ? "object with keys {" + Object.keys(a).join(", ") + "}" : c, ""));
+ return g;
+ }
+ function U(a, b, c) {
+ return null == a ? 0 : S(a, "", b, c);
+ }
+ function T(a, b) {
+ return "object" === typeof a && null !== a && null != a.key ? escape(a.key) : b.toString(36);
+ }
+ function ca(a, b) {
+ a.func.call(a.context, b, a.count++);
+ }
+ function da(a, b, c) {
+ var e = a.result, d = a.keyPrefix;
+ a = a.func.call(a.context, b, a.count++);
+ Array.isArray(a) ? V(a, e, c, function(a2) {
+ return a2;
+ }) : null != a && (N(a) && (a = ba(a, d + (!a.key || b && b.key === a.key ? "" : ("" + a.key).replace(O, "$&/") + "/") + c)), e.push(a));
+ }
+ function V(a, b, c, e, d) {
+ var g = "";
+ null != c && (g = ("" + c).replace(O, "$&/") + "/");
+ b = Q(b, g, e, d);
+ U(a, da, b);
+ R(b);
+ }
+ function W() {
+ var a = I.current;
+ if (null === a) throw Error(B(321));
+ return a;
+ }
+ var X = {
+ Children: { map: function(a, b, c) {
+ if (null == a) return a;
+ var e = [];
+ V(a, e, null, b, c);
+ return e;
+ }, forEach: function(a, b, c) {
+ if (null == a) return a;
+ b = Q(null, null, b, c);
+ U(a, ca, b);
+ R(b);
+ }, count: function(a) {
+ return U(a, function() {
+ return null;
+ }, null);
+ }, toArray: function(a) {
+ var b = [];
+ V(a, b, null, function(a2) {
+ return a2;
+ });
+ return b;
+ }, only: function(a) {
+ if (!N(a)) throw Error(B(143));
+ return a;
+ } },
+ createRef: function() {
+ return { current: null };
+ },
+ Component: E,
+ PureComponent: G,
+ createContext: function(a, b) {
+ void 0 === b && (b = null);
+ a = {
+ $$typeof: w,
+ _calculateChangedBits: b,
+ _currentValue: a,
+ _currentValue2: a,
+ _threadCount: 0,
+ Provider: null,
+ Consumer: null
+ };
+ a.Provider = { $$typeof: v, _context: a };
+ return a.Consumer = a;
+ },
+ forwardRef: function(a) {
+ return { $$typeof: x, render: a };
+ },
+ lazy: function(a) {
+ return { $$typeof: aa, _ctor: a, _status: -1, _result: null };
+ },
+ memo: function(a, b) {
+ return { $$typeof: z, type: a, compare: void 0 === b ? null : b };
+ },
+ useCallback: function(a, b) {
+ return W().useCallback(a, b);
+ },
+ useContext: function(a, b) {
+ return W().useContext(a, b);
+ },
+ useEffect: function(a, b) {
+ return W().useEffect(a, b);
+ },
+ useImperativeHandle: function(a, b, c) {
+ return W().useImperativeHandle(a, b, c);
+ },
+ useDebugValue: function() {
+ },
+ useLayoutEffect: function(a, b) {
+ return W().useLayoutEffect(a, b);
+ },
+ useMemo: function(a, b) {
+ return W().useMemo(a, b);
+ },
+ useReducer: function(a, b, c) {
+ return W().useReducer(a, b, c);
+ },
+ useRef: function(a) {
+ return W().useRef(a);
+ },
+ useState: function(a) {
+ return W().useState(a);
+ },
+ Fragment: r,
+ Profiler: u,
+ StrictMode: t,
+ Suspense: y,
+ createElement: M,
+ cloneElement: function(a, b, c) {
+ if (null === a || void 0 === a) throw Error(B(267, a));
+ var e = h({}, a.props), d = a.key, g = a.ref, l = a._owner;
+ if (null != b) {
+ void 0 !== b.ref && (g = b.ref, l = J.current);
+ void 0 !== b.key && (d = "" + b.key);
+ if (a.type && a.type.defaultProps) var f = a.type.defaultProps;
+ for (k in b) K.call(b, k) && !L.hasOwnProperty(k) && (e[k] = void 0 === b[k] && void 0 !== f ? f[k] : b[k]);
+ }
+ var k = arguments.length - 2;
+ if (1 === k) e.children = c;
+ else if (1 < k) {
+ f = Array(k);
+ for (var m = 0; m < k; m++) f[m] = arguments[m + 2];
+ e.children = f;
+ }
+ return { $$typeof: p, type: a.type, key: d, ref: g, props: e, _owner: l };
+ },
+ createFactory: function(a) {
+ var b = M.bind(null, a);
+ b.type = a;
+ return b;
+ },
+ isValidElement: N,
+ version: "16.11.0",
+ __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { ReactCurrentDispatcher: I, ReactCurrentBatchConfig: { suspense: null }, ReactCurrentOwner: J, IsSomeRendererActing: { current: false }, assign: h }
+ };
+ var Y = { default: X };
+ var Z = Y && X || Y;
+ module.exports = Z.default || Z;
+ }
+ });
+
+ // node_modules/react/index.js
+ var require_react = __commonJS({
+ "node_modules/react/index.js"(exports, module) {
+ "use strict";
+ if (true) {
+ module.exports = require_react_production_min();
+ } else {
+ module.exports = null;
+ }
+ }
+ });
+
+ // node_modules/scheduler/cjs/scheduler.production.min.js
+ var require_scheduler_production_min = __commonJS({
+ "node_modules/scheduler/cjs/scheduler.production.min.js"(exports) {
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var f;
+ var g;
+ var h;
+ var k;
+ var l;
+ if ("undefined" === typeof window || "function" !== typeof MessageChannel) {
+ p = null, q = null, t = function() {
+ if (null !== p) try {
+ var a = exports.unstable_now();
+ p(true, a);
+ p = null;
+ } catch (b) {
+ throw setTimeout(t, 0), b;
+ }
+ }, u = Date.now();
+ exports.unstable_now = function() {
+ return Date.now() - u;
+ };
+ f = function(a) {
+ null !== p ? setTimeout(f, 0, a) : (p = a, setTimeout(t, 0));
+ };
+ g = function(a, b) {
+ q = setTimeout(a, b);
+ };
+ h = function() {
+ clearTimeout(q);
+ };
+ k = function() {
+ return false;
+ };
+ l = exports.unstable_forceFrameRate = function() {
+ };
+ } else {
+ w = window.performance, x = window.Date, y = window.setTimeout, z = window.clearTimeout, A = window.requestAnimationFrame, B = window.cancelAnimationFrame;
+ "undefined" !== typeof console && ("function" !== typeof A && console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"), "function" !== typeof B && console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));
+ if ("object" === typeof w && "function" === typeof w.now) exports.unstable_now = function() {
+ return w.now();
+ };
+ else {
+ C = x.now();
+ exports.unstable_now = function() {
+ return x.now() - C;
+ };
+ }
+ D = false, E = null, F = -1, G = 5, H = 0;
+ k = function() {
+ return exports.unstable_now() >= H;
+ };
+ l = function() {
+ };
+ exports.unstable_forceFrameRate = function(a) {
+ 0 > a || 125 < a ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported") : G = 0 < a ? Math.floor(1e3 / a) : 33.33;
+ };
+ I = new MessageChannel(), J = I.port2;
+ I.port1.onmessage = function() {
+ if (null !== E) {
+ var a = exports.unstable_now();
+ H = a + G;
+ try {
+ E(true, a) ? J.postMessage(null) : (D = false, E = null);
+ } catch (b) {
+ throw J.postMessage(null), b;
+ }
+ } else D = false;
+ };
+ f = function(a) {
+ E = a;
+ D || (D = true, J.postMessage(null));
+ };
+ g = function(a, b) {
+ F = y(function() {
+ a(exports.unstable_now());
+ }, b);
+ };
+ h = function() {
+ z(F);
+ F = -1;
+ };
+ }
+ var p;
+ var q;
+ var t;
+ var u;
+ var w;
+ var x;
+ var y;
+ var z;
+ var A;
+ var B;
+ var C;
+ var D;
+ var E;
+ var F;
+ var G;
+ var H;
+ var I;
+ var J;
+ function K(a, b) {
+ var c = a.length;
+ a.push(b);
+ a: for (; ; ) {
+ var d = Math.floor((c - 1) / 2), e = a[d];
+ if (void 0 !== e && 0 < L(e, b)) a[d] = b, a[c] = e, c = d;
+ else break a;
+ }
+ }
+ function M(a) {
+ a = a[0];
+ return void 0 === a ? null : a;
+ }
+ function N(a) {
+ var b = a[0];
+ if (void 0 !== b) {
+ var c = a.pop();
+ if (c !== b) {
+ a[0] = c;
+ a: for (var d = 0, e = a.length; d < e; ) {
+ var m = 2 * (d + 1) - 1, n = a[m], v = m + 1, r = a[v];
+ if (void 0 !== n && 0 > L(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 = [];
+ var P = [];
+ var Q = 1;
+ var R = null;
+ var S = 3;
+ var T = false;
+ var U = false;
+ var V = false;
+ function 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 = false;
+ W(a);
+ if (!U) if (null !== M(O)) U = true, f(Y);
+ else {
+ var b = M(P);
+ null !== b && g(X, b.startTime - a);
+ }
+ }
+ function Y(a, b) {
+ U = false;
+ V && (V = false, h());
+ T = true;
+ 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 = true;
+ else {
+ var n = M(P);
+ null !== n && g(X, n.startTime - b);
+ m = false;
+ }
+ return m;
+ } finally {
+ R = null, S = c, T = false;
+ }
+ }
+ function 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;
+ }
+ };
+ exports.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;
+ }
+ };
+ exports.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 && 0 < e ? d + e : d;
+ c = "number" === typeof c.timeout ? c.timeout : Z(a);
+ } else c = Z(a), e = d;
+ c = e + c;
+ a = { id: Q++, callback: b, priorityLevel: a, startTime: e, expirationTime: c, sortIndex: -1 };
+ e > d ? (a.sortIndex = e, K(P, a), null === M(O) && a === M(P) && (V ? h() : V = true, g(X, e - d))) : (a.sortIndex = c, K(O, a), U || T || (U = true, f(Y)));
+ return a;
+ };
+ exports.unstable_cancelCallback = function(a) {
+ a.callback = null;
+ };
+ exports.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.expirationTime < R.expirationTime || k();
+ };
+ exports.unstable_requestPaint = aa;
+ exports.unstable_continueExecution = function() {
+ U || T || (U = true, f(Y));
+ };
+ exports.unstable_pauseExecution = function() {
+ };
+ exports.unstable_getFirstCallbackNode = function() {
+ return M(O);
+ };
+ exports.unstable_Profiling = null;
+ }
+ });
+
+ // node_modules/scheduler/index.js
+ var require_scheduler = __commonJS({
+ "node_modules/scheduler/index.js"(exports, module) {
+ "use strict";
+ if (true) {
+ module.exports = require_scheduler_production_min();
+ } else {
+ module.exports = null;
+ }
+ }
+ });
+
+ // 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) {
+ "use strict";
+ var aa = require_react();
+ var n = require_object_assign();
+ var q = require_scheduler();
+ function u(a) {
+ for (var b = "https://reactjs.org/docs/error-decoder.html?invariant=" + a, c = 1; c < arguments.length; c++) b += "&args[]=" + encodeURIComponent(arguments[c]);
+ return "Minified React error #" + a + "; visit " + b + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
+ }
+ if (!aa) throw Error(u(227));
+ var ba = null;
+ var ca = {};
+ function da() {
+ if (ba) for (var a in ca) {
+ var b = ca[a], c = ba.indexOf(a);
+ if (!(-1 < c)) throw Error(u(96, a));
+ if (!ea[c]) {
+ if (!b.extractEvents) throw Error(u(97, a));
+ ea[c] = b;
+ c = b.eventTypes;
+ for (var d in c) {
+ var e = void 0;
+ var f = c[d], g = b, h = d;
+ if (fa.hasOwnProperty(h)) throw Error(u(99, h));
+ fa[h] = f;
+ var k = f.phasedRegistrationNames;
+ if (k) {
+ for (e in k) k.hasOwnProperty(e) && ha(k[e], g, h);
+ e = true;
+ } else f.registrationName ? (ha(f.registrationName, g, h), e = true) : e = false;
+ if (!e) throw Error(u(98, d, a));
+ }
+ }
+ }
+ }
+ function ha(a, b, c) {
+ if (ia[a]) throw Error(u(100, a));
+ ia[a] = b;
+ ja[a] = b.eventTypes[c].dependencies;
+ }
+ var ea = [];
+ var fa = {};
+ var ia = {};
+ var ja = {};
+ function ka(a, b, c, d, e, f, g, h, k) {
+ var l = Array.prototype.slice.call(arguments, 3);
+ try {
+ b.apply(c, l);
+ } catch (m) {
+ this.onError(m);
+ }
+ }
+ var la = false;
+ var ma = null;
+ var na = false;
+ var oa = null;
+ var pa = { onError: function(a) {
+ la = true;
+ ma = a;
+ } };
+ function qa(a, b, c, d, e, f, g, h, k) {
+ la = false;
+ ma = null;
+ ka.apply(pa, arguments);
+ }
+ function ra(a, b, c, d, e, f, g, h, k) {
+ qa.apply(this, arguments);
+ if (la) {
+ if (la) {
+ var l = ma;
+ la = false;
+ ma = null;
+ } else throw Error(u(198));
+ na || (na = true, oa = l);
+ }
+ }
+ var sa = null;
+ var ua = null;
+ var va = null;
+ function wa(a, b, c) {
+ var d = a.type || "unknown-event";
+ a.currentTarget = va(c);
+ ra(d, b, void 0, a);
+ a.currentTarget = null;
+ }
+ function xa(a, b) {
+ if (null == b) throw Error(u(30));
+ if (null == a) return b;
+ if (Array.isArray(a)) {
+ if (Array.isArray(b)) return a.push.apply(a, b), a;
+ a.push(b);
+ return a;
+ }
+ return Array.isArray(b) ? [a].concat(b) : [a, b];
+ }
+ function ya(a, b, c) {
+ Array.isArray(a) ? a.forEach(b, c) : a && b.call(c, a);
+ }
+ var za = null;
+ function Aa(a) {
+ if (a) {
+ var b = a._dispatchListeners, c = a._dispatchInstances;
+ if (Array.isArray(b)) for (var d = 0; d < b.length && !a.isPropagationStopped(); d++) wa(a, b[d], c[d]);
+ else b && wa(a, b, c);
+ a._dispatchListeners = null;
+ a._dispatchInstances = null;
+ a.isPersistent() || a.constructor.release(a);
+ }
+ }
+ function Ba(a) {
+ null !== a && (za = xa(za, a));
+ a = za;
+ za = null;
+ if (a) {
+ ya(a, Aa);
+ if (za) throw Error(u(95));
+ if (na) throw a = oa, na = false, oa = null, a;
+ }
+ }
+ var Ca = { injectEventPluginOrder: function(a) {
+ if (ba) throw Error(u(101));
+ ba = Array.prototype.slice.call(a);
+ da();
+ }, injectEventPluginsByName: function(a) {
+ var b = false, c;
+ for (c in a) if (a.hasOwnProperty(c)) {
+ var d = a[c];
+ if (!ca.hasOwnProperty(c) || ca[c] !== d) {
+ if (ca[c]) throw Error(u(102, c));
+ ca[c] = d;
+ b = true;
+ }
+ }
+ b && da();
+ } };
+ function Da(a, b) {
+ var c = a.stateNode;
+ if (!c) return null;
+ var d = sa(c);
+ if (!d) return null;
+ c = d[b];
+ a: switch (b) {
+ case "onClick":
+ case "onClickCapture":
+ case "onDoubleClick":
+ case "onDoubleClickCapture":
+ case "onMouseDown":
+ case "onMouseDownCapture":
+ case "onMouseMove":
+ case "onMouseMoveCapture":
+ case "onMouseUp":
+ case "onMouseUpCapture":
+ (d = !d.disabled) || (a = a.type, d = !("button" === a || "input" === a || "select" === a || "textarea" === a));
+ a = !d;
+ break a;
+ default:
+ a = false;
+ }
+ if (a) return null;
+ if (c && "function" !== typeof c) throw Error(u(231, b, typeof c));
+ return c;
+ }
+ var Ea = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
+ Ea.hasOwnProperty("ReactCurrentDispatcher") || (Ea.ReactCurrentDispatcher = { current: null });
+ Ea.hasOwnProperty("ReactCurrentBatchConfig") || (Ea.ReactCurrentBatchConfig = { suspense: null });
+ var Fa = /^(.*)[\\\/]/;
+ var w = "function" === typeof Symbol && Symbol.for;
+ var Ga = w ? Symbol.for("react.element") : 60103;
+ var Ha = w ? Symbol.for("react.portal") : 60106;
+ var Ia = w ? Symbol.for("react.fragment") : 60107;
+ var Ja = w ? Symbol.for("react.strict_mode") : 60108;
+ var Ka = w ? Symbol.for("react.profiler") : 60114;
+ var La = w ? Symbol.for("react.provider") : 60109;
+ var Ma = w ? Symbol.for("react.context") : 60110;
+ var Na = w ? Symbol.for("react.concurrent_mode") : 60111;
+ var Oa = w ? Symbol.for("react.forward_ref") : 60112;
+ var Pa = w ? Symbol.for("react.suspense") : 60113;
+ var Qa = w ? Symbol.for("react.suspense_list") : 60120;
+ var Ra = w ? Symbol.for("react.memo") : 60115;
+ var Sa = w ? Symbol.for("react.lazy") : 60116;
+ w && Symbol.for("react.fundamental");
+ w && Symbol.for("react.responder");
+ w && Symbol.for("react.scope");
+ var Ta = "function" === typeof Symbol && Symbol.iterator;
+ function Ua(a) {
+ if (null === a || "object" !== typeof a) return null;
+ a = Ta && a[Ta] || a["@@iterator"];
+ return "function" === typeof a ? a : null;
+ }
+ function Va(a) {
+ if (-1 === a._status) {
+ a._status = 0;
+ var b = a._ctor;
+ b = b();
+ a._result = b;
+ b.then(function(b2) {
+ 0 === a._status && (b2 = b2.default, a._status = 1, a._result = b2);
+ }, function(b2) {
+ 0 === a._status && (a._status = 2, a._result = b2);
+ });
+ }
+ }
+ function Wa(a) {
+ if (null == a) return null;
+ if ("function" === typeof a) return a.displayName || a.name || null;
+ if ("string" === typeof a) return a;
+ switch (a) {
+ case Ia:
+ return "Fragment";
+ case Ha:
+ return "Portal";
+ case Ka:
+ return "Profiler";
+ case Ja:
+ return "StrictMode";
+ case Pa:
+ return "Suspense";
+ case Qa:
+ return "SuspenseList";
+ }
+ if ("object" === typeof a) switch (a.$$typeof) {
+ case Ma:
+ return "Context.Consumer";
+ case La:
+ return "Context.Provider";
+ case Oa:
+ var b = a.render;
+ b = b.displayName || b.name || "";
+ return a.displayName || ("" !== b ? "ForwardRef(" + b + ")" : "ForwardRef");
+ case Ra:
+ return Wa(a.type);
+ case Sa:
+ if (a = 1 === a._status ? a._result : null) return Wa(a);
+ }
+ return null;
+ }
+ function Xa(a) {
+ var b = "";
+ do {
+ a: switch (a.tag) {
+ case 3:
+ case 4:
+ case 6:
+ case 7:
+ case 10:
+ case 9:
+ var c = "";
+ break a;
+ default:
+ var d = a._debugOwner, e = a._debugSource, f = Wa(a.type);
+ c = null;
+ d && (c = Wa(d.type));
+ d = f;
+ f = "";
+ e ? f = " (at " + e.fileName.replace(Fa, "") + ":" + e.lineNumber + ")" : c && (f = " (created by " + c + ")");
+ c = "\n in " + (d || "Unknown") + f;
+ }
+ b += c;
+ a = a.return;
+ } while (a);
+ return b;
+ }
+ var Ya = !("undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement);
+ var Za = null;
+ var $a = null;
+ var ab = null;
+ function bb(a) {
+ if (a = ua(a)) {
+ if ("function" !== typeof Za) throw Error(u(280));
+ var b = sa(a.stateNode);
+ Za(a.stateNode, a.type, b);
+ }
+ }
+ function cb(a) {
+ $a ? ab ? ab.push(a) : ab = [a] : $a = a;
+ }
+ function db() {
+ if ($a) {
+ var a = $a, b = ab;
+ ab = $a = null;
+ bb(a);
+ if (b) for (a = 0; a < b.length; a++) bb(b[a]);
+ }
+ }
+ function eb(a, b) {
+ return a(b);
+ }
+ function fb(a, b, c, d) {
+ return a(b, c, d);
+ }
+ function gb() {
+ }
+ var hb = eb;
+ var ib = false;
+ var jb = false;
+ function kb() {
+ if (null !== $a || null !== ab) gb(), db();
+ }
+ var lb = /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/;
+ var mb = Object.prototype.hasOwnProperty;
+ var nb = {};
+ var ob = {};
+ function pb(a) {
+ if (mb.call(ob, a)) return true;
+ if (mb.call(nb, a)) return false;
+ if (lb.test(a)) return ob[a] = true;
+ nb[a] = true;
+ return false;
+ }
+ function qb(a, b, c, d) {
+ if (null !== c && 0 === c.type) return false;
+ switch (typeof b) {
+ case "function":
+ case "symbol":
+ return true;
+ case "boolean":
+ if (d) return false;
+ if (null !== c) return !c.acceptsBooleans;
+ a = a.toLowerCase().slice(0, 5);
+ return "data-" !== a && "aria-" !== a;
+ default:
+ return false;
+ }
+ }
+ function rb(a, b, c, d) {
+ if (null === b || "undefined" === typeof b || qb(a, b, c, d)) return true;
+ if (d) return false;
+ if (null !== c) switch (c.type) {
+ case 3:
+ return !b;
+ case 4:
+ return false === b;
+ case 5:
+ return isNaN(b);
+ case 6:
+ return isNaN(b) || 1 > b;
+ }
+ return false;
+ }
+ 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 = {};
+ "children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a) {
+ D[a] = new B(a, 0, false, a, null, false);
+ });
+ [["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function(a) {
+ var b = a[0];
+ D[b] = new B(b, 1, false, a[1], null, false);
+ });
+ ["contentEditable", "draggable", "spellCheck", "value"].forEach(function(a) {
+ D[a] = new B(a, 2, false, a.toLowerCase(), null, false);
+ });
+ ["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function(a) {
+ D[a] = new B(a, 2, false, a, null, false);
+ });
+ "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, false, a.toLowerCase(), null, false);
+ });
+ ["checked", "multiple", "muted", "selected"].forEach(function(a) {
+ D[a] = new B(a, 3, true, a, null, false);
+ });
+ ["capture", "download"].forEach(function(a) {
+ D[a] = new B(a, 4, false, a, null, false);
+ });
+ ["cols", "rows", "size", "span"].forEach(function(a) {
+ D[a] = new B(a, 6, false, a, null, false);
+ });
+ ["rowSpan", "start"].forEach(function(a) {
+ D[a] = new B(a, 5, false, a.toLowerCase(), null, false);
+ });
+ var sb = /[\-:]([a-z])/g;
+ function tb(a) {
+ return a[1].toUpperCase();
+ }
+ "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,
+ tb
+ );
+ D[b] = new B(b, 1, false, a, null, false);
+ });
+ "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, false, a, "http://www.w3.org/1999/xlink", false);
+ });
+ ["xml:base", "xml:lang", "xml:space"].forEach(function(a) {
+ var b = a.replace(sb, tb);
+ D[b] = new B(b, 1, false, a, "http://www.w3.org/XML/1998/namespace", false);
+ });
+ ["tabIndex", "crossOrigin"].forEach(function(a) {
+ D[a] = new B(a, 1, false, a.toLowerCase(), null, false);
+ });
+ D.xlinkHref = new B("xlinkHref", 1, false, "xlink:href", "http://www.w3.org/1999/xlink", true);
+ ["src", "href", "action", "formAction"].forEach(function(a) {
+ D[a] = new B(a, 1, false, a.toLowerCase(), null, true);
+ });
+ function ub(a) {
+ switch (typeof a) {
+ case "boolean":
+ case "number":
+ case "object":
+ case "string":
+ case "undefined":
+ return a;
+ default:
+ return "";
+ }
+ }
+ function vb(a, b, c, d) {
+ var e = D.hasOwnProperty(b) ? D[b] : null;
+ var f = null !== e ? 0 === e.type : d ? false : !(2 < b.length) || "o" !== b[0] && "O" !== b[0] || "n" !== b[1] && "N" !== b[1] ? false : true;
+ f || (rb(b, c, e, d) && (c = null), d || null === e ? pb(b) && (null === c ? a.removeAttribute(b) : a.setAttribute(b, "" + c)) : e.mustUseProperty ? a[e.propertyName] = null === c ? 3 === e.type ? false : "" : c : (b = e.attributeName, d = e.attributeNamespace, null === c ? a.removeAttribute(b) : (e = e.type, c = 3 === e || 4 === e && true === c ? "" : "" + c, d ? a.setAttributeNS(d, b, c) : a.setAttribute(b, c))));
+ }
+ function wb(a) {
+ var b = a.type;
+ return (a = a.nodeName) && "input" === a.toLowerCase() && ("checkbox" === b || "radio" === b);
+ }
+ function xb(a) {
+ var b = wb(a) ? "checked" : "value", c = Object.getOwnPropertyDescriptor(a.constructor.prototype, b), d = "" + a[b];
+ if (!a.hasOwnProperty(b) && "undefined" !== typeof c && "function" === typeof c.get && "function" === typeof c.set) {
+ var e = c.get, f = c.set;
+ Object.defineProperty(a, b, { configurable: true, get: function() {
+ return e.call(this);
+ }, set: function(a2) {
+ d = "" + a2;
+ f.call(this, a2);
+ } });
+ Object.defineProperty(a, b, { enumerable: c.enumerable });
+ return { getValue: function() {
+ return d;
+ }, setValue: function(a2) {
+ d = "" + a2;
+ }, stopTracking: function() {
+ a._valueTracker = null;
+ delete a[b];
+ } };
+ }
+ }
+ function yb(a) {
+ a._valueTracker || (a._valueTracker = xb(a));
+ }
+ function zb(a) {
+ if (!a) return false;
+ var b = a._valueTracker;
+ if (!b) return true;
+ var c = b.getValue();
+ var d = "";
+ a && (d = wb(a) ? a.checked ? "true" : "false" : a.value);
+ a = d;
+ return a !== c ? (b.setValue(a), true) : false;
+ }
+ function Ab(a, b) {
+ var c = b.checked;
+ return n({}, b, { defaultChecked: void 0, defaultValue: void 0, value: void 0, checked: null != c ? c : a._wrapperState.initialChecked });
+ }
+ function Bb(a, b) {
+ var c = null == b.defaultValue ? "" : b.defaultValue, d = null != b.checked ? b.checked : b.defaultChecked;
+ c = ub(null != b.value ? b.value : c);
+ a._wrapperState = { initialChecked: d, initialValue: c, controlled: "checkbox" === b.type || "radio" === b.type ? null != b.checked : null != b.value };
+ }
+ function Cb(a, b) {
+ b = b.checked;
+ null != b && vb(a, "checked", b, false);
+ }
+ function Eb(a, b) {
+ Cb(a, b);
+ var c = ub(b.value), d = b.type;
+ if (null != c) if ("number" === d) {
+ if (0 === c && "" === a.value || a.value != c) a.value = "" + c;
+ } else a.value !== "" + c && (a.value = "" + c);
+ else if ("submit" === d || "reset" === d) {
+ a.removeAttribute("value");
+ return;
+ }
+ b.hasOwnProperty("value") ? Fb(a, b.type, c) : b.hasOwnProperty("defaultValue") && Fb(a, b.type, ub(b.defaultValue));
+ null == b.checked && null != b.defaultChecked && (a.defaultChecked = !!b.defaultChecked);
+ }
+ function Gb(a, b, c) {
+ if (b.hasOwnProperty("value") || b.hasOwnProperty("defaultValue")) {
+ var d = b.type;
+ if (!("submit" !== d && "reset" !== d || void 0 !== b.value && null !== b.value)) return;
+ b = "" + a._wrapperState.initialValue;
+ c || b === a.value || (a.value = b);
+ a.defaultValue = b;
+ }
+ c = a.name;
+ "" !== c && (a.name = "");
+ a.defaultChecked = !a.defaultChecked;
+ a.defaultChecked = !!a._wrapperState.initialChecked;
+ "" !== c && (a.name = c);
+ }
+ function Fb(a, b, c) {
+ if ("number" !== b || a.ownerDocument.activeElement !== a) null == c ? a.defaultValue = "" + a._wrapperState.initialValue : a.defaultValue !== "" + c && (a.defaultValue = "" + c);
+ }
+ function Hb(a) {
+ var b = "";
+ aa.Children.forEach(a, function(a2) {
+ null != a2 && (b += a2);
+ });
+ return b;
+ }
+ function Ib(a, b) {
+ a = n({ children: void 0 }, b);
+ if (b = Hb(b.children)) a.children = b;
+ return a;
+ }
+ function Jb(a, b, c, d) {
+ a = a.options;
+ if (b) {
+ b = {};
+ for (var e = 0; e < c.length; e++) b["$" + c[e]] = true;
+ for (c = 0; c < a.length; c++) e = b.hasOwnProperty("$" + a[c].value), a[c].selected !== e && (a[c].selected = e), e && d && (a[c].defaultSelected = true);
+ } else {
+ c = "" + ub(c);
+ b = null;
+ for (e = 0; e < a.length; e++) {
+ if (a[e].value === c) {
+ a[e].selected = true;
+ d && (a[e].defaultSelected = true);
+ return;
+ }
+ null !== b || a[e].disabled || (b = a[e]);
+ }
+ null !== b && (b.selected = true);
+ }
+ }
+ function Kb(a, b) {
+ if (null != b.dangerouslySetInnerHTML) throw Error(u(91));
+ return n({}, b, { value: void 0, defaultValue: void 0, children: "" + a._wrapperState.initialValue });
+ }
+ function Lb(a, b) {
+ var c = b.value;
+ if (null == c) {
+ c = b.defaultValue;
+ b = b.children;
+ if (null != b) {
+ if (null != c) throw Error(u(92));
+ if (Array.isArray(b)) {
+ if (!(1 >= b.length)) throw Error(u(93));
+ b = b[0];
+ }
+ c = b;
+ }
+ null == c && (c = "");
+ }
+ a._wrapperState = { initialValue: ub(c) };
+ }
+ function 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" };
+ function 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;
+ }
+ var Rb;
+ var 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 = "";
+ for (b = Rb.firstChild; a.firstChild; ) a.removeChild(a.firstChild);
+ for (; b.firstChild; ) a.appendChild(b.firstChild);
+ }
+ });
+ function 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") };
+ var Wb = {};
+ var Xb = {};
+ Ya && (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");
+ var $b = Yb("animationiteration");
+ var ac = Yb("animationstart");
+ var bc = Yb("transitionend");
+ var 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(" ");
+ function 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));
+ }
+ function 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 = false, h = e.child; h; ) {
+ if (h === c) {
+ g = true;
+ c = e;
+ d = f;
+ break;
+ }
+ if (h === d) {
+ g = true;
+ d = e;
+ c = f;
+ break;
+ }
+ h = h.sibling;
+ }
+ if (!g) {
+ for (h = f.child; h; ) {
+ if (h === c) {
+ g = true;
+ c = f;
+ d = e;
+ break;
+ }
+ if (h === d) {
+ g = true;
+ 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;
+ }
+ var jc;
+ var kc;
+ var lc;
+ var mc = false;
+ var nc = [];
+ var oc = null;
+ var pc = null;
+ var qc = null;
+ var rc = /* @__PURE__ */ new Map();
+ var sc = /* @__PURE__ */ new Map();
+ var tc = [];
+ var 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(" ");
+ var vc = "focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" ");
+ function 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);
+ }
+ }
+ function 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), true;
+ case "dragenter":
+ return pc = Bc(pc, a, b, c, d), true;
+ case "mouseover":
+ return qc = Bc(qc, a, b, c, d), true;
+ case "pointerover":
+ var e = d.pointerId;
+ rc.set(e, Bc(rc.get(e) || null, a, b, c, d));
+ return true;
+ case "gotpointercapture":
+ return e = d.pointerId, sc.set(e, Bc(sc.get(e) || null, a, b, c, d)), true;
+ }
+ return false;
+ }
+ function 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 false;
+ var b = Hc(a.topLevelType, a.eventSystemFlags, a.nativeEvent);
+ if (null !== b) {
+ var c = Cc(b);
+ null !== c && kc(c);
+ a.blockedOn = b;
+ return false;
+ }
+ return true;
+ }
+ function Ic(a, b, c) {
+ Gc(a) && c.delete(b);
+ }
+ function Jc() {
+ for (mc = false; 0 < nc.length; ) {
+ var a = nc[0];
+ if (null !== a.blockedOn) {
+ a = Cc(a.blockedOn);
+ null !== a && jc(a);
+ break;
+ }
+ var b = Hc(a.topLevelType, a.eventSystemFlags, a.nativeEvent);
+ null !== b ? a.blockedOn = b : nc.shift();
+ }
+ null !== oc && Gc(oc) && (oc = null);
+ null !== pc && Gc(pc) && (pc = null);
+ null !== qc && Gc(qc) && (qc = null);
+ rc.forEach(Ic);
+ sc.forEach(Ic);
+ }
+ function Kc(a, b) {
+ a.blockedOn === b && (a.blockedOn = null, mc || (mc = true, q.unstable_scheduleCallback(q.unstable_NormalPriority, Jc)));
+ }
+ function Lc(a) {
+ function b(b2) {
+ return Kc(b2, a);
+ }
+ if (0 < nc.length) {
+ Kc(nc[0], a);
+ for (var c = 1; c < nc.length; c++) {
+ var d = nc[c];
+ d.blockedOn === a && (d.blockedOn = null);
+ }
+ }
+ null !== oc && Kc(oc, a);
+ null !== pc && Kc(pc, a);
+ null !== qc && Kc(qc, a);
+ rc.forEach(b);
+ sc.forEach(b);
+ for (c = 0; c < tc.length; c++) d = tc[c], d.blockedOn === a && (d.blockedOn = null);
+ for (; 0 < tc.length && (c = tc[0], null === c.blockedOn); ) Ec(c), null === c.blockedOn && tc.shift();
+ }
+ function Mc(a) {
+ a = a.target || a.srcElement || window;
+ a.correspondingUseElement && (a = a.correspondingUseElement);
+ return 3 === a.nodeType ? a.parentNode : a;
+ }
+ function Nc(a) {
+ do
+ a = a.return;
+ while (a && 5 !== a.tag);
+ return a ? a : null;
+ }
+ function Oc(a, b, c) {
+ if (b = Da(a, c.dispatchConfig.phasedRegistrationNames[b])) c._dispatchListeners = xa(c._dispatchListeners, b), c._dispatchInstances = xa(c._dispatchInstances, a);
+ }
+ function Pc(a) {
+ if (a && a.dispatchConfig.phasedRegistrationNames) {
+ for (var b = a._targetInst, c = []; b; ) c.push(b), b = Nc(b);
+ for (b = c.length; 0 < b--; ) Oc(c[b], "captured", a);
+ for (b = 0; b < c.length; b++) Oc(c[b], "bubbled", a);
+ }
+ }
+ function Qc(a, b, c) {
+ a && c && c.dispatchConfig.registrationName && (b = Da(a, c.dispatchConfig.registrationName)) && (c._dispatchListeners = xa(c._dispatchListeners, b), c._dispatchInstances = xa(c._dispatchInstances, a));
+ }
+ function Rc(a) {
+ a && a.dispatchConfig.registrationName && Qc(a._targetInst, null, a);
+ }
+ function Sc(a) {
+ ya(a, Pc);
+ }
+ function Tc() {
+ return true;
+ }
+ function Uc() {
+ return false;
+ }
+ function E(a, b, c, d) {
+ this.dispatchConfig = a;
+ this._targetInst = b;
+ this.nativeEvent = c;
+ a = this.constructor.Interface;
+ for (var e in a) a.hasOwnProperty(e) && ((b = a[e]) ? this[e] = b(c) : "target" === e ? this.target = d : this[e] = c[e]);
+ this.isDefaultPrevented = (null != c.defaultPrevented ? c.defaultPrevented : false === c.returnValue) ? Tc : Uc;
+ this.isPropagationStopped = Uc;
+ return this;
+ }
+ n(E.prototype, { preventDefault: function() {
+ this.defaultPrevented = true;
+ var a = this.nativeEvent;
+ a && (a.preventDefault ? a.preventDefault() : "unknown" !== typeof a.returnValue && (a.returnValue = false), this.isDefaultPrevented = Tc);
+ }, stopPropagation: function() {
+ var a = this.nativeEvent;
+ a && (a.stopPropagation ? a.stopPropagation() : "unknown" !== typeof a.cancelBubble && (a.cancelBubble = true), this.isPropagationStopped = Tc);
+ }, persist: function() {
+ this.isPersistent = Tc;
+ }, isPersistent: Uc, destructor: function() {
+ var a = this.constructor.Interface, b;
+ for (b in a) this[b] = null;
+ this.nativeEvent = this._targetInst = this.dispatchConfig = null;
+ this.isPropagationStopped = this.isDefaultPrevented = Uc;
+ this._dispatchInstances = this._dispatchListeners = null;
+ } });
+ E.Interface = { type: null, target: null, currentTarget: function() {
+ return null;
+ }, eventPhase: null, bubbles: null, cancelable: null, timeStamp: function(a) {
+ return a.timeStamp || Date.now();
+ }, defaultPrevented: null, isTrusted: null };
+ E.extend = function(a) {
+ function b() {
+ }
+ function c() {
+ return d.apply(this, arguments);
+ }
+ var d = this;
+ b.prototype = d.prototype;
+ var e = new b();
+ n(e, c.prototype);
+ c.prototype = e;
+ c.prototype.constructor = c;
+ c.Interface = n({}, d.Interface, a);
+ c.extend = d.extend;
+ Vc(c);
+ return c;
+ };
+ Vc(E);
+ function Wc(a, b, c, d) {
+ if (this.eventPool.length) {
+ var e = this.eventPool.pop();
+ this.call(e, a, b, c, d);
+ return e;
+ }
+ return new this(a, b, c, d);
+ }
+ function Xc(a) {
+ if (!(a instanceof this)) throw Error(u(279));
+ a.destructor();
+ 10 > this.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 });
+ var Zc = E.extend({ clipboardData: function(a) {
+ return "clipboardData" in a ? a.clipboardData : window.clipboardData;
+ } });
+ var $c = E.extend({ view: null, detail: null });
+ var ad = $c.extend({ relatedTarget: null });
+ function 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;
+ }
+ var cd = { Esc: "Escape", Spacebar: " ", Left: "ArrowLeft", Up: "ArrowUp", Right: "ArrowRight", Down: "ArrowDown", Del: "Delete", Win: "OS", Menu: "ContextMenu", Apps: "ContextMenu", Scroll: "ScrollLock", MozPrintableKey: "Unidentified" };
+ var 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",
+ 116: "F5",
+ 117: "F6",
+ 118: "F7",
+ 119: "F8",
+ 120: "F9",
+ 121: "F10",
+ 122: "F11",
+ 123: "F12",
+ 144: "NumLock",
+ 145: "ScrollLock",
+ 224: "Meta"
+ };
+ var 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] : false;
+ }
+ function hd() {
+ return gd;
+ }
+ var 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" === a.type ? bd(a) : "keydown" === a.type || "keyup" === a.type ? a.keyCode : 0;
+ } });
+ var jd = 0;
+ var kd = 0;
+ var ld = false;
+ var md = false;
+ var 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 - b : 0 : (ld = true, 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 = true, 0);
+ } });
+ var od = nd.extend({ pointerId: null, width: null, height: null, pressure: null, tangentialPressure: null, tiltX: null, tiltY: null, twist: null, pointerType: null, isPrimary: null });
+ var pd = nd.extend({ dataTransfer: null });
+ var qd = $c.extend({ touches: null, targetTouches: null, changedTouches: null, altKey: null, metaKey: null, ctrlKey: null, shiftKey: null, getModifierState: hd });
+ var rd = E.extend({
+ propertyName: null,
+ elapsedTime: null,
+ pseudoElement: null
+ });
+ var 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 });
+ var 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",
+ 0
+ ], ["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",
+ 0
+ ], ["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",
+ 2
+ ], [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",
+ "progress",
+ 2
+ ], ["seeking", "seeking", 2], ["stalled", "stalled", 2], ["suspend", "suspend", 2], ["timeupdate", "timeUpdate", 2], [bc, "transitionEnd", 2], ["waiting", "waiting", 2]];
+ var ud = {};
+ var vd = {};
+ var xd = 0;
+ for (; xd < td.length; xd++) {
+ yd = td[xd], zd = yd[0], Ad = yd[1], Bd = yd[2], Cd = "on" + (Ad[0].toUpperCase() + Ad.slice(1)), Dd = { phasedRegistrationNames: { bubbled: Cd, captured: Cd + "Capture" }, dependencies: [zd], eventPriority: Bd };
+ ud[Ad] = Dd;
+ vd[zd] = Dd;
+ }
+ var yd;
+ var zd;
+ var Ad;
+ var Bd;
+ var Cd;
+ var Dd;
+ var Ed = { eventTypes: ud, getEventPriority: function(a) {
+ a = vd[a];
+ return void 0 !== a ? a.eventPriority : 2;
+ }, extractEvents: function(a, b, c, d) {
+ var e = vd[a];
+ if (!e) return null;
+ switch (a) {
+ case "keypress":
+ if (0 === bd(c)) return null;
+ case "keydown":
+ case "keyup":
+ a = id;
+ break;
+ case "blur":
+ case "focus":
+ a = ad;
+ break;
+ case "click":
+ if (2 === c.button) return null;
+ case "auxclick":
+ case "dblclick":
+ case "mousedown":
+ case "mousemove":
+ case "mouseup":
+ case "mouseout":
+ case "mouseover":
+ case "contextmenu":
+ a = nd;
+ break;
+ case "drag":
+ case "dragend":
+ case "dragenter":
+ case "dragexit":
+ case "dragleave":
+ case "dragover":
+ case "dragstart":
+ case "drop":
+ a = pd;
+ break;
+ case "touchcancel":
+ case "touchend":
+ case "touchmove":
+ case "touchstart":
+ a = qd;
+ break;
+ case Zb:
+ case $b:
+ case ac:
+ a = Yc;
+ break;
+ case bc:
+ a = rd;
+ break;
+ case "scroll":
+ a = $c;
+ break;
+ case "wheel":
+ a = sd;
+ break;
+ case "copy":
+ case "cut":
+ case "paste":
+ a = Zc;
+ break;
+ case "gotpointercapture":
+ case "lostpointercapture":
+ case "pointercancel":
+ case "pointerdown":
+ case "pointermove":
+ case "pointerout":
+ case "pointerover":
+ case "pointerup":
+ a = od;
+ break;
+ default:
+ a = E;
+ }
+ b = a.getPooled(e, b, c, d);
+ Sc(b);
+ return b;
+ } };
+ var Fd = q.unstable_UserBlockingPriority;
+ var Gd = q.unstable_runWithPriority;
+ var Hd = Ed.getEventPriority;
+ var Id = 10;
+ var Jd = [];
+ function Kd(a) {
+ var b = a.targetInst, c = b;
+ do {
+ if (!c) {
+ a.ancestors.push(c);
+ break;
+ }
+ var d = c;
+ if (3 === d.tag) d = d.stateNode.containerInfo;
+ else {
+ for (; d.return; ) d = d.return;
+ d = 3 !== d.tag ? null : d.stateNode.containerInfo;
+ }
+ if (!d) break;
+ b = c.tag;
+ 5 !== b && 6 !== b || a.ancestors.push(c);
+ c = Fc(d);
+ } while (c);
+ for (c = 0; c < a.ancestors.length; c++) {
+ b = a.ancestors[c];
+ var e = Mc(a.nativeEvent);
+ d = a.topLevelType;
+ for (var f = a.nativeEvent, g = a.eventSystemFlags, h = null, k = 0; k < ea.length; k++) {
+ var l = ea[k];
+ l && (l = l.extractEvents(d, b, f, e, g)) && (h = xa(h, l));
+ }
+ Ba(h);
+ }
+ }
+ var Ld = true;
+ function F(a, b) {
+ Md(b, a, false);
+ }
+ function Md(a, b, c) {
+ switch (Hd(b)) {
+ case 0:
+ var d = Nd.bind(null, b, 1);
+ break;
+ case 1:
+ d = Od.bind(null, b, 1);
+ break;
+ default:
+ d = Pd.bind(null, b, 1);
+ }
+ c ? a.addEventListener(b, d, true) : a.addEventListener(b, d, false);
+ }
+ function Nd(a, b, c) {
+ ib || gb();
+ var d = Pd, e = ib;
+ ib = true;
+ try {
+ fb(d, a, b, c);
+ } finally {
+ (ib = e) || kb();
+ }
+ }
+ function Od(a, b, c) {
+ Gd(Fd, Pd.bind(null, a, b, c));
+ }
+ function Qd(a, b, c, d) {
+ if (Jd.length) {
+ var e = Jd.pop();
+ e.topLevelType = a;
+ e.eventSystemFlags = b;
+ e.nativeEvent = c;
+ e.targetInst = d;
+ a = e;
+ } else a = { topLevelType: a, eventSystemFlags: b, nativeEvent: c, targetInst: d, ancestors: [] };
+ try {
+ if (b = Kd, c = a, jb) b(c, void 0);
+ else {
+ jb = true;
+ try {
+ hb(b, c, void 0);
+ } finally {
+ jb = false, kb();
+ }
+ }
+ } finally {
+ a.topLevelType = null, a.nativeEvent = null, a.targetInst = null, a.ancestors.length = 0, Jd.length < Id && Jd.push(a);
+ }
+ }
+ function Pd(a, b, c) {
+ if (Ld) if (0 < nc.length && -1 < uc.indexOf(a)) a = zc(null, a, b, c), nc.push(a);
+ else {
+ var d = Hc(a, b, c);
+ null === d ? Ac(a, c) : -1 < uc.indexOf(a) ? (a = zc(d, a, b, c), nc.push(a)) : Dc(d, a, b, c) || (Ac(a, c), Qd(a, b, c, null));
+ }
+ }
+ function Hc(a, b, c) {
+ var d = Mc(c);
+ d = Fc(d);
+ if (null !== d) {
+ var e = ec(d);
+ if (null === e) d = null;
+ else {
+ var f = e.tag;
+ if (13 === f) {
+ d = fc(e);
+ if (null !== d) return d;
+ d = null;
+ } else if (3 === f) {
+ if (e.stateNode.hydrate) return 3 === e.tag ? e.stateNode.containerInfo : null;
+ d = null;
+ } else e !== d && (d = null);
+ }
+ }
+ Qd(a, b, c, d);
+ return null;
+ }
+ function Rd(a) {
+ if (!Ya) return false;
+ a = "on" + a;
+ var b = a in document;
+ b || (b = document.createElement("div"), b.setAttribute(a, "return;"), b = "function" === typeof b[a]);
+ return b;
+ }
+ var Sd = new ("function" === typeof WeakMap ? WeakMap : Map)();
+ function xc(a) {
+ var b = Sd.get(a);
+ void 0 === b && (b = /* @__PURE__ */ new Set(), Sd.set(a, b));
+ return b;
+ }
+ function yc(a, b, c) {
+ if (!c.has(a)) {
+ switch (a) {
+ case "scroll":
+ Md(b, "scroll", true);
+ break;
+ case "focus":
+ case "blur":
+ Md(b, "focus", true);
+ Md(b, "blur", true);
+ c.add("blur");
+ c.add("focus");
+ break;
+ case "cancel":
+ case "close":
+ Rd(a) && Md(b, a, true);
+ break;
+ case "invalid":
+ case "submit":
+ case "reset":
+ break;
+ default:
+ -1 === dc.indexOf(a) && F(a, b);
+ }
+ c.add(a);
+ }
+ }
+ var Td = {
+ animationIterationCount: true,
+ borderImageOutset: true,
+ borderImageSlice: true,
+ borderImageWidth: true,
+ boxFlex: true,
+ boxFlexGroup: true,
+ boxOrdinalGroup: true,
+ columnCount: true,
+ columns: true,
+ flex: true,
+ flexGrow: true,
+ flexPositive: true,
+ flexShrink: true,
+ flexNegative: true,
+ flexOrder: true,
+ gridArea: true,
+ gridRow: true,
+ gridRowEnd: true,
+ gridRowSpan: true,
+ gridRowStart: true,
+ gridColumn: true,
+ gridColumnEnd: true,
+ gridColumnSpan: true,
+ gridColumnStart: true,
+ fontWeight: true,
+ lineClamp: true,
+ lineHeight: true,
+ opacity: true,
+ order: true,
+ orphans: true,
+ tabSize: true,
+ widows: true,
+ zIndex: true,
+ zoom: true,
+ fillOpacity: true,
+ floodOpacity: true,
+ stopOpacity: true,
+ strokeDasharray: true,
+ strokeDashoffset: true,
+ strokeMiterlimit: true,
+ strokeOpacity: true,
+ strokeWidth: true
+ };
+ var Ud = ["Webkit", "ms", "Moz", "O"];
+ Object.keys(Td).forEach(function(a) {
+ Ud.forEach(function(b) {
+ b = b + a.charAt(0).toUpperCase() + a.substring(1);
+ Td[b] = Td[a];
+ });
+ });
+ function Vd(a, b, c) {
+ return null == b || "boolean" === typeof b || "" === b ? "" : c || "number" !== typeof b || 0 === b || Td.hasOwnProperty(a) && Td[a] ? ("" + b).trim() : b + "px";
+ }
+ function Wd(a, b) {
+ a = a.style;
+ for (var c in b) if (b.hasOwnProperty(c)) {
+ var d = 0 === c.indexOf("--"), e = Vd(c, b[c], d);
+ "float" === c && (c = "cssFloat");
+ d ? a.setProperty(c, e) : a[c] = e;
+ }
+ }
+ var Xd = n({ menuitem: true }, { area: true, base: true, br: true, col: true, embed: true, hr: true, img: true, input: true, keygen: true, link: true, meta: true, param: true, source: true, track: true, wbr: true });
+ function Yd(a, b) {
+ if (b) {
+ if (Xd[a] && (null != b.children || null != b.dangerouslySetInnerHTML)) throw Error(u(137, a, ""));
+ if (null != b.dangerouslySetInnerHTML) {
+ if (null != b.children) throw Error(u(60));
+ if (!("object" === typeof b.dangerouslySetInnerHTML && "__html" in b.dangerouslySetInnerHTML)) throw Error(u(61));
+ }
+ if (null != b.style && "object" !== typeof b.style) throw Error(u(62, ""));
+ }
+ }
+ function Zd(a, b) {
+ if (-1 === a.indexOf("-")) return "string" === typeof b.is;
+ switch (a) {
+ case "annotation-xml":
+ case "color-profile":
+ case "font-face":
+ case "font-face-src":
+ case "font-face-uri":
+ case "font-face-format":
+ case "font-face-name":
+ case "missing-glyph":
+ return false;
+ default:
+ return true;
+ }
+ }
+ function $d(a, b) {
+ a = 9 === a.nodeType || 11 === a.nodeType ? a : a.ownerDocument;
+ var c = xc(a);
+ b = ja[b];
+ for (var d = 0; d < b.length; d++) yc(b[d], a, c);
+ }
+ function ae() {
+ }
+ function be(a) {
+ a = a || ("undefined" !== typeof document ? document : void 0);
+ if ("undefined" === typeof a) return null;
+ try {
+ return a.activeElement || a.body;
+ } catch (b) {
+ return a.body;
+ }
+ }
+ function ce(a) {
+ for (; a && a.firstChild; ) a = a.firstChild;
+ return a;
+ }
+ function de(a, b) {
+ var c = ce(a);
+ a = 0;
+ for (var d; c; ) {
+ if (3 === c.nodeType) {
+ d = a + c.textContent.length;
+ if (a <= b && d >= 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);
+ }
+ }
+ function ee(a, b) {
+ return a && b ? a === b ? true : a && 3 === a.nodeType ? false : b && 3 === b.nodeType ? ee(a, b.parentNode) : "contains" in a ? a.contains(b) : a.compareDocumentPosition ? !!(a.compareDocumentPosition(b) & 16) : false : false;
+ }
+ function fe() {
+ for (var a = window, b = be(); b instanceof a.HTMLIFrameElement; ) {
+ try {
+ var c = "string" === typeof b.contentWindow.location.href;
+ } catch (d) {
+ c = false;
+ }
+ if (c) a = b.contentWindow;
+ else break;
+ b = be(a.document);
+ }
+ return b;
+ }
+ function 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 = "$";
+ var ie = "/$";
+ var je = "$?";
+ var ke = "$!";
+ var le = null;
+ var me = null;
+ function ne(a, b) {
+ switch (a) {
+ case "button":
+ case "input":
+ case "select":
+ case "textarea":
+ return !!b.autoFocus;
+ }
+ return false;
+ }
+ function 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;
+ var 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;
+ }
+ function 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);
+ var ue = "__reactInternalInstance$" + te;
+ var ve = "__reactEventHandlers$" + te;
+ var we = "__reactContainere$" + te;
+ function 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;
+ var Ae = null;
+ var Be = null;
+ function 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 < c && b[a] === e[a]; a++) ;
+ var g = c - a;
+ for (d = 1; d <= g && b[c - d] === e[f - d]; d++) ;
+ return Be = e.slice(a, 1 < d ? 1 - d : void 0);
+ }
+ var De = E.extend({ data: null });
+ var Ee = E.extend({ data: null });
+ var Fe = [9, 13, 27, 32];
+ var Ge = Ya && "CompositionEvent" in window;
+ var He = null;
+ Ya && "documentMode" in document && (He = document.documentMode);
+ var Ie = Ya && "TextEvent" in window && !He;
+ var Je = Ya && (!Ge || He && 8 < He && 11 >= He);
+ var Ke = String.fromCharCode(32);
+ var 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",
+ captured: "onCompositionStartCapture"
+ }, dependencies: "blur compositionstart keydown keypress keyup mousedown".split(" ") }, compositionUpdate: { phasedRegistrationNames: { bubbled: "onCompositionUpdate", captured: "onCompositionUpdateCapture" }, dependencies: "blur compositionupdate keydown keypress keyup mousedown".split(" ") } };
+ var Me = false;
+ function 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 true;
+ default:
+ return false;
+ }
+ }
+ function Oe(a) {
+ a = a.detail;
+ return "object" === typeof a && "data" in a ? a.data : null;
+ }
+ var Pe = false;
+ function Qe(a, b) {
+ switch (a) {
+ case "compositionend":
+ return Oe(b);
+ case "keypress":
+ if (32 !== b.which) return null;
+ Me = true;
+ return Ke;
+ case "textInput":
+ return a = b.data, a === Ke && Me ? null : a;
+ default:
+ return null;
+ }
+ }
+ function Re(a, b) {
+ if (Pe) return "compositionend" === a || !Ge && Ne(a, b) ? (a = Ce(), Be = Ae = ze = null, Pe = false, 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 < b.char.length) return b.char;
+ if (b.which) return String.fromCharCode(b.which);
+ }
+ return null;
+ case "compositionend":
+ return Je && "ko" !== b.locale ? null : b.data;
+ default:
+ return null;
+ }
+ }
+ var Se = { eventTypes: Le, extractEvents: function(a, b, c, d) {
+ var e;
+ if (Ge) b: {
+ switch (a) {
+ case "compositionstart":
+ var f = Le.compositionStart;
+ break b;
+ case "compositionend":
+ f = Le.compositionEnd;
+ break b;
+ case "compositionupdate":
+ f = Le.compositionUpdate;
+ break b;
+ }
+ f = void 0;
+ }
+ else Pe ? Ne(a, c) && (f = Le.compositionEnd) : "keydown" === a && 229 === c.keyCode && (f = Le.compositionStart);
+ f ? (Je && "ko" !== c.locale && (Pe || f !== Le.compositionStart ? f === Le.compositionEnd && Pe && (e = Ce()) : (ze = d, Ae = "value" in ze ? ze.value : ze.textContent, Pe = true)), f = De.getPooled(
+ f,
+ b,
+ c,
+ d
+ ), e ? f.data = e : (e = Oe(c), null !== e && (f.data = e)), Sc(f), e = f) : e = null;
+ (a = Ie ? Qe(a, c) : Re(a, c)) ? (b = Ee.getPooled(Le.beforeInput, b, c, d), b.data = a, Sc(b)) : b = null;
+ return null === e ? b : null === b ? e : [e, b];
+ } };
+ var Te = { color: true, date: true, datetime: true, "datetime-local": true, email: true, month: true, number: true, password: true, range: true, search: true, tel: true, text: true, time: true, url: true, week: true };
+ function Ue(a) {
+ var b = a && a.nodeName && a.nodeName.toLowerCase();
+ return "input" === b ? !!Te[a.type] : "textarea" === b ? true : false;
+ }
+ var Ve = { change: { phasedRegistrationNames: { bubbled: "onChange", captured: "onChangeCapture" }, dependencies: "blur change click focus input keydown keyup selectionchange".split(" ") } };
+ function We(a, b, c) {
+ a = E.getPooled(Ve.change, a, b, c);
+ a.type = "change";
+ cb(c);
+ Sc(a);
+ return a;
+ }
+ var Xe = null;
+ var Ye = null;
+ function Ze(a) {
+ Ba(a);
+ }
+ function $e(a) {
+ var b = xe(a);
+ if (zb(b)) return a;
+ }
+ function af(a, b) {
+ if ("change" === a) return b;
+ }
+ var bf = false;
+ Ya && (bf = Rd("input") && (!document.documentMode || 9 < document.documentMode));
+ function cf() {
+ Xe && (Xe.detachEvent("onpropertychange", df), Ye = Xe = null);
+ }
+ function df(a) {
+ if ("value" === a.propertyName && $e(Ye)) if (a = We(Ye, a, Mc(a)), ib) Ba(a);
+ else {
+ ib = true;
+ try {
+ eb(Ze, a);
+ } finally {
+ ib = false, kb();
+ }
+ }
+ }
+ function ef(a, b, c) {
+ "focus" === a ? (cf(), Xe = b, Ye = c, Xe.attachEvent("onpropertychange", df)) : "blur" === a && cf();
+ }
+ function ff(a) {
+ if ("selectionchange" === a || "keyup" === a || "keydown" === a) return $e(Ye);
+ }
+ function gf(a, b) {
+ if ("click" === a) return $e(b);
+ }
+ function hf(a, b) {
+ if ("input" === a || "change" === a) return $e(b);
+ }
+ var jf = { eventTypes: Ve, _isInputEventSupported: bf, extractEvents: function(a, b, c, d) {
+ var e = b ? xe(b) : window, f = e.nodeName && e.nodeName.toLowerCase();
+ if ("select" === f || "input" === f && "file" === e.type) var g = af;
+ else if (Ue(e)) if (bf) g = hf;
+ else {
+ g = ff;
+ var h = ef;
+ }
+ else (f = e.nodeName) && "input" === f.toLowerCase() && ("checkbox" === e.type || "radio" === e.type) && (g = gf);
+ if (g && (g = g(a, b))) return We(g, c, d);
+ h && h(a, e, b);
+ "blur" === a && (a = e._wrapperState) && a.controlled && "number" === e.type && Fb(e, "number", e.value);
+ } };
+ var kf = { mouseEnter: {
+ registrationName: "onMouseEnter",
+ dependencies: ["mouseout", "mouseover"]
+ }, mouseLeave: { registrationName: "onMouseLeave", dependencies: ["mouseout", "mouseover"] }, pointerEnter: { registrationName: "onPointerEnter", dependencies: ["pointerout", "pointerover"] }, pointerLeave: { registrationName: "onPointerLeave", dependencies: ["pointerout", "pointerover"] } };
+ var lf;
+ var mf = { eventTypes: kf, extractEvents: function(a, b, c, d, e) {
+ var f = "mouseover" === a || "pointerover" === a, g = "mouseout" === a || "pointerout" === a;
+ if (f && 0 === (e & 32) && (c.relatedTarget || c.fromElement) || !g && !f) return null;
+ e = d.window === d ? d : (e = d.ownerDocument) ? e.defaultView || e.parentWindow : window;
+ if (g) {
+ if (g = b, b = (b = c.relatedTarget || c.toElement) ? Fc(b) : null, null !== b && (f = ec(b), b !== f || 5 !== b.tag && 6 !== b.tag)) b = null;
+ } else g = null;
+ if (g === b) return null;
+ if ("mouseout" === a || "mouseover" === a) {
+ var h = nd;
+ var k = kf.mouseLeave;
+ var l = kf.mouseEnter;
+ var m = "mouse";
+ } else if ("pointerout" === a || "pointerover" === a) h = od, k = kf.pointerLeave, l = kf.pointerEnter, m = "pointer";
+ a = null == g ? e : xe(g);
+ e = null == b ? e : xe(b);
+ k = h.getPooled(k, g, c, d);
+ k.type = m + "leave";
+ k.target = a;
+ k.relatedTarget = e;
+ d = h.getPooled(l, b, c, d);
+ d.type = m + "enter";
+ d.target = e;
+ d.relatedTarget = a;
+ h = g;
+ m = b;
+ if (h && m) a: {
+ l = h;
+ a = m;
+ g = 0;
+ for (b = l; b; b = Nc(b)) g++;
+ b = 0;
+ for (e = a; e; e = Nc(e)) b++;
+ for (; 0 < g - b; ) l = Nc(l), g--;
+ for (; 0 < b - g; ) a = Nc(a), b--;
+ for (; g--; ) {
+ if (l === a || l === a.alternate) break a;
+ l = Nc(l);
+ a = Nc(a);
+ }
+ l = null;
+ }
+ else l = null;
+ a = l;
+ for (l = []; h && h !== a; ) {
+ g = h.alternate;
+ if (null !== g && g === a) break;
+ l.push(h);
+ h = Nc(h);
+ }
+ for (h = []; m && m !== a; ) {
+ g = m.alternate;
+ if (null !== g && g === a) break;
+ h.push(m);
+ m = Nc(m);
+ }
+ for (m = 0; m < l.length; m++) Qc(l[m], "bubbled", k);
+ for (m = h.length; 0 < m--; ) Qc(h[m], "captured", d);
+ if (c === lf) return lf = null, [k];
+ lf = c;
+ return [k, d];
+ } };
+ function nf(a, b) {
+ return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;
+ }
+ var of = "function" === typeof Object.is ? Object.is : nf;
+ var pf = Object.prototype.hasOwnProperty;
+ function qf(a, b) {
+ if (of(a, b)) return true;
+ if ("object" !== typeof a || null === a || "object" !== typeof b || null === b) return false;
+ var c = Object.keys(a), d = Object.keys(b);
+ if (c.length !== d.length) return false;
+ for (d = 0; d < c.length; d++) if (!pf.call(b, c[d]) || !of(a[c[d]], b[c[d]])) return false;
+ return true;
+ }
+ var rf = Ya && "documentMode" in document && 11 >= document.documentMode;
+ var sf = { select: { phasedRegistrationNames: { bubbled: "onSelect", captured: "onSelectCapture" }, dependencies: "blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ") } };
+ var tf = null;
+ var uf = null;
+ var vf = null;
+ var wf = false;
+ function 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);
+ }
+ var 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; g < f.length; g++) if (!e.has(f[g])) {
+ e = false;
+ break a;
+ }
+ e = true;
+ }
+ f = !e;
+ }
+ if (f) return null;
+ e = b ? xe(b) : window;
+ switch (a) {
+ case "focus":
+ if (Ue(e) || "true" === e.contentEditable) tf = e, uf = b, vf = null;
+ break;
+ case "blur":
+ vf = uf = tf = null;
+ break;
+ case "mousedown":
+ wf = true;
+ break;
+ case "contextmenu":
+ case "mouseup":
+ case "dragend":
+ return wf = false, xf(c, d);
+ case "selectionchange":
+ if (rf) break;
+ case "keydown":
+ case "keyup":
+ return xf(c, d);
+ }
+ return null;
+ } };
+ Ca.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" "));
+ var zf = Cc;
+ sa = ye;
+ ua = zf;
+ va = xe;
+ Ca.injectEventPluginsByName({ SimpleEventPlugin: Ed, EnterLeaveEventPlugin: mf, ChangeEventPlugin: jf, SelectEventPlugin: yf, BeforeInputEventPlugin: Se });
+ var Af = [];
+ var Bf = -1;
+ function G(a) {
+ 0 > Bf || (a.current = Af[Bf], Af[Bf] = null, Bf--);
+ }
+ function I(a, b) {
+ Bf++;
+ Af[Bf] = a.current;
+ a.current = b;
+ }
+ var Cf = {};
+ var J = { current: Cf };
+ var K = { current: false };
+ var 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;
+ }
+ function 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 true;
+ }
+ function 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);
+ }
+ var Lf = q.unstable_runWithPriority;
+ var Mf = q.unstable_scheduleCallback;
+ var Nf = q.unstable_cancelCallback;
+ var Of = q.unstable_shouldYield;
+ var Pf = q.unstable_requestPaint;
+ var Qf = q.unstable_now;
+ var Rf = q.unstable_getCurrentPriorityLevel;
+ var Sf = q.unstable_ImmediatePriority;
+ var Tf = q.unstable_UserBlockingPriority;
+ var Uf = q.unstable_NormalPriority;
+ var Vf = q.unstable_LowPriority;
+ var Wf = q.unstable_IdlePriority;
+ var Xf = {};
+ var Yf = void 0 !== Pf ? Pf : function() {
+ };
+ var Zf = null;
+ var $f = null;
+ var ag = false;
+ var bg = Qf();
+ var cg = 1e4 > bg ? Qf : function() {
+ return Qf() - bg;
+ };
+ function 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();
+ }
+ function ig() {
+ if (!ag && null !== Zf) {
+ ag = true;
+ var a = 0;
+ try {
+ var b = Zf;
+ fg(99, function() {
+ for (; a < b.length; a++) {
+ var c = b[a];
+ do
+ c = c(true);
+ while (null !== c);
+ }
+ });
+ Zf = null;
+ } catch (c) {
+ throw null !== Zf && (Zf = Zf.slice(a + 1)), Mf(Sf, jg), c;
+ } finally {
+ ag = false;
+ }
+ }
+ }
+ var kg = 3;
+ function lg(a, b, c) {
+ c /= 10;
+ return 1073741821 - (((1073741821 - a + b / 10) / c | 0) + 1) * c;
+ }
+ function mg(a, b) {
+ if (a && a.defaultProps) {
+ b = n({}, b);
+ a = a.defaultProps;
+ for (var c in a) void 0 === b[c] && (b[c] = a[c]);
+ }
+ return b;
+ }
+ var ng = { current: null };
+ var og = null;
+ var pg = null;
+ var qg = null;
+ function rg() {
+ qg = pg = og = null;
+ }
+ function sg(a, b) {
+ var c = a.type._context;
+ I(ng, c._currentValue, a);
+ c._currentValue = b;
+ }
+ function tg(a) {
+ var b = ng.current;
+ G(ng, a);
+ a.type._context._currentValue = b;
+ }
+ function ug(a, b) {
+ for (; null !== a; ) {
+ var c = a.alternate;
+ if (a.childExpirationTime < b) a.childExpirationTime = b, null !== c && c.childExpirationTime < b && (c.childExpirationTime = b);
+ else if (null !== c && c.childExpirationTime < b) c.childExpirationTime = b;
+ else break;
+ a = a.return;
+ }
+ }
+ function vg(a, b) {
+ og = a;
+ qg = pg = null;
+ a = a.dependencies;
+ null !== a && null !== a.firstContext && (a.expirationTime >= b && (wg = true), a.firstContext = null);
+ }
+ function xg(a, b) {
+ if (qg !== a && false !== 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 = false;
+ function 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 };
+ }
+ function 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);
+ }
+ function 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);
+ }
+ function 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;
+ }
+ function 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 = true;
+ }
+ return d;
+ }
+ function Hg(a, b, c, d, e) {
+ yg = false;
+ b = Fg(a, b);
+ for (var f = b.baseState, g = null, h = 0, k = b.firstUpdate, l = f; null !== k; ) {
+ var m = k.expirationTime;
+ m < e ? (null === g && (g = k, f = l), h < m && (h = m)) : (Ig(m, k.suspenseConfig), l = Gg(a, b, k, l, c, d), null !== k.callback && (a.effectTag |= 32, k.nextEffect = null, null === b.lastEffect ? b.firstEffect = b.lastEffect = k : (b.lastEffect.nextEffect = k, b.lastEffect = k)));
+ k = k.next;
+ }
+ m = null;
+ for (k = b.firstCapturedUpdate; null !== k; ) {
+ var C = k.expirationTime;
+ C < e ? (null === m && (m = k, null === g && (f = l)), h < C && (h = C)) : (l = Gg(a, b, k, l, c, d), null !== k.callback && (a.effectTag |= 32, k.nextEffect = null, null === b.lastCapturedEffect ? b.firstCapturedEffect = b.lastCapturedEffect = k : (b.lastCapturedEffect.nextEffect = k, b.lastCapturedEffect = k)));
+ k = k.next;
+ }
+ null === g && (b.lastUpdate = null);
+ null === m ? b.lastCapturedUpdate = null : a.effectTag |= 32;
+ null === g && null === m && (f = l);
+ b.baseState = f;
+ b.firstUpdate = g;
+ b.firstCapturedUpdate = m;
+ Jg(h);
+ a.expirationTime = h;
+ a.memoizedState = l;
+ }
+ function Kg(a, b, c) {
+ null !== b.firstCapturedUpdate && (null !== b.lastUpdate && (b.lastUpdate.next = b.firstCapturedUpdate, b.lastUpdate = b.lastCapturedUpdate), b.firstCapturedUpdate = b.lastCapturedUpdate = null);
+ Lg(b.firstEffect, c);
+ b.firstEffect = b.lastEffect = null;
+ Lg(b.firstCapturedEffect, c);
+ b.firstCapturedEffect = b.lastCapturedEffect = null;
+ }
+ function Lg(a, b) {
+ for (; null !== a; ) {
+ var c = a.callback;
+ if (null !== c) {
+ a.callback = null;
+ var d = b;
+ if ("function" !== typeof c) throw Error(u(191, c));
+ c.call(d);
+ }
+ a = a.nextEffect;
+ }
+ }
+ var Mg = Ea.ReactCurrentBatchConfig;
+ var Ng = new aa.Component().refs;
+ function Og(a, b, c, d) {
+ b = a.memoizedState;
+ c = c(d, b);
+ c = null === c || void 0 === c ? b : n({}, b, c);
+ a.memoizedState = c;
+ d = a.updateQueue;
+ null !== d && 0 === a.expirationTime && (d.baseState = c);
+ }
+ var Sg = { isMounted: function(a) {
+ return (a = a._reactInternalFiber) ? ec(a) === a : false;
+ }, enqueueSetState: function(a, b, c) {
+ a = a._reactInternalFiber;
+ var d = Pg(), e = Mg.suspense;
+ d = Qg(d, a, e);
+ e = Bg(d, e);
+ e.payload = b;
+ void 0 !== c && null !== c && (e.callback = c);
+ Dg(a, e);
+ Rg(a, d);
+ }, enqueueReplaceState: function(a, b, c) {
+ a = a._reactInternalFiber;
+ var d = Pg(), e = Mg.suspense;
+ d = Qg(d, a, e);
+ e = Bg(d, e);
+ e.tag = 1;
+ e.payload = b;
+ void 0 !== c && null !== c && (e.callback = c);
+ Dg(a, e);
+ Rg(a, d);
+ }, enqueueForceUpdate: function(a, b) {
+ a = a._reactInternalFiber;
+ var c = Pg(), d = Mg.suspense;
+ c = Qg(c, a, d);
+ d = Bg(c, d);
+ d.tag = 2;
+ void 0 !== b && null !== b && (d.callback = b);
+ Dg(a, d);
+ Rg(a, c);
+ } };
+ function Tg(a, b, c, d, e, f, g) {
+ a = a.stateNode;
+ return "function" === typeof a.shouldComponentUpdate ? a.shouldComponentUpdate(d, f, g) : b.prototype && b.prototype.isPureReactComponent ? !qf(c, d) || !qf(e, f) : true;
+ }
+ function Ug(a, b, c) {
+ var d = false, e = Cf;
+ var f = b.contextType;
+ "object" === typeof f && null !== f ? f = xg(f) : (e = L(b) ? Df : J.current, d = b.contextTypes, f = (d = null !== d && void 0 !== d) ? Ef(a, e) : Cf);
+ b = new b(c, f);
+ a.memoizedState = null !== b.state && void 0 !== b.state ? b.state : null;
+ b.updater = Sg;
+ a.stateNode = b;
+ b._reactInternalFiber = a;
+ d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = e, a.__reactInternalMemoizedMaskedChildContext = f);
+ return b;
+ }
+ function Vg(a, b, c, d) {
+ a = b.state;
+ "function" === typeof b.componentWillReceiveProps && b.componentWillReceiveProps(c, d);
+ "function" === typeof b.UNSAFE_componentWillReceiveProps && b.UNSAFE_componentWillReceiveProps(c, d);
+ b.state !== a && Sg.enqueueReplaceState(b, b.state, null);
+ }
+ function Wg(a, b, c, d) {
+ var e = a.stateNode;
+ e.props = c;
+ e.state = a.memoizedState;
+ e.refs = Ng;
+ var f = b.contextType;
+ "object" === typeof f && null !== f ? e.context = xg(f) : (f = L(b) ? Df : J.current, e.context = Ef(a, f));
+ f = a.updateQueue;
+ null !== f && (Hg(a, f, c, e, d), e.state = a.memoizedState);
+ f = b.getDerivedStateFromProps;
+ "function" === typeof f && (Og(a, b, f, c), e.state = a.memoizedState);
+ "function" === typeof b.getDerivedStateFromProps || "function" === typeof e.getSnapshotBeforeUpdate || "function" !== typeof e.UNSAFE_componentWillMount && "function" !== typeof e.componentWillMount || (b = e.state, "function" === typeof e.componentWillMount && e.componentWillMount(), "function" === typeof e.UNSAFE_componentWillMount && e.UNSAFE_componentWillMount(), b !== e.state && Sg.enqueueReplaceState(e, e.state, null), f = a.updateQueue, null !== f && (Hg(a, f, c, e, d), e.state = a.memoizedState));
+ "function" === typeof e.componentDidMount && (a.effectTag |= 4);
+ }
+ var Xg = Array.isArray;
+ function Yg(a, b, c) {
+ a = c.ref;
+ if (null !== a && "function" !== typeof a && "object" !== typeof a) {
+ if (c._owner) {
+ c = c._owner;
+ if (c) {
+ if (1 !== c.tag) throw Error(u(309));
+ var d = c.stateNode;
+ }
+ if (!d) throw Error(u(147, a));
+ var e = "" + a;
+ if (null !== b && null !== b.ref && "function" === typeof b.ref && b.ref._stringRef === e) return b.ref;
+ b = function(a2) {
+ var b2 = d.refs;
+ b2 === Ng && (b2 = d.refs = {});
+ null === a2 ? delete b2[e] : b2[e] = a2;
+ };
+ b._stringRef = e;
+ return b;
+ }
+ if ("string" !== typeof a) throw Error(u(284));
+ if (!c._owner) throw Error(u(290, a));
+ }
+ return a;
+ }
+ function Zg(a, b) {
+ if ("textarea" !== a.type) throw Error(u(31, "[object Object]" === Object.prototype.toString.call(b) ? "object with keys {" + Object.keys(b).join(", ") + "}" : b, ""));
+ }
+ function $g(a) {
+ function b(b2, c2) {
+ if (a) {
+ var d2 = b2.lastEffect;
+ null !== d2 ? (d2.nextEffect = c2, b2.lastEffect = c2) : b2.firstEffect = b2.lastEffect = c2;
+ c2.nextEffect = null;
+ c2.effectTag = 8;
+ }
+ }
+ function c(c2, d2) {
+ if (!a) return null;
+ for (; null !== d2; ) b(c2, d2), d2 = d2.sibling;
+ return null;
+ }
+ function d(a2, b2) {
+ for (a2 = /* @__PURE__ */ new Map(); null !== b2; ) null !== b2.key ? a2.set(b2.key, b2) : a2.set(b2.index, b2), b2 = b2.sibling;
+ return a2;
+ }
+ function e(a2, b2, c2) {
+ a2 = ah(a2, b2, c2);
+ a2.index = 0;
+ a2.sibling = null;
+ return a2;
+ }
+ function f(b2, c2, d2) {
+ b2.index = d2;
+ if (!a) return c2;
+ d2 = b2.alternate;
+ if (null !== d2) return d2 = d2.index, d2 < c2 ? (b2.effectTag = 2, c2) : d2;
+ b2.effectTag = 2;
+ return c2;
+ }
+ function g(b2) {
+ a && null === b2.alternate && (b2.effectTag = 2);
+ return b2;
+ }
+ function h(a2, b2, c2, d2) {
+ if (null === b2 || 6 !== b2.tag) return b2 = bh(c2, a2.mode, d2), b2.return = a2, b2;
+ b2 = e(b2, c2, d2);
+ b2.return = a2;
+ return b2;
+ }
+ function k(a2, b2, c2, d2) {
+ if (null !== b2 && b2.elementType === c2.type) return d2 = e(b2, c2.props, d2), d2.ref = Yg(a2, b2, c2), d2.return = a2, d2;
+ d2 = ch(c2.type, c2.key, c2.props, null, a2.mode, d2);
+ d2.ref = Yg(a2, b2, c2);
+ d2.return = a2;
+ return d2;
+ }
+ function l(a2, b2, c2, d2) {
+ if (null === b2 || 4 !== b2.tag || b2.stateNode.containerInfo !== c2.containerInfo || b2.stateNode.implementation !== c2.implementation) return b2 = dh(c2, a2.mode, d2), b2.return = a2, b2;
+ b2 = e(b2, c2.children || [], d2);
+ b2.return = a2;
+ return b2;
+ }
+ function m(a2, b2, c2, d2, f2) {
+ if (null === b2 || 7 !== b2.tag) return b2 = eh(c2, a2.mode, d2, f2), b2.return = a2, b2;
+ b2 = e(b2, c2, d2);
+ b2.return = a2;
+ return b2;
+ }
+ function C(a2, b2, c2) {
+ if ("string" === typeof b2 || "number" === typeof b2) return b2 = bh("" + b2, a2.mode, c2), b2.return = a2, b2;
+ if ("object" === typeof b2 && null !== b2) {
+ switch (b2.$$typeof) {
+ case Ga:
+ return c2 = ch(b2.type, b2.key, b2.props, null, a2.mode, c2), c2.ref = Yg(a2, null, b2), c2.return = a2, c2;
+ case Ha:
+ return b2 = dh(b2, a2.mode, c2), b2.return = a2, b2;
+ }
+ if (Xg(b2) || Ua(b2)) return b2 = eh(b2, a2.mode, c2, null), b2.return = a2, b2;
+ Zg(a2, b2);
+ }
+ return null;
+ }
+ function y(a2, b2, c2, d2) {
+ var e2 = null !== b2 ? b2.key : null;
+ if ("string" === typeof c2 || "number" === typeof c2) return null !== e2 ? null : h(a2, b2, "" + c2, d2);
+ if ("object" === typeof c2 && null !== c2) {
+ switch (c2.$$typeof) {
+ case Ga:
+ return c2.key === e2 ? c2.type === Ia ? m(a2, b2, c2.props.children, d2, e2) : k(a2, b2, c2, d2) : null;
+ case Ha:
+ return c2.key === e2 ? l(a2, b2, c2, d2) : null;
+ }
+ if (Xg(c2) || Ua(c2)) return null !== e2 ? null : m(a2, b2, c2, d2, null);
+ Zg(a2, c2);
+ }
+ return null;
+ }
+ function H(a2, b2, c2, d2, e2) {
+ if ("string" === typeof d2 || "number" === typeof d2) return a2 = a2.get(c2) || null, h(b2, a2, "" + d2, e2);
+ if ("object" === typeof d2 && null !== d2) {
+ switch (d2.$$typeof) {
+ case Ga:
+ return a2 = a2.get(null === d2.key ? c2 : d2.key) || null, d2.type === Ia ? m(b2, a2, d2.props.children, e2, d2.key) : k(b2, a2, d2, e2);
+ case Ha:
+ return a2 = a2.get(null === d2.key ? c2 : d2.key) || null, l(b2, a2, d2, e2);
+ }
+ if (Xg(d2) || Ua(d2)) return a2 = a2.get(c2) || null, m(b2, a2, d2, e2, null);
+ Zg(b2, d2);
+ }
+ return null;
+ }
+ function z(e2, g2, h2, k2) {
+ for (var l2 = null, m2 = null, r = g2, x = g2 = 0, A = null; null !== r && x < h2.length; x++) {
+ r.index > x ? (A = r, r = null) : A = r.sibling;
+ var p = y(e2, r, h2[x], k2);
+ if (null === p) {
+ null === r && (r = A);
+ break;
+ }
+ a && r && null === p.alternate && b(e2, r);
+ g2 = f(p, g2, x);
+ null === m2 ? l2 = p : m2.sibling = p;
+ m2 = p;
+ r = A;
+ }
+ if (x === h2.length) return c(e2, r), l2;
+ if (null === r) {
+ for (; x < h2.length; x++) r = C(e2, h2[x], k2), null !== r && (g2 = f(r, g2, x), null === m2 ? l2 = r : m2.sibling = r, m2 = r);
+ return l2;
+ }
+ for (r = d(e2, r); x < h2.length; x++) A = H(r, e2, x, h2[x], k2), null !== A && (a && null !== A.alternate && r.delete(null === A.key ? x : A.key), g2 = f(A, g2, x), null === m2 ? l2 = A : m2.sibling = A, m2 = A);
+ a && r.forEach(function(a2) {
+ return b(e2, a2);
+ });
+ return l2;
+ }
+ function ta(e2, g2, h2, k2) {
+ var l2 = Ua(h2);
+ if ("function" !== typeof l2) throw Error(u(150));
+ h2 = l2.call(h2);
+ if (null == h2) throw Error(u(151));
+ for (var m2 = l2 = null, r = g2, x = g2 = 0, A = null, p = h2.next(); null !== r && !p.done; x++, p = h2.next()) {
+ r.index > x ? (A = r, r = null) : A = r.sibling;
+ var z2 = y(e2, r, p.value, k2);
+ if (null === z2) {
+ null === r && (r = A);
+ break;
+ }
+ a && r && null === z2.alternate && b(e2, r);
+ g2 = f(z2, g2, x);
+ null === m2 ? l2 = z2 : m2.sibling = z2;
+ m2 = z2;
+ r = A;
+ }
+ if (p.done) return c(e2, r), l2;
+ if (null === r) {
+ for (; !p.done; x++, p = h2.next()) p = C(e2, p.value, k2), null !== p && (g2 = f(p, g2, x), null === m2 ? l2 = p : m2.sibling = p, m2 = p);
+ return l2;
+ }
+ for (r = d(e2, r); !p.done; x++, p = h2.next()) p = H(r, e2, x, p.value, k2), null !== p && (a && null !== p.alternate && r.delete(null === p.key ? x : p.key), g2 = f(p, g2, x), null === m2 ? l2 = p : m2.sibling = p, m2 = p);
+ a && r.forEach(function(a2) {
+ return b(e2, a2);
+ });
+ return l2;
+ }
+ return function(a2, d2, f2, h2) {
+ var k2 = "object" === typeof f2 && null !== f2 && f2.type === Ia && null === f2.key;
+ k2 && (f2 = f2.props.children);
+ var l2 = "object" === typeof f2 && null !== f2;
+ if (l2) switch (f2.$$typeof) {
+ case Ga:
+ a: {
+ l2 = f2.key;
+ for (k2 = d2; null !== k2; ) {
+ if (k2.key === l2) if (7 === k2.tag ? f2.type === Ia : k2.elementType === f2.type) {
+ c(a2, k2.sibling);
+ d2 = e(k2, f2.type === Ia ? f2.props.children : f2.props, h2);
+ d2.ref = Yg(a2, k2, f2);
+ d2.return = a2;
+ a2 = d2;
+ break a;
+ } else {
+ c(
+ a2,
+ k2
+ );
+ break;
+ }
+ else b(a2, k2);
+ k2 = k2.sibling;
+ }
+ f2.type === Ia ? (d2 = eh(f2.props.children, a2.mode, h2, f2.key), d2.return = a2, a2 = d2) : (h2 = ch(f2.type, f2.key, f2.props, null, a2.mode, h2), h2.ref = Yg(a2, d2, f2), h2.return = a2, a2 = h2);
+ }
+ return g(a2);
+ case Ha:
+ a: {
+ for (k2 = f2.key; null !== d2; ) {
+ if (d2.key === k2) if (4 === d2.tag && d2.stateNode.containerInfo === f2.containerInfo && d2.stateNode.implementation === f2.implementation) {
+ c(a2, d2.sibling);
+ d2 = e(d2, f2.children || [], h2);
+ d2.return = a2;
+ a2 = d2;
+ break a;
+ } else {
+ c(a2, d2);
+ break;
+ }
+ else b(a2, d2);
+ d2 = d2.sibling;
+ }
+ d2 = dh(f2, a2.mode, h2);
+ d2.return = a2;
+ a2 = d2;
+ }
+ return g(a2);
+ }
+ if ("string" === typeof f2 || "number" === typeof f2) return f2 = "" + f2, null !== d2 && 6 === d2.tag ? (c(a2, d2.sibling), d2 = e(d2, f2, h2), d2.return = a2, a2 = d2) : (c(a2, d2), d2 = bh(f2, a2.mode, h2), d2.return = a2, a2 = d2), g(a2);
+ if (Xg(f2)) return z(a2, d2, f2, h2);
+ if (Ua(f2)) return ta(a2, d2, f2, h2);
+ l2 && Zg(a2, f2);
+ if ("undefined" === typeof f2 && !k2) switch (a2.tag) {
+ case 1:
+ case 0:
+ throw a2 = a2.type, Error(u(152, a2.displayName || a2.name || "Component"));
+ }
+ return c(a2, d2);
+ };
+ }
+ var fh = $g(true);
+ var gh = $g(false);
+ var hh = {};
+ var ih = { current: hh };
+ var jh = { current: hh };
+ var kh = { current: hh };
+ function lh(a) {
+ if (a === hh) throw Error(u(174));
+ return a;
+ }
+ function 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 };
+ function 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 };
+ }
+ var sh = Ea.ReactCurrentDispatcher;
+ var N = Ea.ReactCurrentBatchConfig;
+ var th = 0;
+ var uh = null;
+ var O = null;
+ var vh = null;
+ var wh = null;
+ var P = null;
+ var xh = null;
+ var yh = 0;
+ var zh = null;
+ var Ah = 0;
+ var Bh = false;
+ var Ch = null;
+ var Gh = 0;
+ function Q() {
+ throw Error(u(321));
+ }
+ function Hh(a, b) {
+ if (null === b) return false;
+ for (var c = 0; c < b.length && c < a.length; c++) if (!of(a[c], b[c])) return false;
+ return true;
+ }
+ function Ih(a, b, c, d, e, f) {
+ th = f;
+ uh = b;
+ vh = null !== a ? a.memoizedState : null;
+ sh.current = null === vh ? Jh : Kh;
+ b = c(d, e);
+ if (Bh) {
+ do
+ Bh = false, Gh += 1, vh = null !== a ? a.memoizedState : null, xh = wh, zh = P = O = null, sh.current = Kh, b = c(d, e);
+ while (Bh);
+ Ch = null;
+ Gh = 0;
+ }
+ sh.current = Lh;
+ a = uh;
+ a.memoizedState = wh;
+ a.expirationTime = yh;
+ a.updateQueue = zh;
+ a.effectTag |= Ah;
+ a = null !== O && null !== O.next;
+ th = 0;
+ xh = P = wh = vh = O = uh = null;
+ yh = 0;
+ zh = null;
+ Ah = 0;
+ if (a) throw Error(u(300));
+ return b;
+ }
+ function Mh() {
+ sh.current = Lh;
+ th = 0;
+ xh = P = wh = vh = O = uh = null;
+ yh = 0;
+ zh = null;
+ Ah = 0;
+ Bh = false;
+ Ch = null;
+ Gh = 0;
+ }
+ function Nh() {
+ var a = { memoizedState: null, baseState: null, queue: null, baseUpdate: null, next: null };
+ null === P ? wh = P = a : P = P.next = a;
+ return P;
+ }
+ function Oh() {
+ if (null !== xh) P = xh, xh = P.next, O = vh, vh = null !== O ? O.next : null;
+ else {
+ if (null === vh) throw Error(u(310));
+ O = vh;
+ var a = { memoizedState: O.memoizedState, baseState: O.baseState, queue: O.queue, baseUpdate: O.baseUpdate, next: null };
+ P = null === P ? wh = a : P.next = a;
+ vh = O.next;
+ }
+ return P;
+ }
+ function Ph(a, b) {
+ return "function" === typeof b ? b(a) : b;
+ }
+ function Qh(a) {
+ var b = Oh(), c = b.queue;
+ if (null === c) throw Error(u(311));
+ c.lastRenderedReducer = a;
+ if (0 < Gh) {
+ var d = c.dispatch;
+ if (null !== Ch) {
+ var e = Ch.get(c);
+ if (void 0 !== e) {
+ Ch.delete(c);
+ var f = b.memoizedState;
+ do
+ f = a(f, e.action), e = e.next;
+ while (null !== e);
+ of(f, b.memoizedState) || (wg = true);
+ b.memoizedState = f;
+ b.baseUpdate === c.last && (b.baseState = f);
+ c.lastRenderedState = f;
+ return [f, d];
+ }
+ }
+ return [b.memoizedState, d];
+ }
+ d = c.last;
+ var g = b.baseUpdate;
+ f = b.baseState;
+ null !== g ? (null !== d && (d.next = null), d = g.next) : d = null !== d ? d.next : null;
+ if (null !== d) {
+ var h = e = null, k = d, l = false;
+ do {
+ var m = k.expirationTime;
+ m < th ? (l || (l = true, h = g, e = f), m > yh && (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 = true);
+ b.memoizedState = f;
+ b.baseUpdate = h;
+ b.baseState = e;
+ c.lastRenderedState = f;
+ }
+ return [b.memoizedState, c.dispatch];
+ }
+ function 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;
+ }
+ function 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);
+ }
+ function 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;
+ }
+ function Sh(a, b, c) {
+ if (!(25 > Gh)) throw Error(u(301));
+ var d = a.alternate;
+ if (a === uh || null !== d && d === uh) if (Bh = true, a = { expirationTime: th, suspenseConfig: null, action: c, eagerReducer: null, eagerState: null, next: null }, null === Ch && (Ch = /* @__PURE__ */ 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 && (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);
+ }
+ }
+ var 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 };
+ var 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 = [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 c2 = N.suspense;
+ N.suspense = void 0 === b ? null : b;
+ try {
+ e(a);
+ } finally {
+ N.suspense = c2;
+ }
+ });
+ }, [a, b]);
+ return d;
+ }, useTransition: function(a) {
+ var b = Rh(false), c = b[0], d = b[1];
+ return [ai(function(b2) {
+ d(true);
+ q.unstable_next(function() {
+ var c2 = N.suspense;
+ N.suspense = void 0 === a ? null : a;
+ try {
+ d(false), b2();
+ } finally {
+ N.suspense = c2;
+ }
+ });
+ }, [a, c]), c];
+ } };
+ var 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 ? null : 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 c2 = N.suspense;
+ N.suspense = void 0 === b ? null : b;
+ try {
+ e(a);
+ } finally {
+ N.suspense = c2;
+ }
+ });
+ }, [a, b]);
+ return d;
+ }, useTransition: function(a) {
+ var b = Th(false), c = b[0], d = b[1];
+ return [bi(function(b2) {
+ d(true);
+ q.unstable_next(function() {
+ var c2 = N.suspense;
+ N.suspense = void 0 === a ? null : a;
+ try {
+ d(false), b2();
+ } finally {
+ N.suspense = c2;
+ }
+ });
+ }, [a, c]), c];
+ } };
+ var ci = null;
+ var di = null;
+ var ei = false;
+ 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;
+ }
+ function 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, true) : false;
+ case 6:
+ return b = "" === a.pendingProps || 3 !== b.nodeType ? null : b, null !== b ? (a.stateNode = b, true) : false;
+ case 13:
+ return false;
+ default:
+ return false;
+ }
+ }
+ function 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 = false;
+ ci = a;
+ return;
+ }
+ fi(ci, c);
+ }
+ ci = a;
+ di = re(b.firstChild);
+ } else a.effectTag = a.effectTag & -1025 | 2, ei = false, 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;
+ }
+ function ki(a) {
+ if (a !== ci) return false;
+ if (!ei) return ji(a), ei = true, false;
+ 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 true;
+ }
+ function li() {
+ di = ci = null;
+ ei = false;
+ }
+ var mi = Ea.ReactCurrentOwner;
+ var wg = false;
+ 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;
+ }
+ function 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 (e < f && (e = g.memoizedProps, c = c.compare, c = null !== c ? c : qf, c(e, d) && a.ref === b.ref)) return oi(a, b, f);
+ b.effectTag |= 1;
+ a = ah(g, d, f);
+ a.ref = b.ref;
+ a.return = b;
+ return b.child = a;
+ }
+ function ri(a, b, c, d, e, f) {
+ return null !== a && qf(a.memoizedProps, d) && a.ref === b.ref && (wg = false, e < f) ? oi(a, b, f) : si(a, b, c, d, f);
+ }
+ function ti(a, b) {
+ var c = b.ref;
+ if (null === a && null !== c || null !== a && a.ref !== c) b.effectTag |= 128;
+ }
+ function si(a, b, c, d, e) {
+ var f = L(c) ? Df : J.current;
+ f = Ef(b, f);
+ vg(b, e);
+ c = 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, c, e);
+ return b.child;
+ }
+ function ui(a, b, c, d, e) {
+ if (L(c)) {
+ var f = true;
+ Jf(b);
+ } else f = false;
+ vg(b, e);
+ if (null === b.stateNode) null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2), Ug(b, c, d, e), Wg(b, c, d, e), d = true;
+ else if (null === a) {
+ var g = b.stateNode, h = b.memoizedProps;
+ g.props = h;
+ var k = g.context, l = c.contextType;
+ "object" === typeof l && null !== l ? l = xg(l) : (l = L(c) ? Df : J.current, l = Ef(b, l));
+ var m = c.getDerivedStateFromProps, C = "function" === typeof m || "function" === typeof g.getSnapshotBeforeUpdate;
+ C || "function" !== typeof g.UNSAFE_componentWillReceiveProps && "function" !== typeof g.componentWillReceiveProps || (h !== d || k !== l) && Vg(b, g, d, l);
+ yg = false;
+ var y = b.memoizedState;
+ k = g.state = y;
+ var H = b.updateQueue;
+ null !== H && (Hg(b, H, d, g, e), k = b.memoizedState);
+ h !== d || y !== k || K.current || yg ? ("function" === typeof m && (Og(b, c, m, d), k = b.memoizedState), (h = yg || Tg(b, c, h, d, y, k, l)) ? (C || "function" !== typeof g.UNSAFE_componentWillMount && "function" !== typeof g.componentWillMount || ("function" === typeof g.componentWillMount && g.componentWillMount(), "function" === typeof g.UNSAFE_componentWillMount && g.UNSAFE_componentWillMount()), "function" === typeof g.componentDidMount && (b.effectTag |= 4)) : ("function" === typeof g.componentDidMount && (b.effectTag |= 4), b.memoizedProps = d, b.memoizedState = k), g.props = d, g.state = k, g.context = l, d = h) : ("function" === typeof g.componentDidMount && (b.effectTag |= 4), d = false);
+ } else g = b.stateNode, h = b.memoizedProps, g.props = b.type === b.elementType ? h : mg(b.type, h), k = g.context, l = c.contextType, "object" === typeof l && null !== l ? l = xg(l) : (l = L(c) ? Df : J.current, l = Ef(b, l)), m = c.getDerivedStateFromProps, (C = "function" === typeof m || "function" === typeof g.getSnapshotBeforeUpdate) || "function" !== typeof g.UNSAFE_componentWillReceiveProps && "function" !== typeof g.componentWillReceiveProps || (h !== d || k !== l) && Vg(b, g, d, l), yg = false, k = b.memoizedState, y = g.state = k, H = b.updateQueue, null !== H && (Hg(b, H, d, g, e), y = b.memoizedState), h !== d || k !== y || K.current || yg ? ("function" === typeof m && (Og(b, c, m, d), y = b.memoizedState), (m = yg || Tg(b, c, h, d, k, y, l)) ? (C || "function" !== typeof g.UNSAFE_componentWillUpdate && "function" !== typeof g.componentWillUpdate || ("function" === typeof g.componentWillUpdate && g.componentWillUpdate(d, y, l), "function" === typeof g.UNSAFE_componentWillUpdate && g.UNSAFE_componentWillUpdate(d, y, l)), "function" === typeof g.componentDidUpdate && (b.effectTag |= 4), "function" === typeof g.getSnapshotBeforeUpdate && (b.effectTag |= 256)) : ("function" !== typeof g.componentDidUpdate || h === a.memoizedProps && k === a.memoizedState || (b.effectTag |= 4), "function" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && k === a.memoizedState || (b.effectTag |= 256), b.memoizedProps = d, b.memoizedState = y), g.props = d, g.state = y, g.context = l, d = m) : ("function" !== typeof g.componentDidUpdate || h === a.memoizedProps && k === a.memoizedState || (b.effectTag |= 4), "function" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && k === a.memoizedState || (b.effectTag |= 256), d = false);
+ return vi(a, b, c, d, f, e);
+ }
+ function vi(a, b, c, d, e, f) {
+ ti(a, b);
+ var g = 0 !== (b.effectTag & 64);
+ if (!d && !g) return e && Kf(b, c, false), oi(a, b, f);
+ d = b.stateNode;
+ mi.current = b;
+ var h = g && "function" !== typeof c.getDerivedStateFromError ? null : d.render();
+ b.effectTag |= 1;
+ null !== a && g ? (b.child = fh(b, a.child, null, f), b.child = fh(b, null, h, f)) : R(a, b, h, f);
+ b.memoizedState = d.state;
+ e && Kf(b, c, true);
+ return b.child;
+ }
+ function wi(a) {
+ var b = a.stateNode;
+ b.pendingContext ? Hf(a, b.pendingContext, b.pendingContext !== b.context) : b.context && Hf(a, b.context, false);
+ mh(a, b.containerInfo);
+ }
+ var xi = { dehydrated: null, retryTime: 0 };
+ function yi(a, b, c) {
+ var d = b.mode, e = b.pendingProps, f = M.current, g = false, h;
+ (h = 0 !== (b.effectTag & 64)) || (h = 0 !== (f & 2) && (null === a || null !== a.memoizedState));
+ h ? (g = true, b.effectTag &= -65) : null !== a && null === a.memoizedState || void 0 === e.fallback || true === e.unstable_avoidThisFallback || (f |= 1);
+ I(M, f & 1, b);
+ if (null === a) {
+ void 0 !== e.fallback && ii(b);
+ if (g) {
+ g = e.fallback;
+ e = eh(null, d, 0, null);
+ e.return = b;
+ if (0 === (b.mode & 2)) for (a = null !== b.memoizedState ? b.child.child : b.child, e.child = a; null !== a; ) a.return = e, a = a.sibling;
+ c = eh(g, d, c, null);
+ c.return = b;
+ e.sibling = c;
+ b.memoizedState = xi;
+ b.child = e;
+ return c;
+ }
+ d = e.children;
+ b.memoizedState = null;
+ return b.child = gh(b, null, d, c);
+ }
+ if (null !== a.memoizedState) {
+ a = a.child;
+ d = a.sibling;
+ if (g) {
+ e = e.fallback;
+ c = ah(a, a.pendingProps, 0);
+ c.return = b;
+ if (0 === (b.mode & 2) && (g = null !== b.memoizedState ? b.child.child : b.child, g !== a.child)) for (c.child = g; null !== g; ) g.return = c, g = g.sibling;
+ d = ah(d, e, d.expirationTime);
+ d.return = b;
+ c.sibling = d;
+ c.childExpirationTime = 0;
+ b.memoizedState = xi;
+ b.child = c;
+ return d;
+ }
+ c = fh(b, a.child, e.children, c);
+ b.memoizedState = null;
+ return b.child = c;
+ }
+ a = a.child;
+ if (g) {
+ g = e.fallback;
+ e = eh(null, d, 0, null);
+ e.return = b;
+ e.child = a;
+ null !== a && (a.return = e);
+ if (0 === (b.mode & 2)) for (a = null !== b.memoizedState ? b.child.child : b.child, e.child = a; null !== a; ) a.return = e, a = a.sibling;
+ c = eh(g, d, c, null);
+ c.return = b;
+ e.sibling = c;
+ c.effectTag |= 2;
+ e.childExpirationTime = 0;
+ b.memoizedState = xi;
+ b.child = e;
+ return c;
+ }
+ b.memoizedState = null;
+ return b.child = fh(b, a, e.children, c);
+ }
+ function zi(a, b) {
+ a.expirationTime < b && (a.expirationTime = b);
+ var c = a.alternate;
+ null !== c && c.expirationTime < b && (c.expirationTime = b);
+ ug(a.return, b);
+ }
+ function Ai(a, b, c, d, e, f) {
+ var g = a.memoizedState;
+ null === g ? a.memoizedState = { isBackwards: b, rendering: null, last: d, tail: c, tailExpiration: 0, tailMode: e, lastEffect: f } : (g.isBackwards = b, g.rendering = null, g.last = d, g.tail = c, g.tailExpiration = 0, g.tailMode = e, g.lastEffect = f);
+ }
+ function Bi(a, b, c) {
+ var d = b.pendingProps, e = d.revealOrder, f = d.tail;
+ R(a, b, d.children, c);
+ d = M.current;
+ if (0 !== (d & 2)) d = d & 1 | 2, b.effectTag |= 64;
+ else {
+ if (null !== a && 0 !== (a.effectTag & 64)) a: for (a = b.child; null !== a; ) {
+ if (13 === a.tag) null !== a.memoizedState && zi(a, c);
+ else if (19 === a.tag) zi(a, c);
+ else if (null !== a.child) {
+ a.child.return = a;
+ a = a.child;
+ continue;
+ }
+ if (a === b) break a;
+ for (; null === a.sibling; ) {
+ if (null === a.return || a.return === b) break a;
+ a = a.return;
+ }
+ a.sibling.return = a.return;
+ a = a.sibling;
+ }
+ d &= 1;
+ }
+ I(M, d, b);
+ if (0 === (b.mode & 2)) b.memoizedState = null;
+ else switch (e) {
+ case "forwards":
+ c = b.child;
+ for (e = null; null !== c; ) a = c.alternate, null !== a && null === qh(a) && (e = c), c = c.sibling;
+ c = e;
+ null === c ? (e = b.child, b.child = null) : (e = c.sibling, c.sibling = null);
+ Ai(b, false, e, c, f, b.lastEffect);
+ break;
+ case "backwards":
+ c = null;
+ e = b.child;
+ for (b.child = null; null !== e; ) {
+ a = e.alternate;
+ if (null !== a && null === qh(a)) {
+ b.child = e;
+ break;
+ }
+ a = e.sibling;
+ e.sibling = c;
+ c = e;
+ e = a;
+ }
+ Ai(b, true, c, null, f, b.lastEffect);
+ break;
+ case "together":
+ Ai(b, false, null, null, void 0, b.lastEffect);
+ break;
+ default:
+ b.memoizedState = null;
+ }
+ return b.child;
+ }
+ function oi(a, b, c) {
+ null !== a && (b.dependencies = a.dependencies);
+ var d = b.expirationTime;
+ 0 !== d && Jg(d);
+ if (b.childExpirationTime < c) return null;
+ if (null !== a && b.child !== a.child) throw Error(u(153));
+ if (null !== b.child) {
+ a = b.child;
+ c = ah(a, a.pendingProps, a.expirationTime);
+ b.child = c;
+ for (c.return = b; null !== a.sibling; ) a = a.sibling, c = c.sibling = ah(a, a.pendingProps, a.expirationTime), c.return = b;
+ c.sibling = null;
+ }
+ return b.child;
+ }
+ function Ci(a) {
+ a.effectTag |= 4;
+ }
+ var Hi;
+ var Ii;
+ var Ji;
+ var Ki;
+ Hi = function(a, b) {
+ for (var c = b.child; null !== c; ) {
+ if (5 === c.tag || 6 === c.tag) a.appendChild(c.stateNode);
+ else if (4 !== c.tag && null !== c.child) {
+ c.child.return = c;
+ c = c.child;
+ continue;
+ }
+ if (c === b) break;
+ for (; null === c.sibling; ) {
+ if (null === c.return || c.return === b) return;
+ c = c.return;
+ }
+ c.sibling.return = c.return;
+ c = c.sibling;
+ }
+ };
+ Ii = function() {
+ };
+ Ji = function(a, b, c, d, e) {
+ var f = a.memoizedProps;
+ if (f !== d) {
+ var g = b.stateNode;
+ lh(ih.current);
+ a = null;
+ switch (c) {
+ case "input":
+ f = Ab(g, f);
+ d = Ab(g, d);
+ a = [];
+ break;
+ case "option":
+ f = Ib(g, f);
+ d = Ib(g, d);
+ a = [];
+ break;
+ case "select":
+ f = n({}, f, { value: void 0 });
+ d = n({}, d, { value: void 0 });
+ a = [];
+ break;
+ case "textarea":
+ f = Kb(g, f);
+ d = Kb(g, d);
+ a = [];
+ break;
+ default:
+ "function" !== typeof f.onClick && "function" === typeof d.onClick && (g.onclick = ae);
+ }
+ Yd(c, d);
+ var h, k;
+ c = null;
+ for (h in f) if (!d.hasOwnProperty(h) && f.hasOwnProperty(h) && null != f[h]) if ("style" === h) for (k in g = f[h], g) g.hasOwnProperty(k) && (c || (c = {}), c[k] = "");
+ else "dangerouslySetInnerHTML" !== h && "children" !== h && "suppressContentEditableWarning" !== h && "suppressHydrationWarning" !== h && "autoFocus" !== h && (ia.hasOwnProperty(h) ? a || (a = []) : (a = a || []).push(h, null));
+ for (h in d) {
+ var l = d[h];
+ g = null != f ? f[h] : void 0;
+ if (d.hasOwnProperty(h) && l !== g && (null != l || null != g)) if ("style" === h) if (g) {
+ for (k in g) !g.hasOwnProperty(k) || l && l.hasOwnProperty(k) || (c || (c = {}), c[k] = "");
+ for (k in l) l.hasOwnProperty(k) && g[k] !== l[k] && (c || (c = {}), c[k] = l[k]);
+ } else c || (a || (a = []), a.push(h, c)), c = l;
+ else "dangerouslySetInnerHTML" === h ? (l = l ? l.__html : void 0, g = g ? g.__html : void 0, null != l && g !== l && (a = a || []).push(h, "" + l)) : "children" === h ? g === l || "string" !== typeof l && "number" !== typeof l || (a = a || []).push(h, "" + l) : "suppressContentEditableWarning" !== h && "suppressHydrationWarning" !== h && (ia.hasOwnProperty(h) ? (null != l && $d(e, h), a || g === l || (a = [])) : (a = a || []).push(h, l));
+ }
+ c && (a = a || []).push("style", c);
+ e = a;
+ (b.updateQueue = e) && Ci(b);
+ }
+ };
+ Ki = function(a, b, c, d) {
+ c !== d && Ci(b);
+ };
+ function Li(a, b) {
+ switch (a.tailMode) {
+ case "hidden":
+ b = a.tail;
+ for (var c = null; null !== b; ) null !== b.alternate && (c = b), b = b.sibling;
+ null === c ? a.tail = null : c.sibling = null;
+ break;
+ case "collapsed":
+ c = a.tail;
+ for (var d = null; null !== c; ) null !== c.alternate && (d = c), c = c.sibling;
+ null === d ? b || null === a.tail ? a.tail = null : a.tail.sibling = null : d.sibling = null;
+ }
+ }
+ function Mi(a) {
+ switch (a.tag) {
+ case 1:
+ L(a.type) && Ff(a);
+ var b = a.effectTag;
+ return b & 4096 ? (a.effectTag = b & -4097 | 64, a) : null;
+ case 3:
+ nh(a);
+ Gf(a);
+ b = a.effectTag;
+ if (0 !== (b & 64)) throw Error(u(285));
+ a.effectTag = b & -4097 | 64;
+ return a;
+ case 5:
+ return ph(a), null;
+ case 13:
+ return G(M, a), b = a.effectTag, b & 4096 ? (a.effectTag = b & -4097 | 64, a) : null;
+ case 19:
+ return G(M, a), null;
+ case 4:
+ return nh(a), null;
+ case 10:
+ return tg(a), null;
+ default:
+ return null;
+ }
+ }
+ function Ni(a, b) {
+ return { value: a, source: b, stack: Xa(b) };
+ }
+ var Oi = "function" === typeof WeakSet ? WeakSet : Set;
+ function Pi(a, b) {
+ var c = b.source, d = b.stack;
+ null === d && null !== c && (d = Xa(c));
+ null !== c && Wa(c.type);
+ b = b.value;
+ null !== a && 1 === a.tag && Wa(a.type);
+ try {
+ console.error(b);
+ } catch (e) {
+ setTimeout(function() {
+ throw e;
+ });
+ }
+ }
+ function Qi(a, b) {
+ try {
+ b.props = a.memoizedProps, b.state = a.memoizedState, b.componentWillUnmount();
+ } catch (c) {
+ Ri(a, c);
+ }
+ }
+ function Si(a) {
+ var b = a.ref;
+ if (null !== b) if ("function" === typeof b) try {
+ b(null);
+ } catch (c) {
+ Ri(a, c);
+ }
+ else b.current = null;
+ }
+ function Ti(a, b) {
+ switch (b.tag) {
+ case 0:
+ case 11:
+ case 15:
+ Ui(2, 0, b);
+ break;
+ case 1:
+ if (b.effectTag & 256 && null !== a) {
+ var c = a.memoizedProps, d = a.memoizedState;
+ a = b.stateNode;
+ b = a.getSnapshotBeforeUpdate(b.elementType === b.type ? c : mg(b.type, c), d);
+ a.__reactInternalSnapshotBeforeUpdate = b;
+ }
+ break;
+ case 3:
+ case 5:
+ case 6:
+ case 4:
+ case 17:
+ break;
+ default:
+ throw Error(u(163));
+ }
+ }
+ function Ui(a, b, c) {
+ c = c.updateQueue;
+ c = null !== c ? c.lastEffect : null;
+ if (null !== c) {
+ var d = c = c.next;
+ do {
+ if (0 !== (d.tag & a)) {
+ var e = d.destroy;
+ d.destroy = void 0;
+ void 0 !== e && e();
+ }
+ 0 !== (d.tag & b) && (e = d.create, d.destroy = e());
+ d = d.next;
+ } while (d !== c);
+ }
+ }
+ function Vi(a, b, c) {
+ "function" === typeof Wi && Wi(b);
+ switch (b.tag) {
+ case 0:
+ case 11:
+ case 14:
+ case 15:
+ a = b.updateQueue;
+ if (null !== a && (a = a.lastEffect, null !== a)) {
+ var d = a.next;
+ fg(97 < c ? 97 : c, function() {
+ var a2 = d;
+ do {
+ var c2 = a2.destroy;
+ if (void 0 !== c2) {
+ var g = b;
+ try {
+ c2();
+ } catch (h) {
+ Ri(g, h);
+ }
+ }
+ a2 = a2.next;
+ } while (a2 !== d);
+ });
+ }
+ break;
+ case 1:
+ Si(b);
+ c = b.stateNode;
+ "function" === typeof c.componentWillUnmount && Qi(b, c);
+ break;
+ case 5:
+ Si(b);
+ break;
+ case 4:
+ Xi(a, b, c);
+ }
+ }
+ function Yi(a) {
+ var b = a.alternate;
+ a.return = null;
+ a.child = null;
+ a.memoizedState = null;
+ a.updateQueue = null;
+ a.dependencies = null;
+ a.alternate = null;
+ a.firstEffect = null;
+ a.lastEffect = null;
+ a.pendingProps = null;
+ a.memoizedProps = null;
+ null !== b && Yi(b);
+ }
+ function Zi(a) {
+ return 5 === a.tag || 3 === a.tag || 4 === a.tag;
+ }
+ function $i(a) {
+ a: {
+ for (var b = a.return; null !== b; ) {
+ if (Zi(b)) {
+ var c = b;
+ break a;
+ }
+ b = b.return;
+ }
+ throw Error(u(160));
+ }
+ b = c.stateNode;
+ switch (c.tag) {
+ case 5:
+ var d = false;
+ break;
+ case 3:
+ b = b.containerInfo;
+ d = true;
+ break;
+ case 4:
+ b = b.containerInfo;
+ d = true;
+ break;
+ default:
+ throw Error(u(161));
+ }
+ c.effectTag & 16 && (Tb(b, ""), c.effectTag &= -17);
+ a: b: for (c = a; ; ) {
+ for (; null === c.sibling; ) {
+ if (null === c.return || Zi(c.return)) {
+ c = null;
+ break a;
+ }
+ c = c.return;
+ }
+ c.sibling.return = c.return;
+ for (c = c.sibling; 5 !== c.tag && 6 !== c.tag && 18 !== c.tag; ) {
+ if (c.effectTag & 2) continue b;
+ if (null === c.child || 4 === c.tag) continue b;
+ else c.child.return = c, c = c.child;
+ }
+ if (!(c.effectTag & 2)) {
+ c = c.stateNode;
+ break a;
+ }
+ }
+ for (var e = a; ; ) {
+ var f = 5 === e.tag || 6 === e.tag;
+ if (f) {
+ var g = f ? e.stateNode : e.stateNode.instance;
+ if (c) if (d) {
+ f = b;
+ var h = g;
+ g = c;
+ 8 === f.nodeType ? f.parentNode.insertBefore(h, g) : f.insertBefore(h, g);
+ } else b.insertBefore(g, c);
+ else d ? (h = b, 8 === h.nodeType ? (f = h.parentNode, f.insertBefore(g, h)) : (f = h, f.appendChild(g)), h = h._reactRootContainer, null !== h && void 0 !== h || null !== f.onclick || (f.onclick = ae)) : b.appendChild(g);
+ } else if (4 !== e.tag && null !== e.child) {
+ e.child.return = e;
+ e = e.child;
+ continue;
+ }
+ if (e === a) break;
+ for (; null === e.sibling; ) {
+ if (null === e.return || e.return === a) return;
+ e = e.return;
+ }
+ e.sibling.return = e.return;
+ e = e.sibling;
+ }
+ }
+ function Xi(a, b, c) {
+ for (var d = b, e = false, f, g; ; ) {
+ if (!e) {
+ e = d.return;
+ a: for (; ; ) {
+ if (null === e) throw Error(u(160));
+ f = e.stateNode;
+ switch (e.tag) {
+ case 5:
+ g = false;
+ break a;
+ case 3:
+ f = f.containerInfo;
+ g = true;
+ break a;
+ case 4:
+ f = f.containerInfo;
+ g = true;
+ break a;
+ }
+ e = e.return;
+ }
+ e = true;
+ }
+ if (5 === d.tag || 6 === d.tag) {
+ a: for (var h = a, k = d, l = c, m = k; ; ) if (Vi(h, m, l), null !== m.child && 4 !== m.tag) m.child.return = m, m = m.child;
+ else {
+ if (m === k) break;
+ for (; null === m.sibling; ) {
+ if (null === m.return || m.return === k) break a;
+ m = m.return;
+ }
+ m.sibling.return = m.return;
+ m = m.sibling;
+ }
+ g ? (h = f, k = d.stateNode, 8 === h.nodeType ? h.parentNode.removeChild(k) : h.removeChild(k)) : f.removeChild(d.stateNode);
+ } else if (4 === d.tag) {
+ if (null !== d.child) {
+ f = d.stateNode.containerInfo;
+ g = true;
+ d.child.return = d;
+ d = d.child;
+ continue;
+ }
+ } else if (Vi(a, d, c), null !== d.child) {
+ d.child.return = d;
+ d = d.child;
+ continue;
+ }
+ if (d === b) break;
+ for (; null === d.sibling; ) {
+ if (null === d.return || d.return === b) return;
+ d = d.return;
+ 4 === d.tag && (e = false);
+ }
+ d.sibling.return = d.return;
+ d = d.sibling;
+ }
+ }
+ function aj(a, b) {
+ switch (b.tag) {
+ case 0:
+ case 11:
+ case 14:
+ case 15:
+ Ui(4, 8, b);
+ break;
+ case 1:
+ break;
+ case 5:
+ var c = b.stateNode;
+ if (null != c) {
+ var d = b.memoizedProps, e = null !== a ? a.memoizedProps : d;
+ a = b.type;
+ var f = b.updateQueue;
+ b.updateQueue = null;
+ if (null !== f) {
+ c[ve] = d;
+ "input" === a && "radio" === d.type && null != d.name && Cb(c, d);
+ Zd(a, e);
+ b = Zd(a, d);
+ for (e = 0; e < f.length; e += 2) {
+ var g = f[e], h = f[e + 1];
+ "style" === g ? Wd(c, h) : "dangerouslySetInnerHTML" === g ? Sb(c, h) : "children" === g ? Tb(c, h) : vb(c, g, h, b);
+ }
+ switch (a) {
+ case "input":
+ Eb(c, d);
+ break;
+ case "textarea":
+ Mb(
+ c,
+ d
+ );
+ break;
+ case "select":
+ b = c._wrapperState.wasMultiple, c._wrapperState.wasMultiple = !!d.multiple, a = d.value, null != a ? Jb(c, !!d.multiple, a, false) : b !== !!d.multiple && (null != d.defaultValue ? Jb(c, !!d.multiple, d.defaultValue, true) : Jb(c, !!d.multiple, d.multiple ? [] : "", false));
+ }
+ }
+ }
+ break;
+ case 6:
+ if (null === b.stateNode) throw Error(u(162));
+ b.stateNode.nodeValue = b.memoizedProps;
+ break;
+ case 3:
+ b = b.stateNode;
+ b.hydrate && (b.hydrate = false, Lc(b.containerInfo));
+ break;
+ case 12:
+ break;
+ case 13:
+ c = b;
+ null === b.memoizedState ? d = false : (d = true, c = b.child, bj = cg());
+ if (null !== c) a: for (a = c; ; ) {
+ if (5 === a.tag) f = a.stateNode, d ? (f = f.style, "function" === typeof f.setProperty ? f.setProperty("display", "none", "important") : f.display = "none") : (f = a.stateNode, e = a.memoizedProps.style, e = void 0 !== e && null !== e && e.hasOwnProperty("display") ? e.display : null, f.style.display = Vd("display", e));
+ else if (6 === a.tag) a.stateNode.nodeValue = d ? "" : a.memoizedProps;
+ else if (13 === a.tag && null !== a.memoizedState && null === a.memoizedState.dehydrated) {
+ f = a.child.sibling;
+ f.return = a;
+ a = f;
+ continue;
+ } else if (null !== a.child) {
+ a.child.return = a;
+ a = a.child;
+ continue;
+ }
+ if (a === c) break a;
+ for (; null === a.sibling; ) {
+ if (null === a.return || a.return === c) break a;
+ a = a.return;
+ }
+ a.sibling.return = a.return;
+ a = a.sibling;
+ }
+ cj(b);
+ break;
+ case 19:
+ cj(b);
+ break;
+ case 17:
+ break;
+ case 20:
+ break;
+ case 21:
+ break;
+ default:
+ throw Error(u(163));
+ }
+ }
+ function cj(a) {
+ var b = a.updateQueue;
+ if (null !== b) {
+ a.updateQueue = null;
+ var c = a.stateNode;
+ null === c && (c = a.stateNode = new Oi());
+ b.forEach(function(b2) {
+ var d = dj.bind(null, a, b2);
+ c.has(b2) || (c.add(b2), b2.then(d, d));
+ });
+ }
+ }
+ var ej = "function" === typeof WeakMap ? WeakMap : Map;
+ function fj(a, b, c) {
+ c = Bg(c, null);
+ c.tag = 3;
+ c.payload = { element: null };
+ var d = b.value;
+ c.callback = function() {
+ gj || (gj = true, hj = d);
+ Pi(a, b);
+ };
+ return c;
+ }
+ function ij(a, b, c) {
+ c = Bg(c, null);
+ c.tag = 3;
+ var d = a.type.getDerivedStateFromError;
+ if ("function" === typeof d) {
+ var e = b.value;
+ c.payload = function() {
+ Pi(a, b);
+ return d(e);
+ };
+ }
+ var f = a.stateNode;
+ null !== f && "function" === typeof f.componentDidCatch && (c.callback = function() {
+ "function" !== typeof d && (null === jj ? jj = /* @__PURE__ */ new Set([this]) : jj.add(this), Pi(a, b));
+ var c2 = b.stack;
+ this.componentDidCatch(b.value, { componentStack: null !== c2 ? c2 : "" });
+ });
+ return c;
+ }
+ var kj = Math.ceil;
+ var lj = Ea.ReactCurrentDispatcher;
+ var mj = Ea.ReactCurrentOwner;
+ var S = 0;
+ var nj = 8;
+ var oj = 16;
+ var pj = 32;
+ var qj = 0;
+ var rj = 1;
+ var sj = 2;
+ var tj = 3;
+ var uj = 4;
+ var vj = 5;
+ var T = S;
+ var U = null;
+ var V = null;
+ var W = 0;
+ var X = qj;
+ var wj = null;
+ var xj = 1073741823;
+ var yj = 1073741823;
+ var zj = null;
+ var Aj = 0;
+ var Bj = false;
+ var bj = 0;
+ var Cj = 500;
+ var Y = null;
+ var gj = false;
+ var hj = null;
+ var jj = null;
+ var Dj = false;
+ var Ej = null;
+ var Fj = 90;
+ var Gj = null;
+ var Hj = 0;
+ var Ij = null;
+ var Jj = 0;
+ function Pg() {
+ return (T & (oj | pj)) !== S ? 1073741821 - (cg() / 10 | 0) : 0 !== Jj ? Jj : Jj = 1073741821 - (cg() / 10 | 0);
+ }
+ function Qg(a, b, c) {
+ b = b.mode;
+ if (0 === (b & 2)) return 1073741823;
+ var d = dg();
+ if (0 === (b & 4)) return 99 === d ? 1073741823 : 1073741822;
+ if ((T & oj) !== S) return W;
+ if (null !== c) a = lg(a, c.timeoutMs | 0 || 5e3, 250);
+ else switch (d) {
+ case 99:
+ a = 1073741823;
+ break;
+ case 98:
+ a = lg(a, 150, 100);
+ break;
+ case 97:
+ case 96:
+ a = lg(a, 5e3, 250);
+ break;
+ case 95:
+ a = 2;
+ break;
+ default:
+ throw Error(u(326));
+ }
+ null !== U && a === W && --a;
+ return a;
+ }
+ function Rg(a, b) {
+ if (50 < Hj) throw Hj = 0, Ij = null, Error(u(185));
+ a = Kj(a, b);
+ if (null !== a) {
+ var c = dg();
+ 1073741823 === b ? (T & nj) !== S && (T & (oj | pj)) === S ? Lj(a) : (Z(a), T === S && jg()) : Z(a);
+ (T & 4) === S || 98 !== c && 99 !== c || (null === Gj ? Gj = /* @__PURE__ */ new Map([[a, b]]) : (c = Gj.get(a), (void 0 === c || c > b) && Gj.set(a, b)));
+ }
+ }
+ function Kj(a, b) {
+ a.expirationTime < b && (a.expirationTime = b);
+ var c = a.alternate;
+ null !== c && c.expirationTime < b && (c.expirationTime = b);
+ var d = a.return, e = null;
+ if (null === d && 3 === a.tag) e = a.stateNode;
+ else for (; null !== d; ) {
+ c = d.alternate;
+ d.childExpirationTime < b && (d.childExpirationTime = b);
+ null !== c && c.childExpirationTime < b && (c.childExpirationTime = b);
+ if (null === d.return && 3 === d.tag) {
+ e = d.stateNode;
+ break;
+ }
+ d = d.return;
+ }
+ null !== e && (U === e && (Jg(b), X === uj && Mj(e, W)), Nj(e, b));
+ return e;
+ }
+ function Oj(a) {
+ var b = a.lastExpiredTime;
+ if (0 !== b) return b;
+ b = a.firstPendingTime;
+ if (!Pj(a, b)) return b;
+ b = a.lastPingedTime;
+ a = a.nextKnownPendingLevel;
+ return b > a ? b : a;
+ }
+ function 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 = b;
+ 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;
+ }
+ }
+ }
+ function 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 ? 2 : c);
+ break;
+ case tj:
+ Mj(a, c);
+ d = a.lastSuspendedTime;
+ c === d && (a.nextKnownPendingLevel = Xj(e));
+ if (1073741823 === xj && (e = bj + Cj - cg(), 10 < e)) {
+ if (Bj) {
+ var f = a.lastPingedTime;
+ if (0 === f || f >= 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 = d;
+ 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 = c));
+ if (10 < d) {
+ a.timeoutHandle = pe(Yj.bind(null, a), d);
+ break;
+ }
+ Yj(a);
+ break;
+ case vj:
+ if (1073741823 !== xj && null !== zj) {
+ f = xj;
+ var g = zj;
+ d = g.busyMinDurationMs | 0;
+ 0 >= 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 < d) {
+ Mj(a, c);
+ a.timeoutHandle = pe(Yj.bind(null, a), d);
+ break;
+ }
+ }
+ Yj(a);
+ break;
+ default:
+ throw Error(u(329));
+ }
+ Z(a);
+ if (a.callbackNode === b) return Qj.bind(null, a);
+ }
+ }
+ return null;
+ }
+ function Lj(a) {
+ var b = a.lastExpiredTime;
+ b = 0 !== b ? b : 1073741823;
+ if (a.finishedExpirationTime === b) Yj(a);
+ else {
+ if ((T & (oj | pj)) !== S) throw Error(u(327));
+ Sj();
+ a === U && b === W || Tj(a, b);
+ if (null !== V) {
+ var c = T;
+ T |= oj;
+ var d = Uj(a);
+ do
+ try {
+ Zj();
+ break;
+ } catch (e) {
+ Wj(a, e);
+ }
+ while (1);
+ rg();
+ T = c;
+ lj.current = d;
+ if (X === rj) throw c = wj, Tj(a, b), Mj(a, b), Z(a), c;
+ if (null !== V) throw Error(u(261));
+ a.finishedWork = a.current.alternate;
+ a.finishedExpirationTime = b;
+ U = null;
+ Yj(a);
+ Z(a);
+ }
+ }
+ return null;
+ }
+ function ak() {
+ if (null !== Gj) {
+ var a = Gj;
+ Gj = null;
+ a.forEach(function(a2, c) {
+ Rj(c, a2);
+ Z(c);
+ });
+ jg();
+ }
+ }
+ function bk(a, b) {
+ var c = T;
+ T |= 1;
+ try {
+ return a(b);
+ } finally {
+ T = c, T === S && jg();
+ }
+ }
+ function ck(a, b) {
+ var c = T;
+ T &= -2;
+ T |= nj;
+ try {
+ return a(b);
+ } finally {
+ T = c, T === S && jg();
+ }
+ }
+ function Tj(a, b) {
+ a.finishedWork = null;
+ a.finishedExpirationTime = 0;
+ var c = a.timeoutHandle;
+ -1 !== c && (a.timeoutHandle = -1, qe(c));
+ if (null !== V) for (c = V.return; null !== c; ) {
+ var d = c;
+ switch (d.tag) {
+ case 1:
+ var e = d.type.childContextTypes;
+ null !== e && void 0 !== e && Ff(d);
+ break;
+ case 3:
+ nh(d);
+ Gf(d);
+ break;
+ case 5:
+ ph(d);
+ break;
+ case 4:
+ nh(d);
+ break;
+ case 13:
+ G(M, d);
+ break;
+ case 19:
+ G(M, d);
+ break;
+ case 10:
+ tg(d);
+ }
+ c = c.return;
+ }
+ U = a;
+ V = ah(a.current, null, b);
+ W = b;
+ X = qj;
+ wj = null;
+ yj = xj = 1073741823;
+ zj = null;
+ Aj = 0;
+ Bj = false;
+ }
+ function Wj(a, b) {
+ do {
+ try {
+ rg();
+ Mh();
+ if (null === V || null === V.return) return X = rj, wj = b, null;
+ a: {
+ var c = a, d = V.return, e = V, f = b;
+ b = W;
+ e.effectTag |= 2048;
+ e.firstEffect = e.lastEffect = null;
+ if (null !== f && "object" === typeof f && "function" === typeof f.then) {
+ var g = f, h = 0 !== (M.current & 1), k = d;
+ do {
+ var l;
+ if (l = 13 === k.tag) {
+ var m = k.memoizedState;
+ if (null !== m) l = null !== m.dehydrated ? true : false;
+ else {
+ var C = k.memoizedProps;
+ l = void 0 === C.fallback ? false : true !== C.unstable_avoidThisFallback ? true : h ? false : true;
+ }
+ }
+ if (l) {
+ var y = k.updateQueue;
+ if (null === y) {
+ var H = /* @__PURE__ */ new Set();
+ H.add(g);
+ k.updateQueue = H;
+ } else y.add(g);
+ if (0 === (k.mode & 2)) {
+ k.effectTag |= 64;
+ e.effectTag &= -2981;
+ if (1 === e.tag) if (null === e.alternate) e.tag = 17;
+ else {
+ var z = Bg(1073741823, null);
+ z.tag = 2;
+ Dg(e, z);
+ }
+ e.expirationTime = 1073741823;
+ break a;
+ }
+ f = void 0;
+ e = b;
+ var ta = c.pingCache;
+ null === ta ? (ta = c.pingCache = new ej(), f = /* @__PURE__ */ new Set(), ta.set(g, f)) : (f = ta.get(g), void 0 === f && (f = /* @__PURE__ */ new Set(), ta.set(g, f)));
+ if (!f.has(e)) {
+ f.add(e);
+ var r = dk.bind(null, c, g, e);
+ g.then(r, r);
+ }
+ k.effectTag |= 4096;
+ k.expirationTime = b;
+ break a;
+ }
+ k = k.return;
+ } while (null !== k);
+ f = Error((Wa(e.type) || "A React component") + " suspended while rendering, but no fallback UI was specified.\n\nAdd a 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 && (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) {
+ a < xj && 2 < a && (xj = a);
+ null !== b && a < yj && 2 < a && (yj = a, zj = b);
+ }
+ function Jg(a) {
+ a > Aj && (Aj = a);
+ }
+ function Zj() {
+ for (; null !== V; ) V = fk(V);
+ }
+ function Vj() {
+ for (; null !== V && !Of(); ) V = fk(V);
+ }
+ function fk(a) {
+ var b = gk(a.alternate, a, W);
+ a.memoizedProps = a.pendingProps;
+ null === b && (b = ek(a));
+ mj.current = null;
+ return b;
+ }
+ function 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 = lh(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 < dc.length; h++) F(dc[h], d);
+ break;
+ case "source":
+ F("error", d);
+ break;
+ case "img":
+ case "image":
+ case "link":
+ F("error", d);
+ F("load", d);
+ break;
+ case "form":
+ F("reset", d);
+ F("submit", d);
+ break;
+ case "details":
+ F("toggle", d);
+ break;
+ case "input":
+ Bb(d, k);
+ F("invalid", d);
+ $d(l, "onChange");
+ break;
+ case "select":
+ d._wrapperState = { wasMultiple: !!k.multiple };
+ F("invalid", d);
+ $d(l, "onChange");
+ break;
+ case "textarea":
+ Lb(d, k), F("invalid", d), $d(l, "onChange");
+ }
+ Yd(c, k);
+ h = null;
+ for (f in k) k.hasOwnProperty(f) && (g = k[f], "children" === f ? "string" === typeof g ? d.textContent !== g && (h = ["children", g]) : "number" === typeof g && d.textContent !== "" + g && (h = ["children", "" + g]) : ia.hasOwnProperty(f) && null != g && $d(l, f));
+ switch (c) {
+ case "input":
+ yb(d);
+ Gb(d, k, true);
+ break;
+ case "textarea":
+ yb(d);
+ Nb(d, k);
+ break;
+ case "select":
+ case "option":
+ break;
+ default:
+ "function" === typeof k.onClick && (d.onclick = ae);
+ }
+ f = h;
+ e.updateQueue = f;
+ e = null !== f ? true : false;
+ e && Ci(b);
+ } else {
+ c = b;
+ l = f;
+ k = e;
+ h = 9 === d.nodeType ? d : d.ownerDocument;
+ g === Ob.html && (g = Pb(l));
+ g === Ob.html ? "script" === l ? (k = h.createElement("div"), k.innerHTML = "
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/outlib/helpers/migrate.js b/outlib/helpers/migrate.js
deleted file mode 100644
index 76f22f0f..00000000
--- a/outlib/helpers/migrate.js
+++ /dev/null
@@ -1,136 +0,0 @@
-"use strict";
-
-function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
-
-var browser = browser || chrome;
-
-var stringkeys = ["layout"];
-
-var jsonkeys = ["tabLimit", "tabWidth", "tabHeight", "windowAge", "windowNames", "windowColors"];
-
-var boolkeys = ["openInOwnTab", "animations", "windowTitles", "compact", "dark", "tabactions", "badge", "sessionsFeature", "hideWindows", "filter-tabs"];
-
-_asyncToGenerator(regeneratorRuntime.mark(function _callee() {
- var hasLocalStorage, key, keyValue, values;
- return regeneratorRuntime.wrap(function _callee$(_context) {
- while (1) {
- switch (_context.prev = _context.next) {
- case 0:
- hasLocalStorage = false;
-
-
- for (key in stringkeys) {
- if (!!localStorage[key]) hasLocalStorage = true;
- }
-
- for (key in boolkeys) {
- if (!!localStorage[key]) hasLocalStorage = true;
- }
-
- for (key in jsonkeys) {
- if (!!localStorage[key]) hasLocalStorage = true;
- }
-
- if (!hasLocalStorage) {
- _context.next = 34;
- break;
- }
-
- keyValue = {};
- _context.next = 8;
- return browser.storage.local.get(null);
-
- case 8:
- values = _context.sent;
-
- values = values || {};
- _context.t0 = regeneratorRuntime.keys(values);
-
- case 11:
- if ((_context.t1 = _context.t0()).done) {
- _context.next = 21;
- break;
- }
-
- key = _context.t1.value;
-
- if (!values[key].tabs) {
- _context.next = 18;
- break;
- }
-
- _context.next = 16;
- return browser.storage.local.remove(key);
-
- case 16:
- _context.next = 19;
- break;
-
- case 18:
- delete values[key];
-
- case 19:
- _context.next = 11;
- break;
-
- case 21:
- keyValue = {};
-
- keyValue["sessions"] = values;
- _context.next = 25;
- return browser.storage.local.set(keyValue);
-
- case 25:
- keyValue = {};
-
- for (key in stringkeys) {
- if (!!localStorage[key]) keyValue[key] = localStorage[key];
- }
-
- for (key in boolkeys) {
- if (!!localStorage[key]) keyValue[key] = toBoolean(localStorage[key]);
- }
-
- for (key in jsonkeys) {
- if (!!localStorage[key]) keyValue[key] = JSON.parse(localStorage[key]);
- }
-
- _context.next = 31;
- return browser.storage.local.set(keyValue);
-
- case 31:
- for (key in stringkeys) {
- localStorage.removeItem(key);
- }for (key in boolkeys) {
- localStorage.removeItem(key);
- }for (key in jsonkeys) {
- localStorage.removeItem(key);
- }
- case 34:
- case "end":
- return _context.stop();
- }
- }
- }, _callee, this);
-}))();
-
-function toBoolean(str) {
- if (typeof str === "undefined" || str === null) {
- return false;
- } else if (typeof str === "string") {
- switch (str.toLowerCase()) {
- case "false":
- case "no":
- case "0":
- case "":
- return false;
- default:
- return true;
- }
- } else if (typeof str === "number") {
- return str !== 0;
- } else {
- return true;
- }
-}
-//# sourceMappingURL=migrate.js.map
\ No newline at end of file
diff --git a/outlib/helpers/migrate.js.map b/outlib/helpers/migrate.js.map
deleted file mode 100644
index 294b3b31..00000000
--- a/outlib/helpers/migrate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../lib/helpers/migrate.js"],"names":["browser","chrome","stringkeys","jsonkeys","boolkeys","hasLocalStorage","key","localStorage","keyValue","storage","local","get","values","tabs","remove","set","toBoolean","JSON","parse","removeItem","str","toLowerCase"],"mappings":"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","file":"migrate.js","sourcesContent":["\"use strict\";\r\n\r\nvar browser = browser || chrome;\r\n\r\nvar stringkeys = [\r\n\t\"layout\"\r\n];\r\n\r\nvar jsonkeys = [\r\n\t\"tabLimit\",\r\n\t\"tabWidth\",\r\n\t\"tabHeight\",\r\n\t\"windowAge\",\r\n\t\"windowNames\",\r\n\t\"windowColors\"\r\n];\r\n\r\nvar boolkeys = [\r\n\t\"openInOwnTab\",\r\n\t\"animations\",\r\n\t\"windowTitles\",\r\n\t\"compact\",\r\n\t\"dark\",\r\n\t\"tabactions\",\r\n\t\"badge\",\r\n\t\"sessionsFeature\",\r\n\t\"hideWindows\",\r\n\t\"filter-tabs\"\r\n];\r\n\r\n(async function () {\r\n\r\n\tvar hasLocalStorage = false;\r\n\r\n\tfor (var key in stringkeys) {\r\n\t\tif (!!localStorage[key]) hasLocalStorage = true;\r\n\t}\r\n\r\n\tfor (var key in boolkeys) {\r\n\t\tif (!!localStorage[key]) hasLocalStorage = true;\r\n\t}\r\n\r\n\tfor (var key in jsonkeys) {\r\n\t\tif (!!localStorage[key]) hasLocalStorage = true;\r\n\t}\r\n\r\n\tif (hasLocalStorage) {\r\n\t\tvar keyValue = {};\r\n\r\n\t\tvar values = await browser.storage.local.get(null);\r\n\t\tvalues = values || {};\r\n\t\t// delete all values that don't have a tabs array\r\n\t\tfor (var key in values) {\r\n\t\t\tif (!!values[key].tabs) {\r\n\t\t\t\tawait browser.storage.local.remove(key);\r\n\t\t\t} else {\r\n\t\t\t\tdelete values[key];\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar keyValue = {};\r\n\t\tkeyValue[\"sessions\"] = values;\r\n\t\tawait browser.storage.local.set(keyValue);\r\n\r\n\t\tvar keyValue = {};\r\n\t\tfor (var key in stringkeys) {\r\n\t\t\tif (!!localStorage[key]) keyValue[key] = localStorage[key];\r\n\t\t}\r\n\r\n\t\tfor (var key in boolkeys) {\r\n\t\t\tif (!!localStorage[key]) keyValue[key] = toBoolean(localStorage[key]);\r\n\t\t}\r\n\r\n\t\tfor (var key in jsonkeys) {\r\n\t\t\tif (!!localStorage[key]) keyValue[key] = JSON.parse(localStorage[key]);\r\n\t\t}\r\n\r\n\t\tawait browser.storage.local.set(keyValue);\r\n\r\n\t\t// clear old localstorage\r\n\t\tfor (var key in stringkeys) localStorage.removeItem(key);\r\n\t\tfor (var key in boolkeys) localStorage.removeItem(key);\r\n\t\tfor (var key in jsonkeys) localStorage.removeItem(key);\r\n\r\n\t}\r\n})();\r\n\r\nfunction toBoolean(str)\r\n{\r\n\tif (typeof str === \"undefined\" || str === null) {\r\n\t\treturn false;\r\n\t} else if (typeof str === \"string\") {\r\n\t\tswitch (str.toLowerCase()) {\r\n\t\t\tcase \"false\":\r\n\t\t\tcase \"no\":\r\n\t\t\tcase \"0\":\r\n\t\t\tcase \"\":\r\n\t\t\t\treturn false;\r\n\t\t\tdefault:\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t} else if (typeof str === \"number\") {\r\n\t\treturn str !== 0;\r\n\t} else {\r\n\t\treturn true;\r\n\t}\r\n}"]}
\ No newline at end of file
diff --git a/outlib/helpers/storage.js b/outlib/helpers/storage.js
deleted file mode 100644
index c16a6e9a..00000000
--- a/outlib/helpers/storage.js
+++ /dev/null
@@ -1,82 +0,0 @@
-"use strict";
-
-function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
-
-var browser = browser || chrome;
-
-var getLocalStorage = function () {
- var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee(key) {
- var default_value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
- return regeneratorRuntime.wrap(function _callee$(_context) {
- while (1) {
- switch (_context.prev = _context.next) {
- case 0:
- return _context.abrupt("return", new Promise(function (resolve, reject) {
- browser.storage.local.get([key]).then(function (result) {
- if (result[key] === undefined) {
- resolve(default_value);
- } else {
- resolve(result[key]);
- }
- });
- }));
-
- case 1:
- case "end":
- return _context.stop();
- }
- }
- }, _callee, undefined);
- }));
-
- return function getLocalStorage(_x) {
- return _ref.apply(this, arguments);
- };
-}();
-
-var setLocalStorage = function () {
- var _ref2 = _asyncToGenerator(regeneratorRuntime.mark(function _callee2(key, value) {
- var obj;
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
- while (1) {
- switch (_context2.prev = _context2.next) {
- case 0:
- obj = {};
-
- obj[key] = value;
- return _context2.abrupt("return", browser.storage.local.set(obj));
-
- case 3:
- case "end":
- return _context2.stop();
- }
- }
- }, _callee2, undefined);
- }));
-
- return function setLocalStorage(_x3, _x4) {
- return _ref2.apply(this, arguments);
- };
-}();
-
-var removeLocalStorage = function () {
- var _ref3 = _asyncToGenerator(regeneratorRuntime.mark(function _callee3(key) {
- return regeneratorRuntime.wrap(function _callee3$(_context3) {
- while (1) {
- switch (_context3.prev = _context3.next) {
- case 0:
- return _context3.abrupt("return", browser.storage.local.remove(key));
-
- case 1:
- case "end":
- return _context3.stop();
- }
- }
- }, _callee3, undefined);
- }));
-
- return function removeLocalStorage(_x5) {
- return _ref3.apply(this, arguments);
- };
-}();
-//# sourceMappingURL=storage.js.map
\ No newline at end of file
diff --git a/outlib/helpers/storage.js.map b/outlib/helpers/storage.js.map
deleted file mode 100644
index 101b3527..00000000
--- a/outlib/helpers/storage.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../lib/helpers/storage.js"],"names":["browser","chrome","getLocalStorage","key","default_value","Promise","resolve","reject","storage","local","get","then","result","undefined","setLocalStorage","value","obj","set","removeLocalStorage","remove"],"mappings":";;;;AAAC,IAAIA,UAAUA,WAAWC,MAAzB;;AAED,IAAMC;AAAA,sDAAkB,iBAAOC,GAAP;AAAA,MAAYC,aAAZ,uEAA4B,IAA5B;AAAA;AAAA;AAAA;AAAA;AAAA,uCAChB,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACvCP,eAAQQ,OAAR,CAAgBC,KAAhB,CAAsBC,GAAtB,CAA0B,CAACP,GAAD,CAA1B,EAAiCQ,IAAjC,CAAsC,kBAAU;AAC/C,YAAIC,OAAOT,GAAP,MAAgBU,SAApB,EAA+B;AAC9BP,iBAAQF,aAAR;AACA,SAFD,MAEO;AACNE,iBAAQM,OAAOT,GAAP,CAAR;AACA;AACD,QAND;AAOA,OARM,CADgB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAlB;;AAAA;AAAA;AAAA;AAAA,GAAN;;AAYA,IAAMW;AAAA,uDAAkB,kBAAOX,GAAP,EAAYY,KAAZ;AAAA;AAAA;AAAA;AAAA;AAAA;AACnBC,SADmB,GACb,EADa;;AAEvBA,UAAIb,GAAJ,IAAWY,KAAX;AAFuB,wCAGhBf,QAAQQ,OAAR,CAAgBC,KAAhB,CAAsBQ,GAAtB,CAA0BD,GAA1B,CAHgB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAlB;;AAAA;AAAA;AAAA;AAAA,GAAN;;AAMA,IAAME;AAAA,uDAAqB,kBAAOf,GAAP;AAAA;AAAA;AAAA;AAAA;AAAA,wCACnBH,QAAQQ,OAAR,CAAgBC,KAAhB,CAAsBU,MAAtB,CAA6BhB,GAA7B,CADmB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAArB;;AAAA;AAAA;AAAA;AAAA,GAAN","file":"storage.js","sourcesContent":["var browser = browser || chrome;\n\nconst getLocalStorage = async (key, default_value = null) => {\n\treturn new Promise((resolve, reject) => {\n\t\tbrowser.storage.local.get([key]).then(result => {\n\t\t\tif (result[key] === undefined) {\n\t\t\t\tresolve(default_value);\n\t\t\t} else {\n\t\t\t\tresolve(result[key]);\n\t\t\t}\n\t\t});\n\t});\n};\n\nconst setLocalStorage = async (key, value) => {\n\tvar obj = {};\n\tobj[key] = value;\n\treturn browser.storage.local.set(obj);\n};\n\nconst removeLocalStorage = async (key) => {\n\treturn browser.storage.local.remove(key);\n};"]}
\ No newline at end of file
diff --git a/outlib/helpers/utils.js b/outlib/helpers/utils.js
deleted file mode 100644
index 57decf5c..00000000
--- a/outlib/helpers/utils.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-
-function debounce(func, wait, immediate) {
- var timeout;
- return function () {
- var context = this,
- args = arguments;
- var later = function later() {
- timeout = null;
- if (!immediate) func.apply(context, args);
- };
- var callNow = immediate && !timeout;
- clearTimeout(timeout);
- timeout = setTimeout(later, wait);
- if (callNow) func.apply(context, args);
- };
-}
-
-function is_in_bounds(object, bounds) {
- var C = object,
- B = bounds;
- if (C.left >= B.left && C.left <= B.left + B.width) {
- if (C.top >= B.top && C.top <= B.top + B.height) {
- return true;
- }
- }
- return false;
-}
-
-function stringHashcode(string) {
- var hash = 0;
- for (var i = 0; i < string.length; i++) {
- var code = string.charCodeAt(i);
- hash = (hash << 5) - hash + code;
- hash = hash & hash;
- }
- return hash;
-}
-//# sourceMappingURL=utils.js.map
\ No newline at end of file
diff --git a/outlib/helpers/utils.js.map b/outlib/helpers/utils.js.map
deleted file mode 100644
index 3a96e405..00000000
--- a/outlib/helpers/utils.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../lib/helpers/utils.js"],"names":["debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout","is_in_bounds","object","bounds","C","B","left","width","top","height","stringHashcode","string","hash","i","length","code","charCodeAt"],"mappings":";;AAIA,SAASA,QAAT,CAAkBC,IAAlB,EAAwBC,IAAxB,EAA8BC,SAA9B,EAAyC;AACxC,KAAIC,OAAJ;AACA,QAAO,YAAY;AAClB,MAAIC,UAAU,IAAd;AAAA,MAAoBC,OAAOC,SAA3B;AACA,MAAIC,QAAQ,SAASA,KAAT,GAAiB;AAC5BJ,aAAU,IAAV;AACA,OAAI,CAACD,SAAL,EAAgBF,KAAKQ,KAAL,CAAWJ,OAAX,EAAoBC,IAApB;AAChB,GAHD;AAIA,MAAII,UAAUP,aAAa,CAACC,OAA5B;AACAO,eAAaP,OAAb;AACAA,YAAUQ,WAAWJ,KAAX,EAAkBN,IAAlB,CAAV;AACA,MAAIQ,OAAJ,EAAaT,KAAKQ,KAAL,CAAWJ,OAAX,EAAoBC,IAApB;AACb,EAVD;AAWA;;AAED,SAASO,YAAT,CAAsBC,MAAtB,EAA8BC,MAA9B,EAAsC;AACrC,KAAIC,IAAIF,MAAR;AAAA,KAAgBG,IAAIF,MAApB;AACA,KAAIC,EAAEE,IAAF,IAAUD,EAAEC,IAAZ,IAAoBF,EAAEE,IAAF,IAAUD,EAAEC,IAAF,GAASD,EAAEE,KAA7C,EAAoD;AACnD,MAAIH,EAAEI,GAAF,IAASH,EAAEG,GAAX,IAAkBJ,EAAEI,GAAF,IAASH,EAAEG,GAAF,GAAQH,EAAEI,MAAzC,EAAiD;AAChD,UAAO,IAAP;AACA;AACD;AACD,QAAO,KAAP;AACA;;AAED,SAASC,cAAT,CAAwBC,MAAxB,EAAgC;AAC/B,KAAIC,OAAO,CAAX;AACA,MAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIF,OAAOG,MAA3B,EAAmCD,GAAnC,EAAwC;AACvC,MAAIE,OAAOJ,OAAOK,UAAP,CAAkBH,CAAlB,CAAX;AACAD,SAAQ,CAACA,QAAQ,CAAT,IAAcA,IAAf,GAAuBG,IAA9B;AACAH,SAAOA,OAAOA,IAAd;AACA;AACD,QAAOA,IAAP;AACA","file":"utils.js","sourcesContent":["// Returns a function, that, as long as it continues to be invoked, will not\r\n// be triggered. The function will be called after it stops being called for\r\n// N milliseconds. If `immediate` is passed, trigger the function on the\r\n// leading edge, instead of the trailing.\r\nfunction debounce(func, wait, immediate) {\r\n\tvar timeout;\r\n\treturn function () {\r\n\t\tvar context = this, args = arguments;\r\n\t\tvar later = function later() {\r\n\t\t\ttimeout = null;\r\n\t\t\tif (!immediate) func.apply(context, args);\r\n\t\t};\r\n\t\tvar callNow = immediate && !timeout;\r\n\t\tclearTimeout(timeout);\r\n\t\ttimeout = setTimeout(later, wait);\r\n\t\tif (callNow) func.apply(context, args);\r\n\t}\r\n}\r\n\r\nfunction is_in_bounds(object, bounds) {\r\n\tvar C = object, B = bounds;\r\n\tif (C.left >= B.left && C.left <= B.left + B.width) {\r\n\t\tif (C.top >= B.top && C.top <= B.top + B.height) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nfunction stringHashcode(string) {\r\n\tvar hash = 0;\r\n\tfor (var i = 0; i < string.length; i++) {\r\n\t\tvar code = string.charCodeAt(i);\r\n\t\thash = ((hash << 5) - hash) + code;\r\n\t\thash = hash & hash; // Convert to 32bit integer\r\n\t}\r\n\treturn hash;\r\n}"]}
\ No newline at end of file
diff --git a/outlib/popup/changelog.js b/outlib/popup/changelog.js
deleted file mode 100644
index 837e48bb..00000000
--- a/outlib/popup/changelog.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-
-window.changelogPage = true;
-//# sourceMappingURL=changelog.js.map
\ No newline at end of file
diff --git a/outlib/popup/changelog.js.map b/outlib/popup/changelog.js.map
deleted file mode 100644
index 4d9ae789..00000000
--- a/outlib/popup/changelog.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../lib/popup/changelog.js"],"names":["window","changelogPage"],"mappings":"AAAA;;AACAA,OAAOC,aAAP,GAAuB,IAAvB","file":"changelog.js","sourcesContent":["\"use strict\";\nwindow.changelogPage = true;"]}
\ No newline at end of file
diff --git a/outlib/popup/options.js b/outlib/popup/options.js
deleted file mode 100644
index 1f343405..00000000
--- a/outlib/popup/options.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-
-window.optionPage = true;
-//# sourceMappingURL=options.js.map
\ No newline at end of file
diff --git a/outlib/popup/options.js.map b/outlib/popup/options.js.map
deleted file mode 100644
index bb2b744a..00000000
--- a/outlib/popup/options.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../lib/popup/options.js"],"names":["window","optionPage"],"mappings":"AAAA;;AACAA,OAAOC,UAAP,GAAoB,IAApB","file":"options.js","sourcesContent":["\"use strict\";\nwindow.optionPage = true;"]}
\ No newline at end of file
diff --git a/outlib/popup/popup.js b/outlib/popup/popup.js
deleted file mode 100644
index 2225b704..00000000
--- a/outlib/popup/popup.js
+++ /dev/null
@@ -1,123 +0,0 @@
-"use strict";
-
-var loadApp = function () {
- var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
- var height, width, root;
- return regeneratorRuntime.wrap(function _callee$(_context) {
- while (1) {
- switch (_context.prev = _context.next) {
- case 0:
- if (!window.loaded) {
- _context.next = 2;
- break;
- }
-
- return _context.abrupt("return");
-
- case 2:
- _context.next = 4;
- return getLocalStorage("tabHeight", 0);
-
- case 4:
- height = _context.sent;
- _context.next = 7;
- return getLocalStorage("tabWidth", 0);
-
- case 7:
- width = _context.sent;
-
- console.log(height, width);
- if (window.inPopup) {
-
- if (height > 0 && width > 0) {
- document.body.style.width = width + "px";
- document.body.style.height = height + "px";
- }
-
- root = document.getElementById("root");
-
- if (root != null) {
- height = document.body.style.height.split("px")[0];
-
- height = parseInt(height) || 0;
- if (height < 300) {
- height = 400;
- document.body.style.minHeight = height + "px";
- } else {
- height++;
- if (height > 600) height = 600;
- document.body.style.minHeight = height + "px";
- }
- }
- } else {
- if (window.inPanel) {
- document.documentElement.style.maxHeight = "auto";
- document.documentElement.style.maxWidth = "auto";
- document.body.style.maxHeight = "auto";
- document.body.style.maxWidth = "auto";
- }
- document.documentElement.style.maxHeight = "100%";
- document.documentElement.style.maxWidth = "100%";
- document.documentElement.style.height = "100%";
- document.documentElement.style.width = "100%";
- document.body.style.maxHeight = "100%";
- document.body.style.maxWidth = "100%";
- document.body.style.height = "100%";
- document.body.style.width = "100%";
- }
-
- if (!window.loaded) {
- _context.next = 12;
- break;
- }
-
- return _context.abrupt("return");
-
- case 12:
- window.loaded = true;
- ReactDOM.render(React.createElement(TabManager, { optionsActive: !!window.optionPage }), document.getElementById("TMP"));
-
- case 14:
- case "end":
- return _context.stop();
- }
- }
- }, _callee, this);
- }));
-
- return function loadApp() {
- return _ref.apply(this, arguments);
- };
-}();
-
-function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
-
-window.loaded = false;
-if (window.location.search.indexOf("?popup") > -1) {
- window.inPopup = true;
-} else {
- window.inPopup = false;
-}
-if (window.location.search.indexOf("?panel") > -1) {
- window.inPanel = true;
-} else {
- window.inPanel = false;
-}
-window.onload = function () {
- window.requestAnimationFrame(loadApp);
-};
-setTimeout(loadApp, 75);
-setTimeout(loadApp, 125);
-setTimeout(loadApp, 250);
-setTimeout(loadApp, 375);
-setTimeout(loadApp, 700);
-setTimeout(loadApp, 1000);
-setTimeout(loadApp, 2000);
-setTimeout(loadApp, 3000);
-setTimeout(loadApp, 5000);
-setTimeout(loadApp, 15000);
-
-window.addEventListener("contextmenu", function (e) {
- e.preventDefault();
-});
-//# sourceMappingURL=popup.js.map
\ No newline at end of file
diff --git a/outlib/popup/popup.js.map b/outlib/popup/popup.js.map
deleted file mode 100644
index c8c97120..00000000
--- a/outlib/popup/popup.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../lib/popup/popup.jsx"],"names":["window","loaded","getLocalStorage","height","width","console","log","inPopup","document","body","style","root","getElementById","split","parseInt","minHeight","inPanel","documentElement","maxHeight","maxWidth","ReactDOM","render","optionPage","loadApp","location","search","indexOf","onload","requestAnimationFrame","setTimeout","addEventListener","e","preventDefault"],"mappings":"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","file":"popup.js","sourcesContent":["\"use strict\";\n\nwindow.loaded = false;\nif (window.location.search.indexOf(\"?popup\") > -1) {\n\twindow.inPopup = true;\n} else {\n\twindow.inPopup = false;\n}\nif (window.location.search.indexOf(\"?panel\") > -1) {\n\twindow.inPanel = true;\n} else {\n\twindow.inPanel = false;\n}\nwindow.onload = function() {\n\twindow.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\tvar height = await getLocalStorage(\"tabHeight\", 0);\n\tvar width = await getLocalStorage(\"tabWidth\", 0);\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 = document.body.style.height.split(\"px\")[0];\n\t\t\theight = parseInt(height) || 0;\n\t\t\tif (height < 300) {\n\t\t\t\theight = 400;\n\t\t\t\tdocument.body.style.minHeight = height + \"px\";\n\t\t\t} else {\n\t\t\t\theight++;\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) {e.preventDefault();});\n\n"]}
\ No newline at end of file
diff --git a/outlib/popup/views/Session.js b/outlib/popup/views/Session.js
deleted file mode 100644
index c54ab437..00000000
--- a/outlib/popup/views/Session.js
+++ /dev/null
@@ -1,317 +0,0 @@
-"use strict";
-
-var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
-function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
-var Session = function (_React$Component) {
- _inherits(Session, _React$Component);
-
- function Session(props) {
- _classCallCheck(this, Session);
-
- var _this3 = _possibleConstructorReturn(this, (Session.__proto__ || Object.getPrototypeOf(Session)).call(this, props));
-
- var name = _this3.props.window.name;
- var color = _this3.props.window.color || "default";
- _this3.state = {
- windowTitles: [],
- name: name,
- color: color,
- tabs: 0
- };
-
- _this3.stop = _this3.stop.bind(_this3);
- _this3.windowClick = _this3.windowClick.bind(_this3);
- _this3.windowTabClick = _this3.windowTabClick.bind(_this3);
- _this3.close = _this3.close.bind(_this3);
- _this3.openTab = _this3.openTab.bind(_this3);
- _this3.maximize = _this3.maximize.bind(_this3);
-
- return _this3;
- }
-
- _createClass(Session, [{
- key: "render",
- value: function render() {
- var _this = this;
- var name = this.state.name;
- var color = this.state.color;
- var hideWindow = true;
- var titleAdded = false;
- var tabsperrow = this.props.layout.indexOf("blocks") > -1 ? Math.ceil(Math.sqrt(this.props.tabs.length + 2)) : this.props.layout == "vertical" ? 1 : 15;
- var tabs = this.props.tabs.map(function (tab) {
- var tabId = tab.id * tab.id * tab.id * 100;
- var isHidden = !!_this.props.hiddenTabs[tabId] && _this.props.filterTabs;
- var isSelected = !!_this.props.selection[tabId];
- tab.id = tab.index;
- hideWindow &= isHidden;
- return React.createElement(Tab, {
- id: "sessiontab_" + _this.props.window.id + "_" + tab.index,
- key: "sessiontab_" + _this.props.window.id + "_" + tab.index,
- window: _this.props.window,
- layout: _this.props.layout,
- tab: tab,
- selected: isSelected,
- hidden: isHidden,
- draggable: false,
- click: _this.openTab,
- middleClick: _this.props.tabMiddleClick,
- hoverHandler: _this.props.hoverHandler,
- searchActive: _this.props.searchActive,
- select: _this.props.select,
- ref: "sessiontab" + tabId
- });
- });
- if (!hideWindow) {
- if (!!this.props.tabactions) {
- tabs.push(React.createElement("div", { key: "sessionnl_" + _this.props.window.id, className: "newliner" }), React.createElement(
- "div",
- { key: "sessionwa_" + _this.props.window.id, className: "window-actions" },
- React.createElement("div", {
- className: "icon tabaction restore " + (this.props.layout.indexOf("blocks") > -1 ? "" : "windowaction"),
- title: "Restore this saved window\nWill restore " + tabs.length + " tabs. Please note : The tabs will be restored without their history.",
- onClick: this.windowClick,
- onMouseEnter: this.props.hoverIcon
- }),
- React.createElement("div", {
- className: "icon tabaction delete " + (this.props.layout.indexOf("blocks") > -1 ? "" : "windowaction"),
- title: "Delete this saved window\nWill delete " + tabs.length + " tabs permanently",
- onClick: this.close,
- onMouseEnter: this.props.hoverIcon
- })
- ));
- }
-
- if (this.props.windowTitles) {
- if (name) {
- tabs.unshift(React.createElement(
- "h3",
- { key: "session-" + this.props.window.id + "-windowTitle", className: "center windowTitle" },
- name
- ));
- titleAdded = true;
- }
- }
- if (tabsperrow < 3) {
- tabsperrow = 3;
- }
- var children = [];
- if (!!titleAdded) {
- children.push(tabs.shift());
- }
- for (var j = 0; j < tabs.length; j++) {
- children.push(tabs[j]);
- if ((j + 1) % tabsperrow == 0 && j && this.props.layout.indexOf("blocks") > -1) {
- children.push(React.createElement("div", { key: "sessionnl_" + _this.props.window.id + "_" + j, className: "newliner" }));
- }
- }
- var focused = false;
- if (this.props.window.windowsInfo.focused || this.props.lastOpenWindow == this.props.window.windowsInfo.id) {
- focused = true;
- }
- return React.createElement(
- "div",
- {
- key: "session-" + this.props.window.id,
- id: "session-" + this.props.window.id,
- className: "window " + this.props.window.windowsInfo.state + " " + (focused ? "activeWindow" : "") + " session " + (this.props.layout.indexOf("blocks") > -1 ? "block" : "") + " " + this.props.layout + " " + this.state.color + " " + (this.props.window.windowsInfo.incognito ? " incognito" : "") + " " + (focused ? " focused" : ""),
- onClick: this.windowClick
- },
- React.createElement(
- "div",
- { className: "windowcontainer" },
- children
- )
- );
- } else {
- return null;
- }
- }
- }, {
- key: "shouldComponentUpdate",
- value: function shouldComponentUpdate(nextProps, nextState) {
- return true;
- }
- }, {
- key: "stop",
- value: function stop(e) {
- e.stopPropagation();
- }
- }, {
- key: "windowTabClick",
- value: function () {
- var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee(e) {
- return regeneratorRuntime.wrap(function _callee$(_context) {
- while (1) {
- switch (_context.prev = _context.next) {
- case 0:
- e.stopPropagation();
-
- case 1:
- case "end":
- return _context.stop();
- }
- }
- }, _callee, this);
- }));
-
- function windowTabClick(_x) {
- return _ref.apply(this, arguments);
- }
-
- return windowTabClick;
- }()
- }, {
- key: "windowClick",
- value: function () {
- var _ref2 = _asyncToGenerator(regeneratorRuntime.mark(function _callee2(e) {
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
- while (1) {
- switch (_context2.prev = _context2.next) {
- case 0:
- this.restoreSession(e, null);
-
- case 1:
- case "end":
- return _context2.stop();
- }
- }
- }, _callee2, this);
- }));
-
- function windowClick(_x2) {
- return _ref2.apply(this, arguments);
- }
-
- return windowClick;
- }()
- }, {
- key: "openTab",
- value: function () {
- var _ref3 = _asyncToGenerator(regeneratorRuntime.mark(function _callee3(e, index) {
- return regeneratorRuntime.wrap(function _callee3$(_context3) {
- while (1) {
- switch (_context3.prev = _context3.next) {
- case 0:
- console.log(index);
- this.restoreSession(e, index);
-
- case 2:
- case "end":
- return _context3.stop();
- }
- }
- }, _callee3, this);
- }));
-
- function openTab(_x3, _x4) {
- return _ref3.apply(this, arguments);
- }
-
- return openTab;
- }()
- }, {
- key: "restoreSession",
- value: function () {
- var _ref4 = _asyncToGenerator(regeneratorRuntime.mark(function _callee4(e, tabId) {
- var _this2;
-
- return regeneratorRuntime.wrap(function _callee4$(_context4) {
- while (1) {
- switch (_context4.prev = _context4.next) {
- case 0:
- _this2 = this;
-
- e.stopPropagation();
- console.log("source window", this.props.window);
-
-
- browser.runtime.sendMessage({ command: "create_window_with_session_tabs", window: this.props.window, tab_id: tabId });
-
- this.props.parentUpdate();
-
- if (!!window.inPopup) {
- window.close();
- } else {
- setTimeout(function () {
- this.props.scrollTo("window", browser.windows.WINDOW_ID_CURRENT);
- }.bind(this), 500);
- }
-
- case 6:
- case "end":
- return _context4.stop();
- }
- }
- }, _callee4, this);
- }));
-
- function restoreSession(_x5, _x6) {
- return _ref4.apply(this, arguments);
- }
-
- return restoreSession;
- }()
- }, {
- key: "close",
- value: function () {
- var _ref5 = _asyncToGenerator(regeneratorRuntime.mark(function _callee5(e) {
- var sessions, value;
- return regeneratorRuntime.wrap(function _callee5$(_context5) {
- while (1) {
- switch (_context5.prev = _context5.next) {
- case 0:
- e.stopPropagation();
-
- _context5.next = 3;
- return getLocalStorage('sessions', {});
-
- case 3:
- sessions = _context5.sent;
-
- delete sessions[this.props.window.id];
-
- _context5.next = 7;
- return setLocalStorage('sessions', sessions).catch(function (err) {
- console.log(err);
- console.error(err.message);
- });
-
- case 7:
- value = _context5.sent;
-
-
- console.log(value);
- this.props.parentUpdate();
-
- case 10:
- case "end":
- return _context5.stop();
- }
- }
- }, _callee5, this);
- }));
-
- function close(_x7) {
- return _ref5.apply(this, arguments);
- }
-
- return close;
- }()
- }, {
- key: "maximize",
- value: function maximize(e) {
- e.stopPropagation();
- }
- }]);
-
- return Session;
-}(React.Component);
-//# sourceMappingURL=Session.js.map
\ No newline at end of file
diff --git a/outlib/popup/views/Session.js.map b/outlib/popup/views/Session.js.map
deleted file mode 100644
index c837bbd7..00000000
--- a/outlib/popup/views/Session.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../lib/popup/views/Session.jsx"],"names":["Session","props","name","window","color","state","windowTitles","tabs","stop","bind","windowClick","windowTabClick","close","openTab","maximize","_this","hideWindow","titleAdded","tabsperrow","layout","indexOf","Math","ceil","sqrt","length","map","tab","tabId","id","isHidden","hiddenTabs","filterTabs","isSelected","selection","index","tabMiddleClick","hoverHandler","searchActive","select","tabactions","push","hoverIcon","unshift","children","shift","j","focused","windowsInfo","lastOpenWindow","incognito","nextProps","nextState","e","stopPropagation","restoreSession","console","log","_this2","browser","runtime","sendMessage","command","tab_id","parentUpdate","inPopup","setTimeout","scrollTo","windows","WINDOW_ID_CURRENT","getLocalStorage","sessions","setLocalStorage","catch","err","error","message","value","React","Component"],"mappings":"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","file":"Session.js","sourcesContent":["\"use strict\";\n\nclass Session extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\t//console.log(this.props.window);\n\t\t//console.log(this.props.window.name);\n\t\tvar name = this.props.window.name;\n\t\tvar color = this.props.window.color || \"default\";\n\t\tthis.state = {\n\t\t\twindowTitles: [],\n\t\t\tname: name,\n\t\t\tcolor: color,\n\t\t\ttabs: 0\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\tvar _this = this;\n\t\tvar name = this.state.name;\n\t\tvar color = this.state.color;\n\t\tvar hideWindow = true;\n\t\tvar titleAdded = false;\n\t\tvar tabsperrow = this.props.layout.indexOf(\"blocks\") > -1 ? Math.ceil(Math.sqrt(this.props.tabs.length + 2)) : this.props.layout == \"vertical\" ? 1 : 15;\n\t\tvar tabs = this.props.tabs.map(function(tab) {\n\t\t\tvar tabId = tab.id * tab.id * tab.id * 100;\n\t\t\tvar isHidden = !!_this.props.hiddenTabs[tabId] && _this.props.filterTabs;\n\t\t\tvar isSelected = !!_this.props.selection[tabId];\n\t\t\ttab.id = tab.index;\n\t\t\thideWindow &= isHidden;\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
0\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Move tabs to new window\\nWill move \" + maybePluralize(Object.keys(this.state.selection).length, '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\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
\n\t\t);\n\t}\n\n\tasync componentDidMount()\n\t{\n\t\tawait this.loadStorage();\n\n\t\tvar _this = this;\n\n\t\tvar runUpdate = debounce(this.update, 250);\n\t\trunUpdate = runUpdate.bind(this);\n\n\t\tvar runTabUpdate = (tabid, changeinfo, tab) => {\n\t\t\tif (!!_this.refs[\"window\" + tab.windowId]) {\n\t\t\t\tvar window = _this.refs[\"window\" + tab.windowId];\n\t\t\t\tif (!!window.refs[\"tab\" + tabid]) {\n\t\t\t\t\tvar tab = window.refs[\"tab\" + tabid];\n\t\t\t\t\ttab.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\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 (request, sender, sendResponse) {\n\t\t\tconsole.log(request.command);\n\t\t\tswitch (request.command) {\n\t\t\t\tcase \"refresh_windows\":\n\t\t\t\t\tfor (var window_id of request.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].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\tthis.sessionSync();\n\n\t\tthis.refs.root.focus();\n\t\tthis.focusRoot();\n\n\t\tvar _this = this;\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\tvar values = await getLocalStorage('sessions', {});\n\t\t// console.log(values);\n\t\tvar sessions = [];\n\t\tfor (var key in values) {\n\t\t\tvar sess = values[key];\n\t\t\tif (sess.id && sess.tabs && sess.windowsInfo) {\n\t\t\t\tsessions.push(values[key]);\n\t\t\t}\n\t\t}\n\t\tthis.state.sessions = sessions;\n\t\tthis.update();\n\t}\n\tfocusRoot() {\n\t\tthis.state.focusUpdates++;\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(val) {\n\t\tif (!val) {\n\t\t\treturn this.state.dragFavicon;\n\t\t} else {\n\t\t\tthis.state.dragFavicon = val;\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.state.optionsActive = !this.state.optionsActive;\n\t\tthis.forceUpdate();\n\t}\n\ttoggleColors(active, windowId) {\n\t\tif(!!active) {\n\t\t\tthis.state.colorsActive = windowId;\n\t\t}else{\n\t\t\tthis.state.colorsActive = false;\n\t\t}\n\t\tconsole.log(\"colorsActive\", active, windowId, this.state.colorsActive);\n\t\tthis.forceUpdate();\n\t}\n\n\tasync update() {\n\t\tvar windows = await browser.windows.getAll({ populate: true });\n\t\tvar 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.lastOpenWindow = windows[0].id;\n\t\tthis.state.windows = windows;\n\t\tthis.state.windowsbyid = {};\n\t\tthis.state.tabsbyid = {};\n\t\tvar tabCount = 0;\n\t\tfor (var i = 0; i < windows.length; i++) {\n\t\t\tvar window = windows[i];\n\t\t\tthis.state.windowsbyid[window.id] = window;\n\t\t\tfor (var j = 0; j < window.tabs.length; j++) {\n\t\t\t\tvar tab = window.tabs[j];\n\t\t\t\tthis.state.tabsbyid[tab.id] = tab;\n\t\t\t\ttabCount++;\n\t\t\t}\n\t\t}\n\t\tfor (var id in this.state.selection) {\n\t\t\tif (!this.state.tabsbyid[id]) {\n\t\t\t\tdelete this.state.selection[id];\n\t\t\t\tthis.state.lastSelect = id;\n\t\t\t}\n\t\t}\n\t\tthis.state.tabCount = tabCount;\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\tvar _this2 = this;\n\t\tvar tabs = Object.keys(this.state.selection).map(function(id) {\n\t\t\treturn _this2.state.tabsbyid[id];\n\t\t});\n\t\tif (tabs.length) {\n\t\t\tbrowser.runtime.sendMessage({command: \"close_tabs\", tabs: tabs});\n\t\t} else {\n\t\t\tvar 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) {\n\t\tbrowser.tabs.remove(tabId);\n\t}\n\tasync discardTabs() {\n\t\tvar _this2 = this;\n\t\tvar tabs = Object.keys(this.state.selection).map(function(id) {\n\t\t\treturn _this2.state.tabsbyid[id];\n\t\t});\n\t\tif (tabs.length) {\n\t\t\tbrowser.runtime.sendMessage({command: \"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\tvar _this3 = this;\n\t\tvar count = Object.keys(this.state.selection).length;\n\t\tvar tabs = Object.keys(this.state.selection).map(function(id) {\n\t\t\treturn _this3.state.tabsbyid[id];\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\tbrowser.runtime.sendMessage({command: \"focus_on_tab_and_window_delayed\", tab: tabs[0]});\n\t\t\t}else{\n\t\t\t\tbrowser.runtime.sendMessage({command: \"focus_on_tab_and_window\", tab: tabs[0]});\n\t\t\t}\n\t\t} else {\n\t\t\tbrowser.runtime.sendMessage({command: \"create_window_with_tabs\", tabs: tabs});\n\t\t}\n\t\tif (!!window.inPopup) window.close();\n\t}\n\tasync pinTabs() {\n\t\tvar _this4 = this;\n\t\tvar tabs = Object.keys(this.state.selection)\n\t\t\t.map(function(id) {\n\t\t\t\treturn _this4.state.tabsbyid[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 (var 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\tvar 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 = {};\n\t\tthis.state.hiddenTabs = {};\n\t\tthis.state.searchLen = 0;\n\t\tthis.state.dupTabs = !this.state.dupTabs;\n\t\tthis.refs.searchbox.value = \"\";\n\t\tif (!this.state.dupTabs) {\n\t\t\tthis.state.hiddenCount = 0;\n\t\t\tthis.forceUpdate();\n\t\t\treturn;\n\t\t}\n\t\tvar hiddenCount = this.state.hiddenCount || 0;\n\t\tvar idList = this.state.tabsbyid;\n\t\tvar dup = [];\n\t\tfor (var id in idList) {\n\t\t\tvar tab = this.state.tabsbyid[id];\n\t\t\tfor (var id2 in idList) {\n\t\t\t\tif (id == id2) continue;\n\t\t\t\tvar tab2 = this.state.tabsbyid[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 (var id in dup) {\n\t\t\tthis.state.searchLen++;\n\t\t\thiddenCount -= this.state.hiddenTabs[dup[id]] || 0;\n\t\t\tthis.state.selection[dup[id]] = true;\n\t\t\tdelete this.state.hiddenTabs[dup[id]];\n\t\t\tthis.state.lastSelect = dup[id];\n\t\t}\n\t\tfor (var id in idList) {\n\t\t\tvar tab = this.state.tabsbyid[id];\n\t\t\tif (dup.indexOf(id) === -1) {\n\t\t\t\thiddenCount += 1 - (this.state.hiddenTabs[id] || 0);\n\t\t\t\tthis.state.hiddenTabs[id] = true;\n\t\t\t\tdelete this.state.selection[id];\n\t\t\t\tthis.state.lastSelect = id;\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.state.hiddenCount = hiddenCount;\n\t\tthis.forceUpdate();\n\t}\n\tsearch(e) {\n\t\tvar hiddenCount = this.state.hiddenCount || 0;\n\t\tvar searchQuery = e.target.value || \"\";\n\t\tvar searchLen = searchQuery.length;\n\n\t\tvar searchType = \"normal\";\n\t\tvar 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 = {};\n\t\t\tthis.state.hiddenTabs = {};\n\t\t\thiddenCount = 0;\n\t\t} else {\n\t\t\tvar idList;\n\t\t\tvar lastSearchLen = this.state.searchLen;\n\t\t\tidList = this.state.tabsbyid;\n\t\t\tif(searchType == \"normal\") {\n\t\t\t\tif (!lastSearchLen) {\n\t\t\t\t\tidList = this.state.tabsbyid;\n\t\t\t\t} else if (lastSearchLen > searchLen) {\n\t\t\t\t\tidList = this.state.hiddenTabs;\n\t\t\t\t} else if (lastSearchLen < searchLen) {\n\t\t\t\t\tidList = this.state.selection;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var id in idList) {\n\t\t\t\tvar tab = this.state.tabsbyid[id];\n\t\t\t\tvar 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\tvar 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 (var 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\tvar andMatch = true;\n\t\t\t\t\tfor (var 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[id] || 0;\n\t\t\t\t\tthis.state.selection[id] = true;\n\t\t\t\t\tdelete this.state.hiddenTabs[id];\n\t\t\t\t\tthis.state.lastSelect = id;\n\t\t\t\t} else {\n\t\t\t\t\thiddenCount += 1 - (this.state.hiddenTabs[id] || 0);\n\t\t\t\t\tthis.state.hiddenTabs[id] = true;\n\t\t\t\t\tdelete this.state.selection[id];\n\t\t\t\t\tthis.state.lastSelect = id;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.state.hiddenCount = hiddenCount;\n\t\tthis.state.searchLen = searchLen;\n\t\tvar matches = Object.keys(this.state.selection).length;\n\t\tvar 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: Object.keys(this.state.selection).length + \" 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: Object.keys(this.state.selection).length + \" 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 = {};\n\t\tthis.setState({\n\t\t\tlastSelect: false\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 || Object.keys(this.state.selection).length > 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\t\t\tthis.state.hiddenTabs = {};\n\t\t\tthis.state.searchLen = 0;\n\t\t\tthis.refs.searchbox.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\tif (document.activeElement.type != \"text\" && document.activeElement.type != \"input\") {\n\t\t\t\t\tthis.refs.searchbox.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\tthis.refs.windowcontainer.focus();\n\t\t\t}\n\n\t\t\tif (document.activeElement != this.refs.searchbox || !this.refs.searchbox.value) {\n\t\t\t\tvar goLeft = e.keyCode == 37;\n\t\t\t\tvar goRight = e.keyCode == 39;\n\t\t\t\tvar goUp = e.keyCode == 38;\n\t\t\t\tvar 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\tvar 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\tvar selectedTabs = Object.keys(this.state.selection);\n\t\t\t\t\tif (!altKey && selectedTabs.length > 1) {\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar found = false;\n\t\t\t\t\t\tvar selectedNext = false;\n\t\t\t\t\t\tvar selectedTab = false;\n\t\t\t\t\t\tvar first = false;\n\t\t\t\t\t\tvar prev = false;\n\t\t\t\t\t\tvar last = false;\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.state.lastDirection = false;\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.state.lastDirection = false;\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.state.lastDirection = \"goRight\";\n\t\t\t\t\t\t\tif (goLeft) this.state.lastDirection = \"goLeft\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (var _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 (var _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 = {};\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 = {};\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 = {};\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 (var _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 (var _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 = {};\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 = {};\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 = {};\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 = {};\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 = {};\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\tvar selectedTabs = Object.keys(this.state.selection);\n\t\t\t\t\tif (selectedTabs.length > 1) {\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar found = false;\n\t\t\t\t\t\tvar selectedNext = false;\n\t\t\t\t\t\tvar selectedTab = -1;\n\t\t\t\t\t\tvar first = false;\n\t\t\t\t\t\tvar prev = false;\n\t\t\t\t\t\tvar last = false;\n\t\t\t\t\t\tvar tabPosition = -1;\n\t\t\t\t\t\tvar 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 (var _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 (var _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 (var _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 (var _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 = {};\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 = {};\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\tthis.refs.windowcontainer.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 (var _w of this.state.windows) {\n\t\t\tif (_w.id != windowId) continue;\n\t\t\tvar i = 0;\n\t\t\tfor (var _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 = {};\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, id) {\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\tif (this.state.layout == \"blocks\") {\n\t\t\t\tnewLayout = this.state.layout = \"blocks-big\";\n\t\t\t} else if (this.state.layout == \"blocks-big\") {\n\t\t\t\tnewLayout = this.state.layout = \"horizontal\";\n\t\t\t} else if (this.state.layout == \"horizontal\") {\n\t\t\t\tnewLayout = this.state.layout = \"vertical\";\n\t\t\t} else {\n\t\t\t\tnewLayout = this.state.layout = \"blocks\";\n\t\t\t}\n\t\t}\n\t\tthis.state.layout = newLayout;\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\tif (this.state.layout == \"blocks\") {\n\t\t\treturn \"blocks-big\";\n\t\t} else if (this.state.layout == \"blocks-big\") {\n\t\t\treturn \"horizontal\";\n\t\t} else if (this.state.layout == \"horizontal\") {\n\t\t\treturn \"vertical\";\n\t\t} else {\n\t\t\treturn \"blocks\";\n\t\t}\n\t}\n\treadablelayout(layout) {\n\t\tif (layout == \"blocks\") {\n\t\t\treturn \"Block\";\n\t\t} else if (layout == \"blocks-big\") {\n\t\t\treturn \"Big Block\";\n\t\t} else if (layout == \"horizontal\") {\n\t\t\treturn \"Horizontal\";\n\t\t} else {\n\t\t\treturn \"Vertical\";\n\t\t}\n\t}\n\tselect(id) {\n\t\tif (this.state.selection[id]) {\n\t\t\tdelete this.state.selection[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[id] = true;\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[id];\n\t\tif(this.refs['window' + tab.windowId] && this.refs['window' + tab.windowId].refs['tab' + id]) {\n\t\t\tthis.refs['window' + tab.windowId].refs['tab' + id].resolveFavIconUrl();\n\t\t}\n\n\t\tvar selected = Object.keys(this.state.selection).length;\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, tabs) {\n\t\tvar activate = false;\n\t\tvar 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[lastSelect]) {\n\t\t\t\tactivate = true;\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.state.selection[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\tvar rangeIndex1;\n\t\tvar rangeIndex2;\n\t\tfor (var 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\tvar neighbours = [];\n\t\t\tfor (var i = 0; i < tabs.length; i++) {\n\t\t\t\tvar tabId = tabs[i].id;\n\t\t\t\tif (tabId != id) {\n\t\t\t\t\tif (this.state.selection[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\tvar leftSibling = 0;\n\t\t\t\tvar rightSibling = tabs.length - 1;\n\t\t\t\tfor (var 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 (var 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\tvar diff1 = rangeIndex1 - leftSibling;\n\t\t\t\tvar 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\tvar leftSibling = rangeIndex1;\n\t\t\t\tvar rightSibling = rangeIndex1;\n\t\t\t\tfor (var 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 (var 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\tvar diff1 = rangeIndex1 - leftSibling;\n\t\t\t\tvar 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\tvar r1 = rangeIndex2;\n\t\t\tvar r2 = rangeIndex1;\n\t\t\trangeIndex1 = r1;\n\t\t\trangeIndex2 = r2;\n\t\t}\n\n\t\tfor (var i = 0; i < tabs.length; i++) {\n\t\t\tif (i >= rangeIndex1 && i <= rangeIndex2) {\n\t\t\t\tvar tabId = tabs[i].id;\n\t\t\t\tif (activate) {\n\t\t\t\t\tthis.state.selection[tabId] = true;\n\t\t\t\t} else {\n\t\t\t\t\tdelete this.state.selection[tabId];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.scrollTo('tab', this.state.lastSelect);\n\n\t\tvar selected = Object.keys(this.state.selection).length;\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, id) {\n\t\tif (!this.state.selection[id]) {\n\t\t\tthis.state.selection = {};\n\t\t\tthis.state.selection[id] = true;\n\t\t\tthis.state.lastSelect = id;\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\tasync drop(id, before) {\n\t\tvar _this5 = this;\n\t\tvar tab = this.state.tabsbyid[id];\n\t\tvar tabs = Object.keys(this.state.selection).map(function(id) {\n\t\t\treturn _this5.state.tabsbyid[id];\n\t\t});\n\t\tvar index = tab.index + (before ? 0 : 1);\n\n\t\tfor (var i = 0; i < tabs.length; i++) {\n\t\t\tvar t = 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.setState({\n\t\t\tselection: {}\n\t\t});\n\t\tthis.update();\n\t}\n\tasync dropWindow(windowId) {\n\t\tvar _this6 = this;\n\t\tvar tabs = Object.keys(this.state.selection).map(function(id) {\n\t\t\treturn _this6.state.tabsbyid[id];\n\t\t});\n\n\t\tbrowser.runtime.sendMessage({command: \"move_tabs_to_window\", window_id: windowId, tabs: tabs});\n\n\t\tthis.setState({\n\t\t\tselection: {}\n\t\t});\n\t}\n\tasync changeTabLimit(e) {\n\t\tthis.state.tabLimit = e.target.value;\n\t\tawait setLocalStorage(\"tabLimit\", this.state.tabLimit);\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) {\n\t\tthis.state.tabWidth = e.target.value;\n\t\tawait setLocalStorage(\"tabWidth\", this.state.tabWidth);\n\t\tdocument.body.style.width = this.state.tabWidth + \"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) {\n\t\tthis.state.tabHeight = e.target.value;\n\t\tawait setLocalStorage(\"tabHeight\", this.state.tabHeight);\n\t\tdocument.body.style.height = this.state.tabHeight + \"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\tthis.state.animations = !this.state.animations;\n\t\tawait setLocalStorage(\"animations\", this.state.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\tthis.state.windowTitles = !this.state.windowTitles;\n\t\tawait setLocalStorage(\"windowTitles\", this.state.windowTitles);\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\tthis.state.compact = !this.state.compact;\n\t\tawait setLocalStorage(\"compact\", this.state.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\tthis.state.dark = !this.state.dark;\n\t\tawait setLocalStorage(\"dark\", this.state.dark);\n\t\tthis.darkText();\n\t\tif (this.state.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\tthis.state.tabactions = !this.state.tabactions;\n\t\tawait setLocalStorage(\"tabactions\", this.state.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\tthis.state.badge = !this.state.badge;\n\t\tawait setLocalStorage(\"badge\", this.state.badge);\n\t\tthis.badgeText();\n\t\tbrowser.runtime.sendMessage({command: \"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\tthis.state.openInOwnTab = !this.state.openInOwnTab;\n\t\tawait setLocalStorage(\"openInOwnTab\", this.state.openInOwnTab);\n\t\tthis.openInOwnTabText();\n\t\tbrowser.runtime.sendMessage({ command: \"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\tthis.state.sessionsFeature = !this.state.sessionsFeature;\n\t\tawait setLocalStorage(\"sessionsFeature\", this.state.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) {\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\t\t\tconst self = this;\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);\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 (var 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\tvar 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\tvar value = await 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\tif (navigator.userAgent.search(\"Firefox\") > -1) {\n\t\t\tthis.state.hideWindows = false;\n\t\t} else {\n\t\t\tvar granted = await browser.permissions.request({ permissions: [\"system.display\"] });\n\t\t\tif (granted) {\n\t\t\t\tthis.state.hideWindows = !this.state.hideWindows;\n\t\t\t} else {\n\t\t\t\tthis.state.hideWindows = false;\n\t\t\t}\n\t\t}\n\n\t\tawait setLocalStorage(\"hideWindows\", this.state.hideWindows);\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\tthis.state.filterTabs = !this.state.filterTabs;\n\t\tawait setLocalStorage(\"filter-tabs\", this.state.filterTabs);\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\tisInViewport(element, ofElement) {\n\t\tvar rect = element.getBoundingClientRect();\n\t\treturn rect.top >= 0 && rect.left >= 0 && rect.bottom <= ofElement.height && rect.right <= ofElement.width;\n\t}\n\telVisible(elem) {\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\tif (style.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 = 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\nfunction debounce(func, wait, immediate) {\n\tvar timeout;\n\treturn function() {\n\t\tvar context = this,\n\t\t\targs = 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\nconst maybePluralize = (count, noun, suffix = 's') =>\n `${count} ${noun}${count !== 1 ? suffix : ''}`;"]}
\ No newline at end of file
diff --git a/outlib/popup/views/TabOptions.js b/outlib/popup/views/TabOptions.js
deleted file mode 100644
index d8e0d0b2..00000000
--- a/outlib/popup/views/TabOptions.js
+++ /dev/null
@@ -1,734 +0,0 @@
-"use strict";
-
-var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
-var TabOptions = function (_React$Component) {
- _inherits(TabOptions, _React$Component);
-
- function TabOptions(props) {
- _classCallCheck(this, TabOptions);
-
- var _this = _possibleConstructorReturn(this, (TabOptions.__proto__ || Object.getPrototypeOf(TabOptions)).call(this, props));
-
- _this.state = {};
- return _this;
- }
-
- _createClass(TabOptions, [{
- key: "logo",
- value: function logo() {
- var logo = [React.createElement("img", { src: "images/browsers.svg", style: { maxWidth: "3rem" } }), React.createElement(
- "h2",
- null,
- "Tab Manager Plus ",
- "5.3.1"
- )];
-
- return React.createElement(
- "div",
- { className: "logo-options" },
- React.createElement(
- "div",
- { className: "logo-box" },
- logo
- )
- );
- }
- }, {
- key: "optionsSection",
- value: function optionsSection() {
- var opts = [React.createElement(
- "div",
- { className: "optionsBox" },
- React.createElement(
- "h4",
- null,
- "Tab options"
- ),
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement("input", {
- type: "number",
- onMouseEnter: this.props.tabLimitText,
- onChange: this.props.changeTabLimit,
- value: this.props.tabLimit,
- id: "enable_tabLimit",
- name: "enable_tabLimit"
- }),
- React.createElement("label", { onMouseEnter: this.props.tabLimitText, htmlFor: "enable_tabLimit", style: { whiteSpace: "pre", lineHeight: "2rem" } }),
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "enable_tabLimit", style: { textAlign: "", whiteSpace: "pre", lineHeight: "2rem" } },
- "Limit Tabs Per Window"
- ),
- React.createElement(
- "div",
- { className: "option-description" },
- "Once you reach this number of tabs, Tab Manager will move new tabs to a new window instead. No more windows with 60 tabs open!",
- React.createElement("br", null),
- React.createElement(
- "i",
- null,
- "By default: 0 ( disabled )"
- ),
- React.createElement("br", null),
- React.createElement(
- "i",
- null,
- "Suggested value: 15"
- )
- )
- )
- ), React.createElement(
- "div",
- { className: "optionsBox" },
- React.createElement(
- "h4",
- null,
- "Popup size"
- ),
- React.createElement(
- "div",
- { className: "option-description" },
- "You 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 this. 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 Manager in a new tab."
- ),
- React.createElement(
- "div",
- { className: "toggle-box half-size float-right" },
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "enable_tabWidth", style: { textAlign: "", whiteSpace: "pre", lineHeight: "2rem" } },
- "Popup Width"
- ),
- React.createElement("input", {
- type: "number",
- min: "450",
- max: "800",
- step: "25",
- onMouseEnter: this.props.tabWidthText,
- onChange: this.props.changeTabWidth,
- value: this.props.tabWidth,
- id: "enable_tabWidth",
- name: "enable_tabWidth"
- }),
- React.createElement("label", { onMouseEnter: this.props.tabWidthText, htmlFor: "enable_tabWidth", style: { whiteSpace: "pre", lineHeight: "2rem" } })
- ),
- React.createElement(
- "div",
- { className: "toggle-box half-size" },
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "enable_tabHeight", style: { textAlign: "", whiteSpace: "pre", lineHeight: "2rem" } },
- "Popup Height"
- ),
- React.createElement("input", {
- type: "number",
- min: "400",
- max: "600",
- step: "25",
- onMouseEnter: this.props.tabHeightText,
- onChange: this.props.changeTabHeight,
- value: this.props.tabHeight,
- id: "enable_tabHeight",
- name: "enable_tabHeight"
- }),
- React.createElement("label", { onMouseEnter: this.props.tabHeightText, htmlFor: "enable_tabHeight", style: { whiteSpace: "pre", lineHeight: "2rem" } })
- )
- ), React.createElement(
- "div",
- { className: "optionsBox" },
- React.createElement(
- "h4",
- null,
- "Window style"
- ),
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "div",
- { className: "toggle" },
- React.createElement("input", {
- type: "checkbox",
- onMouseEnter: this.props.darkText,
- onChange: this.props.toggleDark,
- checked: this.props.dark,
- id: "dark_mode",
- name: "dark_mode"
- }),
- React.createElement("label", { onMouseEnter: this.props.darkText, htmlFor: "dark_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } })
- ),
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "dark_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } },
- "Dark mode"
- ),
- React.createElement(
- "div",
- { className: "option-description" },
- "Dark mode, for working at night time. ",
- React.createElement("br", null),
- React.createElement(
- "i",
- null,
- "By default: disabled"
- )
- )
- ),
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "div",
- { className: "toggle" },
- React.createElement("input", {
- type: "checkbox",
- onMouseEnter: this.props.compactText,
- onChange: this.props.toggleCompact,
- checked: this.props.compact,
- id: "compact_mode",
- name: "compact_mode"
- }),
- React.createElement("label", { onMouseEnter: this.props.compactText, htmlFor: "compact_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } })
- ),
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "compact_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } },
- "Compact mode"
- ),
- React.createElement(
- "div",
- { className: "option-description" },
- "Saves a little bit of space around the icons. Makes it less beautiful, but more space efficient. ",
- React.createElement("br", null),
- React.createElement(
- "i",
- null,
- "By default: disabled"
- )
- )
- ),
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "div",
- { className: "toggle" },
- React.createElement("input", {
- type: "checkbox",
- onMouseEnter: this.props.animationsText,
- onChange: this.props.toggleAnimations,
- checked: this.props.animations,
- id: "enable_animations",
- name: "enable_animations"
- }),
- React.createElement("label", { onMouseEnter: this.props.animationsText, htmlFor: "enable_animations", style: { whiteSpace: "pre", lineHeight: "2rem" } })
- ),
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "enable_animations", style: { whiteSpace: "pre", lineHeight: "2rem" } },
- "Animations"
- ),
- React.createElement(
- "div",
- { className: "option-description" },
- "Disables/enables animations and transitions in the popup. ",
- React.createElement("br", null),
- React.createElement(
- "i",
- null,
- "By default: enabled"
- )
- )
- ),
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "div",
- { className: "toggle" },
- React.createElement("input", {
- type: "checkbox",
- onMouseEnter: this.props.windowTitlesText,
- onChange: this.props.toggleWindowTitles,
- checked: this.props.windowTitles,
- id: "enable_windowTitles",
- name: "enable_windowTitles"
- }),
- React.createElement("label", { onMouseEnter: this.props.windowTitlesText, htmlFor: "enable_windowTitles", style: { whiteSpace: "pre", lineHeight: "2rem" } })
- ),
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "enable_windowTitles", style: { whiteSpace: "pre", lineHeight: "2rem" } },
- "Window titles"
- ),
- React.createElement(
- "div",
- { className: "option-description" },
- "Disables/enables window titles. ",
- React.createElement("br", null),
- React.createElement(
- "i",
- null,
- "By default: enabled"
- )
- )
- )
- ), React.createElement(
- "div",
- { className: "optionsBox" },
- React.createElement(
- "h4",
- null,
- "Session Management"
- ),
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "div",
- { className: "toggle" },
- React.createElement("input", {
- type: "checkbox",
- onMouseEnter: this.props.sessionsText,
- onChange: this.props.toggleSessions,
- checked: this.props.sessionsFeature,
- id: "session_mode",
- name: "session_mode"
- }),
- React.createElement("label", { onMouseEnter: this.props.sessionsText, htmlFor: "session_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } })
- ),
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "session_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } },
- "Save Windows for Later"
- ),
- React.createElement(
- "div",
- { className: "option-description" },
- "Allows you to save windows as sessions ( saved windows ). You can restore these saved windows later on. The restored windows won't have the history restored. This feature is currently in beta.",
- React.createElement("br", null),
- React.createElement(
- "i",
- null,
- "By default: disabled ( experimental feature )"
- )
- )
- ),
- this.props.sessionsFeature && React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "session_export", style: { whiteSpace: "pre", lineHeight: "2rem" } },
- React.createElement(
- "h4",
- null,
- "Export/Backup Sessions"
- )
- ),
- React.createElement(
- "button",
- { type: "button", onMouseEnter: this.props.exportSessionsText, onClick: this.props.exportSessions, id: "session_export", name: "session_export" },
- "Export/Backup Sessions"
- ),
- React.createElement("label", { onMouseEnter: this.props.exportSessionsText, htmlFor: "session_export", style: { whiteSpace: "pre", lineHeight: "2rem" } })
- ),
- React.createElement(
- "div",
- { className: "option-description" },
- "Allows you to backup your saved windows to an external file."
- )
- ),
- this.props.sessionsFeature && React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "session_import", style: { whiteSpace: "pre", lineHeight: "2rem" } },
- React.createElement(
- "h4",
- null,
- "Import/Restore Sessions"
- )
- ),
- React.createElement("input", {
- type: "file",
- accept: "application/json",
- onMouseEnter: this.props.importSessionsText,
- onChange: this.props.importSessions,
- id: "session_import",
- name: "session_import",
- placeholder: "Import/Restore Sessions"
- }),
- React.createElement("label", { onMouseEnter: this.props.importSessionsText, htmlFor: "session_import", style: { whiteSpace: "pre", lineHeight: "2rem" } })
- ),
- React.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."
- )
- )
- ), React.createElement(
- "div",
- { className: "optionsBox" },
- React.createElement(
- "h4",
- null,
- "Popup icon"
- ),
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "div",
- { className: "toggle" },
- React.createElement("input", {
- type: "checkbox",
- onMouseEnter: this.props.badgeText,
- onChange: this.props.toggleBadge,
- checked: this.props.badge,
- id: "badge_mode",
- name: "badge_mode"
- }),
- React.createElement("label", { onMouseEnter: this.props.badgeText, htmlFor: "badge_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } })
- ),
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "badge_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } },
- "Count Tabs"
- ),
- React.createElement(
- "div",
- { className: "option-description" },
- "Shows you the number of open tabs over the Tab Manager icon in the top right of your browser.",
- React.createElement("br", null),
- React.createElement(
- "i",
- null,
- "By default: enabled"
- )
- )
- ),
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "div",
- { className: "toggle" },
- React.createElement("input", {
- type: "checkbox",
- onMouseEnter: this.props.openInOwnTabText,
- onChange: this.props.toggleOpenInOwnTab,
- checked: this.props.openInOwnTab,
- id: "openinowntab_mode",
- name: "openinowntab_mode"
- }),
- React.createElement("label", { onMouseEnter: this.props.openInOwnTabText, htmlFor: "openinowntab_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } })
- ),
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "openinowntab_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } },
- "Open in own Tab by default"
- ),
- React.createElement(
- "div",
- { className: "option-description" },
- "Opens the Tab Manager in own tab by default, instead of the popup.",
- React.createElement("br", null),
- React.createElement(
- "i",
- null,
- "By default: disabled"
- )
- )
- )
- ), React.createElement(
- "div",
- { className: "optionsBox" },
- React.createElement(
- "h4",
- null,
- "Window settings"
- ),
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "div",
- { className: "toggle" },
- React.createElement("input", {
- type: "checkbox",
- onMouseEnter: this.props.hideText,
- onChange: this.props.toggleHide,
- checked: this.props.hideWindows,
- id: "auto_hide",
- name: "auto_hide"
- }),
- React.createElement("label", { onMouseEnter: this.props.hideText, htmlFor: "auto_hide", style: { whiteSpace: "pre", lineHeight: "2rem" } })
- ),
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "auto_hide", style: { whiteSpace: "pre", lineHeight: "2rem" } },
- "Minimize inactive windows"
- ),
- React.createElement(
- "div",
- { className: "option-description" },
- "With 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 minimized to the tray automatically.",
- React.createElement("br", null),
- React.createElement(
- "i",
- null,
- "By default: disabled"
- )
- )
- ),
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "div",
- { className: "toggle" },
- React.createElement("input", {
- type: "checkbox",
- onMouseEnter: this.props.tabActionsText,
- onChange: this.props.toggleTabActions,
- checked: this.props.tabactions,
- id: "tabactions_mode",
- name: "tabactions_mode"
- }),
- React.createElement("label", { onMouseEnter: this.props.tabActionsText, htmlFor: "tabactions_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } })
- ),
- React.createElement(
- "label",
- { className: "textlabel", htmlFor: "tabactions_mode", style: { whiteSpace: "pre", lineHeight: "2rem" } },
- "Show action buttons"
- ),
- React.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.",
- React.createElement("br", null),
- React.createElement(
- "i",
- null,
- "By default: enabled"
- )
- )
- )
- ), React.createElement(
- "div",
- { className: "optionsBox" },
- React.createElement(
- "h4",
- null,
- "Advanced settings"
- ),
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "a",
- { href: "#", onClick: this.openIncognitoOptions },
- "Allow in Incognito"
- )
- ),
- React.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."
- )
- ),
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "a",
- { href: "#", onClick: this.openShortcuts },
- "Change shortcut key"
- ),
- React.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."
- )
- )
- ), React.createElement(
- "div",
- { className: "optionsBox" },
- React.createElement(
- "div",
- { className: "toggle-box" },
- React.createElement(
- "h4",
- null,
- "Right mouse button"
- ),
- React.createElement(
- "div",
- { className: "option-description" },
- "With the right mouse button you can select tabs"
- ),
- React.createElement(
- "h4",
- null,
- "Shift+Right mouse button"
- ),
- React.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"
- ),
- React.createElement(
- "h4",
- null,
- "Middle mouse button"
- ),
- React.createElement(
- "div",
- { className: "option-description" },
- "With the middle mouse button you can close a tab"
- ),
- React.createElement(
- "h4",
- null,
- "[Enter / Return] button"
- ),
- React.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"
- )
- )
- )];
-
- return React.createElement(
- "div",
- { className: "toggle-options" },
- opts
- );
- }
- }, {
- key: "openIncognitoOptions",
- value: function openIncognitoOptions() {
- browser.tabs.create({
- url: "chrome://extensions/?id=cnkdjjdmfiffagllbiiilooaoofcoeff"
- });
- }
- }, {
- key: "openShortcuts",
- value: function openShortcuts() {
- browser.tabs.create({ url: "chrome://extensions/shortcuts" });
- }
- }, {
- key: "licenses",
- value: function licenses() {
- var licenses = [];
- licenses.push(React.createElement(
- "div",
- { className: "license" },
- "Tab Manager Plus is based on",
- " ",
- React.createElement(
- "a",
- { href: "https://github.com/dsc/Tab-Manager", target: "_blank", title: "Tab-Manager" },
- "dsc/Tab-Manager"
- ),
- ",",
- " ",
- React.createElement(
- "a",
- { href: "https://github.com/joshperry/Tab-Manager", target: "_blank", title: "Tab-Manager" },
- "joshperry/Tab-Manager"
- ),
- " ",
- "and",
- " ",
- React.createElement(
- "a",
- { href: "https://github.com/JonasNo/Tab-Manager", target: "_blank", title: "Tab-Manager" },
- "JonasNo/Tab-Manager"
- ),
- ".",
- React.createElement("br", null),
- "Licensed by",
- " ",
- React.createElement(
- "a",
- { href: "http://creativecommons.org/licenses/by/3.0/", target: "_blank", title: " Mozilla Public License (MPL)" },
- "MPLv2"
- ),
- ". Icons made by",
- " ",
- React.createElement(
- "a",
- { href: "http://www.freepik.com", title: "Freepik" },
- "Freepik"
- ),
- " ",
- "from",
- " ",
- React.createElement(
- "a",
- { href: "http://www.flaticon.com", title: "Flaticon" },
- "www.flaticon.com"
- ),
- ". Licensed by",
- " ",
- React.createElement(
- "a",
- { href: "http://creativecommons.org/licenses/by/3.0/", target: "_blank", title: "Creative Commons BY 3.0" },
- "CC 3.0 BY"
- ),
- "."
- ));
-
- return React.createElement(
- "div",
- { className: "licenses" },
- licenses
- );
- }
- }, {
- key: "render",
- value: function render() {
- var children = [];
-
- children.push(this.logo());
- children.push(this.optionsSection());
- children.push(React.createElement("div", { className: "clearfix" }));
-
- children.push(this.licenses());
-
- return React.createElement(
- "div",
- { className: "options-window" },
- React.createElement(
- "div",
- null,
- children
- )
- );
- }
- }]);
-
- return TabOptions;
-}(React.Component);
-//# sourceMappingURL=TabOptions.js.map
\ No newline at end of file
diff --git a/outlib/popup/views/TabOptions.js.map b/outlib/popup/views/TabOptions.js.map
deleted file mode 100644
index bfd989f9..00000000
--- a/outlib/popup/views/TabOptions.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../lib/popup/views/TabOptions.jsx"],"names":["TabOptions","props","state","logo","maxWidth","opts","tabLimitText","changeTabLimit","tabLimit","whiteSpace","lineHeight","textAlign","tabWidthText","changeTabWidth","tabWidth","tabHeightText","changeTabHeight","tabHeight","darkText","toggleDark","dark","compactText","toggleCompact","compact","animationsText","toggleAnimations","animations","windowTitlesText","toggleWindowTitles","windowTitles","sessionsText","toggleSessions","sessionsFeature","exportSessionsText","exportSessions","importSessionsText","importSessions","badgeText","toggleBadge","badge","openInOwnTabText","toggleOpenInOwnTab","openInOwnTab","hideText","toggleHide","hideWindows","tabActionsText","toggleTabActions","tabactions","openIncognitoOptions","openShortcuts","browser","tabs","create","url","licenses","push","children","optionsSection","React","Component"],"mappings":"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","file":"TabOptions.js","sourcesContent":["\"use strict\";\n\nclass TabOptions extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {};\n\t}\n\tlogo() {\n\t\tvar logo = [,
\n\t\t\t\t\t\tOnce you reach this number of tabs, Tab Manager will move new tabs to a new window instead. No more windows with 60 tabs open!\n\t\t\t\t\t\t \n\t\t\t\t\t\tBy default: 0 ( disabled )\n\t\t\t\t\t\t \n\t\t\t\t\t\tSuggested value: 15\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
,\n\t\t\t
\n\t\t\t\t
Popup size
\n\t\t\t\t
\n\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\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\tManager in a new tab.\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
\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
\n\t\t\t
,\n\t\t\t
\n\t\t\t\t
Window style
\n\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
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\tDark mode, for working at night time. \n\t\t\t\t\t\tBy default: disabled\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\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
\n\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\tBy default: disabled\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\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
\n\t\t\t\t\t\tDisables/enables animations and transitions in the popup. \n\t\t\t\t\t\tBy default: enabled\n\t\t\t\t\t
\n\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\trestored. This feature is currently in beta.\n\t\t\t\t\t\t \n\t\t\t\t\t\tBy default: disabled ( experimental feature )\n\t\t\t\t\t
\n\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
\n\t\t\t\t
}\n\t\t\t
,\n\t\t\t
\n\t\t\t\t
Popup icon
\n\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
\n\t\t\t\t\t\n\t\t\t\t\t
\n\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 \n\t\t\t\t\t\tBy default: enabled\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\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
\n\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 \n\t\t\t\t\t\tBy default: disabled\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
,\n\t\t\t
\n\t\t\t\t
Window settings
\n\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
\n\t\t\t\t\t\n\t\t\t\t\t
\n\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\tminimized to the tray automatically.\n\t\t\t\t\t\t \n\t\t\t\t\t\tBy default: disabled\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\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
\n\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 \n\t\t\t\t\t\tBy default: enabled\n\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
\n\t\t\t
,\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Right mouse button
\n\t\t\t\t\t
With the right mouse button you can select tabs
\n\t\t\t\t\t
Shift+Right mouse button
\n\t\t\t\t\t
\n\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
\n\t\t\t\t\t
Middle mouse button
\n\t\t\t\t\t
With the middle mouse button you can close a tab
\n\t\t\t\t\t
[Enter / Return] button
\n\t\t\t\t\t
\n\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
\n\t\t\t\t\t\tOnce you reach this number of tabs, Tab Manager will move new tabs to a new window instead. No more windows with 60 tabs open!\n\t\t\t\t\t\t \n\t\t\t\t\t\tBy default: 0 ( disabled )\n\t\t\t\t\t\t \n\t\t\t\t\t\tSuggested value: 15\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
,\n\t\t\t
\n\t\t\t\t
Popup size
\n\t\t\t\t
\n\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\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\tManager in a new tab.\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
\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
\n\t\t\t
,\n\t\t\t
\n\t\t\t\t
Window style
\n\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
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\tDark mode, for working at night time. \n\t\t\t\t\t\tBy default: disabled\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\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
\n\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\tBy default: disabled\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\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
\n\t\t\t\t\t\tDisables/enables animations and transitions in the popup. \n\t\t\t\t\t\tBy default: enabled\n\t\t\t\t\t
\n\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\trestored. This feature is currently in beta.\n\t\t\t\t\t\t \n\t\t\t\t\t\tBy default: disabled ( experimental feature )\n\t\t\t\t\t
\n\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
\n\t\t\t\t
}\n\t\t\t
,\n\t\t\t
\n\t\t\t\t
Popup icon
\n\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
\n\t\t\t\t\t\n\t\t\t\t\t
\n\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 \n\t\t\t\t\t\tBy default: enabled\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\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
\n\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 \n\t\t\t\t\t\tBy default: disabled\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
,\n\t\t\t
\n\t\t\t\t
Window settings
\n\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
\n\t\t\t\t\t\n\t\t\t\t\t
\n\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 \n\t\t\t\t\t\tBy default: enabled\n\t\t\t\t\t
\n\t\t\t\t\t\tIf you also want to see your private tabs in the Tab Manager overview, then enable private windows access for this extension.\n\t\t\t\t\t
\n\t\t\t\t\t\tIf you want to disable or change the shortcut key with which to open Tab Manager Plus, you can do so in the add-ons settings. Click on the settings\n\t\t\t\t\t\tcog on the next page, and then 'Manage Extension Shortcuts'.\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
,\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Right mouse button
\n\t\t\t\t\t
With the right mouse button you can select tabs
\n\t\t\t\t\t
Shift+Right mouse button
\n\t\t\t\t\t
\n\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
\n\t\t\t\t\t
Middle mouse button
\n\t\t\t\t\t
With the middle mouse button you can close a tab
\n\t\t\t\t\t
[Enter / Return] button
\n\t\t\t\t\t
\n\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
-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) : (\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t)}\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