diff --git a/src/assets/jquery.nice-select.min.js b/src/assets/jquery.nice-select.min.js
index fcf983f..88eb2d6 100644
--- a/src/assets/jquery.nice-select.min.js
+++ b/src/assets/jquery.nice-select.min.js
@@ -1,119 +1,4 @@
/* jQuery Nice Select - v1.0
https://github.com/hernansartorio/jquery-nice-select
Made by HernΓ‘n Sartorio */
-!(function (e) {
- e.fn.niceSelect = function (t) {
- function s(t) {
- t.after(
- e("
")
- .addClass("nice-select")
- .addClass(t.attr("class") || "")
- .addClass(t.attr("disabled") ? "disabled" : "")
- .attr("tabindex", t.attr("disabled") ? null : "0")
- .html('')
- );
- var s = t.next(),
- n = t.find("option"),
- i = t.find("option:selected");
- s.find(".current").html(i.data("display") || i.text()),
- n.each(function (t) {
- var n = e(this),
- i = n.data("display");
- s.find("ul").append(
- e("")
- .attr("data-value", n.val())
- .attr("data-display", i || null)
- .addClass(
- "option" +
- (n.is(":selected") ? " selected" : "") +
- (n.is(":disabled") ? " disabled" : "")
- )
- .html(n.text())
- );
- });
- }
- if ("string" == typeof t)
- return (
- "update" == t
- ? this.each(function () {
- var t = e(this),
- n = e(this).next(".nice-select"),
- i = n.hasClass("open");
- n.length && (n.remove(), s(t), i && t.next().trigger("click"));
- })
- : "destroy" == t
- ? (this.each(function () {
- var t = e(this),
- s = e(this).next(".nice-select");
- s.length && (s.remove(), t.css("display", ""));
- }),
- 0 == e(".nice-select").length && e(document).off(".nice_select"))
- : console.log('Method "' + t + '" does not exist.'),
- this
- );
- this.hide(),
- this.each(function () {
- var t = e(this);
- t.next().hasClass("nice-select") || s(t);
- }),
- e(document).off(".nice_select"),
- e(document).on("click.nice_select", ".nice-select", function (t) {
- var s = e(this);
- e(".nice-select").not(s).removeClass("open"),
- s.toggleClass("open"),
- s.hasClass("open")
- ? (s.find(".option"),
- s.find(".focus").removeClass("focus"),
- s.find(".selected").addClass("focus"))
- : s.focus();
- }),
- e(document).on("click.nice_select", function (t) {
- 0 === e(t.target).closest(".nice-select").length &&
- e(".nice-select").removeClass("open").find(".option");
- }),
- e(document).on(
- "click.nice_select",
- ".nice-select .option:not(.disabled)",
- function (t) {
- var s = e(this),
- n = s.closest(".nice-select");
- n.find(".selected").removeClass("selected"), s.addClass("selected");
- var i = s.data("display") || s.text();
- n.find(".current").text(i),
- n.prev("select").val(s.data("value")).trigger("change");
- }
- ),
- e(document).on("keydown.nice_select", ".nice-select", function (t) {
- var s = e(this),
- n = e(s.find(".focus") || s.find(".list .option.selected"));
- if (32 == t.keyCode || 13 == t.keyCode)
- return (
- s.hasClass("open") ? n.trigger("click") : s.trigger("click"), !1
- );
- if (40 == t.keyCode) {
- if (s.hasClass("open")) {
- var i = n.nextAll(".option:not(.disabled)").first();
- i.length > 0 &&
- (s.find(".focus").removeClass("focus"), i.addClass("focus"));
- } else s.trigger("click");
- return !1;
- }
- if (38 == t.keyCode) {
- if (s.hasClass("open")) {
- var l = n.prevAll(".option:not(.disabled)").first();
- l.length > 0 &&
- (s.find(".focus").removeClass("focus"), l.addClass("focus"));
- } else s.trigger("click");
- return !1;
- }
- if (27 == t.keyCode) s.hasClass("open") && s.trigger("click");
- else if (9 == t.keyCode && s.hasClass("open")) return !1;
- });
- var n = document.createElement("a").style;
- return (
- (n.cssText = "pointer-events:auto"),
- "auto" !== n.pointerEvents && e("html").addClass("no-csspointerevents"),
- this
- );
- };
-})(jQuery);
+!function(e){e.fn.niceSelect=function(t){function s(t){t.after(e("").addClass("nice-select").addClass(t.attr("class")||"").addClass(t.attr("disabled")?"disabled":"").attr("tabindex",t.attr("disabled")?null:"0").html(''));var s=t.next(),n=t.find("option"),i=t.find("option:selected");s.find(".current").html(i.data("display")||i.text()),n.each(function(t){var n=e(this),i=n.data("display");s.find("ul").append(e("").attr("data-value",n.val()).attr("data-display",i||null).addClass("option"+(n.is(":selected")?" selected":"")+(n.is(":disabled")?" disabled":"")).html(n.text()))})}if("string"==typeof t)return"update"==t?this.each(function(){var t=e(this),n=e(this).next(".nice-select"),i=n.hasClass("open");n.length&&(n.remove(),s(t),i&&t.next().trigger("click"))}):"destroy"==t?(this.each(function(){var t=e(this),s=e(this).next(".nice-select");s.length&&(s.remove(),t.css("display",""))}),0==e(".nice-select").length&&e(document).off(".nice_select")):console.log('Method "'+t+'" does not exist.'),this;this.hide(),this.each(function(){var t=e(this);t.next().hasClass("nice-select")||s(t)}),e(document).off(".nice_select"),e(document).on("click.nice_select",".nice-select",function(t){var s=e(this);e(".nice-select").not(s).removeClass("open"),s.toggleClass("open"),s.hasClass("open")?(s.find(".option"),s.find(".focus").removeClass("focus"),s.find(".selected").addClass("focus")):s.focus()}),e(document).on("click.nice_select",function(t){0===e(t.target).closest(".nice-select").length&&e(".nice-select").removeClass("open").find(".option")}),e(document).on("click.nice_select",".nice-select .option:not(.disabled)",function(t){var s=e(this),n=s.closest(".nice-select");n.find(".selected").removeClass("selected"),s.addClass("selected");var i=s.data("display")||s.text();n.find(".current").text(i),n.prev("select").val(s.data("value")).trigger("change")}),e(document).on("keydown.nice_select",".nice-select",function(t){var s=e(this),n=e(s.find(".focus")||s.find(".list .option.selected"));if(32==t.keyCode||13==t.keyCode)return s.hasClass("open")?n.trigger("click"):s.trigger("click"),!1;if(40==t.keyCode){if(s.hasClass("open")){var i=n.nextAll(".option:not(.disabled)").first();i.length>0&&(s.find(".focus").removeClass("focus"),i.addClass("focus"))}else s.trigger("click");return!1}if(38==t.keyCode){if(s.hasClass("open")){var l=n.prevAll(".option:not(.disabled)").first();l.length>0&&(s.find(".focus").removeClass("focus"),l.addClass("focus"))}else s.trigger("click");return!1}if(27==t.keyCode)s.hasClass("open")&&s.trigger("click");else if(9==t.keyCode&&s.hasClass("open"))return!1});var n=document.createElement("a").style;return n.cssText="pointer-events:auto","auto"!==n.pointerEvents&&e("html").addClass("no-csspointerevents"),this}}(jQuery);
\ No newline at end of file
diff --git a/src/assets/nice-select.css b/src/assets/nice-select.css
index 0ef3c39..d72a7cb 100644
--- a/src/assets/nice-select.css
+++ b/src/assets/nice-select.css
@@ -21,146 +21,118 @@
-webkit-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
-webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
white-space: nowrap;
- width: auto;
-}
-.nice-select:hover {
- border-color: #dbdbdb;
-}
-.nice-select:active,
-.nice-select.open,
-.nice-select:focus {
- border-color: #999;
-}
-.nice-select:after {
- border-bottom: 2px solid #999;
- border-right: 2px solid #999;
- content: "";
- display: block;
- height: 5px;
- margin-top: -4px;
- pointer-events: none;
- position: absolute;
- right: 12px;
- top: 50%;
- -webkit-transform-origin: 66% 66%;
- -ms-transform-origin: 66% 66%;
- transform-origin: 66% 66%;
- -webkit-transform: rotate(45deg);
- -ms-transform: rotate(45deg);
- transform: rotate(45deg);
- -webkit-transition: all 0.15s ease-in-out;
- transition: all 0.15s ease-in-out;
- width: 5px;
-}
-.nice-select.open:after {
- -webkit-transform: rotate(-135deg);
- -ms-transform: rotate(-135deg);
- transform: rotate(-135deg);
-}
-.nice-select.open .list {
- opacity: 1;
- pointer-events: auto;
- -webkit-transform: scale(1) translateY(0);
- -ms-transform: scale(1) translateY(0);
- transform: scale(1) translateY(0);
-}
-.nice-select.disabled {
- border-color: #ededed;
- color: #999;
- pointer-events: none;
-}
-.nice-select.disabled:after {
- border-color: #cccccc;
-}
-.nice-select.wide {
- width: 100%;
-}
-.nice-select.wide .list {
- left: 0 !important;
- right: 0 !important;
-}
-.nice-select.right {
- float: right;
-}
-.nice-select.right .list {
- left: auto;
- right: 0;
-}
-.nice-select.small {
- font-size: 12px;
- height: 36px;
- line-height: 34px;
-}
-.nice-select.small:after {
- height: 4px;
- width: 4px;
-}
-.nice-select.small .option {
- line-height: 34px;
- min-height: 34px;
-}
-.nice-select .list {
- background-color: #fff;
- border-radius: 5px;
- box-shadow: 0 0 0 1px rgba(68, 68, 68, 0.11);
- box-sizing: border-box;
- margin-top: 4px;
- opacity: 0;
- overflow: hidden;
- padding: 0;
- pointer-events: none;
- position: absolute;
- top: 100%;
- left: 0;
- -webkit-transform-origin: 50% 0;
- -ms-transform-origin: 50% 0;
- transform-origin: 50% 0;
- -webkit-transform: scale(0.75) translateY(-21px);
- -ms-transform: scale(0.75) translateY(-21px);
- transform: scale(0.75) translateY(-21px);
- -webkit-transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25),
- opacity 0.15s ease-out;
- transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
- z-index: 9;
-}
-.nice-select .list:hover .option:not(:hover) {
- background-color: transparent !important;
-}
-.nice-select .option {
- cursor: pointer;
- font-weight: 400;
- line-height: 40px;
- list-style: none;
- min-height: 40px;
- outline: none;
- padding-left: 18px;
- padding-right: 29px;
- text-align: left;
- -webkit-transition: all 0.2s;
- transition: all 0.2s;
-}
-.nice-select .option:hover,
-.nice-select .option.focus,
-.nice-select .option.selected.focus {
- background-color: #f6f6f6;
-}
-.nice-select .option.selected {
- font-weight: bold;
-}
-.nice-select .option.disabled {
- background-color: transparent;
- color: #999;
- cursor: default;
-}
+ width: auto; }
+ .nice-select:hover {
+ border-color: #dbdbdb; }
+ .nice-select:active, .nice-select.open, .nice-select:focus {
+ border-color: #999; }
+ .nice-select:after {
+ border-bottom: 2px solid #999;
+ border-right: 2px solid #999;
+ content: '';
+ display: block;
+ height: 5px;
+ margin-top: -4px;
+ pointer-events: none;
+ position: absolute;
+ right: 12px;
+ top: 50%;
+ -webkit-transform-origin: 66% 66%;
+ -ms-transform-origin: 66% 66%;
+ transform-origin: 66% 66%;
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ -webkit-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out;
+ width: 5px; }
+ .nice-select.open:after {
+ -webkit-transform: rotate(-135deg);
+ -ms-transform: rotate(-135deg);
+ transform: rotate(-135deg); }
+ .nice-select.open .list {
+ opacity: 1;
+ pointer-events: auto;
+ -webkit-transform: scale(1) translateY(0);
+ -ms-transform: scale(1) translateY(0);
+ transform: scale(1) translateY(0); }
+ .nice-select.disabled {
+ border-color: #ededed;
+ color: #999;
+ pointer-events: none; }
+ .nice-select.disabled:after {
+ border-color: #cccccc; }
+ .nice-select.wide {
+ width: 100%; }
+ .nice-select.wide .list {
+ left: 0 !important;
+ right: 0 !important; }
+ .nice-select.right {
+ float: right; }
+ .nice-select.right .list {
+ left: auto;
+ right: 0; }
+ .nice-select.small {
+ font-size: 12px;
+ height: 36px;
+ line-height: 34px; }
+ .nice-select.small:after {
+ height: 4px;
+ width: 4px; }
+ .nice-select.small .option {
+ line-height: 34px;
+ min-height: 34px; }
+ .nice-select .list {
+ background-color: #fff;
+ border-radius: 5px;
+ box-shadow: 0 0 0 1px rgba(68, 68, 68, 0.11);
+ box-sizing: border-box;
+ margin-top: 4px;
+ opacity: 0;
+ overflow: hidden;
+ padding: 0;
+ pointer-events: none;
+ position: absolute;
+ top: 100%;
+ left: 0;
+ -webkit-transform-origin: 50% 0;
+ -ms-transform-origin: 50% 0;
+ transform-origin: 50% 0;
+ -webkit-transform: scale(0.75) translateY(-21px);
+ -ms-transform: scale(0.75) translateY(-21px);
+ transform: scale(0.75) translateY(-21px);
+ -webkit-transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
+ transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
+ z-index: 9; }
+ .nice-select .list:hover .option:not(:hover) {
+ background-color: transparent !important; }
+ .nice-select .option {
+ cursor: pointer;
+ font-weight: 400;
+ line-height: 40px;
+ list-style: none;
+ min-height: 40px;
+ outline: none;
+ padding-left: 18px;
+ padding-right: 29px;
+ text-align: left;
+ -webkit-transition: all 0.2s;
+ transition: all 0.2s; }
+ .nice-select .option:hover, .nice-select .option.focus, .nice-select .option.selected.focus {
+ background-color: #f6f6f6; }
+ .nice-select .option.selected {
+ font-weight: bold; }
+ .nice-select .option.disabled {
+ background-color: transparent;
+ color: #999;
+ cursor: default; }
.no-csspointerevents .nice-select .list {
- display: none;
-}
+ display: none; }
.no-csspointerevents .nice-select.open .list {
- display: block;
-}
+ display: block; }
diff --git a/src/background.js b/src/background.js
index 8506a08..cf62644 100644
--- a/src/background.js
+++ b/src/background.js
@@ -3,708 +3,169 @@ var actions = [];
// Inject Omni on install
chrome.manifest = chrome.runtime.getManifest();
var injectIntoTab = function (tab) {
- var scripts = chrome.manifest.content_scripts[0].js;
- var i = 0,
- s = scripts.length;
- for (; i < s; i++) {
- chrome.scripting.executeScript({
- target: { tabId: tab.id },
- files: [scripts[i]],
- });
- }
-};
+ var scripts = chrome.manifest.content_scripts[0].js;
+ var i = 0, s = scripts.length;
+ for( ; i < s; i++ ) {
+ chrome.scripting.executeScript({
+ target: {tabId: tab.id},
+ files: [scripts[i]]
+ });
+ }
+}
// Get all windows
-chrome.windows.getAll(
- {
- populate: true,
- },
- function (windows) {
- var i = 0,
- w = windows.length,
- currentWindow;
- for (; i < w; i++) {
- currentWindow = windows[i];
- var j = 0,
- t = currentWindow.tabs.length,
- currentTab;
- for (; j < t; j++) {
- currentTab = currentWindow.tabs[j];
- injectIntoTab(currentTab);
- }
+chrome.windows.getAll({
+ populate: true
+}, function (windows) {
+ var i = 0, w = windows.length, currentWindow;
+ for( ; i < w; i++ ) {
+ currentWindow = windows[i];
+ var j = 0, t = currentWindow.tabs.length, currentTab;
+ for( ; j < t; j++ ) {
+ currentTab = currentWindow.tabs[j];
+ injectIntoTab(currentTab);
+ }
}
- }
-);
+});
// Clear actions and append default ones
function clearActions() {
- getCurrentTab().then((response) => {
- var isMac = navigator.platform.toUpperCase().indexOf("MAC") >= 0;
- var muteaction = {
- title: "Mute tab",
- desc: "Mute the current tab",
- type: "action",
- action: "mute",
- emoji: true,
- emojiChar: "π",
- keycheck: true,
- keys: ["β₯", "β§", "M"],
- };
- var pinaction = {
- title: "Pin tab",
- desc: "Pin the current tab",
- type: "action",
- action: "pin",
- emoji: true,
- emojiChar: "π",
- keycheck: true,
- keys: ["β₯", "β§", "P"],
- };
- if (response.mutedInfo.muted) {
- muteaction = {
- title: "Unmute tab",
- desc: "Unmute the current tab",
- type: "action",
- action: "unmute",
- emoji: true,
- emojiChar: "π",
- keycheck: true,
- keys: ["β₯", "β§", "M"],
- };
- }
- if (response.pinned) {
- pinaction = {
- title: "Unpin tab",
- desc: "Unpin the current tab",
- type: "action",
- action: "unpin",
- emoji: true,
- emojiChar: "π",
- keycheck: true,
- keys: ["β₯", "β§", "P"],
- };
- }
- actions = [
- {
- title: "New tab",
- desc: "Open a new tab",
- type: "action",
- action: "new-tab",
- emoji: true,
- emojiChar: "β¨",
- keycheck: true,
- keys: ["β", "T"],
- },
- {
- title: "Bookmark",
- desc: "Create a bookmark",
- type: "action",
- action: "create-bookmark",
- emoji: true,
- emojiChar: "π",
- keycheck: true,
- keys: ["β", "D"],
- },
- pinaction,
- {
- title: "Fullscreen",
- desc: "Make the page fullscreen",
- type: "action",
- action: "fullscreen",
- emoji: true,
- emojiChar: "π₯",
- keycheck: true,
- keys: ["β", "Ctrl", "F"],
- },
- muteaction,
- {
- title: "Reload",
- desc: "Reload the page",
- type: "action",
- action: "reload",
- emoji: true,
- emojiChar: "β»οΈ",
- keycheck: true,
- keys: ["β", "β§", "R"],
- },
- {
- title: "Help",
- desc: "Get help with Omni on GitHub",
- type: "action",
- action: "url",
- url: "https://github.com/alyssaxuu/omni",
- emoji: true,
- emojiChar: "π€",
- keycheck: false,
- },
- {
- title: "Compose email",
- desc: "Compose a new email",
- type: "action",
- action: "email",
- emoji: true,
- emojiChar: "βοΈ",
- keycheck: true,
- keys: ["β₯", "β§", "C"],
- },
- {
- title: "New Notion page",
- desc: "Create a new Notion page",
- type: "action",
- action: "url",
- url: "https://notion.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-notion.png"),
- keycheck: false,
- },
- {
- title: "New Sheets spreadsheet",
- desc: "Create a new Google Sheets spreadsheet",
- type: "action",
- action: "url",
- url: "https://sheets.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-sheets.png"),
- keycheck: false,
- },
- {
- title: "New Docs document",
- desc: "Create a new Google Docs document",
- type: "action",
- action: "url",
- emoji: false,
- url: "https://docs.new",
- favIconUrl: chrome.runtime.getURL("assets/logo-docs.png"),
- keycheck: false,
- },
- {
- title: "New Slides presentation",
- desc: "Create a new Google Slides presentation",
- type: "action",
- action: "url",
- url: "https://slides.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-slides.png"),
- keycheck: false,
- },
- {
- title: "New form",
- desc: "Create a new Google Forms form",
- type: "action",
- action: "url",
- url: "https://forms.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-forms.png"),
- keycheck: false,
- },
- {
- title: "New Medium story",
- desc: "Create a new Medium story",
- type: "action",
- action: "url",
- url: "https://story.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-medium.png"),
- keycheck: false,
- },
- {
- title: "New GitHub repository",
- desc: "Create a new GitHub repository",
- type: "action",
- action: "url",
- url: "https://github.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-github.png"),
- keycheck: false,
- },
- {
- title: "New GitHub gist",
- desc: "Create a new GitHub gist",
- type: "action",
- action: "url",
- url: "https://gist.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-github.png"),
- keycheck: false,
- },
- {
- title: "New CodePen pen",
- desc: "Create a new CodePen pen",
- type: "action",
- action: "url",
- url: "https://pen.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-codepen.png"),
- keycheck: false,
- },
- {
- title: "New Excel spreadsheet",
- desc: "Create a new Excel spreadsheet",
- type: "action",
- action: "url",
- url: "https://excel.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-excel.png"),
- keycheck: false,
- },
- {
- title: "New PowerPoint presentation",
- desc: "Create a new PowerPoint presentation",
- type: "action",
- url: "https://powerpoint.new",
- action: "url",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-powerpoint.png"),
- keycheck: false,
- },
- {
- title: "New Word document",
- desc: "Create a new Word document",
- type: "action",
- action: "url",
- url: "https://word.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-word.png"),
- keycheck: false,
- },
- {
- title: "Create a whiteboard",
- desc: "Create a collaborative whiteboard",
- type: "action",
- action: "url",
- url: "https://whiteboard.new",
- emoji: true,
- emojiChar: "π§βπ«",
- keycheck: false,
- },
- {
- title: "Record a video",
- desc: "Record and edit a video",
- type: "action",
- action: "url",
- url: "https://recording.new",
- emoji: true,
- emojiChar: "πΉ",
- keycheck: false,
- },
- {
- title: "Create a Figma file",
- desc: "Create a new Figma file",
- type: "action",
- action: "url",
- url: "https://figma.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-figma.png"),
- keycheck: false,
- },
- {
- title: "Create a FigJam file",
- desc: "Create a new FigJam file",
- type: "action",
- action: "url",
- url: "https://figjam.new",
- emoji: true,
- emojiChar: "π",
- keycheck: false,
- },
- {
- title: "Hunt a product",
- desc: "Submit a product to Product Hunt",
- type: "action",
- action: "url",
- url: "https://www.producthunt.com/posts/new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-producthunt.png"),
- keycheck: false,
- },
- {
- title: "Make a tweet",
- desc: "Make a tweet on Twitter",
- type: "action",
- action: "url",
- url: "https://twitter.com/intent/tweet",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-twitter.png"),
- keycheck: false,
- },
- {
- title: "Create a playlist",
- desc: "Create a Spotify playlist",
- type: "action",
- action: "url",
- url: "https://playlist.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-spotify.png"),
- keycheck: false,
- },
- {
- title: "Create a Canva design",
- desc: "Create a new design with Canva",
- type: "action",
- action: "url",
- url: "https://design.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-canva.png"),
- keycheck: false,
- },
- {
- title: "Create a new podcast episode",
- desc: "Create a new podcast episode with Anchor",
- type: "action",
- action: "url",
- url: "https://episode.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-anchor.png"),
- keycheck: false,
- },
- {
- title: "Edit an image",
- desc: "Edit an image with Adobe Photoshop",
- type: "action",
- action: "url",
- url: "https://photo.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-photoshop.png"),
- keycheck: false,
- },
- {
- title: "Convert to PDF",
- desc: "Convert a file to PDF",
- type: "action",
- action: "url",
- url: "https://pdf.new",
- emoji: true,
- emojiChar: "π",
- keycheck: false,
- },
- {
- title: "Scan a QR code",
- desc: "Scan a QR code with your camera",
- type: "action",
- action: "url",
- url: "https://scan.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-qr.png"),
- keycheck: false,
- },
- {
- title: "Add a task to Asana",
- desc: "Create a new task in Asana",
- type: "action",
- action: "url",
- url: "https://task.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-asana.png"),
- keycheck: false,
- },
- {
- title: "Add an issue to Linear",
- desc: "Create a new issue in Linear",
- type: "action",
- action: "url",
- url: "https://linear.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-linear.png"),
- keycheck: false,
- },
- {
- title: "Add a task to WIP",
- desc: "Create a new task in WIP",
- type: "action",
- action: "url",
- url: "https://todo.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-wip.png"),
- keycheck: false,
- },
- {
- title: "Create an event",
- desc: "Add an event to Google Calendar",
- type: "action",
- action: "url",
- url: "https://cal.new",
- emoji: false,
- favIconUrl: chrome.runtime.getURL("assets/logo-calendar.png"),
- keycheck: false,
- },
- {
- title: "Add a note",
- desc: "Add a note to Google Keep",
- type: "action",
- action: "url",
- emoji: false,
- url: "https://note.new",
- favIconUrl: chrome.runtime.getURL("assets/logo-keep.png"),
- keycheck: false,
- },
- {
- title: "New meeting",
- desc: "Start a Google Meet meeting",
- type: "action",
- action: "url",
- emoji: false,
- url: "https://meet.new",
- favIconUrl: chrome.runtime.getURL("assets/logo-meet.png"),
- keycheck: false,
- },
- {
- title: "Browsing history",
- desc: "Browse through your browsing history",
- type: "action",
- action: "history",
- emoji: true,
- emojiChar: "π",
- keycheck: true,
- keys: ["β", "Y"],
- },
- {
- title: "Incognito mode",
- desc: "Open an incognito window",
- type: "action",
- action: "incognito",
- emoji: true,
- emojiChar: "π΅οΈ",
- keycheck: true,
- keys: ["β", "β§", "N"],
- },
- {
- title: "Downloads",
- desc: "Browse through your downloads",
- type: "action",
- action: "downloads",
- emoji: true,
- emojiChar: "π¦",
- keycheck: true,
- keys: ["β", "β§", "J"],
- },
- {
- title: "Extensions",
- desc: "Manage your Chrome Extensions",
- type: "action",
- action: "extensions",
- emoji: true,
- emojiChar: "π§©",
- keycheck: false,
- keys: ["β", "D"],
- },
- {
- title: "Chrome settings",
- desc: "Open the Chrome settings",
- type: "action",
- action: "settings",
- emoji: true,
- emojiChar: "βοΈ",
- keycheck: true,
- keys: ["β", ","],
- },
- {
- title: "Scroll to bottom",
- desc: "Scroll to the bottom of the page",
- type: "action",
- action: "scroll-bottom",
- emoji: true,
- emojiChar: "π",
- keycheck: true,
- keys: ["β", "β"],
- },
- {
- title: "Scroll to top",
- desc: "Scroll to the top of the page",
- type: "action",
- action: "scroll-top",
- emoji: true,
- emojiChar: "π",
- keycheck: true,
- keys: ["β", "β"],
- },
- {
- title: "Go back",
- desc: "Go back in history for the current tab",
- type: "action",
- action: "go-back",
- emoji: true,
- emojiChar: "π",
- keycheck: true,
- keys: ["β", "β"],
- },
- {
- title: "Go forward",
- desc: "Go forward in history for the current tab",
- type: "action",
- action: "go-forward",
- emoji: true,
- emojiChar: "π",
- keycheck: true,
- keys: ["β", "β"],
- },
- {
- title: "Duplicate tab",
- desc: "Make a copy of the current tab",
- type: "action",
- action: "duplicate-tab",
- emoji: true,
- emojiChar: "π",
- keycheck: true,
- keys: ["β₯", "β§", "D"],
- },
- {
- title: "Close tab",
- desc: "Close the current tab",
- type: "action",
- action: "close-tab",
- emoji: true,
- emojiChar: "π",
- keycheck: true,
- keys: ["β", "W"],
- },
- {
- title: "Close window",
- desc: "Close the current window",
- type: "action",
- action: "close-window",
- emoji: true,
- emojiChar: "π₯",
- keycheck: true,
- keys: ["β", "β§", "W"],
- },
- {
- title: "Manage browsing data",
- desc: "Manage your browsing data",
- type: "action",
- action: "manage-data",
- emoji: true,
- emojiChar: "π¬",
- keycheck: true,
- keys: ["β", "β§", "Delete"],
- },
- {
- title: "Clear all browsing data",
- desc: "Clear all of your browsing data",
- type: "action",
- action: "remove-all",
- emoji: true,
- emojiChar: "π§Ή",
- keycheck: false,
- keys: ["β", "D"],
- },
- {
- title: "Clear browsing history",
- desc: "Clear all of your browsing history",
- type: "action",
- action: "remove-history",
- emoji: true,
- emojiChar: "π",
- keycheck: false,
- keys: ["β", "D"],
- },
- {
- title: "Clear cookies",
- desc: "Clear all cookies",
- type: "action",
- action: "remove-cookies",
- emoji: true,
- emojiChar: "πͺ",
- keycheck: false,
- keys: ["β", "D"],
- },
- {
- title: "Clear cache",
- desc: "Clear the cache",
- type: "action",
- action: "remove-cache",
- emoji: true,
- emojiChar: "π",
- keycheck: false,
- keys: ["β", "D"],
- },
- {
- title: "Clear local storage",
- desc: "Clear the local storage",
- type: "action",
- action: "remove-local-storage",
- emoji: true,
- emojiChar: "π¦",
- keycheck: false,
- keys: ["β", "D"],
- },
- {
- title: "Clear passwords",
- desc: "Clear all saved passwords",
- type: "action",
- action: "remove-passwords",
- emoji: true,
- emojiChar: "π",
- keycheck: false,
- keys: ["β", "D"],
- },
- ];
- if (!isMac) {
- actions.forEach(function (action) {
- if (action.action == "reload") {
- action.keys = ["F5"];
- } else if (action.action == "fullscreen") {
- action.keys = ["F11"];
- } else if (action.action == "downloads") {
- action.keys = ["Ctrl", "J"];
- } else if (action.action == "settings") {
- action.keycheck = false;
- } else if ((action.action = "history")) {
- action.keys = ["Ctrl", "H"];
- } else if (action.action == "go-back") {
- action.keys = ["Alt", "β"];
- } else if (action.action == "go-forward") {
- action.keys = ["Alt", "β"];
- } else if (action.action == "scroll-top") {
- action.keys = ["Home"];
- } else if (action.action == "scroll-bottom") {
- action.keys = ["End"];
- }
- actions.keys.forEach(function (key) {
- if (key == "β") {
- key = "Ctrl";
- } else if (key == "β₯") {
- key = "Alt";
- }
- });
- });
- }
- });
+ getCurrentTab().then((response) => {
+ var isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0;
+ var muteaction = {title:"Mute tab", desc:"Mute the current tab", type:"action", action:"mute", emoji:true, emojiChar:"π", keycheck:true, keys:['β₯','β§', 'M']};
+ var pinaction = {title:"Pin tab", desc:"Pin the current tab", type:"action", action:"pin", emoji:true, emojiChar:"π", keycheck:true, keys:['β₯','β§', 'P']};
+ if (response.mutedInfo.muted) {
+ muteaction = {title:"Unmute tab", desc:"Unmute the current tab", type:"action", action:"unmute", emoji:true, emojiChar:"π", keycheck:true, keys:['β₯','β§', 'M']};
+ }
+ if (response.pinned) {
+ pinaction = {title:"Unpin tab", desc:"Unpin the current tab", type:"action", action:"unpin", emoji:true, emojiChar:"π", keycheck:true, keys:['β₯','β§', 'P']};
+ }
+ actions = [
+ {title:"New tab", desc:"Open a new tab", type:"action", action:"new-tab", emoji:true, emojiChar:"β¨", keycheck:true, keys:['β','T']},
+ {title:"Bookmark", desc:"Create a bookmark", type:"action", action:"create-bookmark", emoji:true, emojiChar:"π", keycheck:true, keys:['β','D']},
+ pinaction,
+ {title:"Fullscreen", desc:"Make the page fullscreen", type:"action", action:"fullscreen", emoji:true, emojiChar:"π₯", keycheck:true, keys:['β', 'Ctrl', 'F']},
+ muteaction,
+ {title:"Reload", desc:"Reload the page", type:"action", action:"reload", emoji:true, emojiChar:"β»οΈ", keycheck:true, keys:['β','β§', 'R']},
+ {title:"Help", desc:"Get help with Omni on GitHub", type:"action", action:"url", url:"https://github.com/alyssaxuu/omni", emoji:true, emojiChar:"π€", keycheck:false},
+ {title:"Compose email", desc:"Compose a new email", type:"action", action:"email", emoji:true, emojiChar:"βοΈ", keycheck:true, keys:['β₯','β§', 'C']},
+ {title:"New Notion page", desc:"Create a new Notion page", type:"action", action:"url", url:"https://notion.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-notion.png"), keycheck:false},
+ {title:"New Sheets spreadsheet", desc:"Create a new Google Sheets spreadsheet", type:"action", action:"url", url:"https://sheets.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-sheets.png"), keycheck:false},
+ {title:"New Docs document", desc:"Create a new Google Docs document", type:"action", action:"url", emoji:false, url:"https://docs.new", favIconUrl:chrome.runtime.getURL("assets/logo-docs.png"), keycheck:false},
+ {title:"New Slides presentation", desc:"Create a new Google Slides presentation", type:"action", action:"url", url:"https://slides.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-slides.png"), keycheck:false},
+ {title:"New form", desc:"Create a new Google Forms form", type:"action", action:"url", url:"https://forms.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-forms.png"), keycheck:false},
+ {title:"New Medium story", desc:"Create a new Medium story", type:"action", action:"url", url:"https://story.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-medium.png"), keycheck:false},
+ {title:"New GitHub repository", desc:"Create a new GitHub repository", type:"action", action:"url", url:"https://github.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-github.png"), keycheck:false},
+ {title:"New GitHub gist", desc:"Create a new GitHub gist", type:"action", action:"url", url:"https://gist.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-github.png"), keycheck:false},
+ {title:"New CodePen pen", desc:"Create a new CodePen pen", type:"action", action:"url", url:"https://pen.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-codepen.png"), keycheck:false},
+ {title:"New Excel spreadsheet", desc:"Create a new Excel spreadsheet", type:"action", action:"url", url:"https://excel.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-excel.png"), keycheck:false},
+ {title:"New PowerPoint presentation", desc:"Create a new PowerPoint presentation", type:"action", url:"https://powerpoint.new", action:"url", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-powerpoint.png"), keycheck:false},
+ {title:"New Word document", desc:"Create a new Word document", type:"action", action:"url", url:"https://word.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-word.png"), keycheck:false},
+ {title:"Create a whiteboard", desc:"Create a collaborative whiteboard", type:"action", action:"url", url:"https://whiteboard.new", emoji:true, emojiChar:"π§βπ«", keycheck:false},
+ {title:"Record a video", desc:"Record and edit a video", type:"action", action:"url", url:"https://recording.new", emoji:true, emojiChar:"πΉ", keycheck:false},
+ {title:"Create a Figma file", desc:"Create a new Figma file", type:"action", action:"url", url:"https://figma.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-figma.png"), keycheck:false},
+ {title:"Create a FigJam file", desc:"Create a new FigJam file", type:"action", action:"url", url:"https://figjam.new", emoji:true, emojiChar:"π", keycheck:false},
+ {title:"Hunt a product", desc:"Submit a product to Product Hunt", type:"action", action:"url", url:"https://www.producthunt.com/posts/new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-producthunt.png"), keycheck:false},
+ {title:"Make a tweet", desc:"Make a tweet on Twitter", type:"action", action:"url", url:"https://twitter.com/intent/tweet", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-twitter.png"), keycheck:false},
+ {title:"Create a playlist", desc:"Create a Spotify playlist", type:"action", action:"url", url:"https://playlist.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-spotify.png"), keycheck:false},
+ {title:"Create a Canva design", desc:"Create a new design with Canva", type:"action", action:"url", url:"https://design.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-canva.png"), keycheck:false},
+ {title:"Create a new podcast episode", desc:"Create a new podcast episode with Anchor", type:"action", action:"url", url:"https://episode.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-anchor.png"), keycheck:false},
+ {title:"Edit an image", desc:"Edit an image with Adobe Photoshop", type:"action", action:"url", url:"https://photo.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-photoshop.png"), keycheck:false},
+ {title:"Convert to PDF", desc:"Convert a file to PDF", type:"action", action:"url", url:"https://pdf.new", emoji:true, emojiChar:"π", keycheck:false},
+ {title:"Scan a QR code", desc:"Scan a QR code with your camera", type:"action", action:"url", url:"https://scan.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-qr.png"), keycheck:false},
+ {title:"Add a task to Asana", desc:"Create a new task in Asana", type:"action", action:"url", url:"https://task.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-asana.png"), keycheck:false},
+ {title:"Add an issue to Linear", desc:"Create a new issue in Linear", type:"action", action:"url", url:"https://linear.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-linear.png"), keycheck:false},
+ {title:"Add a task to WIP", desc:"Create a new task in WIP", type:"action", action:"url", url:"https://todo.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-wip.png"), keycheck:false},
+ {title:"Create an event", desc:"Add an event to Google Calendar", type:"action", action:"url", url:"https://cal.new", emoji:false, favIconUrl:chrome.runtime.getURL("assets/logo-calendar.png"), keycheck:false},
+ {title:"Add a note", desc:"Add a note to Google Keep", type:"action", action:"url", emoji:false, url:"https://note.new", favIconUrl:chrome.runtime.getURL("assets/logo-keep.png"), keycheck:false},
+ {title:"New meeting", desc:"Start a Google Meet meeting", type:"action", action:"url", emoji:false, url:"https://meet.new", favIconUrl:chrome.runtime.getURL("assets/logo-meet.png"), keycheck:false},
+ {title:"Browsing history", desc:"Browse through your browsing history", type:"action", action:"history", emoji:true, emojiChar:"π", keycheck:true, keys:['β','Y']},
+ {title:"Incognito mode", desc:"Open an incognito window", type:"action", action:"incognito", emoji:true, emojiChar:"π΅οΈ", keycheck:true, keys:['β','β§', 'N']},
+ {title:"Downloads", desc:"Browse through your downloads", type:"action", action:"downloads", emoji:true, emojiChar:"π¦", keycheck:true, keys:['β','β§', 'J']},
+ {title:"Extensions", desc:"Manage your Chrome Extensions", type:"action", action:"extensions", emoji:true, emojiChar:"π§©", keycheck:false, keys:['β','D']},
+ {title:"Chrome settings", desc:"Open the Chrome settings", type:"action", action:"settings", emoji:true, emojiChar:"βοΈ", keycheck:true, keys:['β',',']},
+ {title:"Scroll to bottom", desc:"Scroll to the bottom of the page", type:"action", action:"scroll-bottom", emoji:true, emojiChar:"π", keycheck:true, keys:['β','β']},
+ {title:"Scroll to top", desc:"Scroll to the top of the page", type:"action", action:"scroll-top", emoji:true, emojiChar:"π", keycheck:true, keys:['β','β']},
+ {title:"Go back", desc:"Go back in history for the current tab", type:"action", action:"go-back", emoji:true, emojiChar:"π", keycheck:true, keys:['β','β']},
+ {title:"Go forward", desc:"Go forward in history for the current tab", type:"action", action:"go-forward", emoji:true, emojiChar:"π", keycheck:true, keys:['β','β']},
+ {title:"Duplicate tab", desc:"Make a copy of the current tab", type:"action", action:"duplicate-tab", emoji:true, emojiChar:"π", keycheck:true, keys:['β₯','β§', 'D']},
+ {title:"Close tab", desc:"Close the current tab", type:"action", action:"close-tab", emoji:true, emojiChar:"π", keycheck:true, keys:['β','W']},
+ {title:"Close window", desc:"Close the current window", type:"action", action:"close-window", emoji:true, emojiChar:"π₯", keycheck:true, keys:['β','β§', 'W']},
+ {title:"Manage browsing data", desc:"Manage your browsing data", type:"action", action:"manage-data", emoji:true, emojiChar:"π¬", keycheck:true, keys:['β','β§', 'Delete']},
+ {title:"Clear all browsing data", desc:"Clear all of your browsing data", type:"action", action:"remove-all", emoji:true, emojiChar:"π§Ή", keycheck:false, keys:['β','D']},
+ {title:"Clear browsing history", desc:"Clear all of your browsing history", type:"action", action:"remove-history", emoji:true, emojiChar:"π", keycheck:false, keys:['β','D']},
+ {title:"Clear cookies", desc:"Clear all cookies", type:"action", action:"remove-cookies", emoji:true, emojiChar:"πͺ", keycheck:false, keys:['β','D']},
+ {title:"Clear cache", desc:"Clear the cache", type:"action", action:"remove-cache", emoji:true, emojiChar:"π", keycheck:false, keys:['β','D']},
+ {title:"Clear local storage", desc:"Clear the local storage", type:"action", action:"remove-local-storage", emoji:true, emojiChar:"π¦", keycheck:false, keys:['β','D']},
+ {title:"Clear passwords", desc:"Clear all saved passwords", type:"action", action:"remove-passwords", emoji:true, emojiChar:"π", keycheck:false, keys:['β','D']},
+ ];
+ if (!isMac) {
+ actions.forEach(function(action){
+ if (action.action == "reload") {
+ action.keys = ['F5'];
+ } else if (action.action == "fullscreen") {
+ action.keys = ['F11'];
+ } else if (action.action == "downloads") {
+ action.keys = ['Ctrl', 'J'];
+ } else if (action.action == "settings") {
+ action.keycheck = false;
+ } else if (action.action = "history") {
+ action.keys = ['Ctrl', 'H'];
+ } else if (action.action == "go-back") {
+ action.keys = ['Alt','β'];
+ } else if (action.action == "go-forward") {
+ action.keys = ['Alt','β']
+ } else if (action.action == "scroll-top") {
+ action.keys = ['Home'];
+ } else if (action.action == "scroll-bottom") {
+ action.keys = ['End'];
+ }
+ actions.keys.forEach(function(key){
+ if (key == "β") {
+ key = "Ctrl";
+ } else if (key == "β₯") {
+ key = "Alt";
+ }
+ });
+ });
+ }
+ });
}
// Open on install
chrome.runtime.onInstalled.addListener(function (object) {
- chrome.tabs.create({ url: "https://alyssax.com/omni/" });
+ chrome.tabs.create({url: "https://alyssax.com/omni/"});
});
// Check when the extension button is clicked
chrome.action.onClicked.addListener((tab) => {
- chrome.tabs.sendMessage(tab.id, { request: "open-omni" });
+ chrome.tabs.sendMessage(tab.id, {request: "open-omni"});
});
// Listen for the open omni shortcut
chrome.commands.onCommand.addListener((command) => {
- if ((command = "open-omni")) {
- chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
- chrome.tabs.sendMessage(tabs[0].id, { request: "open-omni" });
- });
- }
+ if (command = "open-omni") {
+ chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
+ chrome.tabs.sendMessage(tabs[0].id, {request: "open-omni"});
+ });
+ }
});
// Check if tabs have changed and actions need to be fetched again
-chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
- clearActions();
- getTabs();
- getBookmarks();
+chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
+ clearActions();
+ getTabs();
+ getBookmarks();
});
-chrome.tabs.onCreated.addListener(function (tabId, changeInfo, tab) {
- clearActions();
- getTabs();
- getBookmarks();
+chrome.tabs.onCreated.addListener(function(tabId, changeInfo, tab) {
+ clearActions();
+ getTabs();
+ getBookmarks();
});
-chrome.tabs.onRemoved.addListener(function (tabId, changeInfo, tab) {
- clearActions();
- getTabs();
- getBookmarks();
+chrome.tabs.onRemoved.addListener(function(tabId, changeInfo, tab) {
+ clearActions();
+ getTabs();
+ getBookmarks();
});
// Get the current tab
@@ -716,215 +177,191 @@ async function getCurrentTab() {
// Get tabs to populate in the actions
function getTabs() {
- chrome.tabs.query({}, function (tabs) {
- tabs.forEach(function (tab) {
+ chrome.tabs.query({}, function(tabs) {
+ tabs.forEach(function(tab){
tab.desc = "Chrome tab";
tab.keycheck = false;
- tab.action = "switch-tab";
- tab.type = "tab";
- });
- actions = tabs.concat(actions);
+ tab.action = "switch-tab";
+ tab.type = "tab";
+ })
+ actions = tabs.concat(actions);
});
}
// Get bookmarks to populate in the actions
function getBookmarks() {
- function process_bookmark(bookmarks) {
- for (var i = 0; i < bookmarks.length; i++) {
- var bookmark = bookmarks[i];
- if (bookmark.url) {
- actions.push({
- title: bookmark.title,
- desc: "Bookmark",
- id: bookmark.id,
- type: "bookmark",
- action: "bookmark",
- emoji: true,
- emojiChar: "βοΈ",
- keycheck: false,
- });
- }
- if (bookmark.children) {
- process_bookmark(bookmark.children);
- }
- }
- }
- chrome.bookmarks.getTree(process_bookmark);
+ function process_bookmark(bookmarks) {
+ for (var i = 0; i < bookmarks.length; i++) {
+ var bookmark = bookmarks[i];
+ if (bookmark.url) {
+ actions.push({title:bookmark.title, desc:"Bookmark", id:bookmark.id, type:"bookmark", action:"bookmark", emoji:true, emojiChar:"βοΈ", keycheck:false})
+ }
+ if (bookmark.children) {
+ process_bookmark(bookmark.children);
+ }
+ }
+ }
+ chrome.bookmarks.getTree(process_bookmark);
}
// Lots of different actions
function switchTab(tab) {
- chrome.tabs.highlight({
- tabs: tab.index,
- });
+ chrome.tabs.highlight({
+ tabs: tab.index
+ })
}
function goBack(tab) {
- chrome.tabs.goBack({
- tabs: tab.index,
- });
+ chrome.tabs.goBack({
+ tabs: tab.index
+ })
}
-function goForward(tab) {
- chrome.tabs.goForward({
- tabs: tab.index,
- });
+function goForward(tab){
+ chrome.tabs.goForward({
+ tabs: tab.index
+ })
}
function duplicateTab(tab) {
- getCurrentTab().then((response) => {
- chrome.tabs.duplicate(response.id);
- });
+ getCurrentTab().then((response) => {
+ chrome.tabs.duplicate(response.id);
+ })
}
function createBookmark(tab) {
- getCurrentTab().then((response) => {
- chrome.bookmarks.create({
- title: response.title,
- url: response.url,
- });
- });
+ getCurrentTab().then((response) => {
+ chrome.bookmarks.create({
+ title: response.title,
+ url: response.url
+ });
+ })
}
function muteTab(mute) {
- getCurrentTab().then((response) => {
- chrome.tabs.update(response.id, { muted: mute });
- });
+ getCurrentTab().then((response) => {
+ chrome.tabs.update(response.id, {"muted": mute})
+ });
}
function reloadTab() {
- chrome.tabs.reload();
+ chrome.tabs.reload();
}
function pinTab(pin) {
- getCurrentTab().then((response) => {
- chrome.tabs.update(response.id, { pinned: pin });
- });
+ getCurrentTab().then((response) => {
+ chrome.tabs.update(response.id, {"pinned": pin})
+ });
}
function clearAllData() {
- chrome.browsingData.remove(
- {
- since: new Date().getTime(),
- },
- {
- appcache: true,
- cache: true,
- cacheStorage: true,
- cookies: true,
- downloads: true,
- fileSystems: true,
- formData: true,
- history: true,
- indexedDB: true,
- localStorage: true,
- passwords: true,
- serviceWorkers: true,
- webSQL: true,
- }
- );
+ chrome.browsingData.remove({
+ "since": (new Date()).getTime()
+ }, {
+ "appcache": true,
+ "cache": true,
+ "cacheStorage": true,
+ "cookies": true,
+ "downloads": true,
+ "fileSystems": true,
+ "formData": true,
+ "history": true,
+ "indexedDB": true,
+ "localStorage": true,
+ "passwords": true,
+ "serviceWorkers": true,
+ "webSQL": true
+ });
}
function clearBrowsingData() {
- chrome.browsingData.removeHistory({ since: 0 });
+ chrome.browsingData.removeHistory({"since": 0});
}
function clearCookies() {
- chrome.browsingData.removeCookies({ since: 0 });
+ chrome.browsingData.removeCookies({"since": 0});
}
function clearCache() {
- chrome.browsingData.removeCache({ since: 0 });
+ chrome.browsingData.removeCache({"since": 0});
}
function clearLocalStorage() {
- chrome.browsingData.removeLocalStorage({ since: 0 });
+ chrome.browsingData.removeLocalStorage({"since": 0});
}
function clearPasswords() {
- chrome.browsingData.removePasswords({ since: 0 });
+ chrome.browsingData.removePasswords({"since": 0});
}
function openChromeUrl(url) {
- chrome.tabs.create({ url: "chrome://" + url + "/" });
+ chrome.tabs.create({url: 'chrome://'+url+'/'});
}
function openIncognito() {
- chrome.windows.create({ incognito: true });
+ chrome.windows.create({"incognito": true});
}
function closeWindow(id) {
- chrome.windows.remove(id);
+ chrome.windows.remove(id);
}
function closeTab(tab) {
- chrome.tabs.remove(tab.id);
+ chrome.tabs.remove(tab.id);
}
function removeBookmark(bookmark) {
- chrome.bookmarks.remove(bookmark.id);
+ chrome.bookmarks.remove(bookmark.id);
}
// Recieve messages from any tab
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.request == "get-actions") {
- clearActions();
- getTabs();
- getBookmarks();
- sendResponse({ actions: actions });
+ clearActions();
+ getTabs();
+ getBookmarks();
+ sendResponse({actions:actions});
} else if (message.request == "switch-tab") {
- switchTab(message.tab);
- } else if (message.request == "go-back") {
- goBack(message.tab);
- } else if (message.request == "go-forward") {
- goForward(message.tab);
- } else if (message.request == "duplicate-tab") {
- duplicateTab(message.tab);
- } else if (message.request == "create-bookmark") {
- createBookmark(message.tab);
- } else if (message.request == "mute") {
- muteTab(true);
- } else if (message.request == "unmute") {
- muteTab(false);
- } else if (message.request == "reload") {
- reloadTab();
- } else if (message.request == "pin") {
- pinTab(true);
- } else if (message.request == "unpin") {
- pinTab(false);
- } else if (message.request == "remove-all") {
- clearAllData();
- } else if (message.request == "remove-history") {
- clearBrowsingData();
- } else if (message.request == "remove-cookies") {
- clearCookies();
- } else if (message.request == "remove-cache") {
- clearCache();
- } else if (message.request == "remove-local-storage") {
- clearLocalStorage();
- } else if (message.request == "remove-passwords") {
- clearPasswords();
- } else if (
- message.request == "history" ||
- message.request == "downloads" ||
- message.request == "extensions" ||
- message.request == "settings" ||
- message.request == "extensions/shortcuts"
- ) {
- openChromeUrl(message.request);
- } else if (message.request == "manage-data") {
- openChromeUrl("settings/clearBrowserData");
- } else if (message.request == "incognito") {
- openIncognito();
- } else if (message.request == "close-window") {
- closeWindow(sender.tab.windowId);
- } else if (message.request == "search-history") {
- chrome.history
- .search({
- text: message.query,
- maxResults: 1000,
- startTime: 31536000000 * 5,
- })
- .then(function (data) {
- data.forEach(function (action) {
- action.type = "history";
- action.emoji = true;
- action.emojiChar = "π";
- action.action = "history";
- action.desc = "Browsing history";
- });
- sendResponse({ history: data });
- });
- return true;
- } else if (message.request == "remove") {
- if (message.type == "bookmark") {
- removeBookmark(message.action);
- } else {
- closeTab(message.action);
- }
- }
+ switchTab(message.tab);
+ } else if (message.request == "go-back") {
+ goBack(message.tab);
+ } else if (message.request == "go-forward") {
+ goForward(message.tab);
+ } else if (message.request == "duplicate-tab") {
+ duplicateTab(message.tab);
+ } else if (message.request == "create-bookmark") {
+ createBookmark(message.tab);
+ } else if (message.request == "mute") {
+ muteTab(true);
+ } else if (message.request == "unmute") {
+ muteTab(false);
+ } else if (message.request == "reload") {
+ reloadTab();
+ } else if (message.request == "pin") {
+ pinTab(true);
+ } else if (message.request == "unpin") {
+ pinTab(false);
+ } else if (message.request == "remove-all") {
+ clearAllData();
+ } else if (message.request == "remove-history") {
+ clearBrowsingData();
+ } else if (message.request == "remove-cookies") {
+ clearCookies();
+ } else if (message.request == "remove-cache") {
+ clearCache();
+ } else if (message.request == "remove-local-storage") {
+ clearLocalStorage();
+ } else if (message.request == "remove-passwords") {
+ clearPasswords();
+ } else if (message.request == "history" || message.request == "downloads" || message.request == "extensions" || message.request == "settings" || message.request == "extensions/shortcuts") {
+ openChromeUrl(message.request);
+ } else if (message.request == "manage-data") {
+ openChromeUrl("settings/clearBrowserData");
+ } else if (message.request == "incognito") {
+ openIncognito();
+ } else if (message.request == "close-window") {
+ closeWindow(sender.tab.windowId);
+ } else if (message.request == "search-history") {
+ chrome.history.search({text:message.query, maxResults:1000, startTime:31536000000*5}).then(function(data){
+ data.forEach(function(action){
+ action.type = "history";
+ action.emoji = true;
+ action.emojiChar = "π";
+ action.action = "history";
+ action.desc = "Browsing history";
+ });
+ sendResponse({history:data});
+ })
+ return true;
+ } else if (message.request == "remove") {
+ if (message.type == "bookmark") {
+ removeBookmark(message.action);
+ } else {
+ closeTab(message.action);
+ }
+ }
});
// Get actions
diff --git a/src/content.css b/src/content.css
index d3aae3a..400bf4f 100644
--- a/src/content.css
+++ b/src/content.css
@@ -1,67 +1,67 @@
@media (prefers-color-scheme: dark) {
- :root {
- --background: #1e2128;
- --border: #35373e;
- --text: #f1f1f1;
- --text-2: #c5c6ca;
- --text-3: #a5a5ae;
- --select: #17191e;
- --accent: #6068d2;
- --accent-hover: #484fac;
- --shortcut: #383e4a;
- --placeholder: #63687b;
- --background-2: #292d36;
- }
+ :root {
+ --background: #1E2128;
+ --border: #35373E;
+ --text: #F1F1F1;
+ --text-2: #C5C6CA;
+ --text-3: #A5A5AE;
+ --select: #17191E;
+ --accent: #6068D2;
+ --accent-hover: #484FAC;
+ --shortcut: #383E4A;
+ --placeholder: #63687B;
+ --background-2: #292D36;
+ }
}
@media (prefers-color-scheme: light) {
- :root {
- --background: #fafcff;
- --border: #f2f3fb;
- --text: #2b2d41;
- --text-2: #2b2d41;
- --text-3: #929db2;
- --select: #eff3f9;
- --accent: #6068d2;
- --accent-hover: #484fac;
- --shortcut: #dadeea;
- --placeholder: #bac2d1;
- --background-2: #292d36;
- }
+ :root {
+ --background: #FAFCFF;
+ --border: #F2F3FB;
+ --text: #2B2D41;
+ --text-2: #2B2D41;
+ --text-3: #929DB2;
+ --select: #EFF3F9;
+ --accent: #6068D2;
+ --accent-hover: #484FAC;
+ --shortcut: #DADEEA;
+ --placeholder: #BAC2D1;
+ --background-2: #292D36;
+ }
}
@font-face {
- font-family: "Inter";
- font-style: normal;
- font-weight: 400;
- src: url("chrome-extension://__MSG_@@extension_id__/assets/Inter-Regular.ttf");
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 400;
+ src: url('chrome-extension://__MSG_@@extension_id__/assets/Inter-Regular.ttf');
}
@font-face {
- font-family: "Inter";
- font-style: normal;
- font-weight: 500;
- src: url("chrome-extension://__MSG_@@extension_id__/assets/Inter-Medium.ttf");
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 500;
+ src: url('chrome-extension://__MSG_@@extension_id__/assets/Inter-Medium.ttf');
}
@font-face {
- font-family: "Inter";
- font-style: normal;
- font-weight: 600;
- src: url("chrome-extension://__MSG_@@extension_id__/assets/Inter-SemiBold.ttf");
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 600;
+ src: url('chrome-extension://__MSG_@@extension_id__/assets/Inter-SemiBold.ttf');
}
@font-face {
- font-family: "Inter";
- font-style: normal;
- font-weight: 700;
- src: url("chrome-extension://__MSG_@@extension_id__/assets/Inter-Bold.ttf");
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 700;
+ src: url('chrome-extension://__MSG_@@extension_id__/assets/Inter-Bold.ttf');
}
.omni-extension .omni-item-details * {
- line-height: normal;
+ line-height: normal;
}
.omni-extension {
- font-family: Inter !important;
- z-index: 99999999999;
+ font-family: Inter!important;
+ z-index: 99999999999;
}
.omni-extension #omni-wrap {
- position: fixed;
+ position: fixed;
width: 700px;
border: 1px solid transparent;
border-radius: 5px;
@@ -72,7 +72,7 @@
left: 0px;
z-index: 9999999999;
height: 540px;
- transition: all 0.2s cubic-bezier(0.05, 0.03, 0.35, 1);
+ transition: all .2s cubic-bezier(.05,.03,.35,1);
}
.omni-extension #omni {
position: absolute;
@@ -84,16 +84,16 @@
left: 0px;
z-index: 9999999998;
height: fit-content;
- transition: all 0.2s cubic-bezier(0.05, 0.03, 0.35, 1);
- display: block;
+ transition: all .2s cubic-bezier(.05,.03,.35,1);
+ display: block;
}
.omni-closing #omni {
- transform: scale(0.9);
+ transform: scale(.9);
opacity: 0;
- display: none !important;
+ display: none!important;
}
.omni-closing {
- pointer-events: none;
+ pointer-events: none;
}
.omni-extension #omni-overlay {
height: 100%;
@@ -103,11 +103,11 @@
left: 0px;
background-color: #000;
z-index: 9999;
- opacity: 0.6;
- transition: all 0.1s cubic-bezier(0.05, 0.03, 0.35, 1);
+ opacity: .6;
+ transition: all .1s cubic-bezier(.05,.03,.35,1);
}
.omni-closing #omni-overlay {
- opacity: 0 !important;
+ opacity: 0!important;
}
.omni-extension #omni-head {
height: 50px;
@@ -134,7 +134,7 @@
}
.omni-extension .omni-shortcut {
display: inline-block;
- font-size: 13px;
+ font-size: 13px;
border-radius: 5px;
background-color: var(--shortcut);
color: var(--text);
@@ -158,7 +158,7 @@
display: block;
color: var(--text);
caret-color: var(--accent);
- font-family: Inter !important;
+ font-family: Inter!important;
margin-top: 5px;
margin-bottom: 5px;
box-sizing: border-box;
@@ -214,7 +214,7 @@
margin-left: 3px;
}
.omni-extension .omni-item-active .omni-select {
- display: block !important;
+ display: block!important;
}
.omni-extension .omni-icon {
width: 20px;
@@ -225,14 +225,14 @@
margin-top: -12px;
}
.omni-extension .omni-emoji-action {
- display: inline-block;
- vertical-align: middle;
- margin-top: -12px;
- width: 20px;
- height: 20px;
- text-align: center;
- margin-left: 5%;
- font-size: 18px;
+ display: inline-block;
+ vertical-align: middle;
+ margin-top: -12px;
+ width: 20px;
+ height: 20px;
+ text-align: center;
+ margin-left: 5%;
+ font-size: 18px;
}
.omni-extension .omni-item-details {
display: inline-block;
@@ -250,12 +250,12 @@
width: 450px;
}
.omni-extension .omni-item-active .omni-item-name {
- color: var(--text) !important;
+ color: var(--text)!important;
}
.omni-extension .omni-item-desc {
color: var(--text-3);
margin-top: 5px;
- font-size: 14px;
+ font-size: 14px;
}
.omni-extension #omni-footer {
height: 45px;
@@ -289,7 +289,7 @@
margin-right: 5%;
}
.omni-extension .omni-item-active .omni-keys {
- display: none !important;
+ display: none!important;
}
.omni-extension .omni-keys span {
margin-left: 3px;
@@ -300,4 +300,4 @@
position: absolute;
top: 0px;
left: 0px;
-}
+}
\ No newline at end of file
diff --git a/src/content.html b/src/content.html
index 7812035..4b27cec 100644
--- a/src/content.html
+++ b/src/content.html
@@ -1,22 +1,21 @@
-
+
+
diff --git a/src/content.js b/src/content.js
index 1751c03..4c7d55b 100644
--- a/src/content.js
+++ b/src/content.js
@@ -1,425 +1,268 @@
-$(document).ready(function () {
- var isOpen = false;
+$(document).ready(function(){
+ var isOpen = false;
var actions = [];
- // Append the omni into the current page
- $.get(chrome.runtime.getURL("/content.html"), function (data) {
- $(data).appendTo("body");
+ // Append the omni into the current page
+ $.get(chrome.runtime.getURL('/content.html'), function(data) {
+ $(data).appendTo('body');
});
- // Request actions from the background
- chrome.runtime.sendMessage({ request: "get-actions" }, function (response) {
+ // Request actions from the background
+ chrome.runtime.sendMessage({request:"get-actions"}, function(response) {
actions = response.actions;
- populateOmni();
+ populateOmni();
});
- // Add actions to the omni
- function populateOmni() {
- $("#omni-extension #list").html("");
- actions.forEach(function (action, index) {
- var keys = "";
- if (action.keycheck) {
- keys = "";
- action.keys.forEach(function (key) {
- keys += "" + key + "";
- });
- keys += "
";
- }
- var img =
- "
";
- if (action.emoji) {
- img = "" + action.emojiChar + "";
- }
- if (index != 0) {
- $("#omni-extension #omni-list").append(
- "" +
- img +
- "
" +
- action.title +
- "
" +
- action.desc +
- "
" +
- keys +
- "
Select β
"
- );
- } else {
- $("#omni-extension #omni-list").append(
- "" +
- img +
- "
" +
- action.title +
- "
" +
- action.desc +
- "
" +
- keys +
- "
Select β
"
- );
- }
- });
- $(".omni-extension #omni-results").html(actions.length + " results");
- }
+ // Add actions to the omni
+ function populateOmni() {
+ $("#omni-extension #list").html("");
+ actions.forEach(function(action, index){
+ var keys = "";
+ if (action.keycheck) {
+ keys = "";
+ action.keys.forEach(function(key){
+ keys += ""+key+"";
+ });
+ keys += "
";
+ }
+ var img = "
";
+ if (action.emoji) {
+ img = ""+action.emojiChar+""
+ }
+ if (index != 0) {
+ $("#omni-extension #omni-list").append(""+img+"
"+action.title+"
"+action.desc+"
"+keys+"
Select β
");
+ } else {
+ $("#omni-extension #omni-list").append(""+img+"
"+action.title+"
"+action.desc+"
"+keys+"
Select β
");
+ }
+ })
+ $(".omni-extension #omni-results").html(actions.length+" results");
+ }
- // Add actions to the omni
- function populateOmniHistory(actions) {
- $("#omni-extension #omni-list").html("");
- actions.forEach(function (action, index) {
- var keys = "";
- if (action.keycheck) {
- keys = "";
- action.keys.forEach(function (key) {
- keys += "" + key + "";
- });
- keys += "
";
- }
- var img =
- "
";
- if (action.emoji) {
- img = "" + action.emojiChar + "";
- }
- if (index != 0) {
- $("#omni-extension #omni-list").append(
- "" +
- img +
- "
" +
- action.title +
- "
" +
- action.desc +
- "
" +
- keys +
- "
Select β
"
- );
- } else {
- $("#omni-extension #omni-list").append(
- "" +
- img +
- "
" +
- action.title +
- "
" +
- action.desc +
- "
" +
- keys +
- "
Select β
"
- );
- }
- });
- $(".omni-extension #omni-results").html(actions.length + " results");
- }
+ // Add actions to the omni
+ function populateOmniHistory(actions) {
+ $("#omni-extension #omni-list").html("");
+ actions.forEach(function(action, index){
+ var keys = "";
+ if (action.keycheck) {
+ keys = "";
+ action.keys.forEach(function(key){
+ keys += ""+key+"";
+ });
+ keys += "
";
+ }
+ var img = "
";
+ if (action.emoji) {
+ img = ""+action.emojiChar+""
+ }
+ if (index != 0) {
+ $("#omni-extension #omni-list").append(""+img+"
"+action.title+"
"+action.desc+"
"+keys+"
Select β
");
+ } else {
+ $("#omni-extension #omni-list").append(""+img+"
"+action.title+"
"+action.desc+"
"+keys+"
Select β
");
+ }
+ })
+ $(".omni-extension #omni-results").html(actions.length+" results");
+ }
- // Open the omni
+ // Open the omni
function openOmni() {
- chrome.runtime.sendMessage({ request: "get-actions" }, function (response) {
- isOpen = true;
- actions = response.actions;
- populateOmni();
- $("#omni-extension input").val("");
- $("html, body").stop();
- $("#omni-extension").removeClass("omni-closing");
- window.setTimeout(function () {
- $("#omni-extension input").focus();
- }, 100);
- });
+ chrome.runtime.sendMessage({request:"get-actions"}, function(response) {
+ isOpen = true;
+ actions = response.actions;
+ populateOmni();
+ $("#omni-extension input").val("");
+ $("html, body").stop();
+ $("#omni-extension").removeClass("omni-closing");
+ window.setTimeout(function(){
+ $("#omni-extension input").focus();
+ }, 100);
+ });
}
- // Close the omni
+ // Close the omni
function closeOmni() {
- isOpen = false;
+ isOpen = false;
$("#omni-extension").addClass("omni-closing");
}
- // Hover over an action in the omni
+ // Hover over an action in the omni
function hoverItem() {
$(".omni-item-active").removeClass("omni-item-active");
$(this).addClass("omni-item-active");
}
- // Search for an action in the omni
+ // Search for an action in the omni
function search() {
var value = $(this).val().toLowerCase();
- if (value.startsWith("/history")) {
- var tempvalue = value.replace("/tabs ", "");
- var query = "";
- if (tempvalue != "/history") {
- query = value.replace("/history ", "");
- }
- chrome.runtime.sendMessage(
- { request: "search-history", query: query },
- function (response) {
- populateOmniHistory(response.history);
- }
- );
- } else {
- populateOmni();
- $("#omni-extension #omni-list .omni-item").filter(function () {
- if (value.startsWith("/tabs")) {
- var tempvalue = value.replace("/tabs ", "");
- if (tempvalue == "/tabs") {
- $(this).toggle($(this).attr("data-type") == "tab");
- } else {
- tempvalue = value.replace("/tabs ", "");
- $(this).toggle(
- ($(this)
- .find(".omni-item-name")
- .text()
- .toLowerCase()
- .indexOf(tempvalue) > -1 ||
- $(this)
- .find(".omni-item-desc")
- .text()
- .toLowerCase()
- .indexOf(tempvalue) > -1) &&
- $(this).attr("data-type") == "tab"
- );
- }
- } else if (value.startsWith("/bookmarks")) {
- var tempvalue = value.replace("/bookmarks ", "");
- if (tempvalue == "/bookmarks") {
- $(this).toggle($(this).attr("data-type") == "bookmark");
- } else {
- tempvalue = value.replace("/bookmarks ", "");
- $(this).toggle(
- ($(this)
- .find(".omni-item-name")
- .text()
- .toLowerCase()
- .indexOf(tempvalue) > -1 ||
- $(this)
- .find(".omni-item-desc")
- .text()
- .toLowerCase()
- .indexOf(tempvalue) > -1) &&
- $(this).attr("data-type") == "bookmark"
- );
- }
- } else if (value.startsWith("/remove")) {
- var tempvalue = value.replace("/remove ", "");
- if (tempvalue == "/remove") {
- $(this).toggle(
- $(this).attr("data-type") == "bookmark" ||
- $(this).attr("data-type") == "tab"
- );
- } else {
- tempvalue = value.replace("/remove ", "");
- $(this).toggle(
- ($(this)
- .find(".omni-item-name")
- .text()
- .toLowerCase()
- .indexOf(tempvalue) > -1 ||
- $(this)
- .find(".omni-item-desc")
- .text()
- .toLowerCase()
- .indexOf(tempvalue) > -1) &&
- ($(this).attr("data-type") == "bookmark" ||
- $(this).attr("data-type") == "tab")
- );
- }
- } else if (value.startsWith("/actions")) {
- var tempvalue = value.replace("/actions ", "");
- if (tempvalue == "/actions") {
- $(this).toggle($(this).attr("data-type") == "action");
- } else {
- tempvalue = value.replace("/actions ", "");
- $(this).toggle(
- ($(this)
- .find(".omni-item-name")
- .text()
- .toLowerCase()
- .indexOf(tempvalue) > -1 ||
- $(this)
- .find(".omni-item-desc")
- .text()
- .toLowerCase()
- .indexOf(tempvalue) > -1) &&
- $(this).attr("data-type") == "action"
- );
- }
- } else {
- $(this).toggle(
- $(this)
- .find(".omni-item-name")
- .text()
- .toLowerCase()
- .indexOf(value) > -1 ||
- $(this)
- .find(".omni-item-desc")
- .text()
- .toLowerCase()
- .indexOf(value) > -1
- );
- }
- });
- }
- $(".omni-extension #omni-results").html(
- $("#omni-extension #omni-list .omni-item:visible").length + " results"
- );
+ if (value.startsWith("/history")) {
+ var tempvalue = value.replace("/tabs ", "");
+ var query = "";
+ if (tempvalue != "/history") {
+ query = value.replace("/history ", "");
+ }
+ chrome.runtime.sendMessage({request:"search-history", query:query}, function(response){
+ populateOmniHistory(response.history);
+ });
+ } else {
+ populateOmni();
+ $("#omni-extension #omni-list .omni-item").filter(function(){
+ if (value.startsWith("/tabs")) {
+ var tempvalue = value.replace("/tabs ", "");
+ if (tempvalue == "/tabs") {
+ $(this).toggle($(this).attr("data-type") == "tab");
+ } else {
+ tempvalue = value.replace("/tabs ", "");
+ $(this).toggle(($(this).find(".omni-item-name").text().toLowerCase().indexOf(tempvalue) > -1 || $(this).find(".omni-item-desc").text().toLowerCase().indexOf(tempvalue) > -1) && $(this).attr("data-type") == "tab");
+ }
+ } else if (value.startsWith("/bookmarks")) {
+ var tempvalue = value.replace("/bookmarks ", "");
+ if (tempvalue == "/bookmarks") {
+ $(this).toggle($(this).attr("data-type") == "bookmark");
+ } else {
+ tempvalue = value.replace("/bookmarks ", "");
+ $(this).toggle(($(this).find(".omni-item-name").text().toLowerCase().indexOf(tempvalue) > -1 || $(this).find(".omni-item-desc").text().toLowerCase().indexOf(tempvalue) > -1) && $(this).attr("data-type") == "bookmark");
+ }
+ } else if (value.startsWith("/remove")) {
+ var tempvalue = value.replace("/remove ", "");
+ if (tempvalue == "/remove") {
+ $(this).toggle($(this).attr("data-type") == "bookmark" || $(this).attr("data-type") == "tab");
+ } else {
+ tempvalue = value.replace("/remove ", "");
+ $(this).toggle(($(this).find(".omni-item-name").text().toLowerCase().indexOf(tempvalue) > -1 || $(this).find(".omni-item-desc").text().toLowerCase().indexOf(tempvalue) > -1) && ($(this).attr("data-type") == "bookmark" || $(this).attr("data-type") == "tab"));
+ }
+ } else if (value.startsWith("/actions")) {
+ var tempvalue = value.replace("/actions ", "");
+ if (tempvalue == "/actions") {
+ $(this).toggle($(this).attr("data-type") == "action");
+ } else {
+ tempvalue = value.replace("/actions ", "");
+ $(this).toggle(($(this).find(".omni-item-name").text().toLowerCase().indexOf(tempvalue) > -1 || $(this).find(".omni-item-desc").text().toLowerCase().indexOf(tempvalue) > -1) && $(this).attr("data-type") == "action");
+ }
+ } else {
+ $(this).toggle($(this).find(".omni-item-name").text().toLowerCase().indexOf(value) > -1 || $(this).find(".omni-item-desc").text().toLowerCase().indexOf(value) > -1);
+ }
+ });
+ }
+ $(".omni-extension #omni-results").html($("#omni-extension #omni-list .omni-item:visible").length+" results");
}
- // Handle actions from the omni
- function handleAction() {
- var action = actions.find(
- (x) => x.title == $(".omni-item-active .omni-item-name").text()
- );
- closeOmni();
- if ($(".omni-extension input").val().toLowerCase().startsWith("/remove")) {
- chrome.runtime.sendMessage({
- request: "remove",
- type: action.type,
- action: action,
- });
- } else if (
- $(".omni-extension input").val().toLowerCase().startsWith("/history")
- ) {
- window.open($(".item-active").attr("data-url"), "_self");
- } else {
- chrome.runtime.sendMessage({ request: action.action, tab: action });
- if (action.action == "bookmark") {
- window.open(action.url, "_self");
- } else if (action.action == "scroll-bottom") {
- window.scrollTo(0, document.body.scrollHeight);
- } else if (action.action == "scroll-top") {
- window.scrollTo(0, 0);
- } else if (action.action == "close-tab") {
- window.close();
- } else if (action.action == "navigation") {
- window.open(action.url, "_self");
- } else if (action.action == "fullscreen") {
- var elem = document.documentElement;
- elem.requestFullscreen();
- } else if (action.action == "new-tab") {
- window.open("");
- } else if (action.action == "email") {
- window.open("mailto:");
- } else if (action.action == "url") {
- window.open(action.url, "_self");
- }
- }
+ // Handle actions from the omni
+ function handleAction() {
+ var action = actions.find(x => x.title == $(".omni-item-active .omni-item-name").text());
+ closeOmni();
+ if ($(".omni-extension input").val().toLowerCase().startsWith("/remove")) {
+ chrome.runtime.sendMessage({request:"remove", type:action.type, action:action});
+ } else if ($(".omni-extension input").val().toLowerCase().startsWith("/history")) {
+ window.open($(".item-active").attr("data-url"), "_self");
+ } else {
+ chrome.runtime.sendMessage({request:action.action, tab:action});
+ if (action.action == "bookmark") {
+ window.open(action.url, "_self");
+ } else if (action.action == "scroll-bottom") {
+ window.scrollTo(0,document.body.scrollHeight);
+ } else if (action.action == "scroll-top") {
+ window.scrollTo(0,0);
+ } else if (action.action == "close-tab") {
+ window.close();
+ } else if (action.action == "navigation") {
+ window.open(action.url, "_self");
+ } else if (action.action == "fullscreen") {
+ var elem = document.documentElement;
+ elem.requestFullscreen();
+ } else if (action.action == "new-tab") {
+ window.open("");
+ } else if (action.action == "email") {
+ window.open("mailto:");
+ } else if (action.action == "url") {
+ window.open(action.url, "_self");
+ }
+ }
- // Fetch actions again
- chrome.runtime.sendMessage({ request: "get-actions" }, function (response) {
- actions = response.actions;
- populateOmni();
- });
- }
+ // Fetch actions again
+ chrome.runtime.sendMessage({request:"get-actions"}, function(response) {
+ actions = response.actions;
+ populateOmni();
+ });
+ }
- // Customize the shortcut to open the Omni box
- function openShortcuts() {
- chrome.runtime.sendMessage({ request: "extensions/shortcuts" });
- }
+ // Customize the shortcut to open the Omni box
+ function openShortcuts() {
+ chrome.runtime.sendMessage({request:"extensions/shortcuts"});
+ }
- // Check which keys are down
- var down = [];
- $(document)
- .keydown(function (e) {
- down[e.keyCode] = true;
- })
- .keyup(function (e) {
- if (down[18] && down[16] && down[80]) {
- if (actions.find((x) => x.action == "pin") != undefined) {
- chrome.runtime.sendMessage({ request: "pin-tab" });
- } else {
- chrome.runtime.sendMessage({ request: "unpin-tab" });
- }
- chrome.runtime.sendMessage(
- { request: "get-actions" },
- function (response) {
- actions = response.actions;
- populateOmni();
- }
- );
- } else if (down[18] && down[16] && down[77]) {
- if (actions.find((x) => x.action == "mute") != undefined) {
- chrome.runtime.sendMessage({ request: "mute-tab" });
- } else {
- chrome.runtime.sendMessage({ request: "unmute-tab" });
- }
- chrome.runtime.sendMessage(
- { request: "get-actions" },
- function (response) {
- actions = response.actions;
- populateOmni();
- }
- );
- } else if (down[18] && down[16] && down[67]) {
- window.open("mailto:");
+
+ // Check which keys are down
+ var down = [];
+ $(document).keydown(function(e) {
+ down[e.keyCode] = true;
+ }).keyup(function(e) {
+ if (down[18] && down[16] && down[80]) {
+ if (actions.find(x => x.action == "pin") != undefined) {
+ chrome.runtime.sendMessage({request:"pin-tab"});
+ } else {
+ chrome.runtime.sendMessage({request:"unpin-tab"});
+ }
+ chrome.runtime.sendMessage({request:"get-actions"}, function(response) {
+ actions = response.actions;
+ populateOmni();
+ });
+ } else if (down[18] && down[16] && down[77]) {
+ if (actions.find(x => x.action == "mute") != undefined) {
+ chrome.runtime.sendMessage({request:"mute-tab"});
+ } else {
+ chrome.runtime.sendMessage({request:"unmute-tab"});
+ }
+ chrome.runtime.sendMessage({request:"get-actions"}, function(response) {
+ actions = response.actions;
+ populateOmni();
+ });
+ } else if (down[18] && down[16] && down[67]) {
+ window.open("mailto:");
+ }
+
+ if (down[38]) {
+ // Up key
+ if ($(".omni-item-active").prevAll("div").not(":hidden").first().length) {
+ var previous = $(".omni-item-active").prevAll("div").not(":hidden").first();
+ $(".omni-item-active").removeClass("item-active");
+ previous.addClass("omni-item-active");
+ previous[0].scrollIntoView({block:"nearest", inline:"nearest"});
}
- if (down[38]) {
- // Up key
- if (
- $(".omni-item-active").prevAll("div").not(":hidden").first().length
- ) {
- var previous = $(".omni-item-active")
- .prevAll("div")
- .not(":hidden")
- .first();
- $(".omni-item-active").removeClass("item-active");
- previous.addClass("omni-item-active");
- previous[0].scrollIntoView({ block: "nearest", inline: "nearest" });
- }
- } else if (down[40]) {
- // Down key
- if (
- $(".omni-item-active").nextAll("div").not(":hidden").first().length
- ) {
- var next = $(".omni-item-active")
- .nextAll("div")
- .not(":hidden")
- .first();
- $(".omni-item-active").removeClass("omni-item-active");
- next.addClass("omni-item-active");
- next[0].scrollIntoView({ block: "nearest", inline: "nearest" });
- }
- } else if (down[27] && isOpen) {
- // Esc key
- closeOmni();
- } else if (down[13] && isOpen) {
- // Enter key
- handleAction();
+ } else if (down[40]) {
+ // Down key
+ if ($(".omni-item-active").nextAll("div").not(":hidden").first().length) {
+ var next = $(".omni-item-active").nextAll("div").not(":hidden").first();
+ $(".omni-item-active").removeClass("omni-item-active");
+ next.addClass("omni-item-active");
+ next[0].scrollIntoView({block:"nearest", inline:"nearest"});
}
+ } else if (down[27] && isOpen) {
+ // Esc key
+ closeOmni();
+ } else if (down[13] && isOpen) {
+ // Enter key
+ handleAction();
+ }
- down = [];
- });
+ down = [];
+ });
+
+ // Recieve messages from background
+ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
+ if (message.request == "open-omni") {
+ if (isOpen) {
+ closeOmni();
+ } else {
+ openOmni();
+ }
+ }
+ });
- // Recieve messages from background
- chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
- if (message.request == "open-omni") {
- if (isOpen) {
- closeOmni();
- } else {
- openOmni();
- }
- }
- });
// Events
- $(document).on("click", "#open-page-omni-extension-thing", openShortcuts);
- $(document).on(
- "mouseover",
- ".omni-extension .omni-item:not(.omni-item-active)",
- hoverItem
- );
+ $(document).on("click", "#open-page-omni-extension-thing", openShortcuts);
+ $(document).on("mouseover", ".omni-extension .omni-item:not(.omni-item-active)", hoverItem);
$(document).on("input", ".omni-extension input", search);
- $(document).on("click", ".omni-item-active", handleAction);
- $(document).on("click", ".omni-extension #omni-overlay", closeOmni);
+ $(document).on("click", ".omni-item-active", handleAction);
+ $(document).on("click", ".omni-extension #omni-overlay", closeOmni);
});
diff --git a/src/jquery.js b/src/jquery.js
index f840c67..c4c6022 100644
--- a/src/jquery.js
+++ b/src/jquery.js
@@ -1,5574 +1,2 @@
/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
-!(function (e, t) {
- "use strict";
- "object" == typeof module && "object" == typeof module.exports
- ? (module.exports = e.document
- ? t(e, !0)
- : function (e) {
- if (!e.document)
- throw new Error("jQuery requires a window with a document");
- return t(e);
- })
- : t(e);
-})("undefined" != typeof window ? window : this, function (C, e) {
- "use strict";
- var t = [],
- r = Object.getPrototypeOf,
- s = t.slice,
- g = t.flat
- ? function (e) {
- return t.flat.call(e);
- }
- : function (e) {
- return t.concat.apply([], e);
- },
- u = t.push,
- i = t.indexOf,
- n = {},
- o = n.toString,
- v = n.hasOwnProperty,
- a = v.toString,
- l = a.call(Object),
- y = {},
- m = function (e) {
- return (
- "function" == typeof e &&
- "number" != typeof e.nodeType &&
- "function" != typeof e.item
- );
- },
- x = function (e) {
- return null != e && e === e.window;
- },
- E = C.document,
- c = { type: !0, src: !0, nonce: !0, noModule: !0 };
- function b(e, t, n) {
- var r,
- i,
- o = (n = n || E).createElement("script");
- if (((o.text = e), t))
- for (r in c)
- (i = t[r] || (t.getAttribute && t.getAttribute(r))) &&
- o.setAttribute(r, i);
- n.head.appendChild(o).parentNode.removeChild(o);
- }
- function w(e) {
- return null == e
- ? e + ""
- : "object" == typeof e || "function" == typeof e
- ? n[o.call(e)] || "object"
- : typeof e;
- }
- var f = "3.6.0",
- S = function (e, t) {
- return new S.fn.init(e, t);
- };
- function p(e) {
- var t = !!e && "length" in e && e.length,
- n = w(e);
- return (
- !m(e) &&
- !x(e) &&
- ("array" === n ||
- 0 === t ||
- ("number" == typeof t && 0 < t && t - 1 in e))
- );
- }
- (S.fn = S.prototype =
- {
- jquery: f,
- constructor: S,
- length: 0,
- toArray: function () {
- return s.call(this);
- },
- get: function (e) {
- return null == e
- ? s.call(this)
- : e < 0
- ? this[e + this.length]
- : this[e];
- },
- pushStack: function (e) {
- var t = S.merge(this.constructor(), e);
- return (t.prevObject = this), t;
- },
- each: function (e) {
- return S.each(this, e);
- },
- map: function (n) {
- return this.pushStack(
- S.map(this, function (e, t) {
- return n.call(e, t, e);
- })
- );
- },
- slice: function () {
- return this.pushStack(s.apply(this, arguments));
- },
- first: function () {
- return this.eq(0);
- },
- last: function () {
- return this.eq(-1);
- },
- even: function () {
- return this.pushStack(
- S.grep(this, function (e, t) {
- return (t + 1) % 2;
- })
- );
- },
- odd: function () {
- return this.pushStack(
- S.grep(this, function (e, t) {
- return t % 2;
- })
- );
- },
- eq: function (e) {
- var t = this.length,
- n = +e + (e < 0 ? t : 0);
- return this.pushStack(0 <= n && n < t ? [this[n]] : []);
- },
- end: function () {
- return this.prevObject || this.constructor();
- },
- push: u,
- sort: t.sort,
- splice: t.splice,
- }),
- (S.extend = S.fn.extend =
- function () {
- var e,
- t,
- n,
- r,
- i,
- o,
- a = arguments[0] || {},
- s = 1,
- u = arguments.length,
- l = !1;
- for (
- "boolean" == typeof a && ((l = a), (a = arguments[s] || {}), s++),
- "object" == typeof a || m(a) || (a = {}),
- s === u && ((a = this), s--);
- s < u;
- s++
- )
- if (null != (e = arguments[s]))
- for (t in e)
- (r = e[t]),
- "__proto__" !== t &&
- a !== r &&
- (l && r && (S.isPlainObject(r) || (i = Array.isArray(r)))
- ? ((n = a[t]),
- (o =
- i && !Array.isArray(n)
- ? []
- : i || S.isPlainObject(n)
- ? n
- : {}),
- (i = !1),
- (a[t] = S.extend(l, o, r)))
- : void 0 !== r && (a[t] = r));
- return a;
- }),
- S.extend({
- expando: "jQuery" + (f + Math.random()).replace(/\D/g, ""),
- isReady: !0,
- error: function (e) {
- throw new Error(e);
- },
- noop: function () {},
- isPlainObject: function (e) {
- var t, n;
- return (
- !(!e || "[object Object]" !== o.call(e)) &&
- (!(t = r(e)) ||
- ("function" ==
- typeof (n = v.call(t, "constructor") && t.constructor) &&
- a.call(n) === l))
- );
- },
- isEmptyObject: function (e) {
- var t;
- for (t in e) return !1;
- return !0;
- },
- globalEval: function (e, t, n) {
- b(e, { nonce: t && t.nonce }, n);
- },
- each: function (e, t) {
- var n,
- r = 0;
- if (p(e)) {
- for (n = e.length; r < n; r++)
- if (!1 === t.call(e[r], r, e[r])) break;
- } else for (r in e) if (!1 === t.call(e[r], r, e[r])) break;
- return e;
- },
- makeArray: function (e, t) {
- var n = t || [];
- return (
- null != e &&
- (p(Object(e))
- ? S.merge(n, "string" == typeof e ? [e] : e)
- : u.call(n, e)),
- n
- );
- },
- inArray: function (e, t, n) {
- return null == t ? -1 : i.call(t, e, n);
- },
- merge: function (e, t) {
- for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r];
- return (e.length = i), e;
- },
- grep: function (e, t, n) {
- for (var r = [], i = 0, o = e.length, a = !n; i < o; i++)
- !t(e[i], i) !== a && r.push(e[i]);
- return r;
- },
- map: function (e, t, n) {
- var r,
- i,
- o = 0,
- a = [];
- if (p(e))
- for (r = e.length; o < r; o++)
- null != (i = t(e[o], o, n)) && a.push(i);
- else for (o in e) null != (i = t(e[o], o, n)) && a.push(i);
- return g(a);
- },
- guid: 1,
- support: y,
- }),
- "function" == typeof Symbol && (S.fn[Symbol.iterator] = t[Symbol.iterator]),
- S.each(
- "Boolean Number String Function Array Date RegExp Object Error Symbol".split(
- " "
- ),
- function (e, t) {
- n["[object " + t + "]"] = t.toLowerCase();
- }
- );
- var d = (function (n) {
- var e,
- d,
- b,
- o,
- i,
- h,
- f,
- g,
- w,
- u,
- l,
- T,
- C,
- a,
- E,
- v,
- s,
- c,
- y,
- S = "sizzle" + 1 * new Date(),
- p = n.document,
- k = 0,
- r = 0,
- m = ue(),
- x = ue(),
- A = ue(),
- N = ue(),
- j = function (e, t) {
- return e === t && (l = !0), 0;
- },
- D = {}.hasOwnProperty,
- t = [],
- q = t.pop,
- L = t.push,
- H = t.push,
- O = t.slice,
- P = function (e, t) {
- for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n;
- return -1;
- },
- R =
- "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
- M = "[\\x20\\t\\r\\n\\f]",
- I =
- "(?:\\\\[\\da-fA-F]{1,6}" +
- M +
- "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
- W =
- "\\[" +
- M +
- "*(" +
- I +
- ")(?:" +
- M +
- "*([*^$|!~]?=)" +
- M +
- "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" +
- I +
- "))|)" +
- M +
- "*\\]",
- F =
- ":(" +
- I +
- ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" +
- W +
- ")*)|.*)\\)|)",
- B = new RegExp(M + "+", "g"),
- $ = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"),
- _ = new RegExp("^" + M + "*," + M + "*"),
- z = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"),
- U = new RegExp(M + "|>"),
- X = new RegExp(F),
- V = new RegExp("^" + I + "$"),
- G = {
- ID: new RegExp("^#(" + I + ")"),
- CLASS: new RegExp("^\\.(" + I + ")"),
- TAG: new RegExp("^(" + I + "|[*])"),
- ATTR: new RegExp("^" + W),
- PSEUDO: new RegExp("^" + F),
- CHILD: new RegExp(
- "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
- M +
- "*(even|odd|(([+-]|)(\\d*)n|)" +
- M +
- "*(?:([+-]|)" +
- M +
- "*(\\d+)|))" +
- M +
- "*\\)|)",
- "i"
- ),
- bool: new RegExp("^(?:" + R + ")$", "i"),
- needsContext: new RegExp(
- "^" +
- M +
- "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
- M +
- "*((?:-\\d)?\\d*)" +
- M +
- "*\\)|)(?=[^-]|$)",
- "i"
- ),
- },
- Y = /HTML$/i,
- Q = /^(?:input|select|textarea|button)$/i,
- J = /^h\d$/i,
- K = /^[^{]+\{\s*\[native \w/,
- Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
- ee = /[+~]/,
- te = new RegExp("\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\([^\\r\\n\\f])", "g"),
- ne = function (e, t) {
- var n = "0x" + e.slice(1) - 65536;
- return (
- t ||
- (n < 0
- ? String.fromCharCode(n + 65536)
- : String.fromCharCode((n >> 10) | 55296, (1023 & n) | 56320))
- );
- },
- re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
- ie = function (e, t) {
- return t
- ? "\0" === e
- ? "\ufffd"
- : e.slice(0, -1) +
- "\\" +
- e.charCodeAt(e.length - 1).toString(16) +
- " "
- : "\\" + e;
- },
- oe = function () {
- T();
- },
- ae = be(
- function (e) {
- return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase();
- },
- { dir: "parentNode", next: "legend" }
- );
- try {
- H.apply((t = O.call(p.childNodes)), p.childNodes),
- t[p.childNodes.length].nodeType;
- } catch (e) {
- H = {
- apply: t.length
- ? function (e, t) {
- L.apply(e, O.call(t));
- }
- : function (e, t) {
- var n = e.length,
- r = 0;
- while ((e[n++] = t[r++]));
- e.length = n - 1;
- },
- };
- }
- function se(t, e, n, r) {
- var i,
- o,
- a,
- s,
- u,
- l,
- c,
- f = e && e.ownerDocument,
- p = e ? e.nodeType : 9;
- if (
- ((n = n || []),
- "string" != typeof t || !t || (1 !== p && 9 !== p && 11 !== p))
- )
- return n;
- if (!r && (T(e), (e = e || C), E)) {
- if (11 !== p && (u = Z.exec(t)))
- if ((i = u[1])) {
- if (9 === p) {
- if (!(a = e.getElementById(i))) return n;
- if (a.id === i) return n.push(a), n;
- } else if (f && (a = f.getElementById(i)) && y(e, a) && a.id === i)
- return n.push(a), n;
- } else {
- if (u[2]) return H.apply(n, e.getElementsByTagName(t)), n;
- if (
- (i = u[3]) &&
- d.getElementsByClassName &&
- e.getElementsByClassName
- )
- return H.apply(n, e.getElementsByClassName(i)), n;
- }
- if (
- d.qsa &&
- !N[t + " "] &&
- (!v || !v.test(t)) &&
- (1 !== p || "object" !== e.nodeName.toLowerCase())
- ) {
- if (((c = t), (f = e), 1 === p && (U.test(t) || z.test(t)))) {
- ((f = (ee.test(t) && ye(e.parentNode)) || e) === e && d.scope) ||
- ((s = e.getAttribute("id"))
- ? (s = s.replace(re, ie))
- : e.setAttribute("id", (s = S))),
- (o = (l = h(t)).length);
- while (o--) l[o] = (s ? "#" + s : ":scope") + " " + xe(l[o]);
- c = l.join(",");
- }
- try {
- return H.apply(n, f.querySelectorAll(c)), n;
- } catch (e) {
- N(t, !0);
- } finally {
- s === S && e.removeAttribute("id");
- }
- }
- }
- return g(t.replace($, "$1"), e, n, r);
- }
- function ue() {
- var r = [];
- return function e(t, n) {
- return (
- r.push(t + " ") > b.cacheLength && delete e[r.shift()],
- (e[t + " "] = n)
- );
- };
- }
- function le(e) {
- return (e[S] = !0), e;
- }
- function ce(e) {
- var t = C.createElement("fieldset");
- try {
- return !!e(t);
- } catch (e) {
- return !1;
- } finally {
- t.parentNode && t.parentNode.removeChild(t), (t = null);
- }
- }
- function fe(e, t) {
- var n = e.split("|"),
- r = n.length;
- while (r--) b.attrHandle[n[r]] = t;
- }
- function pe(e, t) {
- var n = t && e,
- r =
- n &&
- 1 === e.nodeType &&
- 1 === t.nodeType &&
- e.sourceIndex - t.sourceIndex;
- if (r) return r;
- if (n) while ((n = n.nextSibling)) if (n === t) return -1;
- return e ? 1 : -1;
- }
- function de(t) {
- return function (e) {
- return "input" === e.nodeName.toLowerCase() && e.type === t;
- };
- }
- function he(n) {
- return function (e) {
- var t = e.nodeName.toLowerCase();
- return ("input" === t || "button" === t) && e.type === n;
- };
- }
- function ge(t) {
- return function (e) {
- return "form" in e
- ? e.parentNode && !1 === e.disabled
- ? "label" in e
- ? "label" in e.parentNode
- ? e.parentNode.disabled === t
- : e.disabled === t
- : e.isDisabled === t || (e.isDisabled !== !t && ae(e) === t)
- : e.disabled === t
- : "label" in e && e.disabled === t;
- };
- }
- function ve(a) {
- return le(function (o) {
- return (
- (o = +o),
- le(function (e, t) {
- var n,
- r = a([], e.length, o),
- i = r.length;
- while (i--) e[(n = r[i])] && (e[n] = !(t[n] = e[n]));
- })
- );
- });
- }
- function ye(e) {
- return e && "undefined" != typeof e.getElementsByTagName && e;
- }
- for (e in ((d = se.support = {}),
- (i = se.isXML =
- function (e) {
- var t = e && e.namespaceURI,
- n = e && (e.ownerDocument || e).documentElement;
- return !Y.test(t || (n && n.nodeName) || "HTML");
- }),
- (T = se.setDocument =
- function (e) {
- var t,
- n,
- r = e ? e.ownerDocument || e : p;
- return (
- r != C &&
- 9 === r.nodeType &&
- r.documentElement &&
- ((a = (C = r).documentElement),
- (E = !i(C)),
- p != C &&
- (n = C.defaultView) &&
- n.top !== n &&
- (n.addEventListener
- ? n.addEventListener("unload", oe, !1)
- : n.attachEvent && n.attachEvent("onunload", oe)),
- (d.scope = ce(function (e) {
- return (
- a.appendChild(e).appendChild(C.createElement("div")),
- "undefined" != typeof e.querySelectorAll &&
- !e.querySelectorAll(":scope fieldset div").length
- );
- })),
- (d.attributes = ce(function (e) {
- return (e.className = "i"), !e.getAttribute("className");
- })),
- (d.getElementsByTagName = ce(function (e) {
- return (
- e.appendChild(C.createComment("")),
- !e.getElementsByTagName("*").length
- );
- })),
- (d.getElementsByClassName = K.test(C.getElementsByClassName)),
- (d.getById = ce(function (e) {
- return (
- (a.appendChild(e).id = S),
- !C.getElementsByName || !C.getElementsByName(S).length
- );
- })),
- d.getById
- ? ((b.filter.ID = function (e) {
- var t = e.replace(te, ne);
- return function (e) {
- return e.getAttribute("id") === t;
- };
- }),
- (b.find.ID = function (e, t) {
- if ("undefined" != typeof t.getElementById && E) {
- var n = t.getElementById(e);
- return n ? [n] : [];
- }
- }))
- : ((b.filter.ID = function (e) {
- var n = e.replace(te, ne);
- return function (e) {
- var t =
- "undefined" != typeof e.getAttributeNode &&
- e.getAttributeNode("id");
- return t && t.value === n;
- };
- }),
- (b.find.ID = function (e, t) {
- if ("undefined" != typeof t.getElementById && E) {
- var n,
- r,
- i,
- o = t.getElementById(e);
- if (o) {
- if ((n = o.getAttributeNode("id")) && n.value === e)
- return [o];
- (i = t.getElementsByName(e)), (r = 0);
- while ((o = i[r++]))
- if ((n = o.getAttributeNode("id")) && n.value === e)
- return [o];
- }
- return [];
- }
- })),
- (b.find.TAG = d.getElementsByTagName
- ? function (e, t) {
- return "undefined" != typeof t.getElementsByTagName
- ? t.getElementsByTagName(e)
- : d.qsa
- ? t.querySelectorAll(e)
- : void 0;
- }
- : function (e, t) {
- var n,
- r = [],
- i = 0,
- o = t.getElementsByTagName(e);
- if ("*" === e) {
- while ((n = o[i++])) 1 === n.nodeType && r.push(n);
- return r;
- }
- return o;
- }),
- (b.find.CLASS =
- d.getElementsByClassName &&
- function (e, t) {
- if ("undefined" != typeof t.getElementsByClassName && E)
- return t.getElementsByClassName(e);
- }),
- (s = []),
- (v = []),
- (d.qsa = K.test(C.querySelectorAll)) &&
- (ce(function (e) {
- var t;
- (a.appendChild(e).innerHTML =
- ""),
- e.querySelectorAll("[msallowcapture^='']").length &&
- v.push("[*^$]=" + M + "*(?:''|\"\")"),
- e.querySelectorAll("[selected]").length ||
- v.push("\\[" + M + "*(?:value|" + R + ")"),
- e.querySelectorAll("[id~=" + S + "-]").length || v.push("~="),
- (t = C.createElement("input")).setAttribute("name", ""),
- e.appendChild(t),
- e.querySelectorAll("[name='']").length ||
- v.push("\\[" + M + "*name" + M + "*=" + M + "*(?:''|\"\")"),
- e.querySelectorAll(":checked").length || v.push(":checked"),
- e.querySelectorAll("a#" + S + "+*").length ||
- v.push(".#.+[+~]"),
- e.querySelectorAll("\\\f"),
- v.push("[\\r\\n\\f]");
- }),
- ce(function (e) {
- e.innerHTML =
- "";
- var t = C.createElement("input");
- t.setAttribute("type", "hidden"),
- e.appendChild(t).setAttribute("name", "D"),
- e.querySelectorAll("[name=d]").length &&
- v.push("name" + M + "*[*^$|!~]?="),
- 2 !== e.querySelectorAll(":enabled").length &&
- v.push(":enabled", ":disabled"),
- (a.appendChild(e).disabled = !0),
- 2 !== e.querySelectorAll(":disabled").length &&
- v.push(":enabled", ":disabled"),
- e.querySelectorAll("*,:x"),
- v.push(",.*:");
- })),
- (d.matchesSelector = K.test(
- (c =
- a.matches ||
- a.webkitMatchesSelector ||
- a.mozMatchesSelector ||
- a.oMatchesSelector ||
- a.msMatchesSelector)
- )) &&
- ce(function (e) {
- (d.disconnectedMatch = c.call(e, "*")),
- c.call(e, "[s!='']:x"),
- s.push("!=", F);
- }),
- (v = v.length && new RegExp(v.join("|"))),
- (s = s.length && new RegExp(s.join("|"))),
- (t = K.test(a.compareDocumentPosition)),
- (y =
- t || K.test(a.contains)
- ? function (e, t) {
- var n = 9 === e.nodeType ? e.documentElement : e,
- r = t && t.parentNode;
- return (
- e === r ||
- !(
- !r ||
- 1 !== r.nodeType ||
- !(n.contains
- ? n.contains(r)
- : e.compareDocumentPosition &&
- 16 & e.compareDocumentPosition(r))
- )
- );
- }
- : function (e, t) {
- if (t) while ((t = t.parentNode)) if (t === e) return !0;
- return !1;
- }),
- (j = t
- ? function (e, t) {
- if (e === t) return (l = !0), 0;
- var n =
- !e.compareDocumentPosition - !t.compareDocumentPosition;
- return (
- n ||
- (1 &
- (n =
- (e.ownerDocument || e) == (t.ownerDocument || t)
- ? e.compareDocumentPosition(t)
- : 1) ||
- (!d.sortDetached && t.compareDocumentPosition(e) === n)
- ? e == C || (e.ownerDocument == p && y(p, e))
- ? -1
- : t == C || (t.ownerDocument == p && y(p, t))
- ? 1
- : u
- ? P(u, e) - P(u, t)
- : 0
- : 4 & n
- ? -1
- : 1)
- );
- }
- : function (e, t) {
- if (e === t) return (l = !0), 0;
- var n,
- r = 0,
- i = e.parentNode,
- o = t.parentNode,
- a = [e],
- s = [t];
- if (!i || !o)
- return e == C
- ? -1
- : t == C
- ? 1
- : i
- ? -1
- : o
- ? 1
- : u
- ? P(u, e) - P(u, t)
- : 0;
- if (i === o) return pe(e, t);
- n = e;
- while ((n = n.parentNode)) a.unshift(n);
- n = t;
- while ((n = n.parentNode)) s.unshift(n);
- while (a[r] === s[r]) r++;
- return r
- ? pe(a[r], s[r])
- : a[r] == p
- ? -1
- : s[r] == p
- ? 1
- : 0;
- })),
- C
- );
- }),
- (se.matches = function (e, t) {
- return se(e, null, null, t);
- }),
- (se.matchesSelector = function (e, t) {
- if (
- (T(e),
- d.matchesSelector &&
- E &&
- !N[t + " "] &&
- (!s || !s.test(t)) &&
- (!v || !v.test(t)))
- )
- try {
- var n = c.call(e, t);
- if (
- n ||
- d.disconnectedMatch ||
- (e.document && 11 !== e.document.nodeType)
- )
- return n;
- } catch (e) {
- N(t, !0);
- }
- return 0 < se(t, C, null, [e]).length;
- }),
- (se.contains = function (e, t) {
- return (e.ownerDocument || e) != C && T(e), y(e, t);
- }),
- (se.attr = function (e, t) {
- (e.ownerDocument || e) != C && T(e);
- var n = b.attrHandle[t.toLowerCase()],
- r = n && D.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !E) : void 0;
- return void 0 !== r
- ? r
- : d.attributes || !E
- ? e.getAttribute(t)
- : (r = e.getAttributeNode(t)) && r.specified
- ? r.value
- : null;
- }),
- (se.escape = function (e) {
- return (e + "").replace(re, ie);
- }),
- (se.error = function (e) {
- throw new Error("Syntax error, unrecognized expression: " + e);
- }),
- (se.uniqueSort = function (e) {
- var t,
- n = [],
- r = 0,
- i = 0;
- if (
- ((l = !d.detectDuplicates),
- (u = !d.sortStable && e.slice(0)),
- e.sort(j),
- l)
- ) {
- while ((t = e[i++])) t === e[i] && (r = n.push(i));
- while (r--) e.splice(n[r], 1);
- }
- return (u = null), e;
- }),
- (o = se.getText =
- function (e) {
- var t,
- n = "",
- r = 0,
- i = e.nodeType;
- if (i) {
- if (1 === i || 9 === i || 11 === i) {
- if ("string" == typeof e.textContent) return e.textContent;
- for (e = e.firstChild; e; e = e.nextSibling) n += o(e);
- } else if (3 === i || 4 === i) return e.nodeValue;
- } else while ((t = e[r++])) n += o(t);
- return n;
- }),
- ((b = se.selectors =
- {
- cacheLength: 50,
- createPseudo: le,
- match: G,
- attrHandle: {},
- find: {},
- relative: {
- ">": { dir: "parentNode", first: !0 },
- " ": { dir: "parentNode" },
- "+": { dir: "previousSibling", first: !0 },
- "~": { dir: "previousSibling" },
- },
- preFilter: {
- ATTR: function (e) {
- return (
- (e[1] = e[1].replace(te, ne)),
- (e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne)),
- "~=" === e[2] && (e[3] = " " + e[3] + " "),
- e.slice(0, 4)
- );
- },
- CHILD: function (e) {
- return (
- (e[1] = e[1].toLowerCase()),
- "nth" === e[1].slice(0, 3)
- ? (e[3] || se.error(e[0]),
- (e[4] = +(e[4]
- ? e[5] + (e[6] || 1)
- : 2 * ("even" === e[3] || "odd" === e[3]))),
- (e[5] = +(e[7] + e[8] || "odd" === e[3])))
- : e[3] && se.error(e[0]),
- e
- );
- },
- PSEUDO: function (e) {
- var t,
- n = !e[6] && e[2];
- return G.CHILD.test(e[0])
- ? null
- : (e[3]
- ? (e[2] = e[4] || e[5] || "")
- : n &&
- X.test(n) &&
- (t = h(n, !0)) &&
- (t = n.indexOf(")", n.length - t) - n.length) &&
- ((e[0] = e[0].slice(0, t)), (e[2] = n.slice(0, t))),
- e.slice(0, 3));
- },
- },
- filter: {
- TAG: function (e) {
- var t = e.replace(te, ne).toLowerCase();
- return "*" === e
- ? function () {
- return !0;
- }
- : function (e) {
- return e.nodeName && e.nodeName.toLowerCase() === t;
- };
- },
- CLASS: function (e) {
- var t = m[e + " "];
- return (
- t ||
- ((t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) &&
- m(e, function (e) {
- return t.test(
- ("string" == typeof e.className && e.className) ||
- ("undefined" != typeof e.getAttribute &&
- e.getAttribute("class")) ||
- ""
- );
- }))
- );
- },
- ATTR: function (n, r, i) {
- return function (e) {
- var t = se.attr(e, n);
- return null == t
- ? "!=" === r
- : !r ||
- ((t += ""),
- "=" === r
- ? t === i
- : "!=" === r
- ? t !== i
- : "^=" === r
- ? i && 0 === t.indexOf(i)
- : "*=" === r
- ? i && -1 < t.indexOf(i)
- : "$=" === r
- ? i && t.slice(-i.length) === i
- : "~=" === r
- ? -1 < (" " + t.replace(B, " ") + " ").indexOf(i)
- : "|=" === r &&
- (t === i || t.slice(0, i.length + 1) === i + "-"));
- };
- },
- CHILD: function (h, e, t, g, v) {
- var y = "nth" !== h.slice(0, 3),
- m = "last" !== h.slice(-4),
- x = "of-type" === e;
- return 1 === g && 0 === v
- ? function (e) {
- return !!e.parentNode;
- }
- : function (e, t, n) {
- var r,
- i,
- o,
- a,
- s,
- u,
- l = y !== m ? "nextSibling" : "previousSibling",
- c = e.parentNode,
- f = x && e.nodeName.toLowerCase(),
- p = !n && !x,
- d = !1;
- if (c) {
- if (y) {
- while (l) {
- a = e;
- while ((a = a[l]))
- if (
- x
- ? a.nodeName.toLowerCase() === f
- : 1 === a.nodeType
- )
- return !1;
- u = l = "only" === h && !u && "nextSibling";
- }
- return !0;
- }
- if (((u = [m ? c.firstChild : c.lastChild]), m && p)) {
- (d =
- (s =
- (r =
- (i =
- (o = (a = c)[S] || (a[S] = {}))[a.uniqueID] ||
- (o[a.uniqueID] = {}))[h] || [])[0] === k &&
- r[1]) && r[2]),
- (a = s && c.childNodes[s]);
- while ((a = (++s && a && a[l]) || (d = s = 0) || u.pop()))
- if (1 === a.nodeType && ++d && a === e) {
- i[h] = [k, s, d];
- break;
- }
- } else if (
- (p &&
- (d = s =
- (r =
- (i =
- (o = (a = e)[S] || (a[S] = {}))[a.uniqueID] ||
- (o[a.uniqueID] = {}))[h] || [])[0] === k && r[1]),
- !1 === d)
- )
- while ((a = (++s && a && a[l]) || (d = s = 0) || u.pop()))
- if (
- (x
- ? a.nodeName.toLowerCase() === f
- : 1 === a.nodeType) &&
- ++d &&
- (p &&
- ((i =
- (o = a[S] || (a[S] = {}))[a.uniqueID] ||
- (o[a.uniqueID] = {}))[h] = [k, d]),
- a === e)
- )
- break;
- return (d -= v) === g || (d % g == 0 && 0 <= d / g);
- }
- };
- },
- PSEUDO: function (e, o) {
- var t,
- a =
- b.pseudos[e] ||
- b.setFilters[e.toLowerCase()] ||
- se.error("unsupported pseudo: " + e);
- return a[S]
- ? a(o)
- : 1 < a.length
- ? ((t = [e, e, "", o]),
- b.setFilters.hasOwnProperty(e.toLowerCase())
- ? le(function (e, t) {
- var n,
- r = a(e, o),
- i = r.length;
- while (i--) e[(n = P(e, r[i]))] = !(t[n] = r[i]);
- })
- : function (e) {
- return a(e, 0, t);
- })
- : a;
- },
- },
- pseudos: {
- not: le(function (e) {
- var r = [],
- i = [],
- s = f(e.replace($, "$1"));
- return s[S]
- ? le(function (e, t, n, r) {
- var i,
- o = s(e, null, r, []),
- a = e.length;
- while (a--) (i = o[a]) && (e[a] = !(t[a] = i));
- })
- : function (e, t, n) {
- return (r[0] = e), s(r, null, n, i), (r[0] = null), !i.pop();
- };
- }),
- has: le(function (t) {
- return function (e) {
- return 0 < se(t, e).length;
- };
- }),
- contains: le(function (t) {
- return (
- (t = t.replace(te, ne)),
- function (e) {
- return -1 < (e.textContent || o(e)).indexOf(t);
- }
- );
- }),
- lang: le(function (n) {
- return (
- V.test(n || "") || se.error("unsupported lang: " + n),
- (n = n.replace(te, ne).toLowerCase()),
- function (e) {
- var t;
- do {
- if (
- (t = E
- ? e.lang
- : e.getAttribute("xml:lang") || e.getAttribute("lang"))
- )
- return (
- (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-")
- );
- } while ((e = e.parentNode) && 1 === e.nodeType);
- return !1;
- }
- );
- }),
- target: function (e) {
- var t = n.location && n.location.hash;
- return t && t.slice(1) === e.id;
- },
- root: function (e) {
- return e === a;
- },
- focus: function (e) {
- return (
- e === C.activeElement &&
- (!C.hasFocus || C.hasFocus()) &&
- !!(e.type || e.href || ~e.tabIndex)
- );
- },
- enabled: ge(!1),
- disabled: ge(!0),
- checked: function (e) {
- var t = e.nodeName.toLowerCase();
- return (
- ("input" === t && !!e.checked) || ("option" === t && !!e.selected)
- );
- },
- selected: function (e) {
- return (
- e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
- );
- },
- empty: function (e) {
- for (e = e.firstChild; e; e = e.nextSibling)
- if (e.nodeType < 6) return !1;
- return !0;
- },
- parent: function (e) {
- return !b.pseudos.empty(e);
- },
- header: function (e) {
- return J.test(e.nodeName);
- },
- input: function (e) {
- return Q.test(e.nodeName);
- },
- button: function (e) {
- var t = e.nodeName.toLowerCase();
- return ("input" === t && "button" === e.type) || "button" === t;
- },
- text: function (e) {
- var t;
- return (
- "input" === e.nodeName.toLowerCase() &&
- "text" === e.type &&
- (null == (t = e.getAttribute("type")) ||
- "text" === t.toLowerCase())
- );
- },
- first: ve(function () {
- return [0];
- }),
- last: ve(function (e, t) {
- return [t - 1];
- }),
- eq: ve(function (e, t, n) {
- return [n < 0 ? n + t : n];
- }),
- even: ve(function (e, t) {
- for (var n = 0; n < t; n += 2) e.push(n);
- return e;
- }),
- odd: ve(function (e, t) {
- for (var n = 1; n < t; n += 2) e.push(n);
- return e;
- }),
- lt: ve(function (e, t, n) {
- for (var r = n < 0 ? n + t : t < n ? t : n; 0 <= --r; ) e.push(r);
- return e;
- }),
- gt: ve(function (e, t, n) {
- for (var r = n < 0 ? n + t : n; ++r < t; ) e.push(r);
- return e;
- }),
- },
- }).pseudos.nth = b.pseudos.eq),
- { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }))
- b.pseudos[e] = de(e);
- for (e in { submit: !0, reset: !0 }) b.pseudos[e] = he(e);
- function me() {}
- function xe(e) {
- for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
- return r;
- }
- function be(s, e, t) {
- var u = e.dir,
- l = e.next,
- c = l || u,
- f = t && "parentNode" === c,
- p = r++;
- return e.first
- ? function (e, t, n) {
- while ((e = e[u])) if (1 === e.nodeType || f) return s(e, t, n);
- return !1;
- }
- : function (e, t, n) {
- var r,
- i,
- o,
- a = [k, p];
- if (n) {
- while ((e = e[u]))
- if ((1 === e.nodeType || f) && s(e, t, n)) return !0;
- } else
- while ((e = e[u]))
- if (1 === e.nodeType || f)
- if (
- ((i =
- (o = e[S] || (e[S] = {}))[e.uniqueID] ||
- (o[e.uniqueID] = {})),
- l && l === e.nodeName.toLowerCase())
- )
- e = e[u] || e;
- else {
- if ((r = i[c]) && r[0] === k && r[1] === p)
- return (a[2] = r[2]);
- if (((i[c] = a)[2] = s(e, t, n))) return !0;
- }
- return !1;
- };
- }
- function we(i) {
- return 1 < i.length
- ? function (e, t, n) {
- var r = i.length;
- while (r--) if (!i[r](e, t, n)) return !1;
- return !0;
- }
- : i[0];
- }
- function Te(e, t, n, r, i) {
- for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++)
- (o = e[s]) && ((n && !n(o, r, i)) || (a.push(o), l && t.push(s)));
- return a;
- }
- function Ce(d, h, g, v, y, e) {
- return (
- v && !v[S] && (v = Ce(v)),
- y && !y[S] && (y = Ce(y, e)),
- le(function (e, t, n, r) {
- var i,
- o,
- a,
- s = [],
- u = [],
- l = t.length,
- c =
- e ||
- (function (e, t, n) {
- for (var r = 0, i = t.length; r < i; r++) se(e, t[r], n);
- return n;
- })(h || "*", n.nodeType ? [n] : n, []),
- f = !d || (!e && h) ? c : Te(c, s, d, n, r),
- p = g ? (y || (e ? d : l || v) ? [] : t) : f;
- if ((g && g(f, p, n, r), v)) {
- (i = Te(p, u)), v(i, [], n, r), (o = i.length);
- while (o--) (a = i[o]) && (p[u[o]] = !(f[u[o]] = a));
- }
- if (e) {
- if (y || d) {
- if (y) {
- (i = []), (o = p.length);
- while (o--) (a = p[o]) && i.push((f[o] = a));
- y(null, (p = []), i, r);
- }
- o = p.length;
- while (o--)
- (a = p[o]) &&
- -1 < (i = y ? P(e, a) : s[o]) &&
- (e[i] = !(t[i] = a));
- }
- } else (p = Te(p === t ? p.splice(l, p.length) : p)), y ? y(null, t, p, r) : H.apply(t, p);
- })
- );
- }
- function Ee(e) {
- for (
- var i,
- t,
- n,
- r = e.length,
- o = b.relative[e[0].type],
- a = o || b.relative[" "],
- s = o ? 1 : 0,
- u = be(
- function (e) {
- return e === i;
- },
- a,
- !0
- ),
- l = be(
- function (e) {
- return -1 < P(i, e);
- },
- a,
- !0
- ),
- c = [
- function (e, t, n) {
- var r =
- (!o && (n || t !== w)) ||
- ((i = t).nodeType ? u(e, t, n) : l(e, t, n));
- return (i = null), r;
- },
- ];
- s < r;
- s++
- )
- if ((t = b.relative[e[s].type])) c = [be(we(c), t)];
- else {
- if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) {
- for (n = ++s; n < r; n++) if (b.relative[e[n].type]) break;
- return Ce(
- 1 < s && we(c),
- 1 < s &&
- xe(
- e
- .slice(0, s - 1)
- .concat({ value: " " === e[s - 2].type ? "*" : "" })
- ).replace($, "$1"),
- t,
- s < n && Ee(e.slice(s, n)),
- n < r && Ee((e = e.slice(n))),
- n < r && xe(e)
- );
- }
- c.push(t);
- }
- return we(c);
- }
- return (
- (me.prototype = b.filters = b.pseudos),
- (b.setFilters = new me()),
- (h = se.tokenize =
- function (e, t) {
- var n,
- r,
- i,
- o,
- a,
- s,
- u,
- l = x[e + " "];
- if (l) return t ? 0 : l.slice(0);
- (a = e), (s = []), (u = b.preFilter);
- while (a) {
- for (o in ((n && !(r = _.exec(a))) ||
- (r && (a = a.slice(r[0].length) || a), s.push((i = []))),
- (n = !1),
- (r = z.exec(a)) &&
- ((n = r.shift()),
- i.push({ value: n, type: r[0].replace($, " ") }),
- (a = a.slice(n.length))),
- b.filter))
- !(r = G[o].exec(a)) ||
- (u[o] && !(r = u[o](r))) ||
- ((n = r.shift()),
- i.push({ value: n, type: o, matches: r }),
- (a = a.slice(n.length)));
- if (!n) break;
- }
- return t ? a.length : a ? se.error(e) : x(e, s).slice(0);
- }),
- (f = se.compile =
- function (e, t) {
- var n,
- v,
- y,
- m,
- x,
- r,
- i = [],
- o = [],
- a = A[e + " "];
- if (!a) {
- t || (t = h(e)), (n = t.length);
- while (n--) (a = Ee(t[n]))[S] ? i.push(a) : o.push(a);
- (a = A(
- e,
- ((v = o),
- (m = 0 < (y = i).length),
- (x = 0 < v.length),
- (r = function (e, t, n, r, i) {
- var o,
- a,
- s,
- u = 0,
- l = "0",
- c = e && [],
- f = [],
- p = w,
- d = e || (x && b.find.TAG("*", i)),
- h = (k += null == p ? 1 : Math.random() || 0.1),
- g = d.length;
- for (
- i && (w = t == C || t || i);
- l !== g && null != (o = d[l]);
- l++
- ) {
- if (x && o) {
- (a = 0), t || o.ownerDocument == C || (T(o), (n = !E));
- while ((s = v[a++]))
- if (s(o, t || C, n)) {
- r.push(o);
- break;
- }
- i && (k = h);
- }
- m && ((o = !s && o) && u--, e && c.push(o));
- }
- if (((u += l), m && l !== u)) {
- a = 0;
- while ((s = y[a++])) s(c, f, t, n);
- if (e) {
- if (0 < u) while (l--) c[l] || f[l] || (f[l] = q.call(r));
- f = Te(f);
- }
- H.apply(r, f),
- i &&
- !e &&
- 0 < f.length &&
- 1 < u + y.length &&
- se.uniqueSort(r);
- }
- return i && ((k = h), (w = p)), c;
- }),
- m ? le(r) : r)
- )).selector = e;
- }
- return a;
- }),
- (g = se.select =
- function (e, t, n, r) {
- var i,
- o,
- a,
- s,
- u,
- l = "function" == typeof e && e,
- c = !r && h((e = l.selector || e));
- if (((n = n || []), 1 === c.length)) {
- if (
- 2 < (o = c[0] = c[0].slice(0)).length &&
- "ID" === (a = o[0]).type &&
- 9 === t.nodeType &&
- E &&
- b.relative[o[1].type]
- ) {
- if (!(t = (b.find.ID(a.matches[0].replace(te, ne), t) || [])[0]))
- return n;
- l && (t = t.parentNode), (e = e.slice(o.shift().value.length));
- }
- i = G.needsContext.test(e) ? 0 : o.length;
- while (i--) {
- if (((a = o[i]), b.relative[(s = a.type)])) break;
- if (
- (u = b.find[s]) &&
- (r = u(
- a.matches[0].replace(te, ne),
- (ee.test(o[0].type) && ye(t.parentNode)) || t
- ))
- ) {
- if ((o.splice(i, 1), !(e = r.length && xe(o))))
- return H.apply(n, r), n;
- break;
- }
- }
- }
- return (
- (l || f(e, c))(
- r,
- t,
- !E,
- n,
- !t || (ee.test(e) && ye(t.parentNode)) || t
- ),
- n
- );
- }),
- (d.sortStable = S.split("").sort(j).join("") === S),
- (d.detectDuplicates = !!l),
- T(),
- (d.sortDetached = ce(function (e) {
- return 1 & e.compareDocumentPosition(C.createElement("fieldset"));
- })),
- ce(function (e) {
- return (
- (e.innerHTML = ""),
- "#" === e.firstChild.getAttribute("href")
- );
- }) ||
- fe("type|href|height|width", function (e, t, n) {
- if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2);
- }),
- (d.attributes &&
- ce(function (e) {
- return (
- (e.innerHTML = ""),
- e.firstChild.setAttribute("value", ""),
- "" === e.firstChild.getAttribute("value")
- );
- })) ||
- fe("value", function (e, t, n) {
- if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue;
- }),
- ce(function (e) {
- return null == e.getAttribute("disabled");
- }) ||
- fe(R, function (e, t, n) {
- var r;
- if (!n)
- return !0 === e[t]
- ? t.toLowerCase()
- : (r = e.getAttributeNode(t)) && r.specified
- ? r.value
- : null;
- }),
- se
- );
- })(C);
- (S.find = d),
- (S.expr = d.selectors),
- (S.expr[":"] = S.expr.pseudos),
- (S.uniqueSort = S.unique = d.uniqueSort),
- (S.text = d.getText),
- (S.isXMLDoc = d.isXML),
- (S.contains = d.contains),
- (S.escapeSelector = d.escape);
- var h = function (e, t, n) {
- var r = [],
- i = void 0 !== n;
- while ((e = e[t]) && 9 !== e.nodeType)
- if (1 === e.nodeType) {
- if (i && S(e).is(n)) break;
- r.push(e);
- }
- return r;
- },
- T = function (e, t) {
- for (var n = []; e; e = e.nextSibling)
- 1 === e.nodeType && e !== t && n.push(e);
- return n;
- },
- k = S.expr.match.needsContext;
- function A(e, t) {
- return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
- }
- var N = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
- function j(e, n, r) {
- return m(n)
- ? S.grep(e, function (e, t) {
- return !!n.call(e, t, e) !== r;
- })
- : n.nodeType
- ? S.grep(e, function (e) {
- return (e === n) !== r;
- })
- : "string" != typeof n
- ? S.grep(e, function (e) {
- return -1 < i.call(n, e) !== r;
- })
- : S.filter(n, e, r);
- }
- (S.filter = function (e, t, n) {
- var r = t[0];
- return (
- n && (e = ":not(" + e + ")"),
- 1 === t.length && 1 === r.nodeType
- ? S.find.matchesSelector(r, e)
- ? [r]
- : []
- : S.find.matches(
- e,
- S.grep(t, function (e) {
- return 1 === e.nodeType;
- })
- )
- );
- }),
- S.fn.extend({
- find: function (e) {
- var t,
- n,
- r = this.length,
- i = this;
- if ("string" != typeof e)
- return this.pushStack(
- S(e).filter(function () {
- for (t = 0; t < r; t++) if (S.contains(i[t], this)) return !0;
- })
- );
- for (n = this.pushStack([]), t = 0; t < r; t++) S.find(e, i[t], n);
- return 1 < r ? S.uniqueSort(n) : n;
- },
- filter: function (e) {
- return this.pushStack(j(this, e || [], !1));
- },
- not: function (e) {
- return this.pushStack(j(this, e || [], !0));
- },
- is: function (e) {
- return !!j(this, "string" == typeof e && k.test(e) ? S(e) : e || [], !1)
- .length;
- },
- });
- var D,
- q = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
- ((S.fn.init = function (e, t, n) {
- var r, i;
- if (!e) return this;
- if (((n = n || D), "string" == typeof e)) {
- if (
- !(r =
- "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length
- ? [null, e, null]
- : q.exec(e)) ||
- (!r[1] && t)
- )
- return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
- if (r[1]) {
- if (
- ((t = t instanceof S ? t[0] : t),
- S.merge(
- this,
- S.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : E, !0)
- ),
- N.test(r[1]) && S.isPlainObject(t))
- )
- for (r in t) m(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
- return this;
- }
- return (
- (i = E.getElementById(r[2])) && ((this[0] = i), (this.length = 1)), this
- );
- }
- return e.nodeType
- ? ((this[0] = e), (this.length = 1), this)
- : m(e)
- ? void 0 !== n.ready
- ? n.ready(e)
- : e(S)
- : S.makeArray(e, this);
- }).prototype = S.fn),
- (D = S(E));
- var L = /^(?:parents|prev(?:Until|All))/,
- H = { children: !0, contents: !0, next: !0, prev: !0 };
- function O(e, t) {
- while ((e = e[t]) && 1 !== e.nodeType);
- return e;
- }
- S.fn.extend({
- has: function (e) {
- var t = S(e, this),
- n = t.length;
- return this.filter(function () {
- for (var e = 0; e < n; e++) if (S.contains(this, t[e])) return !0;
- });
- },
- closest: function (e, t) {
- var n,
- r = 0,
- i = this.length,
- o = [],
- a = "string" != typeof e && S(e);
- if (!k.test(e))
- for (; r < i; r++)
- for (n = this[r]; n && n !== t; n = n.parentNode)
- if (
- n.nodeType < 11 &&
- (a
- ? -1 < a.index(n)
- : 1 === n.nodeType && S.find.matchesSelector(n, e))
- ) {
- o.push(n);
- break;
- }
- return this.pushStack(1 < o.length ? S.uniqueSort(o) : o);
- },
- index: function (e) {
- return e
- ? "string" == typeof e
- ? i.call(S(e), this[0])
- : i.call(this, e.jquery ? e[0] : e)
- : this[0] && this[0].parentNode
- ? this.first().prevAll().length
- : -1;
- },
- add: function (e, t) {
- return this.pushStack(S.uniqueSort(S.merge(this.get(), S(e, t))));
- },
- addBack: function (e) {
- return this.add(null == e ? this.prevObject : this.prevObject.filter(e));
- },
- }),
- S.each(
- {
- parent: function (e) {
- var t = e.parentNode;
- return t && 11 !== t.nodeType ? t : null;
- },
- parents: function (e) {
- return h(e, "parentNode");
- },
- parentsUntil: function (e, t, n) {
- return h(e, "parentNode", n);
- },
- next: function (e) {
- return O(e, "nextSibling");
- },
- prev: function (e) {
- return O(e, "previousSibling");
- },
- nextAll: function (e) {
- return h(e, "nextSibling");
- },
- prevAll: function (e) {
- return h(e, "previousSibling");
- },
- nextUntil: function (e, t, n) {
- return h(e, "nextSibling", n);
- },
- prevUntil: function (e, t, n) {
- return h(e, "previousSibling", n);
- },
- siblings: function (e) {
- return T((e.parentNode || {}).firstChild, e);
- },
- children: function (e) {
- return T(e.firstChild);
- },
- contents: function (e) {
- return null != e.contentDocument && r(e.contentDocument)
- ? e.contentDocument
- : (A(e, "template") && (e = e.content || e),
- S.merge([], e.childNodes));
- },
- },
- function (r, i) {
- S.fn[r] = function (e, t) {
- var n = S.map(this, i, e);
- return (
- "Until" !== r.slice(-5) && (t = e),
- t && "string" == typeof t && (n = S.filter(t, n)),
- 1 < this.length &&
- (H[r] || S.uniqueSort(n), L.test(r) && n.reverse()),
- this.pushStack(n)
- );
- };
- }
- );
- var P = /[^\x20\t\r\n\f]+/g;
- function R(e) {
- return e;
- }
- function M(e) {
- throw e;
- }
- function I(e, t, n, r) {
- var i;
- try {
- e && m((i = e.promise))
- ? i.call(e).done(t).fail(n)
- : e && m((i = e.then))
- ? i.call(e, t, n)
- : t.apply(void 0, [e].slice(r));
- } catch (e) {
- n.apply(void 0, [e]);
- }
- }
- (S.Callbacks = function (r) {
- var e, n;
- r =
- "string" == typeof r
- ? ((e = r),
- (n = {}),
- S.each(e.match(P) || [], function (e, t) {
- n[t] = !0;
- }),
- n)
- : S.extend({}, r);
- var i,
- t,
- o,
- a,
- s = [],
- u = [],
- l = -1,
- c = function () {
- for (a = a || r.once, o = i = !0; u.length; l = -1) {
- t = u.shift();
- while (++l < s.length)
- !1 === s[l].apply(t[0], t[1]) &&
- r.stopOnFalse &&
- ((l = s.length), (t = !1));
- }
- r.memory || (t = !1), (i = !1), a && (s = t ? [] : "");
- },
- f = {
- add: function () {
- return (
- s &&
- (t && !i && ((l = s.length - 1), u.push(t)),
- (function n(e) {
- S.each(e, function (e, t) {
- m(t)
- ? (r.unique && f.has(t)) || s.push(t)
- : t && t.length && "string" !== w(t) && n(t);
- });
- })(arguments),
- t && !i && c()),
- this
- );
- },
- remove: function () {
- return (
- S.each(arguments, function (e, t) {
- var n;
- while (-1 < (n = S.inArray(t, s, n)))
- s.splice(n, 1), n <= l && l--;
- }),
- this
- );
- },
- has: function (e) {
- return e ? -1 < S.inArray(e, s) : 0 < s.length;
- },
- empty: function () {
- return s && (s = []), this;
- },
- disable: function () {
- return (a = u = []), (s = t = ""), this;
- },
- disabled: function () {
- return !s;
- },
- lock: function () {
- return (a = u = []), t || i || (s = t = ""), this;
- },
- locked: function () {
- return !!a;
- },
- fireWith: function (e, t) {
- return (
- a ||
- ((t = [e, (t = t || []).slice ? t.slice() : t]),
- u.push(t),
- i || c()),
- this
- );
- },
- fire: function () {
- return f.fireWith(this, arguments), this;
- },
- fired: function () {
- return !!o;
- },
- };
- return f;
- }),
- S.extend({
- Deferred: function (e) {
- var o = [
- [
- "notify",
- "progress",
- S.Callbacks("memory"),
- S.Callbacks("memory"),
- 2,
- ],
- [
- "resolve",
- "done",
- S.Callbacks("once memory"),
- S.Callbacks("once memory"),
- 0,
- "resolved",
- ],
- [
- "reject",
- "fail",
- S.Callbacks("once memory"),
- S.Callbacks("once memory"),
- 1,
- "rejected",
- ],
- ],
- i = "pending",
- a = {
- state: function () {
- return i;
- },
- always: function () {
- return s.done(arguments).fail(arguments), this;
- },
- catch: function (e) {
- return a.then(null, e);
- },
- pipe: function () {
- var i = arguments;
- return S.Deferred(function (r) {
- S.each(o, function (e, t) {
- var n = m(i[t[4]]) && i[t[4]];
- s[t[1]](function () {
- var e = n && n.apply(this, arguments);
- e && m(e.promise)
- ? e
- .promise()
- .progress(r.notify)
- .done(r.resolve)
- .fail(r.reject)
- : r[t[0] + "With"](this, n ? [e] : arguments);
- });
- }),
- (i = null);
- }).promise();
- },
- then: function (t, n, r) {
- var u = 0;
- function l(i, o, a, s) {
- return function () {
- var n = this,
- r = arguments,
- e = function () {
- var e, t;
- if (!(i < u)) {
- if ((e = a.apply(n, r)) === o.promise())
- throw new TypeError("Thenable self-resolution");
- (t =
- e &&
- ("object" == typeof e || "function" == typeof e) &&
- e.then),
- m(t)
- ? s
- ? t.call(e, l(u, o, R, s), l(u, o, M, s))
- : (u++,
- t.call(
- e,
- l(u, o, R, s),
- l(u, o, M, s),
- l(u, o, R, o.notifyWith)
- ))
- : (a !== R && ((n = void 0), (r = [e])),
- (s || o.resolveWith)(n, r));
- }
- },
- t = s
- ? e
- : function () {
- try {
- e();
- } catch (e) {
- S.Deferred.exceptionHook &&
- S.Deferred.exceptionHook(e, t.stackTrace),
- u <= i + 1 &&
- (a !== M && ((n = void 0), (r = [e])),
- o.rejectWith(n, r));
- }
- };
- i
- ? t()
- : (S.Deferred.getStackHook &&
- (t.stackTrace = S.Deferred.getStackHook()),
- C.setTimeout(t));
- };
- }
- return S.Deferred(function (e) {
- o[0][3].add(l(0, e, m(r) ? r : R, e.notifyWith)),
- o[1][3].add(l(0, e, m(t) ? t : R)),
- o[2][3].add(l(0, e, m(n) ? n : M));
- }).promise();
- },
- promise: function (e) {
- return null != e ? S.extend(e, a) : a;
- },
- },
- s = {};
- return (
- S.each(o, function (e, t) {
- var n = t[2],
- r = t[5];
- (a[t[1]] = n.add),
- r &&
- n.add(
- function () {
- i = r;
- },
- o[3 - e][2].disable,
- o[3 - e][3].disable,
- o[0][2].lock,
- o[0][3].lock
- ),
- n.add(t[3].fire),
- (s[t[0]] = function () {
- return (
- s[t[0] + "With"](this === s ? void 0 : this, arguments), this
- );
- }),
- (s[t[0] + "With"] = n.fireWith);
- }),
- a.promise(s),
- e && e.call(s, s),
- s
- );
- },
- when: function (e) {
- var n = arguments.length,
- t = n,
- r = Array(t),
- i = s.call(arguments),
- o = S.Deferred(),
- a = function (t) {
- return function (e) {
- (r[t] = this),
- (i[t] = 1 < arguments.length ? s.call(arguments) : e),
- --n || o.resolveWith(r, i);
- };
- };
- if (
- n <= 1 &&
- (I(e, o.done(a(t)).resolve, o.reject, !n),
- "pending" === o.state() || m(i[t] && i[t].then))
- )
- return o.then();
- while (t--) I(i[t], a(t), o.reject);
- return o.promise();
- },
- });
- var W = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
- (S.Deferred.exceptionHook = function (e, t) {
- C.console &&
- C.console.warn &&
- e &&
- W.test(e.name) &&
- C.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t);
- }),
- (S.readyException = function (e) {
- C.setTimeout(function () {
- throw e;
- });
- });
- var F = S.Deferred();
- function B() {
- E.removeEventListener("DOMContentLoaded", B),
- C.removeEventListener("load", B),
- S.ready();
- }
- (S.fn.ready = function (e) {
- return (
- F.then(e)["catch"](function (e) {
- S.readyException(e);
- }),
- this
- );
- }),
- S.extend({
- isReady: !1,
- readyWait: 1,
- ready: function (e) {
- (!0 === e ? --S.readyWait : S.isReady) ||
- ((S.isReady = !0) !== e && 0 < --S.readyWait) ||
- F.resolveWith(E, [S]);
- },
- }),
- (S.ready.then = F.then),
- "complete" === E.readyState ||
- ("loading" !== E.readyState && !E.documentElement.doScroll)
- ? C.setTimeout(S.ready)
- : (E.addEventListener("DOMContentLoaded", B),
- C.addEventListener("load", B));
- var $ = function (e, t, n, r, i, o, a) {
- var s = 0,
- u = e.length,
- l = null == n;
- if ("object" === w(n))
- for (s in ((i = !0), n)) $(e, t, s, n[s], !0, o, a);
- else if (
- void 0 !== r &&
- ((i = !0),
- m(r) || (a = !0),
- l &&
- (a
- ? (t.call(e, r), (t = null))
- : ((l = t),
- (t = function (e, t, n) {
- return l.call(S(e), n);
- }))),
- t)
- )
- for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
- return i ? e : l ? t.call(e) : u ? t(e[0], n) : o;
- },
- _ = /^-ms-/,
- z = /-([a-z])/g;
- function U(e, t) {
- return t.toUpperCase();
- }
- function X(e) {
- return e.replace(_, "ms-").replace(z, U);
- }
- var V = function (e) {
- return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType;
- };
- function G() {
- this.expando = S.expando + G.uid++;
- }
- (G.uid = 1),
- (G.prototype = {
- cache: function (e) {
- var t = e[this.expando];
- return (
- t ||
- ((t = {}),
- V(e) &&
- (e.nodeType
- ? (e[this.expando] = t)
- : Object.defineProperty(e, this.expando, {
- value: t,
- configurable: !0,
- }))),
- t
- );
- },
- set: function (e, t, n) {
- var r,
- i = this.cache(e);
- if ("string" == typeof t) i[X(t)] = n;
- else for (r in t) i[X(r)] = t[r];
- return i;
- },
- get: function (e, t) {
- return void 0 === t
- ? this.cache(e)
- : e[this.expando] && e[this.expando][X(t)];
- },
- access: function (e, t, n) {
- return void 0 === t || (t && "string" == typeof t && void 0 === n)
- ? this.get(e, t)
- : (this.set(e, t, n), void 0 !== n ? n : t);
- },
- remove: function (e, t) {
- var n,
- r = e[this.expando];
- if (void 0 !== r) {
- if (void 0 !== t) {
- n = (t = Array.isArray(t)
- ? t.map(X)
- : (t = X(t)) in r
- ? [t]
- : t.match(P) || []).length;
- while (n--) delete r[t[n]];
- }
- (void 0 === t || S.isEmptyObject(r)) &&
- (e.nodeType ? (e[this.expando] = void 0) : delete e[this.expando]);
- }
- },
- hasData: function (e) {
- var t = e[this.expando];
- return void 0 !== t && !S.isEmptyObject(t);
- },
- });
- var Y = new G(),
- Q = new G(),
- J = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
- K = /[A-Z]/g;
- function Z(e, t, n) {
- var r, i;
- if (void 0 === n && 1 === e.nodeType)
- if (
- ((r = "data-" + t.replace(K, "-$&").toLowerCase()),
- "string" == typeof (n = e.getAttribute(r)))
- ) {
- try {
- n =
- "true" === (i = n) ||
- ("false" !== i &&
- ("null" === i
- ? null
- : i === +i + ""
- ? +i
- : J.test(i)
- ? JSON.parse(i)
- : i));
- } catch (e) {}
- Q.set(e, t, n);
- } else n = void 0;
- return n;
- }
- S.extend({
- hasData: function (e) {
- return Q.hasData(e) || Y.hasData(e);
- },
- data: function (e, t, n) {
- return Q.access(e, t, n);
- },
- removeData: function (e, t) {
- Q.remove(e, t);
- },
- _data: function (e, t, n) {
- return Y.access(e, t, n);
- },
- _removeData: function (e, t) {
- Y.remove(e, t);
- },
- }),
- S.fn.extend({
- data: function (n, e) {
- var t,
- r,
- i,
- o = this[0],
- a = o && o.attributes;
- if (void 0 === n) {
- if (
- this.length &&
- ((i = Q.get(o)), 1 === o.nodeType && !Y.get(o, "hasDataAttrs"))
- ) {
- t = a.length;
- while (t--)
- a[t] &&
- 0 === (r = a[t].name).indexOf("data-") &&
- ((r = X(r.slice(5))), Z(o, r, i[r]));
- Y.set(o, "hasDataAttrs", !0);
- }
- return i;
- }
- return "object" == typeof n
- ? this.each(function () {
- Q.set(this, n);
- })
- : $(
- this,
- function (e) {
- var t;
- if (o && void 0 === e)
- return void 0 !== (t = Q.get(o, n))
- ? t
- : void 0 !== (t = Z(o, n))
- ? t
- : void 0;
- this.each(function () {
- Q.set(this, n, e);
- });
- },
- null,
- e,
- 1 < arguments.length,
- null,
- !0
- );
- },
- removeData: function (e) {
- return this.each(function () {
- Q.remove(this, e);
- });
- },
- }),
- S.extend({
- queue: function (e, t, n) {
- var r;
- if (e)
- return (
- (t = (t || "fx") + "queue"),
- (r = Y.get(e, t)),
- n &&
- (!r || Array.isArray(n)
- ? (r = Y.access(e, t, S.makeArray(n)))
- : r.push(n)),
- r || []
- );
- },
- dequeue: function (e, t) {
- t = t || "fx";
- var n = S.queue(e, t),
- r = n.length,
- i = n.shift(),
- o = S._queueHooks(e, t);
- "inprogress" === i && ((i = n.shift()), r--),
- i &&
- ("fx" === t && n.unshift("inprogress"),
- delete o.stop,
- i.call(
- e,
- function () {
- S.dequeue(e, t);
- },
- o
- )),
- !r && o && o.empty.fire();
- },
- _queueHooks: function (e, t) {
- var n = t + "queueHooks";
- return (
- Y.get(e, n) ||
- Y.access(e, n, {
- empty: S.Callbacks("once memory").add(function () {
- Y.remove(e, [t + "queue", n]);
- }),
- })
- );
- },
- }),
- S.fn.extend({
- queue: function (t, n) {
- var e = 2;
- return (
- "string" != typeof t && ((n = t), (t = "fx"), e--),
- arguments.length < e
- ? S.queue(this[0], t)
- : void 0 === n
- ? this
- : this.each(function () {
- var e = S.queue(this, t, n);
- S._queueHooks(this, t),
- "fx" === t && "inprogress" !== e[0] && S.dequeue(this, t);
- })
- );
- },
- dequeue: function (e) {
- return this.each(function () {
- S.dequeue(this, e);
- });
- },
- clearQueue: function (e) {
- return this.queue(e || "fx", []);
- },
- promise: function (e, t) {
- var n,
- r = 1,
- i = S.Deferred(),
- o = this,
- a = this.length,
- s = function () {
- --r || i.resolveWith(o, [o]);
- };
- "string" != typeof e && ((t = e), (e = void 0)), (e = e || "fx");
- while (a--)
- (n = Y.get(o[a], e + "queueHooks")) &&
- n.empty &&
- (r++, n.empty.add(s));
- return s(), i.promise(t);
- },
- });
- var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
- te = new RegExp("^(?:([+-])=|)(" + ee + ")([a-z%]*)$", "i"),
- ne = ["Top", "Right", "Bottom", "Left"],
- re = E.documentElement,
- ie = function (e) {
- return S.contains(e.ownerDocument, e);
- },
- oe = { composed: !0 };
- re.getRootNode &&
- (ie = function (e) {
- return (
- S.contains(e.ownerDocument, e) || e.getRootNode(oe) === e.ownerDocument
- );
- });
- var ae = function (e, t) {
- return (
- "none" === (e = t || e).style.display ||
- ("" === e.style.display && ie(e) && "none" === S.css(e, "display"))
- );
- };
- function se(e, t, n, r) {
- var i,
- o,
- a = 20,
- s = r
- ? function () {
- return r.cur();
- }
- : function () {
- return S.css(e, t, "");
- },
- u = s(),
- l = (n && n[3]) || (S.cssNumber[t] ? "" : "px"),
- c =
- e.nodeType &&
- (S.cssNumber[t] || ("px" !== l && +u)) &&
- te.exec(S.css(e, t));
- if (c && c[3] !== l) {
- (u /= 2), (l = l || c[3]), (c = +u || 1);
- while (a--)
- S.style(e, t, c + l),
- (1 - o) * (1 - (o = s() / u || 0.5)) <= 0 && (a = 0),
- (c /= o);
- (c *= 2), S.style(e, t, c + l), (n = n || []);
- }
- return (
- n &&
- ((c = +c || +u || 0),
- (i = n[1] ? c + (n[1] + 1) * n[2] : +n[2]),
- r && ((r.unit = l), (r.start = c), (r.end = i))),
- i
- );
- }
- var ue = {};
- function le(e, t) {
- for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++)
- (r = e[c]).style &&
- ((n = r.style.display),
- t
- ? ("none" === n &&
- ((l[c] = Y.get(r, "display") || null),
- l[c] || (r.style.display = "")),
- "" === r.style.display &&
- ae(r) &&
- (l[c] =
- ((u = a = o = void 0),
- (a = (i = r).ownerDocument),
- (s = i.nodeName),
- (u = ue[s]) ||
- ((o = a.body.appendChild(a.createElement(s))),
- (u = S.css(o, "display")),
- o.parentNode.removeChild(o),
- "none" === u && (u = "block"),
- (ue[s] = u)))))
- : "none" !== n && ((l[c] = "none"), Y.set(r, "display", n)));
- for (c = 0; c < f; c++) null != l[c] && (e[c].style.display = l[c]);
- return e;
- }
- S.fn.extend({
- show: function () {
- return le(this, !0);
- },
- hide: function () {
- return le(this);
- },
- toggle: function (e) {
- return "boolean" == typeof e
- ? e
- ? this.show()
- : this.hide()
- : this.each(function () {
- ae(this) ? S(this).show() : S(this).hide();
- });
- },
- });
- var ce,
- fe,
- pe = /^(?:checkbox|radio)$/i,
- de = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
- he = /^$|^module$|\/(?:java|ecma)script/i;
- (ce = E.createDocumentFragment().appendChild(E.createElement("div"))),
- (fe = E.createElement("input")).setAttribute("type", "radio"),
- fe.setAttribute("checked", "checked"),
- fe.setAttribute("name", "t"),
- ce.appendChild(fe),
- (y.checkClone = ce.cloneNode(!0).cloneNode(!0).lastChild.checked),
- (ce.innerHTML = ""),
- (y.noCloneChecked = !!ce.cloneNode(!0).lastChild.defaultValue),
- (ce.innerHTML = ""),
- (y.option = !!ce.lastChild);
- var ge = {
- thead: [1, ""],
- col: [2, ""],
- tr: [2, ""],
- td: [3, ""],
- _default: [0, "", ""],
- };
- function ve(e, t) {
- var n;
- return (
- (n =
- "undefined" != typeof e.getElementsByTagName
- ? e.getElementsByTagName(t || "*")
- : "undefined" != typeof e.querySelectorAll
- ? e.querySelectorAll(t || "*")
- : []),
- void 0 === t || (t && A(e, t)) ? S.merge([e], n) : n
- );
- }
- function ye(e, t) {
- for (var n = 0, r = e.length; n < r; n++)
- Y.set(e[n], "globalEval", !t || Y.get(t[n], "globalEval"));
- }
- (ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead),
- (ge.th = ge.td),
- y.option ||
- (ge.optgroup = ge.option =
- [1, ""]);
- var me = /<|?\w+;/;
- function xe(e, t, n, r, i) {
- for (
- var o,
- a,
- s,
- u,
- l,
- c,
- f = t.createDocumentFragment(),
- p = [],
- d = 0,
- h = e.length;
- d < h;
- d++
- )
- if ((o = e[d]) || 0 === o)
- if ("object" === w(o)) S.merge(p, o.nodeType ? [o] : o);
- else if (me.test(o)) {
- (a = a || f.appendChild(t.createElement("div"))),
- (s = (de.exec(o) || ["", ""])[1].toLowerCase()),
- (u = ge[s] || ge._default),
- (a.innerHTML = u[1] + S.htmlPrefilter(o) + u[2]),
- (c = u[0]);
- while (c--) a = a.lastChild;
- S.merge(p, a.childNodes), ((a = f.firstChild).textContent = "");
- } else p.push(t.createTextNode(o));
- (f.textContent = ""), (d = 0);
- while ((o = p[d++]))
- if (r && -1 < S.inArray(o, r)) i && i.push(o);
- else if (
- ((l = ie(o)), (a = ve(f.appendChild(o), "script")), l && ye(a), n)
- ) {
- c = 0;
- while ((o = a[c++])) he.test(o.type || "") && n.push(o);
- }
- return f;
- }
- var be = /^([^.]*)(?:\.(.+)|)/;
- function we() {
- return !0;
- }
- function Te() {
- return !1;
- }
- function Ce(e, t) {
- return (
- (e ===
- (function () {
- try {
- return E.activeElement;
- } catch (e) {}
- })()) ==
- ("focus" === t)
- );
- }
- function Ee(e, t, n, r, i, o) {
- var a, s;
- if ("object" == typeof t) {
- for (s in ("string" != typeof n && ((r = r || n), (n = void 0)), t))
- Ee(e, s, n, r, t[s], o);
- return e;
- }
- if (
- (null == r && null == i
- ? ((i = n), (r = n = void 0))
- : null == i &&
- ("string" == typeof n
- ? ((i = r), (r = void 0))
- : ((i = r), (r = n), (n = void 0))),
- !1 === i)
- )
- i = Te;
- else if (!i) return e;
- return (
- 1 === o &&
- ((a = i),
- ((i = function (e) {
- return S().off(e), a.apply(this, arguments);
- }).guid = a.guid || (a.guid = S.guid++))),
- e.each(function () {
- S.event.add(this, t, i, r, n);
- })
- );
- }
- function Se(e, i, o) {
- o
- ? (Y.set(e, i, !1),
- S.event.add(e, i, {
- namespace: !1,
- handler: function (e) {
- var t,
- n,
- r = Y.get(this, i);
- if (1 & e.isTrigger && this[i]) {
- if (r.length)
- (S.event.special[i] || {}).delegateType && e.stopPropagation();
- else if (
- ((r = s.call(arguments)),
- Y.set(this, i, r),
- (t = o(this, i)),
- this[i](),
- r !== (n = Y.get(this, i)) || t ? Y.set(this, i, !1) : (n = {}),
- r !== n)
- )
- return (
- e.stopImmediatePropagation(), e.preventDefault(), n && n.value
- );
- } else
- r.length &&
- (Y.set(this, i, {
- value: S.event.trigger(
- S.extend(r[0], S.Event.prototype),
- r.slice(1),
- this
- ),
- }),
- e.stopImmediatePropagation());
- },
- }))
- : void 0 === Y.get(e, i) && S.event.add(e, i, we);
- }
- (S.event = {
- global: {},
- add: function (t, e, n, r, i) {
- var o,
- a,
- s,
- u,
- l,
- c,
- f,
- p,
- d,
- h,
- g,
- v = Y.get(t);
- if (V(t)) {
- n.handler && ((n = (o = n).handler), (i = o.selector)),
- i && S.find.matchesSelector(re, i),
- n.guid || (n.guid = S.guid++),
- (u = v.events) || (u = v.events = Object.create(null)),
- (a = v.handle) ||
- (a = v.handle =
- function (e) {
- return "undefined" != typeof S && S.event.triggered !== e.type
- ? S.event.dispatch.apply(t, arguments)
- : void 0;
- }),
- (l = (e = (e || "").match(P) || [""]).length);
- while (l--)
- (d = g = (s = be.exec(e[l]) || [])[1]),
- (h = (s[2] || "").split(".").sort()),
- d &&
- ((f = S.event.special[d] || {}),
- (d = (i ? f.delegateType : f.bindType) || d),
- (f = S.event.special[d] || {}),
- (c = S.extend(
- {
- type: d,
- origType: g,
- data: r,
- handler: n,
- guid: n.guid,
- selector: i,
- needsContext: i && S.expr.match.needsContext.test(i),
- namespace: h.join("."),
- },
- o
- )),
- (p = u[d]) ||
- (((p = u[d] = []).delegateCount = 0),
- (f.setup && !1 !== f.setup.call(t, r, h, a)) ||
- (t.addEventListener && t.addEventListener(d, a))),
- f.add &&
- (f.add.call(t, c), c.handler.guid || (c.handler.guid = n.guid)),
- i ? p.splice(p.delegateCount++, 0, c) : p.push(c),
- (S.event.global[d] = !0));
- }
- },
- remove: function (e, t, n, r, i) {
- var o,
- a,
- s,
- u,
- l,
- c,
- f,
- p,
- d,
- h,
- g,
- v = Y.hasData(e) && Y.get(e);
- if (v && (u = v.events)) {
- l = (t = (t || "").match(P) || [""]).length;
- while (l--)
- if (
- ((d = g = (s = be.exec(t[l]) || [])[1]),
- (h = (s[2] || "").split(".").sort()),
- d)
- ) {
- (f = S.event.special[d] || {}),
- (p = u[(d = (r ? f.delegateType : f.bindType) || d)] || []),
- (s =
- s[2] &&
- new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)")),
- (a = o = p.length);
- while (o--)
- (c = p[o]),
- (!i && g !== c.origType) ||
- (n && n.guid !== c.guid) ||
- (s && !s.test(c.namespace)) ||
- (r && r !== c.selector && ("**" !== r || !c.selector)) ||
- (p.splice(o, 1),
- c.selector && p.delegateCount--,
- f.remove && f.remove.call(e, c));
- a &&
- !p.length &&
- ((f.teardown && !1 !== f.teardown.call(e, h, v.handle)) ||
- S.removeEvent(e, d, v.handle),
- delete u[d]);
- } else for (d in u) S.event.remove(e, d + t[l], n, r, !0);
- S.isEmptyObject(u) && Y.remove(e, "handle events");
- }
- },
- dispatch: function (e) {
- var t,
- n,
- r,
- i,
- o,
- a,
- s = new Array(arguments.length),
- u = S.event.fix(e),
- l = (Y.get(this, "events") || Object.create(null))[u.type] || [],
- c = S.event.special[u.type] || {};
- for (s[0] = u, t = 1; t < arguments.length; t++) s[t] = arguments[t];
- if (
- ((u.delegateTarget = this),
- !c.preDispatch || !1 !== c.preDispatch.call(this, u))
- ) {
- (a = S.event.handlers.call(this, u, l)), (t = 0);
- while ((i = a[t++]) && !u.isPropagationStopped()) {
- (u.currentTarget = i.elem), (n = 0);
- while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped())
- (u.rnamespace &&
- !1 !== o.namespace &&
- !u.rnamespace.test(o.namespace)) ||
- ((u.handleObj = o),
- (u.data = o.data),
- void 0 !==
- (r = (
- (S.event.special[o.origType] || {}).handle || o.handler
- ).apply(i.elem, s)) &&
- !1 === (u.result = r) &&
- (u.preventDefault(), u.stopPropagation()));
- }
- return c.postDispatch && c.postDispatch.call(this, u), u.result;
- }
- },
- handlers: function (e, t) {
- var n,
- r,
- i,
- o,
- a,
- s = [],
- u = t.delegateCount,
- l = e.target;
- if (u && l.nodeType && !("click" === e.type && 1 <= e.button))
- for (; l !== this; l = l.parentNode || this)
- if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) {
- for (o = [], a = {}, n = 0; n < u; n++)
- void 0 === a[(i = (r = t[n]).selector + " ")] &&
- (a[i] = r.needsContext
- ? -1 < S(i, this).index(l)
- : S.find(i, this, null, [l]).length),
- a[i] && o.push(r);
- o.length && s.push({ elem: l, handlers: o });
- }
- return (
- (l = this), u < t.length && s.push({ elem: l, handlers: t.slice(u) }), s
- );
- },
- addProp: function (t, e) {
- Object.defineProperty(S.Event.prototype, t, {
- enumerable: !0,
- configurable: !0,
- get: m(e)
- ? function () {
- if (this.originalEvent) return e(this.originalEvent);
- }
- : function () {
- if (this.originalEvent) return this.originalEvent[t];
- },
- set: function (e) {
- Object.defineProperty(this, t, {
- enumerable: !0,
- configurable: !0,
- writable: !0,
- value: e,
- });
- },
- });
- },
- fix: function (e) {
- return e[S.expando] ? e : new S.Event(e);
- },
- special: {
- load: { noBubble: !0 },
- click: {
- setup: function (e) {
- var t = this || e;
- return (
- pe.test(t.type) && t.click && A(t, "input") && Se(t, "click", we),
- !1
- );
- },
- trigger: function (e) {
- var t = this || e;
- return (
- pe.test(t.type) && t.click && A(t, "input") && Se(t, "click"), !0
- );
- },
- _default: function (e) {
- var t = e.target;
- return (
- (pe.test(t.type) &&
- t.click &&
- A(t, "input") &&
- Y.get(t, "click")) ||
- A(t, "a")
- );
- },
- },
- beforeunload: {
- postDispatch: function (e) {
- void 0 !== e.result &&
- e.originalEvent &&
- (e.originalEvent.returnValue = e.result);
- },
- },
- },
- }),
- (S.removeEvent = function (e, t, n) {
- e.removeEventListener && e.removeEventListener(t, n);
- }),
- (S.Event = function (e, t) {
- if (!(this instanceof S.Event)) return new S.Event(e, t);
- e && e.type
- ? ((this.originalEvent = e),
- (this.type = e.type),
- (this.isDefaultPrevented =
- e.defaultPrevented ||
- (void 0 === e.defaultPrevented && !1 === e.returnValue)
- ? we
- : Te),
- (this.target =
- e.target && 3 === e.target.nodeType
- ? e.target.parentNode
- : e.target),
- (this.currentTarget = e.currentTarget),
- (this.relatedTarget = e.relatedTarget))
- : (this.type = e),
- t && S.extend(this, t),
- (this.timeStamp = (e && e.timeStamp) || Date.now()),
- (this[S.expando] = !0);
- }),
- (S.Event.prototype = {
- constructor: S.Event,
- isDefaultPrevented: Te,
- isPropagationStopped: Te,
- isImmediatePropagationStopped: Te,
- isSimulated: !1,
- preventDefault: function () {
- var e = this.originalEvent;
- (this.isDefaultPrevented = we),
- e && !this.isSimulated && e.preventDefault();
- },
- stopPropagation: function () {
- var e = this.originalEvent;
- (this.isPropagationStopped = we),
- e && !this.isSimulated && e.stopPropagation();
- },
- stopImmediatePropagation: function () {
- var e = this.originalEvent;
- (this.isImmediatePropagationStopped = we),
- e && !this.isSimulated && e.stopImmediatePropagation(),
- this.stopPropagation();
- },
- }),
- S.each(
- {
- altKey: !0,
- bubbles: !0,
- cancelable: !0,
- changedTouches: !0,
- ctrlKey: !0,
- detail: !0,
- eventPhase: !0,
- metaKey: !0,
- pageX: !0,
- pageY: !0,
- shiftKey: !0,
- view: !0,
- char: !0,
- code: !0,
- charCode: !0,
- key: !0,
- keyCode: !0,
- button: !0,
- buttons: !0,
- clientX: !0,
- clientY: !0,
- offsetX: !0,
- offsetY: !0,
- pointerId: !0,
- pointerType: !0,
- screenX: !0,
- screenY: !0,
- targetTouches: !0,
- toElement: !0,
- touches: !0,
- which: !0,
- },
- S.event.addProp
- ),
- S.each({ focus: "focusin", blur: "focusout" }, function (e, t) {
- S.event.special[e] = {
- setup: function () {
- return Se(this, e, Ce), !1;
- },
- trigger: function () {
- return Se(this, e), !0;
- },
- _default: function () {
- return !0;
- },
- delegateType: t,
- };
- }),
- S.each(
- {
- mouseenter: "mouseover",
- mouseleave: "mouseout",
- pointerenter: "pointerover",
- pointerleave: "pointerout",
- },
- function (e, i) {
- S.event.special[e] = {
- delegateType: i,
- bindType: i,
- handle: function (e) {
- var t,
- n = e.relatedTarget,
- r = e.handleObj;
- return (
- (n && (n === this || S.contains(this, n))) ||
- ((e.type = r.origType),
- (t = r.handler.apply(this, arguments)),
- (e.type = i)),
- t
- );
- },
- };
- }
- ),
- S.fn.extend({
- on: function (e, t, n, r) {
- return Ee(this, e, t, n, r);
- },
- one: function (e, t, n, r) {
- return Ee(this, e, t, n, r, 1);
- },
- off: function (e, t, n) {
- var r, i;
- if (e && e.preventDefault && e.handleObj)
- return (
- (r = e.handleObj),
- S(e.delegateTarget).off(
- r.namespace ? r.origType + "." + r.namespace : r.origType,
- r.selector,
- r.handler
- ),
- this
- );
- if ("object" == typeof e) {
- for (i in e) this.off(i, t, e[i]);
- return this;
- }
- return (
- (!1 !== t && "function" != typeof t) || ((n = t), (t = void 0)),
- !1 === n && (n = Te),
- this.each(function () {
- S.event.remove(this, e, n, t);
- })
- );
- },
- });
- var ke = /