From e90cc392b0dce359a83ae6d3a46bda72d0279f76 Mon Sep 17 00:00:00 2001 From: Ahmed Musallam Date: Mon, 3 Feb 2020 11:07:08 -0600 Subject: [PATCH] initial root cause code --- webconsole-plugins/root-cause/README.md | 5 + .../root-cause/doc/root-cause-plugin.gif | Bin 0 -> 170424 bytes webconsole-plugins/root-cause/pom.xml | 138 + .../rootcause/internal/RootCausePlugin.java | 177 ++ .../jquery-ui-1.12.1.custom/README.md | 3 + .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 335 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 207 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 332 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 280 bytes .../images/ui-icons_222222_256x240.png | Bin 0 -> 6922 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4549 bytes .../images/ui-icons_454545_256x240.png | Bin 0 -> 6992 bytes .../images/ui-icons_888888_256x240.png | Bin 0 -> 6999 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4549 bytes .../jquery-ui-1.12.1.custom/jquery-ui.css | 582 ++++ .../jquery-ui-1.12.1.custom/jquery-ui.js | 2659 +++++++++++++++++ .../jquery-ui-1.12.1.custom/jquery-ui.min.css | 7 + .../jquery-ui-1.12.1.custom/jquery-ui.min.js | 6 + .../jquery-ui.theme.css | 443 +++ .../jquery-ui.theme.min.css | 5 + .../src/main/resources/root-cause/plugin.html | 30 + .../src/main/resources/root-cause/scripts.js | 137 + .../src/main/resources/root-cause/styles.css | 57 + 25 files changed, 4249 insertions(+) create mode 100644 webconsole-plugins/root-cause/README.md create mode 100644 webconsole-plugins/root-cause/doc/root-cause-plugin.gif create mode 100644 webconsole-plugins/root-cause/pom.xml create mode 100644 webconsole-plugins/root-cause/src/main/java/org/apache/felix/webconsole/plugins/rootcause/internal/RootCausePlugin.java create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/README.md create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-icons_222222_256x240.png create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-icons_2e83ff_256x240.png create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-icons_454545_256x240.png create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-icons_888888_256x240.png create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-icons_cd0a0a_256x240.png create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/jquery-ui.css create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/jquery-ui.js create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/jquery-ui.min.css create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/jquery-ui.min.js create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/jquery-ui.theme.css create mode 100644 webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/jquery-ui.theme.min.css create mode 100755 webconsole-plugins/root-cause/src/main/resources/root-cause/plugin.html create mode 100755 webconsole-plugins/root-cause/src/main/resources/root-cause/scripts.js create mode 100755 webconsole-plugins/root-cause/src/main/resources/root-cause/styles.css diff --git a/webconsole-plugins/root-cause/README.md b/webconsole-plugins/root-cause/README.md new file mode 100644 index 00000000000..2ae6de5b5d8 --- /dev/null +++ b/webconsole-plugins/root-cause/README.md @@ -0,0 +1,5 @@ +# Root Cause OSGI Web Console Plugin + +A Felix Webconsole Plugin for [Root Cause Tool](https://github.com/apache/felix/tree/trunk/rootcause) + +![Plugin Demo](doc/root-cause-plugin.gif) \ No newline at end of file diff --git a/webconsole-plugins/root-cause/doc/root-cause-plugin.gif b/webconsole-plugins/root-cause/doc/root-cause-plugin.gif new file mode 100644 index 0000000000000000000000000000000000000000..9eaeaedb493e48e395acd2d71adedf1414cab116 GIT binary patch literal 170424 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%0A(@PtNTdwjoM#0}rn_JO>-hRyNjhGcd}A#~qa&?S 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 literal 0 HcmV?d00001 diff --git a/webconsole-plugins/root-cause/pom.xml b/webconsole-plugins/root-cause/pom.xml new file mode 100644 index 00000000000..bc3c3a29051 --- /dev/null +++ b/webconsole-plugins/root-cause/pom.xml @@ -0,0 +1,138 @@ + + + + + 4.0.0 + + org.apache.felix + felix-parent + 5 + ../../../pom/pom.xml + + + org.apache.felix.webconsole.plugins.rootcause + bundle + 1.0.0-SNAPSHOT + + felix-root-cause-webconsole-plugin + Root Cause plugin for Apache Felix Web Console + + + 8 + + + + scm:svn:http://svn.apache.org/repos/asf/felix/trunk/webconsole-plugins/root-cause + + + scm:svn:https://svn.apache.org/repos/asf/felix/trunk/webconsole-plugins/root-cause + + + http://svn.apache.org/viewvc/felix/trunk/webconsole-plugins/root-cause + + + + + + + org.apache.felix + maven-bundle-plugin + 3.2.0 + true + + + ${project.artifactId} + ${project.description} + + org.apache.felix.rootcause, + org.apache.felix.utils;inline=org/apache/felix/utils/json/JSONWriter** + + + sun.misc.*;resolution:=optional, + * + + + org.apache.felix.webconsole.plugins.rootcause.* + + + + + + org.apache.rat + apache-rat-plugin + + + src/** + + + src/main/resources/root-cause/** + + + + + + + + org.osgi + osgi.core + 6.0.0 + provided + + + org.osgi + osgi.cmpn + 6.0.0 + provided + + + org.osgi + osgi.annotation + 6.0.0 + provided + + + org.osgi + org.osgi.service.component.annotations + 1.3.0 + provided + + + org.osgi + org.osgi.service.metatype.annotations + 1.3.0 + provided + + + org.apache.felix + org.apache.felix.webconsole + 4.3.8 + provided + + + javax.servlet + servlet-api + 2.3 + provided + + + org.apache.felix + org.apache.felix.utils + 1.11.4 + provided + + + org.apache.felix + org.apache.felix.rootcause + 0.1.0 + + + diff --git a/webconsole-plugins/root-cause/src/main/java/org/apache/felix/webconsole/plugins/rootcause/internal/RootCausePlugin.java b/webconsole-plugins/root-cause/src/main/java/org/apache/felix/webconsole/plugins/rootcause/internal/RootCausePlugin.java new file mode 100644 index 00000000000..9796912be1a --- /dev/null +++ b/webconsole-plugins/root-cause/src/main/java/org/apache/felix/webconsole/plugins/rootcause/internal/RootCausePlugin.java @@ -0,0 +1,177 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.felix.webconsole.plugins.rootcause.internal; + +import static org.apache.felix.webconsole.WebConsoleConstants.PLUGIN_CATEGORY; +import static org.apache.felix.webconsole.WebConsoleConstants.PLUGIN_LABEL; + +import java.io.IOException; +import java.io.StringWriter; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; +import java.util.stream.Collectors; +import javax.servlet.Servlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.felix.rootcause.DSComp; +import org.apache.felix.rootcause.RootCauseCommand; +import org.apache.felix.rootcause.RootCausePrinter; +import org.apache.felix.utils.json.JSONWriter; +import org.apache.felix.webconsole.AbstractWebConsolePlugin; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Reference; +import org.osgi.service.component.runtime.ServiceComponentRuntime; + + +@Component( + service = Servlet.class, + property = { + PLUGIN_LABEL + "=" + RootCausePlugin.LABEL, + PLUGIN_CATEGORY + "=" + RootCausePlugin.CATEGORY, + }) +public class RootCausePlugin extends AbstractWebConsolePlugin { + + // lives under OSGI Menu. + public static final String CATEGORY = "OSGi"; + + public static final String LABEL = "root-cause"; // used for the URL + public static final String TITLE = "Root Cause"; // used for the menu item title (UI) + public static final String RESOURCE_PREFIX = "/" + LABEL + "/"; + + private String pluginHtml; + + @Reference + private RootCauseCommand rootCauseCommand; + + @Reference + private ServiceComponentRuntime runtime; + + @Activate + protected void activate() { + this.pluginHtml = getPluginHtml(); + } + + @Override + protected void renderContent(HttpServletRequest request, HttpServletResponse response) + throws IOException { + if (isHtmlRequest(request)) { + response.getWriter().write(getPluginHtml()); + } else if (request.getPathInfo().equalsIgnoreCase("/" + LABEL + "/rootcause.json")) { + response.setContentType("application/json"); + String name = request.getParameter("name"); + response.getWriter().write(getRootCauses(name)); + } else if (request.getPathInfo().equalsIgnoreCase("/" + LABEL + "/components.json")) { + response.setContentType("application/json"); + response.getWriter().write(getComponentNamesJsonArray()); + } + } + + // I know, strange, does not override anything... + // see: https://github.com/justinedelson/felix/blob/df21d1b2eb10543de05727dce890cd6a9a347375/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java#L230 + // This method is called by this plugin to return a URL of a "resource" file + public URL getResource(final String path) { + if (path.startsWith(RESOURCE_PREFIX)) { + // get resource from this project/bundle "resources" folder + return this.getClass().getResource(path); + } + return null; + } + + @Override + public String getLabel() { + return LABEL; + } + + @Override + public String getTitle() { + return TITLE; + } + + protected boolean isHtmlRequest(HttpServletRequest request) { + return ("/" + LABEL).equalsIgnoreCase(request.getPathInfo()); + } + + /** + * Returns the plugin's HTML as String + * The HTML in this case comes fom the plugin.html file in the "resources" folder. + */ + private String getPluginHtml() { + if (null == this.pluginHtml) { + this.pluginHtml = readResourceString("plugin.html"); + } + return this.pluginHtml; + } + + /** + * Read resource file from the RESOURCE_PREFIX folder. + */ + private String readResourceString(String name) { + return readTemplateFile(RESOURCE_PREFIX + name); + } + + private String getComponentNamesJsonArray() throws IOException{ + List componentNames = Optional.of(runtime) + .map(ServiceComponentRuntime::getComponentDescriptionDTOs) + .map(dtos -> dtos.stream().map(dto -> dto.name).collect(Collectors.toList())) + .orElse(null); + return toJsonArray(componentNames); + } + + private String toJsonArray(List list) throws IOException { + StringWriter sw = new StringWriter(); + JSONWriter jw = new JSONWriter(sw); + jw.array(); + if (null != list) { + for(String str: list) { + jw.value(str); + } + } + jw.endArray(); + jw.flush(); + return sw.toString(); + } + + /** + * Get root cause lines as string JSON Array. + */ + private String getRootCauses (String name) throws IOException { + DSComp rootCause = null; + List causes = new ArrayList<>(); + try { + rootCause = rootCauseCommand.rootcause(name); + } catch (NoSuchElementException e){ + // thrown when component cannot be found. needs to be fixed in RootCauseCommand#rootcause + // see FELIX-6217 + log("Could not find component with name: " + name, e); + } + if (rootCause == null) { + causes.add("Component with name: \""+ name + "\" Does not exist."); + causes.add("Tip: Use the component full name, for example: " + + "\"org.apache.felix.webconsole.plugins.rootcause.internal.RootCausePlugin\""); + } else { + new RootCausePrinter(causes::add).print(rootCause); + } + + return toJsonArray(causes); + } +} diff --git a/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/README.md b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/README.md new file mode 100644 index 00000000000..e6b460ebba7 --- /dev/null +++ b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/README.md @@ -0,0 +1,3 @@ +This directory was generated using: + +[https://jqueryui.com/download/#!version=1.12.1&components=100000010001000001000000000000000000000000000000](https://jqueryui.com/download/#!version=1.12.1&components=100000010001000001000000000000000000000000000000) \ No newline at end of file diff --git a/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_glass_55_fbf9ee_1x400.png b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..a9ac7d77cf03be2ec4e614241a7241d96f6db738 GIT binary patch literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&fCnc6a#?2AmP!?*K(O3p^r= zfwTu0yPeFo12TF&T^vI^j=w#x$i?I+((tf;UXnmgbH|3oY>pC!)f}(GR!16S-u+#{ ze6YEqRkW=8vGl=5qArKM<9}TC-}iEvB{zdaTcX5$wyRTK&ALFVdQ&MBb@0E3=(c>n+a literal 0 HcmV?d00001 diff --git a/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_glass_65_ffffff_1x400.png b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..a749ee114088551d97910f2a27de4f74b0cee876 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI2NH8$CE1Q=ADW)WEcNYf6yIsOdfIQ9ukH}&m z?E%JaC$sH<3_(v9#}JM4$r%X}t&0mp9yKsb%{ak$*<@oTP*SzTHKHUXu_VKd7a7?@j`SXvpHY8x0>85n&2m$v{#LvDUbW?Cg~4NZ%$$pAGlc)I$z JtaD0e0suZ&G&}$R literal 0 HcmV?d00001 diff --git a/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_glass_75_dadada_1x400.png b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..b49a2a91000ef3d777d231034c8c7c5e9fa09f46 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&0LWmFTHNUZq?nSt-Ch3w7g=q17Rci)@Q5r1 z(jH*!b~4)z#PD=+46!(!T=8puqDZgOs>RXUCGx5b?-VBQkUm|IuXOmYJrBRJgj{Vx zMbNnqUkncy+qa2-mWYc>swkcIuvGK#>(0d)B7)5f`@$Ei28nH~0h*~=;u=wsl30>z zm0Xkxq!^40j0|)Q40VmnLJZ8UOf0PoO|=aStPBi3|I1r|q9HdwB{QuOw}z(0*JOYi O7(8A5T-G@yGywpX*-wK2 literal 0 HcmV?d00001 diff --git a/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_glass_75_e6e6e6_1x400.png b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..de1493b0b5b5ce54b965273f82a6aaede644f63e GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&0LWmFTHNUZq?nSt-Ch3w7g=q17Rci)@Q5r1 z(jH*!b~4)z#PD=+46!(!TrvH)L6@80)r*_cdCvDr%)6ghVL16=s@mbz7H!uRdGeDa z?kzLg)16i!f8fKx84s0>4nc6a#?2AmP!?*K(O3p^r= zfwTu0yPeFo12VciT^vI^j=w#>k(V)1qW$CZ|6)SVV-&*#dav<$DMuV&n0Dbpw@aKd7a7?@j`SXvpHY8x0>85n&2 hm$v{#LvDUbW?Cg~4NZ%$$pAGlc)I$ztaD0e0s!;Gba(&& literal 0 HcmV?d00001 diff --git a/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..b5fca606319e5ce58fc3393e0fe83f5aef682292 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^j6j?s03;ZUuHXC*q?nSt-Ch3w7g=q17Rci)@Q5r1 z(jH*!b~4)z$cXZEaSV~ToLo`U+vu0Ue0cG9p8hWqa?gxxGLm=1A1u)Cewe3oSeCaf zI$k30UHXoTXA5lSJe(zTcE%W-S*bfB&J`pw9sa4-R?IGW?p~6`>jMSP&M+u3 zY@9al)zrvpHlQu4C9V-ADTyViR>?)FK#IZ0z{o(?z);u7EX2Uv%EZ#j&{W&Nz{nC}Q!>*kacgK=d`$+Zfx*+&&t;ucLK6UNms@H8 literal 0 HcmV?d00001 diff --git a/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-icons_222222_256x240.png b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..330dfc11466f30d5d90f3b1ad0055360ecf75d03 GIT binary patch literal 6922 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 literal 0 HcmV?d00001 diff --git a/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-icons_2e83ff_256x240.png b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..7b3cfd6058ce7d707b13764b8b0f7601ed072342 GIT binary patch literal 4549 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 literal 0 HcmV?d00001 diff --git a/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-icons_888888_256x240.png b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..c3d02324759526ddb026cce4e42b73c069cec90a GIT binary patch literal 6999 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 literal 0 HcmV?d00001 diff --git a/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-icons_cd0a0a_256x240.png b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..6f9e045825e331ce8fde80e18a9451679be5e784 GIT binary patch literal 4549 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 RqH?|opo=uruGYjv{Rh72D%b!3 literal 0 HcmV?d00001 diff --git a/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/jquery-ui.css b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/jquery-ui.css new file mode 100644 index 00000000000..b95806ecd39 --- /dev/null +++ b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/jquery-ui.css @@ -0,0 +1,582 @@ +/*! jQuery UI - v1.12.1 - 2020-01-26 +* http://jqueryui.com +* Includes: core.css, autocomplete.css, menu.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=.root-cause&folderName=smoothness&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cd0a0a&fcError=cd0a0a&borderColorError=cd0a0a&bgImgOpacityError=95&bgTextureError=glass&bgColorError=fef1ec&iconColorHighlight=2e83ff&fcHighlight=363636&borderColorHighlight=fcefa1&bgImgOpacityHighlight=55&bgTextureHighlight=glass&bgColorHighlight=fbf9ee&iconColorActive=454545&fcActive=212121&borderColorActive=aaaaaa&bgImgOpacityActive=65&bgTextureActive=glass&bgColorActive=ffffff&iconColorHover=454545&fcHover=212121&borderColorHover=999999&bgImgOpacityHover=75&bgTextureHover=glass&bgColorHover=dadada&iconColorDefault=888888&fcDefault=555555&borderColorDefault=d3d3d3&bgImgOpacityDefault=75&bgTextureDefault=glass&bgColorDefault=e6e6e6&iconColorContent=222222&fcContent=222222&borderColorContent=aaaaaa&bgImgOpacityContent=75&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=222222&fcHeader=222222&borderColorHeader=aaaaaa&bgImgOpacityHeader=75&bgTextureHeader=highlight_soft&bgColorHeader=cccccc&cornerRadius=4px&fsDefault=1.1em&fwDefault=normal&ffDefault=Verdana%2CArial%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +/* Layout helpers +----------------------------------*/ +.root-cause .ui-helper-hidden { + display: none; +} +.root-cause .ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.root-cause .ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.root-cause .ui-helper-clearfix:before, +.root-cause .ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.root-cause .ui-helper-clearfix:after { + clear: both; +} +.root-cause .ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter:Alpha(Opacity=0); /* support: IE8 */ +} + +.root-cause .ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.root-cause .ui-state-disabled { + cursor: default !important; + pointer-events: none; +} + + +/* Icons +----------------------------------*/ +.root-cause .ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + +.root-cause .ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; +} + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.root-cause .ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.root-cause .ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} +.root-cause .ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: 0; +} +.root-cause .ui-menu .ui-menu { + position: absolute; +} +.root-cause .ui-menu .ui-menu-item { + margin: 0; + cursor: pointer; + /* support: IE10, see #8844 */ + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} +.root-cause .ui-menu .ui-menu-item-wrapper { + position: relative; + padding: 3px 1em 3px .4em; +} +.root-cause .ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.root-cause .ui-menu .ui-state-focus, +.root-cause .ui-menu .ui-state-active { + margin: -1px; +} + +/* icon support */ +.root-cause .ui-menu-icons { + position: relative; +} +.root-cause .ui-menu-icons .ui-menu-item-wrapper { + padding-left: 2em; +} + +/* left-aligned */ +.root-cause .ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: .2em; + margin: auto 0; +} + +/* right-aligned */ +.root-cause .ui-menu .ui-menu-icon { + left: auto; + right: 0; +} + +/* Component containers +----------------------------------*/ +.root-cause .ui-widget { + font-family: Verdana,Arial,sans-serif; + font-size: 1.1em; +} +.root-cause .ui-widget .ui-widget { + font-size: 1em; +} +.root-cause .ui-widget input, +.root-cause .ui-widget select, +.root-cause .ui-widget textarea, +.root-cause .ui-widget button { + font-family: Verdana,Arial,sans-serif; + font-size: 1em; +} +.root-cause .ui-widget.ui-widget-content { + border: 1px solid #d3d3d3; +} +.root-cause .ui-widget-content { + border: 1px solid #aaaaaa; + background: #ffffff; + color: #222222; +} +.root-cause .ui-widget-content a { + color: #222222; +} +.root-cause .ui-widget-header { + border: 1px solid #aaaaaa; + background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x; + color: #222222; + font-weight: bold; +} +.root-cause .ui-widget-header a { + color: #222222; +} + +/* Interaction states +----------------------------------*/ +.root-cause .ui-state-default, +.root-cause .ui-widget-content .ui-state-default, +.root-cause .ui-widget-header .ui-state-default, +.root-cause .ui-button, + +/* We use html here because we need a greater specificity to make sure disabled +works properly when clicked or hovered */ +html .root-cause .ui-button.ui-state-disabled:hover, +html .root-cause .ui-button.ui-state-disabled:active { + border: 1px solid #d3d3d3; + background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x; + font-weight: normal; + color: #555555; +} +.root-cause .ui-state-default a, +.root-cause .ui-state-default a:link, +.root-cause .ui-state-default a:visited, +a.root-cause .ui-button, +a:link.root-cause .ui-button, +a:visited.root-cause .ui-button, +.root-cause .ui-button { + color: #555555; + text-decoration: none; +} +.root-cause .ui-state-hover, +.root-cause .ui-widget-content .ui-state-hover, +.root-cause .ui-widget-header .ui-state-hover, +.root-cause .ui-state-focus, +.root-cause .ui-widget-content .ui-state-focus, +.root-cause .ui-widget-header .ui-state-focus, +.root-cause .ui-button:hover, +.root-cause .ui-button:focus { + border: 1px solid #999999; + background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x; + font-weight: normal; + color: #212121; +} +.root-cause .ui-state-hover a, +.root-cause .ui-state-hover a:hover, +.root-cause .ui-state-hover a:link, +.root-cause .ui-state-hover a:visited, +.root-cause .ui-state-focus a, +.root-cause .ui-state-focus a:hover, +.root-cause .ui-state-focus a:link, +.root-cause .ui-state-focus a:visited, +a.root-cause .ui-button:hover, +a.root-cause .ui-button:focus { + color: #212121; + text-decoration: none; +} + +.root-cause .ui-visual-focus { + box-shadow: 0 0 3px 1px rgb(94, 158, 214); +} +.root-cause .ui-state-active, +.root-cause .ui-widget-content .ui-state-active, +.root-cause .ui-widget-header .ui-state-active, +a.root-cause .ui-button:active, +.root-cause .ui-button:active, +.root-cause .ui-button.ui-state-active:hover { + border: 1px solid #aaaaaa; + background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x; + font-weight: normal; + color: #212121; +} +.root-cause .ui-icon-background, +.root-cause .ui-state-active .ui-icon-background { + border: #aaaaaa; + background-color: #212121; +} +.root-cause .ui-state-active a, +.root-cause .ui-state-active a:link, +.root-cause .ui-state-active a:visited { + color: #212121; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.root-cause .ui-state-highlight, +.root-cause .ui-widget-content .ui-state-highlight, +.root-cause .ui-widget-header .ui-state-highlight { + border: 1px solid #fcefa1; + background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x; + color: #363636; +} +.root-cause .ui-state-checked { + border: 1px solid #fcefa1; + background: #fbf9ee; +} +.root-cause .ui-state-highlight a, +.root-cause .ui-widget-content .ui-state-highlight a, +.root-cause .ui-widget-header .ui-state-highlight a { + color: #363636; +} +.root-cause .ui-state-error, +.root-cause .ui-widget-content .ui-state-error, +.root-cause .ui-widget-header .ui-state-error { + border: 1px solid #cd0a0a; + background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x; + color: #cd0a0a; +} +.root-cause .ui-state-error a, +.root-cause .ui-widget-content .ui-state-error a, +.root-cause .ui-widget-header .ui-state-error a { + color: #cd0a0a; +} +.root-cause .ui-state-error-text, +.root-cause .ui-widget-content .ui-state-error-text, +.root-cause .ui-widget-header .ui-state-error-text { + color: #cd0a0a; +} +.root-cause .ui-priority-primary, +.root-cause .ui-widget-content .ui-priority-primary, +.root-cause .ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.root-cause .ui-priority-secondary, +.root-cause .ui-widget-content .ui-priority-secondary, +.root-cause .ui-widget-header .ui-priority-secondary { + opacity: .7; + filter:Alpha(Opacity=70); /* support: IE8 */ + font-weight: normal; +} +.root-cause .ui-state-disabled, +.root-cause .ui-widget-content .ui-state-disabled, +.root-cause .ui-widget-header .ui-state-disabled { + opacity: .35; + filter:Alpha(Opacity=35); /* support: IE8 */ + background-image: none; +} +.root-cause .ui-state-disabled .ui-icon { + filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.root-cause .ui-icon { + width: 16px; + height: 16px; +} +.root-cause .ui-icon, +.root-cause .ui-widget-content .ui-icon { + background-image: url("images/ui-icons_222222_256x240.png"); +} +.root-cause .ui-widget-header .ui-icon { + background-image: url("images/ui-icons_222222_256x240.png"); +} +.root-cause .ui-state-hover .ui-icon, +.root-cause .ui-state-focus .ui-icon, +.root-cause .ui-button:hover .ui-icon, +.root-cause .ui-button:focus .ui-icon { + background-image: url("images/ui-icons_454545_256x240.png"); +} +.root-cause .ui-state-active .ui-icon, +.root-cause .ui-button:active .ui-icon { + background-image: url("images/ui-icons_454545_256x240.png"); +} +.root-cause .ui-state-highlight .ui-icon, +.root-cause .ui-button .ui-state-highlight.ui-icon { + background-image: url("images/ui-icons_2e83ff_256x240.png"); +} +.root-cause .ui-state-error .ui-icon, +.root-cause .ui-state-error-text .ui-icon { + background-image: url("images/ui-icons_cd0a0a_256x240.png"); +} +.root-cause .ui-button .ui-icon { + background-image: url("images/ui-icons_888888_256x240.png"); +} + +/* positioning */ +.root-cause .ui-icon-blank { background-position: 16px 16px; } +.root-cause .ui-icon-caret-1-n { background-position: 0 0; } +.root-cause .ui-icon-caret-1-ne { background-position: -16px 0; } +.root-cause .ui-icon-caret-1-e { background-position: -32px 0; } +.root-cause .ui-icon-caret-1-se { background-position: -48px 0; } +.root-cause .ui-icon-caret-1-s { background-position: -65px 0; } +.root-cause .ui-icon-caret-1-sw { background-position: -80px 0; } +.root-cause .ui-icon-caret-1-w { background-position: -96px 0; } +.root-cause .ui-icon-caret-1-nw { background-position: -112px 0; } +.root-cause .ui-icon-caret-2-n-s { background-position: -128px 0; } +.root-cause .ui-icon-caret-2-e-w { background-position: -144px 0; } +.root-cause .ui-icon-triangle-1-n { background-position: 0 -16px; } +.root-cause .ui-icon-triangle-1-ne { background-position: -16px -16px; } +.root-cause .ui-icon-triangle-1-e { background-position: -32px -16px; } +.root-cause .ui-icon-triangle-1-se { background-position: -48px -16px; } +.root-cause .ui-icon-triangle-1-s { background-position: -65px -16px; } +.root-cause .ui-icon-triangle-1-sw { background-position: -80px -16px; } +.root-cause .ui-icon-triangle-1-w { background-position: -96px -16px; } +.root-cause .ui-icon-triangle-1-nw { background-position: -112px -16px; } +.root-cause .ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.root-cause .ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.root-cause .ui-icon-arrow-1-n { background-position: 0 -32px; } +.root-cause .ui-icon-arrow-1-ne { background-position: -16px -32px; } +.root-cause .ui-icon-arrow-1-e { background-position: -32px -32px; } +.root-cause .ui-icon-arrow-1-se { background-position: -48px -32px; } +.root-cause .ui-icon-arrow-1-s { background-position: -65px -32px; } +.root-cause .ui-icon-arrow-1-sw { background-position: -80px -32px; } +.root-cause .ui-icon-arrow-1-w { background-position: -96px -32px; } +.root-cause .ui-icon-arrow-1-nw { background-position: -112px -32px; } +.root-cause .ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.root-cause .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.root-cause .ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.root-cause .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.root-cause .ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.root-cause .ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.root-cause .ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.root-cause .ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.root-cause .ui-icon-arrowthick-1-n { background-position: 1px -48px; } +.root-cause .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.root-cause .ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.root-cause .ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.root-cause .ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.root-cause .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.root-cause .ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.root-cause .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.root-cause .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.root-cause .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.root-cause .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.root-cause .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.root-cause .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.root-cause .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.root-cause .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.root-cause .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.root-cause .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.root-cause .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.root-cause .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.root-cause .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.root-cause .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.root-cause .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.root-cause .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.root-cause .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.root-cause .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.root-cause .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.root-cause .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.root-cause .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.root-cause .ui-icon-arrow-4 { background-position: 0 -80px; } +.root-cause .ui-icon-arrow-4-diag { background-position: -16px -80px; } +.root-cause .ui-icon-extlink { background-position: -32px -80px; } +.root-cause .ui-icon-newwin { background-position: -48px -80px; } +.root-cause .ui-icon-refresh { background-position: -64px -80px; } +.root-cause .ui-icon-shuffle { background-position: -80px -80px; } +.root-cause .ui-icon-transfer-e-w { background-position: -96px -80px; } +.root-cause .ui-icon-transferthick-e-w { background-position: -112px -80px; } +.root-cause .ui-icon-folder-collapsed { background-position: 0 -96px; } +.root-cause .ui-icon-folder-open { background-position: -16px -96px; } +.root-cause .ui-icon-document { background-position: -32px -96px; } +.root-cause .ui-icon-document-b { background-position: -48px -96px; } +.root-cause .ui-icon-note { background-position: -64px -96px; } +.root-cause .ui-icon-mail-closed { background-position: -80px -96px; } +.root-cause .ui-icon-mail-open { background-position: -96px -96px; } +.root-cause .ui-icon-suitcase { background-position: -112px -96px; } +.root-cause .ui-icon-comment { background-position: -128px -96px; } +.root-cause .ui-icon-person { background-position: -144px -96px; } +.root-cause .ui-icon-print { background-position: -160px -96px; } +.root-cause .ui-icon-trash { background-position: -176px -96px; } +.root-cause .ui-icon-locked { background-position: -192px -96px; } +.root-cause .ui-icon-unlocked { background-position: -208px -96px; } +.root-cause .ui-icon-bookmark { background-position: -224px -96px; } +.root-cause .ui-icon-tag { background-position: -240px -96px; } +.root-cause .ui-icon-home { background-position: 0 -112px; } +.root-cause .ui-icon-flag { background-position: -16px -112px; } +.root-cause .ui-icon-calendar { background-position: -32px -112px; } +.root-cause .ui-icon-cart { background-position: -48px -112px; } +.root-cause .ui-icon-pencil { background-position: -64px -112px; } +.root-cause .ui-icon-clock { background-position: -80px -112px; } +.root-cause .ui-icon-disk { background-position: -96px -112px; } +.root-cause .ui-icon-calculator { background-position: -112px -112px; } +.root-cause .ui-icon-zoomin { background-position: -128px -112px; } +.root-cause .ui-icon-zoomout { background-position: -144px -112px; } +.root-cause .ui-icon-search { background-position: -160px -112px; } +.root-cause .ui-icon-wrench { background-position: -176px -112px; } +.root-cause .ui-icon-gear { background-position: -192px -112px; } +.root-cause .ui-icon-heart { background-position: -208px -112px; } +.root-cause .ui-icon-star { background-position: -224px -112px; } +.root-cause .ui-icon-link { background-position: -240px -112px; } +.root-cause .ui-icon-cancel { background-position: 0 -128px; } +.root-cause .ui-icon-plus { background-position: -16px -128px; } +.root-cause .ui-icon-plusthick { background-position: -32px -128px; } +.root-cause .ui-icon-minus { background-position: -48px -128px; } +.root-cause .ui-icon-minusthick { background-position: -64px -128px; } +.root-cause .ui-icon-close { background-position: -80px -128px; } +.root-cause .ui-icon-closethick { background-position: -96px -128px; } +.root-cause .ui-icon-key { background-position: -112px -128px; } +.root-cause .ui-icon-lightbulb { background-position: -128px -128px; } +.root-cause .ui-icon-scissors { background-position: -144px -128px; } +.root-cause .ui-icon-clipboard { background-position: -160px -128px; } +.root-cause .ui-icon-copy { background-position: -176px -128px; } +.root-cause .ui-icon-contact { background-position: -192px -128px; } +.root-cause .ui-icon-image { background-position: -208px -128px; } +.root-cause .ui-icon-video { background-position: -224px -128px; } +.root-cause .ui-icon-script { background-position: -240px -128px; } +.root-cause .ui-icon-alert { background-position: 0 -144px; } +.root-cause .ui-icon-info { background-position: -16px -144px; } +.root-cause .ui-icon-notice { background-position: -32px -144px; } +.root-cause .ui-icon-help { background-position: -48px -144px; } +.root-cause .ui-icon-check { background-position: -64px -144px; } +.root-cause .ui-icon-bullet { background-position: -80px -144px; } +.root-cause .ui-icon-radio-on { background-position: -96px -144px; } +.root-cause .ui-icon-radio-off { background-position: -112px -144px; } +.root-cause .ui-icon-pin-w { background-position: -128px -144px; } +.root-cause .ui-icon-pin-s { background-position: -144px -144px; } +.root-cause .ui-icon-play { background-position: 0 -160px; } +.root-cause .ui-icon-pause { background-position: -16px -160px; } +.root-cause .ui-icon-seek-next { background-position: -32px -160px; } +.root-cause .ui-icon-seek-prev { background-position: -48px -160px; } +.root-cause .ui-icon-seek-end { background-position: -64px -160px; } +.root-cause .ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.root-cause .ui-icon-seek-first { background-position: -80px -160px; } +.root-cause .ui-icon-stop { background-position: -96px -160px; } +.root-cause .ui-icon-eject { background-position: -112px -160px; } +.root-cause .ui-icon-volume-off { background-position: -128px -160px; } +.root-cause .ui-icon-volume-on { background-position: -144px -160px; } +.root-cause .ui-icon-power { background-position: 0 -176px; } +.root-cause .ui-icon-signal-diag { background-position: -16px -176px; } +.root-cause .ui-icon-signal { background-position: -32px -176px; } +.root-cause .ui-icon-battery-0 { background-position: -48px -176px; } +.root-cause .ui-icon-battery-1 { background-position: -64px -176px; } +.root-cause .ui-icon-battery-2 { background-position: -80px -176px; } +.root-cause .ui-icon-battery-3 { background-position: -96px -176px; } +.root-cause .ui-icon-circle-plus { background-position: 0 -192px; } +.root-cause .ui-icon-circle-minus { background-position: -16px -192px; } +.root-cause .ui-icon-circle-close { background-position: -32px -192px; } +.root-cause .ui-icon-circle-triangle-e { background-position: -48px -192px; } +.root-cause .ui-icon-circle-triangle-s { background-position: -64px -192px; } +.root-cause .ui-icon-circle-triangle-w { background-position: -80px -192px; } +.root-cause .ui-icon-circle-triangle-n { background-position: -96px -192px; } +.root-cause .ui-icon-circle-arrow-e { background-position: -112px -192px; } +.root-cause .ui-icon-circle-arrow-s { background-position: -128px -192px; } +.root-cause .ui-icon-circle-arrow-w { background-position: -144px -192px; } +.root-cause .ui-icon-circle-arrow-n { background-position: -160px -192px; } +.root-cause .ui-icon-circle-zoomin { background-position: -176px -192px; } +.root-cause .ui-icon-circle-zoomout { background-position: -192px -192px; } +.root-cause .ui-icon-circle-check { background-position: -208px -192px; } +.root-cause .ui-icon-circlesmall-plus { background-position: 0 -208px; } +.root-cause .ui-icon-circlesmall-minus { background-position: -16px -208px; } +.root-cause .ui-icon-circlesmall-close { background-position: -32px -208px; } +.root-cause .ui-icon-squaresmall-plus { background-position: -48px -208px; } +.root-cause .ui-icon-squaresmall-minus { background-position: -64px -208px; } +.root-cause .ui-icon-squaresmall-close { background-position: -80px -208px; } +.root-cause .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.root-cause .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.root-cause .ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.root-cause .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.root-cause .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.root-cause .ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.root-cause .ui-corner-all, +.root-cause .ui-corner-top, +.root-cause .ui-corner-left, +.root-cause .ui-corner-tl { + border-top-left-radius: 4px; +} +.root-cause .ui-corner-all, +.root-cause .ui-corner-top, +.root-cause .ui-corner-right, +.root-cause .ui-corner-tr { + border-top-right-radius: 4px; +} +.root-cause .ui-corner-all, +.root-cause .ui-corner-bottom, +.root-cause .ui-corner-left, +.root-cause .ui-corner-bl { + border-bottom-left-radius: 4px; +} +.root-cause .ui-corner-all, +.root-cause .ui-corner-bottom, +.root-cause .ui-corner-right, +.root-cause .ui-corner-br { + border-bottom-right-radius: 4px; +} + +/* Overlays */ +.root-cause .ui-widget-overlay { + background: #aaaaaa; + opacity: .3; + filter: Alpha(Opacity=30); /* support: IE8 */ +} +.root-cause .ui-widget-shadow { + -webkit-box-shadow: -8px -8px 8px #aaaaaa; + box-shadow: -8px -8px 8px #aaaaaa; +} diff --git a/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/jquery-ui.js b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/jquery-ui.js new file mode 100644 index 00000000000..08a5afaa63e --- /dev/null +++ b/webconsole-plugins/root-cause/src/main/resources/root-cause/jquery-ui-1.12.1.custom/jquery-ui.js @@ -0,0 +1,2659 @@ +/*! jQuery UI - v1.12.1 - 2020-01-26 +* http://jqueryui.com +* Includes: widget.js, position.js, keycode.js, unique-id.js, widgets/autocomplete.js, widgets/menu.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "jquery" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}(function( $ ) { + +$.ui = $.ui || {}; + +var version = $.ui.version = "1.12.1"; + + +/*! + * jQuery UI Widget 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Widget +//>>group: Core +//>>description: Provides a factory for creating stateful widgets with a common API. +//>>docs: http://api.jqueryui.com/jQuery.widget/ +//>>demos: http://jqueryui.com/widget/ + + + +var widgetUuid = 0; +var widgetSlice = Array.prototype.slice; + +$.cleanData = ( function( orig ) { + return function( elems ) { + var events, elem, i; + for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) { + try { + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + + // Http://bugs.jquery.com/ticket/8235 + } catch ( e ) {} + } + orig( elems ); + }; +} )( $.cleanData ); + +$.widget = function( name, base, prototype ) { + var existingConstructor, constructor, basePrototype; + + // ProxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + var proxiedPrototype = {}; + + var namespace = name.split( "." )[ 0 ]; + name = name.split( "." )[ 1 ]; + var fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + if ( $.isArray( prototype ) ) { + prototype = $.extend.apply( null, [ {} ].concat( prototype ) ); + } + + // Create selector for plugin + $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + + // Allow instantiation without "new" keyword + if ( !this._createWidget ) { + return new constructor( options, element ); + } + + // Allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + + // Extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + + // Copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + + // Track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + } ); + + basePrototype = new base(); + + // We need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( !$.isFunction( value ) ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = ( function() { + function _super() { + return base.prototype[ prop ].apply( this, arguments ); + } + + function _superApply( args ) { + return base.prototype[ prop ].apply( this, args ); + } + + return function() { + var __super = this._super; + var __superApply = this._superApply; + var returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + } )(); + } ); + constructor.prototype = $.widget.extend( basePrototype, { + + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + } ); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // Redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, + child._proto ); + } ); + + // Remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); + + return constructor; +}; + +$.widget.extend = function( target ) { + var input = widgetSlice.call( arguments, 1 ); + var inputIndex = 0; + var inputLength = input.length; + var key; + var value; + + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string"; + var args = widgetSlice.call( arguments, 1 ); + var returnValue = this; + + if ( isMethodCall ) { + + // If this is an empty collection, we need to have the instance method + // return undefined instead of the jQuery instance + if ( !this.length && options === "instance" ) { + returnValue = undefined; + } else { + this.each( function() { + var methodValue; + var instance = $.data( this, fullName ); + + if ( options === "instance" ) { + returnValue = instance; + return false; + } + + if ( !instance ) { + return $.error( "cannot call methods on " + name + + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + + if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + + " widget instance" ); + } + + methodValue = instance[ options ].apply( instance, args ); + + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + } ); + } + } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat( args ) ); + } + + this.each( function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} ); + if ( instance._init ) { + instance._init(); + } + } else { + $.data( this, fullName, new object( options, this ) ); + } + } ); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "
", + + options: { + classes: {}, + disabled: false, + + // Callbacks + create: null + }, + + _createWidget: function( options, element ) { + element = $( element || this.defaultElement || this )[ 0 ]; + this.element = $( element ); + this.uuid = widgetUuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; + + this.bindings = $(); + this.hoverable = $(); + this.focusable = $(); + this.classesElementLookup = {}; + + if ( element !== this ) { + $.data( element, this.widgetFullName, this ); + this._on( true, this.element, { + remove: function( event ) { + if ( event.target === element ) { + this.destroy(); + } + } + } ); + this.document = $( element.style ? + + // Element within the document + element.ownerDocument : + + // Element is window or document + element.document || element ); + this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow ); + } + + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + + this._create(); + + if ( this.options.disabled ) { + this._setOptionDisabled( this.options.disabled ); + } + + this._trigger( "create", null, this._getCreateEventData() ); + this._init(); + }, + + _getCreateOptions: function() { + return {}; + }, + + _getCreateEventData: $.noop, + + _create: $.noop, + + _init: $.noop, + + destroy: function() { + var that = this; + + this._destroy(); + $.each( this.classesElementLookup, function( key, value ) { + that._removeClass( value, key ); + } ); + + // We can probably remove the unbind calls in 2.0 + // all event bindings should go through this._on() + this.element + .off( this.eventNamespace ) + .removeData( this.widgetFullName ); + this.widget() + .off( this.eventNamespace ) + .removeAttr( "aria-disabled" ); + + // Clean up events and states + this.bindings.off( this.eventNamespace ); + }, + + _destroy: $.noop, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key; + var parts; + var curOption; + var i; + + if ( arguments.length === 0 ) { + + // Don't return a reference to the internal hash + return $.widget.extend( {}, this.options ); + } + + if ( typeof key === "string" ) { + + // Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } + options = {}; + parts = key.split( "." ); + key = parts.shift(); + if ( parts.length ) { + curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); + for ( i = 0; i < parts.length - 1; i++ ) { + curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; + curOption = curOption[ parts[ i ] ]; + } + key = parts.pop(); + if ( arguments.length === 1 ) { + return curOption[ key ] === undefined ? null : curOption[ key ]; + } + curOption[ key ] = value; + } else { + if ( arguments.length === 1 ) { + return this.options[ key ] === undefined ? null : this.options[ key ]; + } + options[ key ] = value; + } + } + + this._setOptions( options ); + + return this; + }, + + _setOptions: function( options ) { + var key; + + for ( key in options ) { + this._setOption( key, options[ key ] ); + } + + return this; + }, + + _setOption: function( key, value ) { + if ( key === "classes" ) { + this._setOptionClasses( value ); + } + + this.options[ key ] = value; + + if ( key === "disabled" ) { + this._setOptionDisabled( value ); + } + + return this; + }, + + _setOptionClasses: function( value ) { + var classKey, elements, currentElements; + + for ( classKey in value ) { + currentElements = this.classesElementLookup[ classKey ]; + if ( value[ classKey ] === this.options.classes[ classKey ] || + !currentElements || + !currentElements.length ) { + continue; + } + + // We are doing this to create a new jQuery object because the _removeClass() call + // on the next line is going to destroy the reference to the current elements being + // tracked. We need to save a copy of this collection so that we can add the new classes + // below. + elements = $( currentElements.get() ); + this._removeClass( currentElements, classKey ); + + // We don't use _addClass() here, because that uses this.options.classes + // for generating the string of classes. We want to use the value passed in from + // _setOption(), this is the new value of the classes option which was passed to + // _setOption(). We pass this value directly to _classes(). + elements.addClass( this._classes( { + element: elements, + keys: classKey, + classes: value, + add: true + } ) ); + } + }, + + _setOptionDisabled: function( value ) { + this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value ); + + // If the widget is becoming disabled, then nothing is interactive + if ( value ) { + this._removeClass( this.hoverable, null, "ui-state-hover" ); + this._removeClass( this.focusable, null, "ui-state-focus" ); + } + }, + + enable: function() { + return this._setOptions( { disabled: false } ); + }, + + disable: function() { + return this._setOptions( { disabled: true } ); + }, + + _classes: function( options ) { + var full = []; + var that = this; + + options = $.extend( { + element: this.element, + classes: this.options.classes || {} + }, options ); + + function processClassString( classes, checkOption ) { + var current, i; + for ( i = 0; i < classes.length; i++ ) { + current = that.classesElementLookup[ classes[ i ] ] || $(); + if ( options.add ) { + current = $( $.unique( current.get().concat( options.element.get() ) ) ); + } else { + current = $( current.not( options.element ).get() ); + } + that.classesElementLookup[ classes[ i ] ] = current; + full.push( classes[ i ] ); + if ( checkOption && options.classes[ classes[ i ] ] ) { + full.push( options.classes[ classes[ i ] ] ); + } + } + } + + this._on( options.element, { + "remove": "_untrackClassesElement" + } ); + + if ( options.keys ) { + processClassString( options.keys.match( /\S+/g ) || [], true ); + } + if ( options.extra ) { + processClassString( options.extra.match( /\S+/g ) || [] ); + } + + return full.join( " " ); + }, + + _untrackClassesElement: function( event ) { + var that = this; + $.each( that.classesElementLookup, function( key, value ) { + if ( $.inArray( event.target, value ) !== -1 ) { + that.classesElementLookup[ key ] = $( value.not( event.target ).get() ); + } + } ); + }, + + _removeClass: function( element, keys, extra ) { + return this._toggleClass( element, keys, extra, false ); + }, + + _addClass: function( element, keys, extra ) { + return this._toggleClass( element, keys, extra, true ); + }, + + _toggleClass: function( element, keys, extra, add ) { + add = ( typeof add === "boolean" ) ? add : extra; + var shift = ( typeof element === "string" || element === null ), + options = { + extra: shift ? keys : extra, + keys: shift ? element : keys, + element: shift ? this.element : element, + add: add + }; + options.element.toggleClass( this._classes( options ), add ); + return this; + }, + + _on: function( suppressDisabledCheck, element, handlers ) { + var delegateElement; + var instance = this; + + // No suppressDisabledCheck flag, shuffle arguments + if ( typeof suppressDisabledCheck !== "boolean" ) { + handlers = element; + element = suppressDisabledCheck; + suppressDisabledCheck = false; + } + + // No element argument, shuffle and use this.element + if ( !handlers ) { + handlers = element; + element = this.element; + delegateElement = this.widget(); + } else { + element = delegateElement = $( element ); + this.bindings = this.bindings.add( element ); + } + + $.each( handlers, function( event, handler ) { + function handlerProxy() { + + // Allow widgets to customize the disabled handling + // - disabled as an array instead of boolean + // - disabled class as method for disabling individual parts + if ( !suppressDisabledCheck && + ( instance.options.disabled === true || + $( this ).hasClass( "ui-state-disabled" ) ) ) { + return; + } + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + + // Copy the guid so direct unbinding works + if ( typeof handler !== "string" ) { + handlerProxy.guid = handler.guid = + handler.guid || handlerProxy.guid || $.guid++; + } + + var match = event.match( /^([\w:-]*)\s*(.*)$/ ); + var eventName = match[ 1 ] + instance.eventNamespace; + var selector = match[ 2 ]; + + if ( selector ) { + delegateElement.on( eventName, selector, handlerProxy ); + } else { + element.on( eventName, handlerProxy ); + } + } ); + }, + + _off: function( element, eventName ) { + eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; + element.off( eventName ).off( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); + }, + + _delay: function( handler, delay ) { + function handlerProxy() { + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + var instance = this; + return setTimeout( handlerProxy, delay || 0 ); + }, + + _hoverable: function( element ) { + this.hoverable = this.hoverable.add( element ); + this._on( element, { + mouseenter: function( event ) { + this._addClass( $( event.currentTarget ), null, "ui-state-hover" ); + }, + mouseleave: function( event ) { + this._removeClass( $( event.currentTarget ), null, "ui-state-hover" ); + } + } ); + }, + + _focusable: function( element ) { + this.focusable = this.focusable.add( element ); + this._on( element, { + focusin: function( event ) { + this._addClass( $( event.currentTarget ), null, "ui-state-focus" ); + }, + focusout: function( event ) { + this._removeClass( $( event.currentTarget ), null, "ui-state-focus" ); + } + } ); + }, + + _trigger: function( type, event, data ) { + var prop, orig; + var callback = this.options[ type ]; + + data = data || {}; + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + + // The original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; + + // Copy original event properties over to the new event + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } + } + } + + this.element.trigger( event, data ); + return !( $.isFunction( callback ) && + callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false || + event.isDefaultPrevented() ); + } +}; + +$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { + $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { + if ( typeof options === "string" ) { + options = { effect: options }; + } + + var hasOptions; + var effectName = !options ? + method : + options === true || typeof options === "number" ? + defaultEffect : + options.effect || defaultEffect; + + options = options || {}; + if ( typeof options === "number" ) { + options = { duration: options }; + } + + hasOptions = !$.isEmptyObject( options ); + options.complete = callback; + + if ( options.delay ) { + element.delay( options.delay ); + } + + if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { + element[ method ]( options ); + } else if ( effectName !== method && element[ effectName ] ) { + element[ effectName ]( options.duration, options.easing, callback ); + } else { + element.queue( function( next ) { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + next(); + } ); + } + }; +} ); + +var widget = $.widget; + + +/*! + * jQuery UI Position 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/position/ + */ + +//>>label: Position +//>>group: Core +//>>description: Positions elements relative to other elements. +//>>docs: http://api.jqueryui.com/position/ +//>>demos: http://jqueryui.com/position/ + + +( function() { +var cachedScrollbarWidth, + max = Math.max, + abs = Math.abs, + rhorizontal = /left|center|right/, + rvertical = /top|center|bottom/, + roffset = /[\+\-]\d+(\.[\d]+)?%?/, + rposition = /^\w+/, + rpercent = /%$/, + _position = $.fn.position; + +function getOffsets( offsets, width, height ) { + return [ + parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ), + parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 ) + ]; +} + +function parseCss( element, property ) { + return parseInt( $.css( element, property ), 10 ) || 0; +} + +function getDimensions( elem ) { + var raw = elem[ 0 ]; + if ( raw.nodeType === 9 ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: 0, left: 0 } + }; + } + if ( $.isWindow( raw ) ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: elem.scrollTop(), left: elem.scrollLeft() } + }; + } + if ( raw.preventDefault ) { + return { + width: 0, + height: 0, + offset: { top: raw.pageY, left: raw.pageX } + }; + } + return { + width: elem.outerWidth(), + height: elem.outerHeight(), + offset: elem.offset() + }; +} + +$.position = { + scrollbarWidth: function() { + if ( cachedScrollbarWidth !== undefined ) { + return cachedScrollbarWidth; + } + var w1, w2, + div = $( "
" + + "
" ), + innerDiv = div.children()[ 0 ]; + + $( "body" ).append( div ); + w1 = innerDiv.offsetWidth; + div.css( "overflow", "scroll" ); + + w2 = innerDiv.offsetWidth; + + if ( w1 === w2 ) { + w2 = div[ 0 ].clientWidth; + } + + div.remove(); + + return ( cachedScrollbarWidth = w1 - w2 ); + }, + getScrollInfo: function( within ) { + var overflowX = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-x" ), + overflowY = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-y" ), + hasOverflowX = overflowX === "scroll" || + ( overflowX === "auto" && within.width < within.element[ 0 ].scrollWidth ), + hasOverflowY = overflowY === "scroll" || + ( overflowY === "auto" && within.height < within.element[ 0 ].scrollHeight ); + return { + width: hasOverflowY ? $.position.scrollbarWidth() : 0, + height: hasOverflowX ? $.position.scrollbarWidth() : 0 + }; + }, + getWithinInfo: function( element ) { + var withinElement = $( element || window ), + isWindow = $.isWindow( withinElement[ 0 ] ), + isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9, + hasOffset = !isWindow && !isDocument; + return { + element: withinElement, + isWindow: isWindow, + isDocument: isDocument, + offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 }, + scrollLeft: withinElement.scrollLeft(), + scrollTop: withinElement.scrollTop(), + width: withinElement.outerWidth(), + height: withinElement.outerHeight() + }; + } +}; + +$.fn.position = function( options ) { + if ( !options || !options.of ) { + return _position.apply( this, arguments ); + } + + // Make a copy, we don't want to modify arguments + options = $.extend( {}, options ); + + var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, + target = $( options.of ), + within = $.position.getWithinInfo( options.within ), + scrollInfo = $.position.getScrollInfo( within ), + collision = ( options.collision || "flip" ).split( " " ), + offsets = {}; + + dimensions = getDimensions( target ); + if ( target[ 0 ].preventDefault ) { + + // Force left top to allow flipping + options.at = "left top"; + } + targetWidth = dimensions.width; + targetHeight = dimensions.height; + targetOffset = dimensions.offset; + + // Clone to reuse original targetOffset later + basePosition = $.extend( {}, targetOffset ); + + // Force my and at to have valid horizontal and vertical positions + // if a value is missing or invalid, it will be converted to center + $.each( [ "my", "at" ], function() { + var pos = ( options[ this ] || "" ).split( " " ), + horizontalOffset, + verticalOffset; + + if ( pos.length === 1 ) { + pos = rhorizontal.test( pos[ 0 ] ) ? + pos.concat( [ "center" ] ) : + rvertical.test( pos[ 0 ] ) ? + [ "center" ].concat( pos ) : + [ "center", "center" ]; + } + pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center"; + pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center"; + + // Calculate offsets + horizontalOffset = roffset.exec( pos[ 0 ] ); + verticalOffset = roffset.exec( pos[ 1 ] ); + offsets[ this ] = [ + horizontalOffset ? horizontalOffset[ 0 ] : 0, + verticalOffset ? verticalOffset[ 0 ] : 0 + ]; + + // Reduce to just the positions without the offsets + options[ this ] = [ + rposition.exec( pos[ 0 ] )[ 0 ], + rposition.exec( pos[ 1 ] )[ 0 ] + ]; + } ); + + // Normalize collision option + if ( collision.length === 1 ) { + collision[ 1 ] = collision[ 0 ]; + } + + if ( options.at[ 0 ] === "right" ) { + basePosition.left += targetWidth; + } else if ( options.at[ 0 ] === "center" ) { + basePosition.left += targetWidth / 2; + } + + if ( options.at[ 1 ] === "bottom" ) { + basePosition.top += targetHeight; + } else if ( options.at[ 1 ] === "center" ) { + basePosition.top += targetHeight / 2; + } + + atOffset = getOffsets( offsets.at, targetWidth, targetHeight ); + basePosition.left += atOffset[ 0 ]; + basePosition.top += atOffset[ 1 ]; + + return this.each( function() { + var collisionPosition, using, + elem = $( this ), + elemWidth = elem.outerWidth(), + elemHeight = elem.outerHeight(), + marginLeft = parseCss( this, "marginLeft" ), + marginTop = parseCss( this, "marginTop" ), + collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + + scrollInfo.width, + collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + + scrollInfo.height, + position = $.extend( {}, basePosition ), + myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() ); + + if ( options.my[ 0 ] === "right" ) { + position.left -= elemWidth; + } else if ( options.my[ 0 ] === "center" ) { + position.left -= elemWidth / 2; + } + + if ( options.my[ 1 ] === "bottom" ) { + position.top -= elemHeight; + } else if ( options.my[ 1 ] === "center" ) { + position.top -= elemHeight / 2; + } + + position.left += myOffset[ 0 ]; + position.top += myOffset[ 1 ]; + + collisionPosition = { + marginLeft: marginLeft, + marginTop: marginTop + }; + + $.each( [ "left", "top" ], function( i, dir ) { + if ( $.ui.position[ collision[ i ] ] ) { + $.ui.position[ collision[ i ] ][ dir ]( position, { + targetWidth: targetWidth, + targetHeight: targetHeight, + elemWidth: elemWidth, + elemHeight: elemHeight, + collisionPosition: collisionPosition, + collisionWidth: collisionWidth, + collisionHeight: collisionHeight, + offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ], + my: options.my, + at: options.at, + within: within, + elem: elem + } ); + } + } ); + + if ( options.using ) { + + // Adds feedback as second argument to using callback, if present + using = function( props ) { + var left = targetOffset.left - position.left, + right = left + targetWidth - elemWidth, + top = targetOffset.top - position.top, + bottom = top + targetHeight - elemHeight, + feedback = { + target: { + element: target, + left: targetOffset.left, + top: targetOffset.top, + width: targetWidth, + height: targetHeight + }, + element: { + element: elem, + left: position.left, + top: position.top, + width: elemWidth, + height: elemHeight + }, + horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", + vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" + }; + if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) { + feedback.horizontal = "center"; + } + if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) { + feedback.vertical = "middle"; + } + if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) { + feedback.important = "horizontal"; + } else { + feedback.important = "vertical"; + } + options.using.call( this, props, feedback ); + }; + } + + elem.offset( $.extend( position, { using: using } ) ); + } ); +}; + +$.ui.position = { + fit: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, + outerWidth = within.width, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = withinOffset - collisionPosLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, + newOverRight; + + // Element is wider than within + if ( data.collisionWidth > outerWidth ) { + + // Element is initially over the left side of within + if ( overLeft > 0 && overRight <= 0 ) { + newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - + withinOffset; + position.left += overLeft - newOverRight; + + // Element is initially over right side of within + } else if ( overRight > 0 && overLeft <= 0 ) { + position.left = withinOffset; + + // Element is initially over both left and right sides of within + } else { + if ( overLeft > overRight ) { + position.left = withinOffset + outerWidth - data.collisionWidth; + } else { + position.left = withinOffset; + } + } + + // Too far left -> align with left edge + } else if ( overLeft > 0 ) { + position.left += overLeft; + + // Too far right -> align with right edge + } else if ( overRight > 0 ) { + position.left -= overRight; + + // Adjust based on position and margin + } else { + position.left = max( position.left - collisionPosLeft, position.left ); + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollTop : within.offset.top, + outerHeight = data.within.height, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = withinOffset - collisionPosTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, + newOverBottom; + + // Element is taller than within + if ( data.collisionHeight > outerHeight ) { + + // Element is initially over the top of within + if ( overTop > 0 && overBottom <= 0 ) { + newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - + withinOffset; + position.top += overTop - newOverBottom; + + // Element is initially over bottom of within + } else if ( overBottom > 0 && overTop <= 0 ) { + position.top = withinOffset; + + // Element is initially over both top and bottom of within + } else { + if ( overTop > overBottom ) { + position.top = withinOffset + outerHeight - data.collisionHeight; + } else { + position.top = withinOffset; + } + } + + // Too far up -> align with top + } else if ( overTop > 0 ) { + position.top += overTop; + + // Too far down -> align with bottom edge + } else if ( overBottom > 0 ) { + position.top -= overBottom; + + // Adjust based on position and margin + } else { + position.top = max( position.top - collisionPosTop, position.top ); + } + } + }, + flip: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.offset.left + within.scrollLeft, + outerWidth = within.width, + offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = collisionPosLeft - offsetLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, + myOffset = data.my[ 0 ] === "left" ? + -data.elemWidth : + data.my[ 0 ] === "right" ? + data.elemWidth : + 0, + atOffset = data.at[ 0 ] === "left" ? + data.targetWidth : + data.at[ 0 ] === "right" ? + -data.targetWidth : + 0, + offset = -2 * data.offset[ 0 ], + newOverRight, + newOverLeft; + + if ( overLeft < 0 ) { + newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - + outerWidth - withinOffset; + if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) { + position.left += myOffset + atOffset + offset; + } + } else if ( overRight > 0 ) { + newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + + atOffset + offset - offsetLeft; + if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) { + position.left += myOffset + atOffset + offset; + } + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.offset.top + within.scrollTop, + outerHeight = within.height, + offsetTop = within.isWindow ? within.scrollTop : within.offset.top, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = collisionPosTop - offsetTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, + top = data.my[ 1 ] === "top", + myOffset = top ? + -data.elemHeight : + data.my[ 1 ] === "bottom" ? + data.elemHeight : + 0, + atOffset = data.at[ 1 ] === "top" ? + data.targetHeight : + data.at[ 1 ] === "bottom" ? + -data.targetHeight : + 0, + offset = -2 * data.offset[ 1 ], + newOverTop, + newOverBottom; + if ( overTop < 0 ) { + newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - + outerHeight - withinOffset; + if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) { + position.top += myOffset + atOffset + offset; + } + } else if ( overBottom > 0 ) { + newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + + offset - offsetTop; + if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) { + position.top += myOffset + atOffset + offset; + } + } + } + }, + flipfit: { + left: function() { + $.ui.position.flip.left.apply( this, arguments ); + $.ui.position.fit.left.apply( this, arguments ); + }, + top: function() { + $.ui.position.flip.top.apply( this, arguments ); + $.ui.position.fit.top.apply( this, arguments ); + } + } +}; + +} )(); + +var position = $.ui.position; + + +/*! + * jQuery UI Keycode 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Keycode +//>>group: Core +//>>description: Provide keycodes as keynames +//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/ + + +var keycode = $.ui.keyCode = { + BACKSPACE: 8, + COMMA: 188, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + LEFT: 37, + PAGE_DOWN: 34, + PAGE_UP: 33, + PERIOD: 190, + RIGHT: 39, + SPACE: 32, + TAB: 9, + UP: 38 +}; + + +/*! + * jQuery UI Unique ID 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: uniqueId +//>>group: Core +//>>description: Functions to generate and remove uniqueId's +//>>docs: http://api.jqueryui.com/uniqueId/ + + + +var uniqueId = $.fn.extend( { + uniqueId: ( function() { + var uuid = 0; + + return function() { + return this.each( function() { + if ( !this.id ) { + this.id = "ui-id-" + ( ++uuid ); + } + } ); + }; + } )(), + + removeUniqueId: function() { + return this.each( function() { + if ( /^ui-id-\d+$/.test( this.id ) ) { + $( this ).removeAttr( "id" ); + } + } ); + } +} ); + + + +var safeActiveElement = $.ui.safeActiveElement = function( document ) { + var activeElement; + + // Support: IE 9 only + // IE9 throws an "Unspecified error" accessing document.activeElement from an