From b432613e726770d4f21360f8db65ff3936af8429 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 16 Jan 2022 16:13:10 +0100 Subject: [PATCH] moved implementation from avalon to openpype --- openpype/hosts/aftereffects/api/README.md | 66 + openpype/hosts/aftereffects/api/__init__.py | 167 +-- openpype/hosts/aftereffects/api/extension.zxp | Bin 0 -> 100915 bytes .../hosts/aftereffects/api/extension/.debug | 32 + .../api/extension/CSXS/manifest.xml | 79 ++ .../api/extension/css/boilerplate.css | 327 +++++ .../aftereffects/api/extension/css/styles.css | 51 + .../css/topcoat-desktop-dark.min.css | 1 + .../api/extension/icons/iconDarkNormal.png | Bin 0 -> 18659 bytes .../api/extension/icons/iconDarkRollover.png | Bin 0 -> 18663 bytes .../api/extension/icons/iconDisabled.png | Bin 0 -> 18663 bytes .../api/extension/icons/iconNormal.png | Bin 0 -> 18225 bytes .../api/extension/icons/iconRollover.png | Bin 0 -> 18664 bytes .../aftereffects/api/extension/index.html | 136 ++ .../api/extension/js/libs/CSInterface.js | 1193 +++++++++++++++++ .../api/extension/js/libs/jquery-2.0.2.min.js | 6 + .../api/extension/js/libs/json.js | 530 ++++++++ .../api/extension/js/libs/loglevel.min.js | 2 + .../api/extension/js/libs/wsrpc.js | 393 ++++++ .../api/extension/js/libs/wsrpc.min.js | 1 + .../aftereffects/api/extension/js/main.js | 347 +++++ .../api/extension/js/themeManager.js | 128 ++ .../api/extension/jsx/hostscript.jsx | 723 ++++++++++ .../hosts/aftereffects/api/launch_logic.py | 319 +++++ openpype/hosts/aftereffects/api/lib.py | 71 + openpype/hosts/aftereffects/api/panel.PNG | Bin 0 -> 8756 bytes .../hosts/aftereffects/api/panel_failure.PNG | Bin 0 -> 13568 bytes openpype/hosts/aftereffects/api/pipeline.py | 272 ++++ openpype/hosts/aftereffects/api/plugin.py | 46 + openpype/hosts/aftereffects/api/workio.py | 49 + openpype/hosts/aftereffects/api/ws_stub.py | 605 +++++++++ .../plugins/create/create_local_render.py | 4 - .../plugins/create/create_render.py | 42 +- .../plugins/load/load_background.py | 22 +- .../aftereffects/plugins/load/load_file.py | 19 +- .../plugins/publish/add_publish_highlight.py | 4 +- .../aftereffects/plugins/publish/closeAE.py | 4 +- .../plugins/publish/collect_audio.py | 5 +- .../plugins/publish/collect_current_file.py | 4 +- .../publish/collect_extension_version.py | 10 +- .../plugins/publish/collect_render.py | 6 +- .../plugins/publish/extract_local_render.py | 9 +- .../plugins/publish/extract_save_scene.py | 4 +- .../plugins/publish/increment_workfile.py | 4 +- .../publish/remove_publish_highlight.py | 4 +- .../publish/validate_instance_asset.py | 4 +- .../publish/validate_scene_settings.py | 10 +- openpype/scripts/non_python_host_launch.py | 2 +- 48 files changed, 5523 insertions(+), 178 deletions(-) create mode 100644 openpype/hosts/aftereffects/api/README.md create mode 100644 openpype/hosts/aftereffects/api/extension.zxp create mode 100644 openpype/hosts/aftereffects/api/extension/.debug create mode 100644 openpype/hosts/aftereffects/api/extension/CSXS/manifest.xml create mode 100644 openpype/hosts/aftereffects/api/extension/css/boilerplate.css create mode 100644 openpype/hosts/aftereffects/api/extension/css/styles.css create mode 100644 openpype/hosts/aftereffects/api/extension/css/topcoat-desktop-dark.min.css create mode 100644 openpype/hosts/aftereffects/api/extension/icons/iconDarkNormal.png create mode 100644 openpype/hosts/aftereffects/api/extension/icons/iconDarkRollover.png create mode 100644 openpype/hosts/aftereffects/api/extension/icons/iconDisabled.png create mode 100644 openpype/hosts/aftereffects/api/extension/icons/iconNormal.png create mode 100644 openpype/hosts/aftereffects/api/extension/icons/iconRollover.png create mode 100644 openpype/hosts/aftereffects/api/extension/index.html create mode 100644 openpype/hosts/aftereffects/api/extension/js/libs/CSInterface.js create mode 100644 openpype/hosts/aftereffects/api/extension/js/libs/jquery-2.0.2.min.js create mode 100644 openpype/hosts/aftereffects/api/extension/js/libs/json.js create mode 100644 openpype/hosts/aftereffects/api/extension/js/libs/loglevel.min.js create mode 100644 openpype/hosts/aftereffects/api/extension/js/libs/wsrpc.js create mode 100644 openpype/hosts/aftereffects/api/extension/js/libs/wsrpc.min.js create mode 100644 openpype/hosts/aftereffects/api/extension/js/main.js create mode 100644 openpype/hosts/aftereffects/api/extension/js/themeManager.js create mode 100644 openpype/hosts/aftereffects/api/extension/jsx/hostscript.jsx create mode 100644 openpype/hosts/aftereffects/api/launch_logic.py create mode 100644 openpype/hosts/aftereffects/api/lib.py create mode 100644 openpype/hosts/aftereffects/api/panel.PNG create mode 100644 openpype/hosts/aftereffects/api/panel_failure.PNG create mode 100644 openpype/hosts/aftereffects/api/pipeline.py create mode 100644 openpype/hosts/aftereffects/api/plugin.py create mode 100644 openpype/hosts/aftereffects/api/workio.py create mode 100644 openpype/hosts/aftereffects/api/ws_stub.py diff --git a/openpype/hosts/aftereffects/api/README.md b/openpype/hosts/aftereffects/api/README.md new file mode 100644 index 0000000000..667324f7a4 --- /dev/null +++ b/openpype/hosts/aftereffects/api/README.md @@ -0,0 +1,66 @@ +# Photoshop Integration + +Requirements: This extension requires use of Javascript engine, which is +available since CC 16.0. +Please check your File>Project Settings>Expressions>Expressions Engine + +## Setup + +The After Effects integration requires two components to work; `extension` and `server`. + +### Extension + +To install the extension download [Extension Manager Command Line tool (ExManCmd)](https://github.com/Adobe-CEP/Getting-Started-guides/tree/master/Package%20Distribute%20Install#option-2---exmancmd). + +``` +ExManCmd /install {path to avalon-core}\avalon\photoshop\extension.zxp +``` +OR +download [Anastasiy’s Extension Manager](https://install.anastasiy.com/) + +### Server + +The easiest way to get the server and After Effects launch is with: + +``` +python -c ^"import avalon.photoshop;avalon.aftereffects.launch(""c:\Program Files\Adobe\Adobe After Effects 2020\Support Files\AfterFX.exe"")^" +``` + +`avalon.aftereffects.launch` launches the application and server, and also closes the server when After Effects exists. + +## Usage + +The After Effects extension can be found under `Window > Extensions > OpenPype`. Once launched you should be presented with a panel like this: + +![Avalon Panel](panel.PNG "Avalon Panel") + + +## Developing + +### Extension +When developing the extension you can load it [unsigned](https://github.com/Adobe-CEP/CEP-Resources/blob/master/CEP_9.x/Documentation/CEP%209.0%20HTML%20Extension%20Cookbook.md#debugging-unsigned-extensions). + +When signing the extension you can use this [guide](https://github.com/Adobe-CEP/Getting-Started-guides/tree/master/Package%20Distribute%20Install#package-distribute-install-guide). + +``` +ZXPSignCmd -selfSignedCert NA NA Avalon Avalon-After-Effects avalon extension.p12 +ZXPSignCmd -sign {path to avalon-core}\avalon\aftereffects\extension {path to avalon-core}\avalon\aftereffects\extension.zxp extension.p12 avalon +``` + +### Plugin Examples + +These plugins were made with the [polly config](https://github.com/mindbender-studio/config). To fully integrate and load, you will have to use this config and add `image` to the [integration plugin](https://github.com/mindbender-studio/config/blob/master/polly/plugins/publish/integrate_asset.py). + +Expected deployed extension location on default Windows: +`c:\Program Files (x86)\Common Files\Adobe\CEP\extensions\com.openpype.AE.panel` + +For easier debugging of Javascript: +https://community.adobe.com/t5/download-install/adobe-extension-debuger-problem/td-p/10911704?page=1 +Add (optional) --enable-blink-features=ShadowDOMV0,CustomElementsV0 when starting Chrome +then localhost:8092 + +Or use Visual Studio Code https://medium.com/adobetech/extendscript-debugger-for-visual-studio-code-public-release-a2ff6161fa01 +## Resources + - https://javascript-tools-guide.readthedocs.io/introduction/index.html + - https://github.com/Adobe-CEP/Getting-Started-guides + - https://github.com/Adobe-CEP/CEP-Resources diff --git a/openpype/hosts/aftereffects/api/__init__.py b/openpype/hosts/aftereffects/api/__init__.py index b1edb91a5c..a7bbd8e604 100644 --- a/openpype/hosts/aftereffects/api/__init__.py +++ b/openpype/hosts/aftereffects/api/__init__.py @@ -1,115 +1,66 @@ -import os -import sys -import logging +"""Public API -from avalon import io -from avalon import api as avalon -from Qt import QtWidgets -from openpype import lib, api -import pyblish.api as pyblish -import openpype.hosts.aftereffects +Anything that isn't defined here is INTERNAL and unreliable for external use. + +""" + +from .launch_logic import ( + get_stub, + stub, +) + +from .pipeline import ( + ls, + Creator, + install, + list_instances, + remove_instance, + containerise +) + +from .workio import ( + file_extensions, + has_unsaved_changes, + save_file, + open_file, + current_file, + work_root, +) + +from .lib import ( + maintained_selection, + get_extension_manifest_path +) + +from .plugin import ( + AfterEffectsLoader +) -log = logging.getLogger("openpype.hosts.aftereffects") +__all__ = [ + # launch_logic + "get_stub", + "stub", + # pipeline + "ls", + "Creator", + "install", + "list_instances", + "remove_instance", + "containerise", -HOST_DIR = os.path.dirname(os.path.abspath(openpype.hosts.aftereffects.__file__)) -PLUGINS_DIR = os.path.join(HOST_DIR, "plugins") -PUBLISH_PATH = os.path.join(PLUGINS_DIR, "publish") -LOAD_PATH = os.path.join(PLUGINS_DIR, "load") -CREATE_PATH = os.path.join(PLUGINS_DIR, "create") -INVENTORY_PATH = os.path.join(PLUGINS_DIR, "inventory") + "file_extensions", + "has_unsaved_changes", + "save_file", + "open_file", + "current_file", + "work_root", + # lib + "maintained_selection", + "get_extension_manifest_path", -def check_inventory(): - if not lib.any_outdated(): - return - - host = pyblish.registered_host() - outdated_containers = [] - for container in host.ls(): - representation = container['representation'] - representation_doc = io.find_one( - { - "_id": io.ObjectId(representation), - "type": "representation" - }, - projection={"parent": True} - ) - if representation_doc and not lib.is_latest(representation_doc): - outdated_containers.append(container) - - # Warn about outdated containers. - print("Starting new QApplication..") - app = QtWidgets.QApplication(sys.argv) - - message_box = QtWidgets.QMessageBox() - message_box.setIcon(QtWidgets.QMessageBox.Warning) - msg = "There are outdated containers in the scene." - message_box.setText(msg) - message_box.exec_() - - # Garbage collect QApplication. - del app - - -def application_launch(): - check_inventory() - - -def install(): - print("Installing Pype config...") - - pyblish.register_plugin_path(PUBLISH_PATH) - avalon.register_plugin_path(avalon.Loader, LOAD_PATH) - avalon.register_plugin_path(avalon.Creator, CREATE_PATH) - log.info(PUBLISH_PATH) - - pyblish.register_callback( - "instanceToggled", on_pyblish_instance_toggled - ) - - avalon.on("application.launched", application_launch) - - -def uninstall(): - pyblish.deregister_plugin_path(PUBLISH_PATH) - avalon.deregister_plugin_path(avalon.Loader, LOAD_PATH) - avalon.deregister_plugin_path(avalon.Creator, CREATE_PATH) - - -def on_pyblish_instance_toggled(instance, old_value, new_value): - """Toggle layer visibility on instance toggles.""" - instance[0].Visible = new_value - - -def get_asset_settings(): - """Get settings on current asset from database. - - Returns: - dict: Scene data. - - """ - asset_data = lib.get_asset()["data"] - fps = asset_data.get("fps") - frame_start = asset_data.get("frameStart") - frame_end = asset_data.get("frameEnd") - handle_start = asset_data.get("handleStart") - handle_end = asset_data.get("handleEnd") - resolution_width = asset_data.get("resolutionWidth") - resolution_height = asset_data.get("resolutionHeight") - duration = (frame_end - frame_start + 1) + handle_start + handle_end - entity_type = asset_data.get("entityType") - - scene_data = { - "fps": fps, - "frameStart": frame_start, - "frameEnd": frame_end, - "handleStart": handle_start, - "handleEnd": handle_end, - "resolutionWidth": resolution_width, - "resolutionHeight": resolution_height, - "duration": duration - } - - return scene_data + # plugin + "AfterEffectsLoader", +] diff --git a/openpype/hosts/aftereffects/api/extension.zxp b/openpype/hosts/aftereffects/api/extension.zxp new file mode 100644 index 0000000000000000000000000000000000000000..35b0c0fc42a731150521187312ef21243882f300 GIT binary patch literal 100915 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

CHAj%#mo5y_a_ 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�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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/openpype/hosts/aftereffects/api/extension/CSXS/manifest.xml b/openpype/hosts/aftereffects/api/extension/CSXS/manifest.xml new file mode 100644 index 0000000000..2480089825 --- /dev/null +++ b/openpype/hosts/aftereffects/api/extension/CSXS/manifest.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ./index.html + ./jsx/hostscript.jsx + + + true + + + Panel +

OpenPype + + + 200 + 100 + + + + + + ./icons/iconNormal.png + ./icons/iconRollover.png + ./icons/iconDisabled.png + ./icons/iconDarkNormal.png + ./icons/iconDarkRollover.png + + + + + + \ No newline at end of file diff --git a/openpype/hosts/aftereffects/api/extension/css/boilerplate.css b/openpype/hosts/aftereffects/api/extension/css/boilerplate.css new file mode 100644 index 0000000000..d208999b8a --- /dev/null +++ b/openpype/hosts/aftereffects/api/extension/css/boilerplate.css @@ -0,0 +1,327 @@ +/* + * HTML5 ✰ Boilerplate + * + * What follows is the result of much research on cross-browser styling. + * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, + * Kroc Camen, and the H5BP dev community and team. + * + * Detailed information about this CSS: h5bp.com/css + * + * ==|== normalize ========================================================== + */ + + +/* ============================================================================= + HTML5 display definitions + ========================================================================== */ + +article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; } +audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; } +audio:not([controls]) { display: none; } +[hidden] { display: none; } + + +/* ============================================================================= + Base + ========================================================================== */ + +/* + * 1. Correct text resizing oddly in IE6/7 when body font-size is set using em units + * 2. Force vertical scrollbar in non-IE + * 3. Prevent iOS text size adjust on device orientation change, without disabling user zoom: h5bp.com/g + */ + +html { font-size: 100%; overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } + +body { margin: 0; font-size: 100%; line-height: 1.231; } + +body, button, input, select, textarea { font-family: helvetica, arial,"lucida grande", verdana, "メイリオ", "MS Pゴシック", sans-serif; color: #222; } +/* + * Remove text-shadow in selection highlight: h5bp.com/i + * These selection declarations have to be separate + * Also: hot pink! (or customize the background color to match your design) + */ + +::selection { text-shadow: none; background-color: highlight; color: highlighttext; } + + +/* ============================================================================= + Links + ========================================================================== */ + +a { color: #00e; } +a:visited { color: #551a8b; } +a:hover { color: #06e; } +a:focus { outline: thin dotted; } + +/* Improve readability when focused and hovered in all browsers: h5bp.com/h */ +a:hover, a:active { outline: 0; } + + +/* ============================================================================= + Typography + ========================================================================== */ + +abbr[title] { border-bottom: 1px dotted; } + +b, strong { font-weight: bold; } + +blockquote { margin: 1em 40px; } + +dfn { font-style: italic; } + +hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; } + +ins { background: #ff9; color: #000; text-decoration: none; } + +mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; } + +/* Redeclare monospace font family: h5bp.com/j */ +pre, code, kbd, samp { font-family: monospace, serif; _font-family: 'courier new', monospace; font-size: 1em; } + +/* Improve readability of pre-formatted text in all browsers */ +pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; } + +q { quotes: none; } +q:before, q:after { content: ""; content: none; } + +small { font-size: 85%; } + +/* Position subscript and superscript content without affecting line-height: h5bp.com/k */ +sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } +sup { top: -0.5em; } +sub { bottom: -0.25em; } + + +/* ============================================================================= + Lists + ========================================================================== */ + +ul, ol { margin: 1em 0; padding: 0 0 0 40px; } +dd { margin: 0 0 0 40px; } +nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0; } + + +/* ============================================================================= + Embedded content + ========================================================================== */ + +/* + * 1. Improve image quality when scaled in IE7: h5bp.com/d + * 2. Remove the gap between images and borders on image containers: h5bp.com/e + */ + +img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; } + +/* + * Correct overflow not hidden in IE9 + */ + +svg:not(:root) { overflow: hidden; } + + +/* ============================================================================= + Figures + ========================================================================== */ + +figure { margin: 0; } + + +/* ============================================================================= + Forms + ========================================================================== */ + +form { margin: 0; } +fieldset { border: 0; margin: 0; padding: 0; } + +/* Indicate that 'label' will shift focus to the associated form element */ +label { cursor: pointer; } + +/* + * 1. Correct color not inheriting in IE6/7/8/9 + * 2. Correct alignment displayed oddly in IE6/7 + */ + +legend { border: 0; *margin-left: -7px; padding: 0; } + +/* + * 1. Correct font-size not inheriting in all browsers + * 2. Remove margins in FF3/4 S5 Chrome + * 3. Define consistent vertical alignment display in all browsers + */ + +button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; } + +/* + * 1. Define line-height as normal to match FF3/4 (set using !important in the UA stylesheet) + */ + +button, input { line-height: normal; } + +/* + * 1. Display hand cursor for clickable form elements + * 2. Allow styling of clickable form elements in iOS + * 3. Correct inner spacing displayed oddly in IE7 (doesn't effect IE6) + */ + +button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; *overflow: visible; } + +/* + * Consistent box sizing and appearance + */ + +input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; } +input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; } +input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } + +/* + * Remove inner padding and border in FF3/4: h5bp.com/l + */ + +button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } + +/* + * 1. Remove default vertical scrollbar in IE6/7/8/9 + * 2. Allow only vertical resizing + */ + +textarea { overflow: auto; vertical-align: top; resize: vertical; } + +/* Colors for form validity */ +input:valid, textarea:valid { } +input:invalid, textarea:invalid { background-color: #f0dddd; } + + +/* ============================================================================= + Tables + ========================================================================== */ + +table { border-collapse: collapse; border-spacing: 0; } +td { vertical-align: top; } + + +/* ==|== primary styles ===================================================== + Author: + ========================================================================== */ + +/* ==|== media queries ====================================================== + PLACEHOLDER Media Queries for Responsive Design. + These override the primary ('mobile first') styles + Modify as content requires. + ========================================================================== */ + +@media only screen and (min-width: 480px) { + /* Style adjustments for viewports 480px and over go here */ + +} + +@media only screen and (min-width: 768px) { + /* Style adjustments for viewports 768px and over go here */ + +} + + + +/* ==|== non-semantic helper classes ======================================== + Please define your styles before this section. + ========================================================================== */ + +/* For image replacement */ +.ir { display: block; border: 0; text-indent: -999em; overflow: hidden; background-color: transparent; background-repeat: no-repeat; text-align: left; direction: ltr; } +.ir br { display: none; } + +/* Hide from both screenreaders and browsers: h5bp.com/u */ +.hidden { display: none !important; visibility: hidden; } + +/* Hide only visually, but have it available for screenreaders: h5bp.com/v */ +.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } + +/* Extends the .visuallyhidden class to allow the element to be focusable when navigated to via the keyboard: h5bp.com/p */ +.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; } + +/* Hide visually and from screenreaders, but maintain layout */ +.invisible { visibility: hidden; } + +/* Contain floats: h5bp.com/q */ +.clearfix:before, .clearfix:after { content: ""; display: table; } +.clearfix:after { clear: both; } +.clearfix { *zoom: 1; } + + + +/* ==|== print styles ======================================================= + Print styles. + Inlined to avoid required HTTP connection: h5bp.com/r + ========================================================================== */ + +@media print { + * { background: transparent !important; color: black !important; box-shadow:none !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; } /* Black prints faster: h5bp.com/s */ + a, a:visited { text-decoration: underline; } + a[href]:after { content: " (" attr(href) ")"; } + abbr[title]:after { content: " (" attr(title) ")"; } + .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /* Don't show links for images, or javascript/internal links */ + pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } + table { display: table-header-group; } /* h5bp.com/t */ + tr, img { page-break-inside: avoid; } + img { max-width: 100% !important; } + @page { margin: 0.5cm; } + p, h2, h3 { orphans: 3; widows: 3; } + h2, h3 { page-break-after: avoid; } +} + +/* reflow reset for -webkit-margin-before: 1em */ +p { margin: 0; } + +html { + overflow-y: auto; + background-color: transparent; + height: 100%; +} + +body { + background: #fff; + font: normal 100%; + position: relative; + height: 100%; +} + +body, div, img, p, button, input, select, textarea { + box-sizing: border-box; +} + +.image { + display: block; +} + +input { + cursor: default; + display: block; +} + +input[type=button] { + background-color: #e5e9e8; + border: 1px solid #9daca9; + border-radius: 4px; + box-shadow: inset 0 1px #fff; + font: inherit; + letter-spacing: inherit; + text-indent: inherit; + color: inherit; +} + +input[type=button]:hover { + background-color: #eff1f1; +} + +input[type=button]:active { + background-color: #d2d6d6; + border: 1px solid #9daca9; + box-shadow: inset 0 1px rgba(0,0,0,0.1); +} + +/* Reset anchor styles to an unstyled default to be in parity with design surface. It + is presumed that most link styles in real-world designs are custom (non-default). */ +a, a:visited, a:hover, a:active { + color: inherit; + text-decoration: inherit; +} \ No newline at end of file diff --git a/openpype/hosts/aftereffects/api/extension/css/styles.css b/openpype/hosts/aftereffects/api/extension/css/styles.css new file mode 100644 index 0000000000..c9cf2b93ac --- /dev/null +++ b/openpype/hosts/aftereffects/api/extension/css/styles.css @@ -0,0 +1,51 @@ +/*Your styles*/ + + body { + margin: 10px; +} + + +#content { + margin-right:auto; + margin-left:auto; + vertical-align:middle; + width:100%; +} + + +#btn_test{ + width: 100%; +} + + + + +/* +Those classes will be edited at runtime with values specified +by the settings of the CC application +*/ +.hostFontColor{} +.hostFontFamily{} +.hostFontSize{} + +/*font family, color and size*/ +.hostFont{} +/*background color*/ +.hostBgd{} +/*lighter background color*/ +.hostBgdLight{} +/*darker background color*/ +.hostBgdDark{} +/*background color and font*/ +.hostElt{} + + +.hostButton{ + border:1px solid; + border-radius:2px; + height:20px; + vertical-align:bottom; + font-family:inherit; + color:inherit; + font-size:inherit; +} \ No newline at end of file diff --git a/openpype/hosts/aftereffects/api/extension/css/topcoat-desktop-dark.min.css b/openpype/hosts/aftereffects/api/extension/css/topcoat-desktop-dark.min.css new file mode 100644 index 0000000000..6b479def43 --- /dev/null +++ b/openpype/hosts/aftereffects/api/extension/css/topcoat-desktop-dark.min.css @@ -0,0 +1 @@ +.button-bar{display:table;table-layout:fixed;white-space:nowrap;margin:0;padding:0}.button-bar__item{display:table-cell;width:auto;border-radius:0}.button-bar__item>input{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.button-bar__button{border-radius:inherit}.button-bar__item:disabled{opacity:.3;cursor:default;pointer-events:none}.button,.topcoat-button,.topcoat-button--quiet,.topcoat-button--large,.topcoat-button--large--quiet,.topcoat-button--cta,.topcoat-button--large--cta,.topcoat-button-bar__button,.topcoat-button-bar__button--large{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.button--disabled,.topcoat-button:disabled,.topcoat-button--quiet:disabled,.topcoat-button--large:disabled,.topcoat-button--large--quiet:disabled,.topcoat-button--cta:disabled,.topcoat-button--large--cta:disabled,.topcoat-button-bar__button:disabled,.topcoat-button-bar__button--large:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-button,.topcoat-button--quiet,.topcoat-button--large,.topcoat-button--large--quiet,.topcoat-button--cta,.topcoat-button--large--cta,.topcoat-button-bar__button,.topcoat-button-bar__button--large{padding:0 .563rem;font-size:12px;line-height:1.313rem;letter-spacing:0;color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);vertical-align:top;background-color:#595b5b;box-shadow:inset 0 1px #737373;border:1px solid #333434;border-radius:4px}.topcoat-button:hover,.topcoat-button--quiet:hover,.topcoat-button--large:hover,.topcoat-button--large--quiet:hover,.topcoat-button-bar__button:hover,.topcoat-button-bar__button--large:hover{background-color:#626465}.topcoat-button:focus,.topcoat-button--quiet:focus,.topcoat-button--quiet:hover:focus,.topcoat-button--large:focus,.topcoat-button--large--quiet:focus,.topcoat-button--large--quiet:hover:focus,.topcoat-button--cta:focus,.topcoat-button--large--cta:focus,.topcoat-button-bar__button:focus,.topcoat-button-bar__button--large:focus{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1;outline:0}.topcoat-button:active,.topcoat-button--large:active,.topcoat-button-bar__button:active,.topcoat-button-bar__button--large:active,:checked+.topcoat-button-bar__button{border:1px solid #333434;background-color:#3f4041;box-shadow:inset 0 1px rgba(0,0,0,.05)}.topcoat-button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.topcoat-button--quiet:hover,.topcoat-button--large--quiet:hover{text-shadow:0 -1px rgba(0,0,0,.69);border:1px solid #333434;box-shadow:inset 0 1px #737373}.topcoat-button--quiet:active,.topcoat-button--quiet:focus:active,.topcoat-button--large--quiet:active,.topcoat-button--large--quiet:focus:active{color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);background-color:#3f4041;border:1px solid #333434;box-shadow:inset 0 1px rgba(0,0,0,.05)}.topcoat-button--large,.topcoat-button--large--quiet,.topcoat-button-bar__button--large{font-size:.875rem;font-weight:600;line-height:1.688rem;padding:0 .875rem}.topcoat-button--large--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.topcoat-button--cta,.topcoat-button--large--cta{border:1px solid #134f7f;background-color:#288edf;box-shadow:inset 0 1px rgba(255,255,255,.36);color:#fff;font-weight:500;text-shadow:0 -1px rgba(0,0,0,.36)}.topcoat-button--cta:hover,.topcoat-button--large--cta:hover{background-color:#4ca1e4}.topcoat-button--cta:active,.topcoat-button--large--cta:active{background-color:#1e7dc8;box-shadow:inset 0 1px rgba(0,0,0,.12)}.topcoat-button--large--cta{font-size:.875rem;font-weight:600;line-height:1.688rem;padding:0 .875rem}.button-bar,.topcoat-button-bar{display:table;table-layout:fixed;white-space:nowrap;margin:0;padding:0}.button-bar__item,.topcoat-button-bar__item{display:table-cell;width:auto;border-radius:0}.button-bar__item>input,.topcoat-button-bar__item>input{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.button-bar__button{border-radius:inherit}.button-bar__item:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-button-bar>.topcoat-button-bar__item:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.topcoat-button-bar>.topcoat-button-bar__item:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.topcoat-button-bar__item:first-child>.topcoat-button-bar__button,.topcoat-button-bar__item:first-child>.topcoat-button-bar__button--large{border-right:0}.topcoat-button-bar__item:last-child>.topcoat-button-bar__button,.topcoat-button-bar__item:last-child>.topcoat-button-bar__button--large{border-left:0}.topcoat-button-bar__button{border-radius:inherit}.topcoat-button-bar__button:focus,.topcoat-button-bar__button--large:focus{z-index:1}.topcoat-button-bar__button--large{border-radius:inherit}.button{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.button--disabled{opacity:.3;cursor:default;pointer-events:none}.button,.topcoat-button,.topcoat-button--quiet,.topcoat-button--large,.topcoat-button--large--quiet,.topcoat-button--cta,.topcoat-button--large--cta{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.button--disabled,.topcoat-button:disabled,.topcoat-button--quiet:disabled,.topcoat-button--large:disabled,.topcoat-button--large--quiet:disabled,.topcoat-button--cta:disabled,.topcoat-button--large--cta:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-button,.topcoat-button--quiet,.topcoat-button--large,.topcoat-button--large--quiet,.topcoat-button--cta,.topcoat-button--large--cta{padding:0 .563rem;font-size:12px;line-height:1.313rem;letter-spacing:0;color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);vertical-align:top;background-color:#595b5b;box-shadow:inset 0 1px #737373;border:1px solid #333434;border-radius:4px}.topcoat-button:hover,.topcoat-button--quiet:hover,.topcoat-button--large:hover,.topcoat-button--large--quiet:hover{background-color:#626465}.topcoat-button:focus,.topcoat-button--quiet:focus,.topcoat-button--quiet:hover:focus,.topcoat-button--large:focus,.topcoat-button--large--quiet:focus,.topcoat-button--large--quiet:hover:focus,.topcoat-button--cta:focus,.topcoat-button--large--cta:focus{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1;outline:0}.topcoat-button:active,.topcoat-button--large:active{border:1px solid #333434;background-color:#3f4041;box-shadow:inset 0 1px rgba(0,0,0,.05)}.topcoat-button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.topcoat-button--quiet:hover,.topcoat-button--large--quiet:hover{text-shadow:0 -1px rgba(0,0,0,.69);border:1px solid #333434;box-shadow:inset 0 1px #737373}.topcoat-button--quiet:active,.topcoat-button--quiet:focus:active,.topcoat-button--large--quiet:active,.topcoat-button--large--quiet:focus:active{color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);background-color:#3f4041;border:1px solid #333434;box-shadow:inset 0 1px rgba(0,0,0,.05)}.topcoat-button--large,.topcoat-button--large--quiet{font-size:.875rem;font-weight:600;line-height:1.688rem;padding:0 .875rem}.topcoat-button--large--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.topcoat-button--cta,.topcoat-button--large--cta{border:1px solid #134f7f;background-color:#288edf;box-shadow:inset 0 1px rgba(255,255,255,.36);color:#fff;font-weight:500;text-shadow:0 -1px rgba(0,0,0,.36)}.topcoat-button--cta:hover,.topcoat-button--large--cta:hover{background-color:#4ca1e4}.topcoat-button--cta:active,.topcoat-button--large--cta:active{background-color:#1e7dc8;box-shadow:inset 0 1px rgba(0,0,0,.12)}.topcoat-button--large--cta{font-size:.875rem;font-weight:600;line-height:1.688rem;padding:0 .875rem}input[type=checkbox]{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.checkbox{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox__label{position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox--disabled{opacity:.3;cursor:default;pointer-events:none}.checkbox:before,.checkbox:after{content:'';position:absolute}.checkbox:before{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}input[type=checkbox]{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.checkbox,.topcoat-checkbox__checkmark{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox__label,.topcoat-checkbox{position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox--disabled,input[type=checkbox]:disabled+.topcoat-checkbox__checkmark{opacity:.3;cursor:default;pointer-events:none}.checkbox:before,.checkbox:after,.topcoat-checkbox__checkmark:before,.topcoat-checkbox__checkmark:after{content:'';position:absolute}.checkbox:before,.topcoat-checkbox__checkmark:before{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.topcoat-checkbox__checkmark{height:1rem}input[type=checkbox]{height:1rem;width:1rem;margin-top:0;margin-right:-1rem;margin-bottom:-1rem;margin-left:0}input[type=checkbox]:checked+.topcoat-checkbox__checkmark:after{opacity:1}.topcoat-checkbox{line-height:1rem}.topcoat-checkbox__checkmark:before{width:1rem;height:1rem;background:#595b5b;border:1px solid #333434;border-radius:3px;box-shadow:inset 0 1px #737373}.topcoat-checkbox__checkmark{width:1rem;height:1rem}.topcoat-checkbox__checkmark:after{top:2px;left:1px;opacity:0;width:14px;height:4px;background:transparent;border:7px solid #c6c8c8;border-width:3px;border-top:0;border-right:0;border-radius:1px;-webkit-transform:rotate(-50deg);-ms-transform:rotate(-50deg);transform:rotate(-50deg)}input[type=checkbox]:focus+.topcoat-checkbox__checkmark:before{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1}input[type=checkbox]:active+.topcoat-checkbox__checkmark:before{border:1px solid #333434;background-color:#3f4041;box-shadow:inset 0 1px rgba(0,0,0,.05)}input[type=checkbox]:disabled:active+.topcoat-checkbox__checkmark:before{border:1px solid #333434;background:#595b5b;box-shadow:inset 0 1px #737373}.button,.topcoat-icon-button,.topcoat-icon-button--quiet,.topcoat-icon-button--large,.topcoat-icon-button--large--quiet{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.button--disabled,.topcoat-icon-button:disabled,.topcoat-icon-button--quiet:disabled,.topcoat-icon-button--large:disabled,.topcoat-icon-button--large--quiet:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-icon-button,.topcoat-icon-button--quiet,.topcoat-icon-button--large,.topcoat-icon-button--large--quiet{padding:0 .25rem;line-height:1.313rem;letter-spacing:0;color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);vertical-align:baseline;background-color:#595b5b;box-shadow:inset 0 1px #737373;border:1px solid #333434;border-radius:4px}.topcoat-icon-button:hover,.topcoat-icon-button--quiet:hover,.topcoat-icon-button--large:hover,.topcoat-icon-button--large--quiet:hover{background-color:#626465}.topcoat-icon-button:focus,.topcoat-icon-button--quiet:focus,.topcoat-icon-button--quiet:hover:focus,.topcoat-icon-button--large:focus,.topcoat-icon-button--large--quiet:focus,.topcoat-icon-button--large--quiet:hover:focus{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1;outline:0}.topcoat-icon-button:active,.topcoat-icon-button--large:active{border:1px solid #333434;background-color:#3f4041;box-shadow:inset 0 1px rgba(0,0,0,.05)}.topcoat-icon-button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.topcoat-icon-button--quiet:hover,.topcoat-icon-button--large--quiet:hover{text-shadow:0 -1px rgba(0,0,0,.69);border:1px solid #333434;box-shadow:inset 0 1px #737373}.topcoat-icon-button--quiet:active,.topcoat-icon-button--quiet:focus:active,.topcoat-icon-button--large--quiet:active,.topcoat-icon-button--large--quiet:focus:active{color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);background-color:#3f4041;border:1px solid #333434;box-shadow:inset 0 1px rgba(0,0,0,.05)}.topcoat-icon-button--large,.topcoat-icon-button--large--quiet{width:1.688rem;height:1.688rem;line-height:1.688rem}.topcoat-icon-button--large--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.topcoat-icon,.topcoat-icon--large{position:relative;display:inline-block;vertical-align:top;overflow:hidden;width:.81406rem;height:.81406rem;vertical-align:middle;top:-1px}.topcoat-icon--large{width:1.06344rem;height:1.06344rem;top:-2px}.input{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;vertical-align:top;outline:0}.input:disabled{opacity:.3;cursor:default;pointer-events:none}.list{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:auto;-webkit-overflow-scrolling:touch}.list__header{margin:0}.list__container{padding:0;margin:0;list-style-type:none}.list__item{margin:0;padding:0}.navigation-bar{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;white-space:nowrap;overflow:hidden;word-spacing:0;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navigation-bar__item{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;position:relative;display:inline-block;vertical-align:top;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0}.navigation-bar__title{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.notification{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.notification,.topcoat-notification{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.topcoat-notification{padding:.15em .5em .2em;border-radius:2px;background-color:#ec514e;color:#fff}input[type=radio]{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.radio-button{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.radio-button__label{position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.radio-button:before,.radio-button:after{content:'';position:absolute;border-radius:100%}.radio-button:after{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.radio-button:before{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.radio-button--disabled{opacity:.3;cursor:default;pointer-events:none}input[type=radio]{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.radio-button,.topcoat-radio-button__checkmark{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.radio-button__label,.topcoat-radio-button{position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.radio-button:before,.radio-button:after,.topcoat-radio-button__checkmark:before,.topcoat-radio-button__checkmark:after{content:'';position:absolute;border-radius:100%}.radio-button:after,.topcoat-radio-button__checkmark:after{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.radio-button:before,.topcoat-radio-button__checkmark:before{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.radio-button--disabled,input[type=radio]:disabled+.topcoat-radio-button__checkmark{opacity:.3;cursor:default;pointer-events:none}input[type=radio]{height:1.063rem;width:1.063rem;margin-top:0;margin-right:-1.063rem;margin-bottom:-1.063rem;margin-left:0}input[type=radio]:checked+.topcoat-radio-button__checkmark:after{opacity:1}.topcoat-radio-button{color:#c6c8c8;line-height:1.063rem}.topcoat-radio-button__checkmark:before{width:1.063rem;height:1.063rem;background:#595b5b;border:1px solid #333434;box-shadow:inset 0 1px #737373}.topcoat-radio-button__checkmark{position:relative;width:1.063rem;height:1.063rem}.topcoat-radio-button__checkmark:after{opacity:0;width:.313rem;height:.313rem;background:#c6c8c8;border:1px solid rgba(0,0,0,.05);box-shadow:0 1px rgba(255,255,255,.1);-webkit-transform:none;-ms-transform:none;transform:none;top:.313rem;left:.313rem}input[type=radio]:focus+.topcoat-radio-button__checkmark:before{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1}input[type=radio]:active+.topcoat-radio-button__checkmark:before{border:1px solid #333434;background-color:#3f4041;box-shadow:inset 0 1px rgba(0,0,0,.05)}input[type=radio]:disabled:active+.topcoat-radio-button__checkmark:before{border:1px solid #333434;background:#595b5b;box-shadow:inset 0 1px #737373}.range{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;vertical-align:top;outline:0;-webkit-appearance:none}.range__thumb{cursor:pointer}.range__thumb--webkit{cursor:pointer;-webkit-appearance:none}.range:disabled{opacity:.3;cursor:default;pointer-events:none}.range,.topcoat-range{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;vertical-align:top;outline:0;-webkit-appearance:none}.range__thumb,.topcoat-range::-moz-range-thumb{cursor:pointer}.range__thumb--webkit,.topcoat-range::-webkit-slider-thumb{cursor:pointer;-webkit-appearance:none}.range:disabled,.topcoat-range:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-range{border-radius:4px;border:1px solid #333434;background-color:#454646;height:.5rem;border-radius:15px}.topcoat-range::-moz-range-track{border-radius:4px;border:1px solid #333434;background-color:#454646;height:.5rem;border-radius:15px}.topcoat-range::-webkit-slider-thumb{height:1.313rem;width:.75rem;background-color:#595b5b;border:1px solid #333434;border-radius:4px;box-shadow:inset 0 1px #737373}.topcoat-range::-moz-range-thumb{height:1.313rem;width:.75rem;background-color:#595b5b;border:1px solid #333434;border-radius:4px;box-shadow:inset 0 1px #737373}.topcoat-range:focus::-webkit-slider-thumb{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1}.topcoat-range:focus::-moz-range-thumb{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1}.topcoat-range:active::-webkit-slider-thumb{border:1px solid #333434;box-shadow:inset 0 1px #737373}.topcoat-range:active::-moz-range-thumb{border:1px solid #333434;box-shadow:inset 0 1px #737373}.search-input{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;vertical-align:top;outline:0;-webkit-appearance:none}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.search-input:disabled{opacity:.3;cursor:default;pointer-events:none}.search-input,.topcoat-search-input,.topcoat-search-input--large{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;vertical-align:top;outline:0;-webkit-appearance:none}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.search-input:disabled,.topcoat-search-input:disabled,.topcoat-search-input--large:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-search-input,.topcoat-search-input--large{line-height:1.313rem;height:1.313rem;font-size:12px;border:1px solid #333434;background-color:#454646;box-shadow:inset 0 1px 0 rgba(0,0,0,.23);color:#c6c8c8;padding:0 0 0 1.3rem;border-radius:15px;background-image:url(../img/search.svg);background-position:1rem center;background-repeat:no-repeat;background-size:12px}.topcoat-search-input:focus,.topcoat-search-input--large:focus{background-color:#595b5b;color:#fff;border:1px solid #0036ff;box-shadow:inset 0 1px 0 rgba(0,0,0,.23),0 0 0 2px #6fb5f1}.topcoat-search-input::-webkit-search-cancel-button,.topcoat-search-input::-webkit-search-decoration,.topcoat-search-input--large::-webkit-search-cancel-button,.topcoat-search-input--large::-webkit-search-decoration{margin-right:5px}.topcoat-search-input:focus::-webkit-input-placeholder,.topcoat-search-input:focus::-webkit-input-placeholder{color:#c6c8c8}.topcoat-search-input:disabled::-webkit-input-placeholder{color:#fff}.topcoat-search-input:disabled::-moz-placeholder{color:#fff}.topcoat-search-input:disabled:-ms-input-placeholder{color:#fff}.topcoat-search-input--large{line-height:1.688rem;height:1.688rem;font-size:.875rem;font-weight:400;padding:0 0 0 1.8rem;border-radius:25px;background-position:1.2rem center;background-size:.875rem}.topcoat-search-input--large:disabled{color:#fff}.topcoat-search-input--large:disabled::-webkit-input-placeholder{color:#fff}.topcoat-search-input--large:disabled::-moz-placeholder{color:#fff}.topcoat-search-input--large:disabled:-ms-input-placeholder{color:#fff}.switch{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.switch__input{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.switch__toggle{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch__toggle:before,.switch__toggle:after{content:'';position:absolute;z-index:-1;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.switch--disabled{opacity:.3;cursor:default;pointer-events:none}.switch,.topcoat-switch{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.switch__input,.topcoat-switch__input{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.switch__toggle,.topcoat-switch__toggle{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch__toggle:before,.switch__toggle:after,.topcoat-switch__toggle:before,.topcoat-switch__toggle:after{content:'';position:absolute;z-index:-1;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.switch--disabled,.topcoat-switch__input:disabled+.topcoat-switch__toggle{opacity:.3;cursor:default;pointer-events:none}.topcoat-switch{font-size:12px;padding:0 .563rem;border-radius:4px;border:1px solid #333434;overflow:hidden;width:3.5rem}.topcoat-switch__toggle:before,.topcoat-switch__toggle:after{top:-1px;width:2.6rem}.topcoat-switch__toggle:before{content:'ON';color:#288edf;background-color:#3f4041;right:.8rem;padding-left:.75rem}.topcoat-switch__toggle{line-height:1.313rem;height:1.313rem;width:1rem;border-radius:4px;color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);background-color:#595b5b;border:1px solid #333434;margin-left:-.6rem;margin-bottom:-1px;margin-top:-1px;box-shadow:inset 0 1px #737373;-webkit-transition:margin-left .05s ease-in-out;transition:margin-left .05s ease-in-out}.topcoat-switch__toggle:after{content:'OFF';background-color:#3f4041;left:.8rem;padding-left:.6rem}.topcoat-switch__input:checked+.topcoat-switch__toggle{margin-left:1.85rem}.topcoat-switch__input:active+.topcoat-switch__toggle{border:1px solid #333434;box-shadow:inset 0 1px #737373}.topcoat-switch__input:focus+.topcoat-switch__toggle{border:1px solid #0036ff;box-shadow:0 0 0 2px #6fb5f1}.topcoat-switch__input:disabled+.topcoat-switch__toggle:after,.topcoat-switch__input:disabled+.topcoat-switch__toggle:before{background:transparent}.button,.topcoat-tab-bar__button{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.button--disabled,.topcoat-tab-bar__button:disabled{opacity:.3;cursor:default;pointer-events:none}.button-bar,.topcoat-tab-bar{display:table;table-layout:fixed;white-space:nowrap;margin:0;padding:0}.button-bar__item,.topcoat-tab-bar__item{display:table-cell;width:auto;border-radius:0}.button-bar__item>input,.topcoat-tab-bar__item>input{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.button-bar__button{border-radius:inherit}.button-bar__item:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-tab-bar__button{padding:0 .563rem;height:1.313rem;line-height:1.313rem;letter-spacing:0;color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);vertical-align:top;background-color:#595b5b;box-shadow:inset 0 1px #737373;border-top:1px solid #333434}.topcoat-tab-bar__button:active,.topcoat-tab-bar__button--large:active,:checked+.topcoat-tab-bar__button{color:#288edf;background-color:#3f4041;box-shadow:inset 0 0 1px rgba(0,0,0,.05)}.topcoat-tab-bar__button:focus,.topcoat-tab-bar__button--large:focus{z-index:1;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1;outline:0}.input,.topcoat-text-input,.topcoat-text-input--large{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;vertical-align:top;outline:0}.input:disabled,.topcoat-text-input:disabled,.topcoat-text-input--large:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-text-input,.topcoat-text-input--large{line-height:1.313rem;font-size:12px;letter-spacing:0;padding:0 .563rem;border:1px solid #333434;border-radius:4px;background-color:#454646;box-shadow:inset 0 1px rgba(0,0,0,.05);color:#c6c8c8;vertical-align:top}.topcoat-text-input:focus,.topcoat-text-input--large:focus{background-color:#595b5b;color:#fff;border:1px solid #0036ff;box-shadow:0 0 0 2px #6fb5f1}.topcoat-text-input:disabled::-webkit-input-placeholder{color:#fff}.topcoat-text-input:disabled::-moz-placeholder{color:#fff}.topcoat-text-input:disabled:-ms-input-placeholder{color:#fff}.topcoat-text-input:invalid{border:1px solid #ec514e}.topcoat-text-input--large{line-height:1.688rem;font-size:.875rem}.topcoat-text-input--large:disabled{color:#fff}.topcoat-text-input--large:disabled::-webkit-input-placeholder{color:#fff}.topcoat-text-input--large:disabled::-moz-placeholder{color:#fff}.topcoat-text-input--large:disabled:-ms-input-placeholder{color:#fff}.topcoat-text-input--large:invalid{border:1px solid #ec514e}.textarea{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;vertical-align:top;resize:none;outline:0}.textarea:disabled{opacity:.3;cursor:default;pointer-events:none}.textarea,.topcoat-textarea,.topcoat-textarea--large{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;vertical-align:top;resize:none;outline:0}.textarea:disabled,.topcoat-textarea:disabled,.topcoat-textarea--large:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-textarea,.topcoat-textarea--large{padding:1rem;font-size:1rem;font-weight:400;border-radius:4px;line-height:1.313rem;border:1px solid #333434;background-color:#454646;box-shadow:inset 0 1px rgba(0,0,0,.05);color:#c6c8c8;letter-spacing:0}.topcoat-textarea:focus,.topcoat-textarea--large:focus{background-color:#595b5b;color:#fff;border:1px solid #0036ff;box-shadow:0 0 0 2px #6fb5f1}.topcoat-textarea:disabled::-webkit-input-placeholder{color:#fff}.topcoat-textarea:disabled::-moz-placeholder{color:#fff}.topcoat-textarea:disabled:-ms-input-placeholder{color:#fff}.topcoat-textarea--large{font-size:1.3rem;line-height:1.688rem}.topcoat-textarea--large:disabled{color:#fff}.topcoat-textarea--large:disabled::-webkit-input-placeholder{color:#fff}.topcoat-textarea--large:disabled::-moz-placeholder{color:#fff}.topcoat-textarea--large:disabled:-ms-input-placeholder{color:#fff}@font-face{font-family:"Source Sans";src:url(../font/SourceSansPro-Regular.otf)}@font-face{font-family:"Source Sans";src:url(../font/SourceSansPro-Light.otf);font-weight:200}@font-face{font-family:"Source Sans";src:url(../font/SourceSansPro-Semibold.otf);font-weight:600}body{margin:0;padding:0;background:#4b4d4e;color:#000;font:16px "Source Sans",helvetica,arial,sans-serif;font-weight:400}:focus{outline-color:transparent;outline-style:none}.topcoat-icon--menu-stack{background:url(../img/hamburger_light.svg) no-repeat;background-size:cover}.quarter{width:25%}.half{width:50%}.three-quarters{width:75%}.third{width:33.333%}.two-thirds{width:66.666%}.full{width:100%}.left{text-align:left}.center{text-align:center}.right{text-align:right}.reset-ui{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;position:relative;display:inline-block;vertical-align:top;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden} \ No newline at end of file diff --git a/openpype/hosts/aftereffects/api/extension/icons/iconDarkNormal.png b/openpype/hosts/aftereffects/api/extension/icons/iconDarkNormal.png new file mode 100644 index 0000000000000000000000000000000000000000..b8652a85b842b12d45e495c1d496590da0e26f01 GIT binary patch literal 18659 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 literal 0 HcmV?d00001 diff --git a/openpype/hosts/aftereffects/api/extension/icons/iconDarkRollover.png b/openpype/hosts/aftereffects/api/extension/icons/iconDarkRollover.png new file mode 100644 index 0000000000000000000000000000000000000000..49edd7ca278ed7d0047effd37242f2bed1e9be27 GIT binary patch literal 18663 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 literal 0 HcmV?d00001 diff --git a/openpype/hosts/aftereffects/api/extension/icons/iconDisabled.png b/openpype/hosts/aftereffects/api/extension/icons/iconDisabled.png new file mode 100644 index 0000000000000000000000000000000000000000..49edd7ca278ed7d0047effd37242f2bed1e9be27 GIT binary patch literal 18663 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 literal 0 HcmV?d00001 diff --git a/openpype/hosts/aftereffects/api/extension/icons/iconNormal.png b/openpype/hosts/aftereffects/api/extension/icons/iconNormal.png new file mode 100644 index 0000000000000000000000000000000000000000..199326f2eac3fee033a163b7e3fe395057746c4c GIT binary patch literal 18225 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 literal 0 HcmV?d00001 diff --git a/openpype/hosts/aftereffects/api/extension/icons/iconRollover.png b/openpype/hosts/aftereffects/api/extension/icons/iconRollover.png new file mode 100644 index 0000000000000000000000000000000000000000..ff62645798592fa733626e43741031a57d34c61a GIT binary patch literal 18664 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 literal 0 HcmV?d00001 diff --git a/openpype/hosts/aftereffects/api/extension/index.html b/openpype/hosts/aftereffects/api/extension/index.html new file mode 100644 index 0000000000..9e39bf1acc --- /dev/null +++ b/openpype/hosts/aftereffects/api/extension/index.html @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/openpype/hosts/aftereffects/api/extension/js/libs/CSInterface.js b/openpype/hosts/aftereffects/api/extension/js/libs/CSInterface.js new file mode 100644 index 0000000000..4239391efd --- /dev/null +++ b/openpype/hosts/aftereffects/api/extension/js/libs/CSInterface.js @@ -0,0 +1,1193 @@ +/************************************************************************************************** +* +* ADOBE SYSTEMS INCORPORATED +* Copyright 2013 Adobe Systems Incorporated +* All Rights Reserved. +* +* NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the +* terms of the Adobe license agreement accompanying it. If you have received this file from a +* source other than Adobe, then your use, modification, or distribution of it requires the prior +* written permission of Adobe. +* +**************************************************************************************************/ + +/** CSInterface - v8.0.0 */ + +/** + * Stores constants for the window types supported by the CSXS infrastructure. + */ +function CSXSWindowType() +{ +} + +/** Constant for the CSXS window type Panel. */ +CSXSWindowType._PANEL = "Panel"; + +/** Constant for the CSXS window type Modeless. */ +CSXSWindowType._MODELESS = "Modeless"; + +/** Constant for the CSXS window type ModalDialog. */ +CSXSWindowType._MODAL_DIALOG = "ModalDialog"; + +/** EvalScript error message */ +EvalScript_ErrMessage = "EvalScript error."; + +/** + * @class Version + * Defines a version number with major, minor, micro, and special + * components. The major, minor and micro values are numeric; the special + * value can be any string. + * + * @param major The major version component, a positive integer up to nine digits long. + * @param minor The minor version component, a positive integer up to nine digits long. + * @param micro The micro version component, a positive integer up to nine digits long. + * @param special The special version component, an arbitrary string. + * + * @return A new \c Version object. + */ +function Version(major, minor, micro, special) +{ + this.major = major; + this.minor = minor; + this.micro = micro; + this.special = special; +} + +/** + * The maximum value allowed for a numeric version component. + * This reflects the maximum value allowed in PlugPlug and the manifest schema. + */ +Version.MAX_NUM = 999999999; + +/** + * @class VersionBound + * Defines a boundary for a version range, which associates a \c Version object + * with a flag for whether it is an inclusive or exclusive boundary. + * + * @param version The \c #Version object. + * @param inclusive True if this boundary is inclusive, false if it is exclusive. + * + * @return A new \c VersionBound object. + */ +function VersionBound(version, inclusive) +{ + this.version = version; + this.inclusive = inclusive; +} + +/** + * @class VersionRange + * Defines a range of versions using a lower boundary and optional upper boundary. + * + * @param lowerBound The \c #VersionBound object. + * @param upperBound The \c #VersionBound object, or null for a range with no upper boundary. + * + * @return A new \c VersionRange object. + */ +function VersionRange(lowerBound, upperBound) +{ + this.lowerBound = lowerBound; + this.upperBound = upperBound; +} + +/** + * @class Runtime + * Represents a runtime related to the CEP infrastructure. + * Extensions can declare dependencies on particular + * CEP runtime versions in the extension manifest. + * + * @param name The runtime name. + * @param version A \c #VersionRange object that defines a range of valid versions. + * + * @return A new \c Runtime object. + */ +function Runtime(name, versionRange) +{ + this.name = name; + this.versionRange = versionRange; +} + +/** +* @class Extension +* Encapsulates a CEP-based extension to an Adobe application. +* +* @param id The unique identifier of this extension. +* @param name The localizable display name of this extension. +* @param mainPath The path of the "index.html" file. +* @param basePath The base path of this extension. +* @param windowType The window type of the main window of this extension. + Valid values are defined by \c #CSXSWindowType. +* @param width The default width in pixels of the main window of this extension. +* @param height The default height in pixels of the main window of this extension. +* @param minWidth The minimum width in pixels of the main window of this extension. +* @param minHeight The minimum height in pixels of the main window of this extension. +* @param maxWidth The maximum width in pixels of the main window of this extension. +* @param maxHeight The maximum height in pixels of the main window of this extension. +* @param defaultExtensionDataXml The extension data contained in the default \c ExtensionDispatchInfo section of the extension manifest. +* @param specialExtensionDataXml The extension data contained in the application-specific \c ExtensionDispatchInfo section of the extension manifest. +* @param requiredRuntimeList An array of \c Runtime objects for runtimes required by this extension. +* @param isAutoVisible True if this extension is visible on loading. +* @param isPluginExtension True if this extension has been deployed in the Plugins folder of the host application. +* +* @return A new \c Extension object. +*/ +function Extension(id, name, mainPath, basePath, windowType, width, height, minWidth, minHeight, maxWidth, maxHeight, + defaultExtensionDataXml, specialExtensionDataXml, requiredRuntimeList, isAutoVisible, isPluginExtension) +{ + this.id = id; + this.name = name; + this.mainPath = mainPath; + this.basePath = basePath; + this.windowType = windowType; + this.width = width; + this.height = height; + this.minWidth = minWidth; + this.minHeight = minHeight; + this.maxWidth = maxWidth; + this.maxHeight = maxHeight; + this.defaultExtensionDataXml = defaultExtensionDataXml; + this.specialExtensionDataXml = specialExtensionDataXml; + this.requiredRuntimeList = requiredRuntimeList; + this.isAutoVisible = isAutoVisible; + this.isPluginExtension = isPluginExtension; +} + +/** + * @class CSEvent + * A standard JavaScript event, the base class for CEP events. + * + * @param type The name of the event type. + * @param scope The scope of event, can be "GLOBAL" or "APPLICATION". + * @param appId The unique identifier of the application that generated the event. + * @param extensionId The unique identifier of the extension that generated the event. + * + * @return A new \c CSEvent object + */ +function CSEvent(type, scope, appId, extensionId) +{ + this.type = type; + this.scope = scope; + this.appId = appId; + this.extensionId = extensionId; +} + +/** Event-specific data. */ +CSEvent.prototype.data = ""; + +/** + * @class SystemPath + * Stores operating-system-specific location constants for use in the + * \c #CSInterface.getSystemPath() method. + * @return A new \c SystemPath object. + */ +function SystemPath() +{ +} + +/** The path to user data. */ +SystemPath.USER_DATA = "userData"; + +/** The path to common files for Adobe applications. */ +SystemPath.COMMON_FILES = "commonFiles"; + +/** The path to the user's default document folder. */ +SystemPath.MY_DOCUMENTS = "myDocuments"; + +/** @deprecated. Use \c #SystemPath.Extension. */ +SystemPath.APPLICATION = "application"; + +/** The path to current extension. */ +SystemPath.EXTENSION = "extension"; + +/** The path to hosting application's executable. */ +SystemPath.HOST_APPLICATION = "hostApplication"; + +/** + * @class ColorType + * Stores color-type constants. + */ +function ColorType() +{ +} + +/** RGB color type. */ +ColorType.RGB = "rgb"; + +/** Gradient color type. */ +ColorType.GRADIENT = "gradient"; + +/** Null color type. */ +ColorType.NONE = "none"; + +/** + * @class RGBColor + * Stores an RGB color with red, green, blue, and alpha values. + * All values are in the range [0.0 to 255.0]. Invalid numeric values are + * converted to numbers within this range. + * + * @param red The red value, in the range [0.0 to 255.0]. + * @param green The green value, in the range [0.0 to 255.0]. + * @param blue The blue value, in the range [0.0 to 255.0]. + * @param alpha The alpha (transparency) value, in the range [0.0 to 255.0]. + * The default, 255.0, means that the color is fully opaque. + * + * @return A new RGBColor object. + */ +function RGBColor(red, green, blue, alpha) +{ + this.red = red; + this.green = green; + this.blue = blue; + this.alpha = alpha; +} + +/** + * @class Direction + * A point value in which the y component is 0 and the x component + * is positive or negative for a right or left direction, + * or the x component is 0 and the y component is positive or negative for + * an up or down direction. + * + * @param x The horizontal component of the point. + * @param y The vertical component of the point. + * + * @return A new \c Direction object. + */ +function Direction(x, y) +{ + this.x = x; + this.y = y; +} + +/** + * @class GradientStop + * Stores gradient stop information. + * + * @param offset The offset of the gradient stop, in the range [0.0 to 1.0]. + * @param rgbColor The color of the gradient at this point, an \c #RGBColor object. + * + * @return GradientStop object. + */ +function GradientStop(offset, rgbColor) +{ + this.offset = offset; + this.rgbColor = rgbColor; +} + +/** + * @class GradientColor + * Stores gradient color information. + * + * @param type The gradient type, must be "linear". + * @param direction A \c #Direction object for the direction of the gradient + (up, down, right, or left). + * @param numStops The number of stops in the gradient. + * @param gradientStopList An array of \c #GradientStop objects. + * + * @return A new \c GradientColor object. + */ +function GradientColor(type, direction, numStops, arrGradientStop) +{ + this.type = type; + this.direction = direction; + this.numStops = numStops; + this.arrGradientStop = arrGradientStop; +} + +/** + * @class UIColor + * Stores color information, including the type, anti-alias level, and specific color + * values in a color object of an appropriate type. + * + * @param type The color type, 1 for "rgb" and 2 for "gradient". + The supplied color object must correspond to this type. + * @param antialiasLevel The anti-alias level constant. + * @param color A \c #RGBColor or \c #GradientColor object containing specific color information. + * + * @return A new \c UIColor object. + */ +function UIColor(type, antialiasLevel, color) +{ + this.type = type; + this.antialiasLevel = antialiasLevel; + this.color = color; +} + +/** + * @class AppSkinInfo + * Stores window-skin properties, such as color and font. All color parameter values are \c #UIColor objects except that systemHighlightColor is \c #RGBColor object. + * + * @param baseFontFamily The base font family of the application. + * @param baseFontSize The base font size of the application. + * @param appBarBackgroundColor The application bar background color. + * @param panelBackgroundColor The background color of the extension panel. + * @param appBarBackgroundColorSRGB The application bar background color, as sRGB. + * @param panelBackgroundColorSRGB The background color of the extension panel, as sRGB. + * @param systemHighlightColor The highlight color of the extension panel, if provided by the host application. Otherwise, the operating-system highlight color. + * + * @return AppSkinInfo object. + */ +function AppSkinInfo(baseFontFamily, baseFontSize, appBarBackgroundColor, panelBackgroundColor, appBarBackgroundColorSRGB, panelBackgroundColorSRGB, systemHighlightColor) +{ + this.baseFontFamily = baseFontFamily; + this.baseFontSize = baseFontSize; + this.appBarBackgroundColor = appBarBackgroundColor; + this.panelBackgroundColor = panelBackgroundColor; + this.appBarBackgroundColorSRGB = appBarBackgroundColorSRGB; + this.panelBackgroundColorSRGB = panelBackgroundColorSRGB; + this.systemHighlightColor = systemHighlightColor; +} + +/** + * @class HostEnvironment + * Stores information about the environment in which the extension is loaded. + * + * @param appName The application's name. + * @param appVersion The application's version. + * @param appLocale The application's current license locale. + * @param appUILocale The application's current UI locale. + * @param appId The application's unique identifier. + * @param isAppOnline True if the application is currently online. + * @param appSkinInfo An \c #AppSkinInfo object containing the application's default color and font styles. + * + * @return A new \c HostEnvironment object. + */ +function HostEnvironment(appName, appVersion, appLocale, appUILocale, appId, isAppOnline, appSkinInfo) +{ + this.appName = appName; + this.appVersion = appVersion; + this.appLocale = appLocale; + this.appUILocale = appUILocale; + this.appId = appId; + this.isAppOnline = isAppOnline; + this.appSkinInfo = appSkinInfo; +} + +/** + * @class HostCapabilities + * Stores information about the host capabilities. + * + * @param EXTENDED_PANEL_MENU True if the application supports panel menu. + * @param EXTENDED_PANEL_ICONS True if the application supports panel icon. + * @param DELEGATE_APE_ENGINE True if the application supports delegated APE engine. + * @param SUPPORT_HTML_EXTENSIONS True if the application supports HTML extensions. + * @param DISABLE_FLASH_EXTENSIONS True if the application disables FLASH extensions. + * + * @return A new \c HostCapabilities object. + */ +function HostCapabilities(EXTENDED_PANEL_MENU, EXTENDED_PANEL_ICONS, DELEGATE_APE_ENGINE, SUPPORT_HTML_EXTENSIONS, DISABLE_FLASH_EXTENSIONS) +{ + this.EXTENDED_PANEL_MENU = EXTENDED_PANEL_MENU; + this.EXTENDED_PANEL_ICONS = EXTENDED_PANEL_ICONS; + this.DELEGATE_APE_ENGINE = DELEGATE_APE_ENGINE; + this.SUPPORT_HTML_EXTENSIONS = SUPPORT_HTML_EXTENSIONS; + this.DISABLE_FLASH_EXTENSIONS = DISABLE_FLASH_EXTENSIONS; // Since 5.0.0 +} + +/** + * @class ApiVersion + * Stores current api version. + * + * Since 4.2.0 + * + * @param major The major version + * @param minor The minor version. + * @param micro The micro version. + * + * @return ApiVersion object. + */ +function ApiVersion(major, minor, micro) +{ + this.major = major; + this.minor = minor; + this.micro = micro; +} + +/** + * @class MenuItemStatus + * Stores flyout menu item status + * + * Since 5.2.0 + * + * @param menuItemLabel The menu item label. + * @param enabled True if user wants to enable the menu item. + * @param checked True if user wants to check the menu item. + * + * @return MenuItemStatus object. + */ +function MenuItemStatus(menuItemLabel, enabled, checked) +{ + this.menuItemLabel = menuItemLabel; + this.enabled = enabled; + this.checked = checked; +} + +/** + * @class ContextMenuItemStatus + * Stores the status of the context menu item. + * + * Since 5.2.0 + * + * @param menuItemID The menu item id. + * @param enabled True if user wants to enable the menu item. + * @param checked True if user wants to check the menu item. + * + * @return MenuItemStatus object. + */ +function ContextMenuItemStatus(menuItemID, enabled, checked) +{ + this.menuItemID = menuItemID; + this.enabled = enabled; + this.checked = checked; +} +//------------------------------ CSInterface ---------------------------------- + +/** + * @class CSInterface + * This is the entry point to the CEP extensibility infrastructure. + * Instantiate this object and use it to: + *
    + *
  • Access information about the host application in which an extension is running
  • + *
  • Launch an extension
  • + *
  • Register interest in event notifications, and dispatch events
  • + *
+ * + * @return A new \c CSInterface object + */ +function CSInterface() +{ +} + +/** + * User can add this event listener to handle native application theme color changes. + * Callback function gives extensions ability to fine-tune their theme color after the + * global theme color has been changed. + * The callback function should be like below: + * + * @example + * // event is a CSEvent object, but user can ignore it. + * function OnAppThemeColorChanged(event) + * { + * // Should get a latest HostEnvironment object from application. + * var skinInfo = JSON.parse(window.__adobe_cep__.getHostEnvironment()).appSkinInfo; + * // Gets the style information such as color info from the skinInfo, + * // and redraw all UI controls of your extension according to the style info. + * } + */ +CSInterface.THEME_COLOR_CHANGED_EVENT = "com.adobe.csxs.events.ThemeColorChanged"; + +/** The host environment data object. */ +CSInterface.prototype.hostEnvironment = window.__adobe_cep__ ? JSON.parse(window.__adobe_cep__.getHostEnvironment()) : null; + +/** Retrieves information about the host environment in which the + * extension is currently running. + * + * @return A \c #HostEnvironment object. + */ +CSInterface.prototype.getHostEnvironment = function() +{ + this.hostEnvironment = JSON.parse(window.__adobe_cep__.getHostEnvironment()); + return this.hostEnvironment; +}; + +/** Closes this extension. */ +CSInterface.prototype.closeExtension = function() +{ + window.__adobe_cep__.closeExtension(); +}; + +/** + * Retrieves a path for which a constant is defined in the system. + * + * @param pathType The path-type constant defined in \c #SystemPath , + * + * @return The platform-specific system path string. + */ +CSInterface.prototype.getSystemPath = function(pathType) +{ + var path = decodeURI(window.__adobe_cep__.getSystemPath(pathType)); + var OSVersion = this.getOSInformation(); + if (OSVersion.indexOf("Windows") >= 0) + { + path = path.replace("file:///", ""); + } + else if (OSVersion.indexOf("Mac") >= 0) + { + path = path.replace("file://", ""); + } + return path; +}; + +/** + * Evaluates a JavaScript script, which can use the JavaScript DOM + * of the host application. + * + * @param script The JavaScript script. + * @param callback Optional. A callback function that receives the result of execution. + * If execution fails, the callback function receives the error message \c EvalScript_ErrMessage. + */ +CSInterface.prototype.evalScript = function(script, callback) +{ + if(callback === null || callback === undefined) + { + callback = function(result){}; + } + window.__adobe_cep__.evalScript(script, callback); +}; + +/** + * Retrieves the unique identifier of the application. + * in which the extension is currently running. + * + * @return The unique ID string. + */ +CSInterface.prototype.getApplicationID = function() +{ + var appId = this.hostEnvironment.appId; + return appId; +}; + +/** + * Retrieves host capability information for the application + * in which the extension is currently running. + * + * @return A \c #HostCapabilities object. + */ +CSInterface.prototype.getHostCapabilities = function() +{ + var hostCapabilities = JSON.parse(window.__adobe_cep__.getHostCapabilities() ); + return hostCapabilities; +}; + +/** + * Triggers a CEP event programmatically. Yoy can use it to dispatch + * an event of a predefined type, or of a type you have defined. + * + * @param event A \c CSEvent object. + */ +CSInterface.prototype.dispatchEvent = function(event) +{ + if (typeof event.data == "object") + { + event.data = JSON.stringify(event.data); + } + + window.__adobe_cep__.dispatchEvent(event); +}; + +/** + * Registers an interest in a CEP event of a particular type, and + * assigns an event handler. + * The event infrastructure notifies your extension when events of this type occur, + * passing the event object to the registered handler function. + * + * @param type The name of the event type of interest. + * @param listener The JavaScript handler function or method. + * @param obj Optional, the object containing the handler method, if any. + * Default is null. + */ +CSInterface.prototype.addEventListener = function(type, listener, obj) +{ + window.__adobe_cep__.addEventListener(type, listener, obj); +}; + +/** + * Removes a registered event listener. + * + * @param type The name of the event type of interest. + * @param listener The JavaScript handler function or method that was registered. + * @param obj Optional, the object containing the handler method, if any. + * Default is null. + */ +CSInterface.prototype.removeEventListener = function(type, listener, obj) +{ + window.__adobe_cep__.removeEventListener(type, listener, obj); +}; + +/** + * Loads and launches another extension, or activates the extension if it is already loaded. + * + * @param extensionId The extension's unique identifier. + * @param startupParams Not currently used, pass "". + * + * @example + * To launch the extension "help" with ID "HLP" from this extension, call: + * requestOpenExtension("HLP", ""); + * + */ +CSInterface.prototype.requestOpenExtension = function(extensionId, params) +{ + window.__adobe_cep__.requestOpenExtension(extensionId, params); +}; + +/** + * Retrieves the list of extensions currently loaded in the current host application. + * The extension list is initialized once, and remains the same during the lifetime + * of the CEP session. + * + * @param extensionIds Optional, an array of unique identifiers for extensions of interest. + * If omitted, retrieves data for all extensions. + * + * @return Zero or more \c #Extension objects. + */ +CSInterface.prototype.getExtensions = function(extensionIds) +{ + var extensionIdsStr = JSON.stringify(extensionIds); + var extensionsStr = window.__adobe_cep__.getExtensions(extensionIdsStr); + + var extensions = JSON.parse(extensionsStr); + return extensions; +}; + +/** + * Retrieves network-related preferences. + * + * @return A JavaScript object containing network preferences. + */ +CSInterface.prototype.getNetworkPreferences = function() +{ + var result = window.__adobe_cep__.getNetworkPreferences(); + var networkPre = JSON.parse(result); + + return networkPre; +}; + +/** + * Initializes the resource bundle for this extension with property values + * for the current application and locale. + * To support multiple locales, you must define a property file for each locale, + * containing keyed display-string values for that locale. + * See localization documentation for Extension Builder and related products. + * + * Keys can be in the + * form key.value="localized string", for use in HTML text elements. + * For example, in this input element, the localized \c key.value string is displayed + * instead of the empty \c value string: + * + * + * + * @return An object containing the resource bundle information. + */ +CSInterface.prototype.initResourceBundle = function() +{ + var resourceBundle = JSON.parse(window.__adobe_cep__.initResourceBundle()); + var resElms = document.querySelectorAll('[data-locale]'); + for (var n = 0; n < resElms.length; n++) + { + var resEl = resElms[n]; + // Get the resource key from the element. + var resKey = resEl.getAttribute('data-locale'); + if (resKey) + { + // Get all the resources that start with the key. + for (var key in resourceBundle) + { + if (key.indexOf(resKey) === 0) + { + var resValue = resourceBundle[key]; + if (key.length == resKey.length) + { + resEl.innerHTML = resValue; + } + else if ('.' == key.charAt(resKey.length)) + { + var attrKey = key.substring(resKey.length + 1); + resEl[attrKey] = resValue; + } + } + } + } + } + return resourceBundle; +}; + +/** + * Writes installation information to a file. + * + * @return The file path. + */ +CSInterface.prototype.dumpInstallationInfo = function() +{ + return window.__adobe_cep__.dumpInstallationInfo(); +}; + +/** + * Retrieves version information for the current Operating System, + * See http://www.useragentstring.com/pages/Chrome/ for Chrome \c navigator.userAgent values. + * + * @return A string containing the OS version, or "unknown Operation System". + * If user customizes the User Agent by setting CEF command parameter "--user-agent", only + * "Mac OS X" or "Windows" will be returned. + */ +CSInterface.prototype.getOSInformation = function() +{ + var userAgent = navigator.userAgent; + + if ((navigator.platform == "Win32") || (navigator.platform == "Windows")) + { + var winVersion = "Windows"; + var winBit = ""; + if (userAgent.indexOf("Windows") > -1) + { + if (userAgent.indexOf("Windows NT 5.0") > -1) + { + winVersion = "Windows 2000"; + } + else if (userAgent.indexOf("Windows NT 5.1") > -1) + { + winVersion = "Windows XP"; + } + else if (userAgent.indexOf("Windows NT 5.2") > -1) + { + winVersion = "Windows Server 2003"; + } + else if (userAgent.indexOf("Windows NT 6.0") > -1) + { + winVersion = "Windows Vista"; + } + else if (userAgent.indexOf("Windows NT 6.1") > -1) + { + winVersion = "Windows 7"; + } + else if (userAgent.indexOf("Windows NT 6.2") > -1) + { + winVersion = "Windows 8"; + } + else if (userAgent.indexOf("Windows NT 6.3") > -1) + { + winVersion = "Windows 8.1"; + } + else if (userAgent.indexOf("Windows NT 10") > -1) + { + winVersion = "Windows 10"; + } + + if (userAgent.indexOf("WOW64") > -1 || userAgent.indexOf("Win64") > -1) + { + winBit = " 64-bit"; + } + else + { + winBit = " 32-bit"; + } + } + + return winVersion + winBit; + } + else if ((navigator.platform == "MacIntel") || (navigator.platform == "Macintosh")) + { + var result = "Mac OS X"; + + if (userAgent.indexOf("Mac OS X") > -1) + { + result = userAgent.substring(userAgent.indexOf("Mac OS X"), userAgent.indexOf(")")); + result = result.replace(/_/g, "."); + } + + return result; + } + + return "Unknown Operation System"; +}; + +/** + * Opens a page in the default system browser. + * + * Since 4.2.0 + * + * @param url The URL of the page/file to open, or the email address. + * Must use HTTP/HTTPS/file/mailto protocol. For example: + * "http://www.adobe.com" + * "https://github.com" + * "file:///C:/log.txt" + * "mailto:test@adobe.com" + * + * @return One of these error codes:\n + *
    \n + *
  • NO_ERROR - 0
  • \n + *
  • ERR_UNKNOWN - 1
  • \n + *
  • ERR_INVALID_PARAMS - 2
  • \n + *
  • ERR_INVALID_URL - 201
  • \n + *
\n + */ +CSInterface.prototype.openURLInDefaultBrowser = function(url) +{ + return cep.util.openURLInDefaultBrowser(url); +}; + +/** + * Retrieves extension ID. + * + * Since 4.2.0 + * + * @return extension ID. + */ +CSInterface.prototype.getExtensionID = function() +{ + return window.__adobe_cep__.getExtensionId(); +}; + +/** + * Retrieves the scale factor of screen. + * On Windows platform, the value of scale factor might be different from operating system's scale factor, + * since host application may use its self-defined scale factor. + * + * Since 4.2.0 + * + * @return One of the following float number. + *
    \n + *
  • -1.0 when error occurs
  • \n + *
  • 1.0 means normal screen
  • \n + *
  • >1.0 means HiDPI screen
  • \n + *
\n + */ +CSInterface.prototype.getScaleFactor = function() +{ + return window.__adobe_cep__.getScaleFactor(); +}; + +/** + * Set a handler to detect any changes of scale factor. This only works on Mac. + * + * Since 4.2.0 + * + * @param handler The function to be called when scale factor is changed. + * + */ +CSInterface.prototype.setScaleFactorChangedHandler = function(handler) +{ + window.__adobe_cep__.setScaleFactorChangedHandler(handler); +}; + +/** + * Retrieves current API version. + * + * Since 4.2.0 + * + * @return ApiVersion object. + * + */ +CSInterface.prototype.getCurrentApiVersion = function() +{ + var apiVersion = JSON.parse(window.__adobe_cep__.getCurrentApiVersion()); + return apiVersion; +}; + +/** + * Set panel flyout menu by an XML. + * + * Since 5.2.0 + * + * Register a callback function for "com.adobe.csxs.events.flyoutMenuClicked" to get notified when a + * menu item is clicked. + * The "data" attribute of event is an object which contains "menuId" and "menuName" attributes. + * + * Register callback functions for "com.adobe.csxs.events.flyoutMenuOpened" and "com.adobe.csxs.events.flyoutMenuClosed" + * respectively to get notified when flyout menu is opened or closed. + * + * @param menu A XML string which describes menu structure. + * An example menu XML: + * + * + * + * + * + * + * + * + * + * + * + * + */ +CSInterface.prototype.setPanelFlyoutMenu = function(menu) +{ + if ("string" != typeof menu) + { + return; + } + + window.__adobe_cep__.invokeSync("setPanelFlyoutMenu", menu); +}; + +/** + * Updates a menu item in the extension window's flyout menu, by setting the enabled + * and selection status. + * + * Since 5.2.0 + * + * @param menuItemLabel The menu item label. + * @param enabled True to enable the item, false to disable it (gray it out). + * @param checked True to select the item, false to deselect it. + * + * @return false when the host application does not support this functionality (HostCapabilities.EXTENDED_PANEL_MENU is false). + * Fails silently if menu label is invalid. + * + * @see HostCapabilities.EXTENDED_PANEL_MENU + */ +CSInterface.prototype.updatePanelMenuItem = function(menuItemLabel, enabled, checked) +{ + var ret = false; + if (this.getHostCapabilities().EXTENDED_PANEL_MENU) + { + var itemStatus = new MenuItemStatus(menuItemLabel, enabled, checked); + ret = window.__adobe_cep__.invokeSync("updatePanelMenuItem", JSON.stringify(itemStatus)); + } + return ret; +}; + + +/** + * Set context menu by XML string. + * + * Since 5.2.0 + * + * There are a number of conventions used to communicate what type of menu item to create and how it should be handled. + * - an item without menu ID or menu name is disabled and is not shown. + * - if the item name is "---" (three hyphens) then it is treated as a separator. The menu ID in this case will always be NULL. + * - Checkable attribute takes precedence over Checked attribute. + * - a PNG icon. For optimal display results please supply a 16 x 16px icon as larger dimensions will increase the size of the menu item. + The Chrome extension contextMenus API was taken as a reference. + https://developer.chrome.com/extensions/contextMenus + * - the items with icons and checkable items cannot coexist on the same menu level. The former take precedences over the latter. + * + * @param menu A XML string which describes menu structure. + * @param callback The callback function which is called when a menu item is clicked. The only parameter is the returned ID of clicked menu item. + * + * @description An example menu XML: + * + * + * + * + * + * + * + * + * + * + * + */ +CSInterface.prototype.setContextMenu = function(menu, callback) +{ + if ("string" != typeof menu) + { + return; + } + + window.__adobe_cep__.invokeAsync("setContextMenu", menu, callback); +}; + +/** + * Set context menu by JSON string. + * + * Since 6.0.0 + * + * There are a number of conventions used to communicate what type of menu item to create and how it should be handled. + * - an item without menu ID or menu name is disabled and is not shown. + * - if the item label is "---" (three hyphens) then it is treated as a separator. The menu ID in this case will always be NULL. + * - Checkable attribute takes precedence over Checked attribute. + * - a PNG icon. For optimal display results please supply a 16 x 16px icon as larger dimensions will increase the size of the menu item. + The Chrome extension contextMenus API was taken as a reference. + * - the items with icons and checkable items cannot coexist on the same menu level. The former take precedences over the latter. + https://developer.chrome.com/extensions/contextMenus + * + * @param menu A JSON string which describes menu structure. + * @param callback The callback function which is called when a menu item is clicked. The only parameter is the returned ID of clicked menu item. + * + * @description An example menu JSON: + * + * { + * "menu": [ + * { + * "id": "menuItemId1", + * "label": "testExample1", + * "enabled": true, + * "checkable": true, + * "checked": false, + * "icon": "./image/small_16X16.png" + * }, + * { + * "id": "menuItemId2", + * "label": "testExample2", + * "menu": [ + * { + * "id": "menuItemId2-1", + * "label": "testExample2-1", + * "menu": [ + * { + * "id": "menuItemId2-1-1", + * "label": "testExample2-1-1", + * "enabled": false, + * "checkable": true, + * "checked": true + * } + * ] + * }, + * { + * "id": "menuItemId2-2", + * "label": "testExample2-2", + * "enabled": true, + * "checkable": true, + * "checked": true + * } + * ] + * }, + * { + * "label": "---" + * }, + * { + * "id": "menuItemId3", + * "label": "testExample3", + * "enabled": false, + * "checkable": true, + * "checked": false + * } + * ] + * } + * + */ +CSInterface.prototype.setContextMenuByJSON = function(menu, callback) +{ + if ("string" != typeof menu) + { + return; + } + + window.__adobe_cep__.invokeAsync("setContextMenuByJSON", menu, callback); +}; + +/** + * Updates a context menu item by setting the enabled and selection status. + * + * Since 5.2.0 + * + * @param menuItemID The menu item ID. + * @param enabled True to enable the item, false to disable it (gray it out). + * @param checked True to select the item, false to deselect it. + */ +CSInterface.prototype.updateContextMenuItem = function(menuItemID, enabled, checked) +{ + var itemStatus = new ContextMenuItemStatus(menuItemID, enabled, checked); + ret = window.__adobe_cep__.invokeSync("updateContextMenuItem", JSON.stringify(itemStatus)); +}; + +/** + * Get the visibility status of an extension window. + * + * Since 6.0.0 + * + * @return true if the extension window is visible; false if the extension window is hidden. + */ +CSInterface.prototype.isWindowVisible = function() +{ + return window.__adobe_cep__.invokeSync("isWindowVisible", ""); +}; + +/** + * Resize extension's content to the specified dimensions. + * 1. Works with modal and modeless extensions in all Adobe products. + * 2. Extension's manifest min/max size constraints apply and take precedence. + * 3. For panel extensions + * 3.1 This works in all Adobe products except: + * * Premiere Pro + * * Prelude + * * After Effects + * 3.2 When the panel is in certain states (especially when being docked), + * it will not change to the desired dimensions even when the + * specified size satisfies min/max constraints. + * + * Since 6.0.0 + * + * @param width The new width + * @param height The new height + */ +CSInterface.prototype.resizeContent = function(width, height) +{ + window.__adobe_cep__.resizeContent(width, height); +}; + +/** + * Register the invalid certificate callback for an extension. + * This callback will be triggered when the extension tries to access the web site that contains the invalid certificate on the main frame. + * But if the extension does not call this function and tries to access the web site containing the invalid certificate, a default error page will be shown. + * + * Since 6.1.0 + * + * @param callback the callback function + */ +CSInterface.prototype.registerInvalidCertificateCallback = function(callback) +{ + return window.__adobe_cep__.registerInvalidCertificateCallback(callback); +}; + +/** + * Register an interest in some key events to prevent them from being sent to the host application. + * + * This function works with modeless extensions and panel extensions. + * Generally all the key events will be sent to the host application for these two extensions if the current focused element + * is not text input or dropdown, + * If you want to intercept some key events and want them to be handled in the extension, please call this function + * in advance to prevent them being sent to the host application. + * + * Since 6.1.0 + * + * @param keyEventsInterest A JSON string describing those key events you are interested in. A null object or + an empty string will lead to removing the interest + * + * This JSON string should be an array, each object has following keys: + * + * keyCode: [Required] represents an OS system dependent virtual key code identifying + * the unmodified value of the pressed key. + * ctrlKey: [optional] a Boolean that indicates if the control key was pressed (true) or not (false) when the event occurred. + * altKey: [optional] a Boolean that indicates if the alt key was pressed (true) or not (false) when the event occurred. + * shiftKey: [optional] a Boolean that indicates if the shift key was pressed (true) or not (false) when the event occurred. + * metaKey: [optional] (Mac Only) a Boolean that indicates if the Meta key was pressed (true) or not (false) when the event occurred. + * On Macintosh keyboards, this is the command key. To detect Windows key on Windows, please use keyCode instead. + * An example JSON string: + * + * [ + * { + * "keyCode": 48 + * }, + * { + * "keyCode": 123, + * "ctrlKey": true + * }, + * { + * "keyCode": 123, + * "ctrlKey": true, + * "metaKey": true + * } + * ] + * + */ +CSInterface.prototype.registerKeyEventsInterest = function(keyEventsInterest) +{ + return window.__adobe_cep__.registerKeyEventsInterest(keyEventsInterest); +}; + +/** + * Set the title of the extension window. + * This function works with modal and modeless extensions in all Adobe products, and panel extensions in Photoshop, InDesign, InCopy, Illustrator, Flash Pro and Dreamweaver. + * + * Since 6.1.0 + * + * @param title The window title. + */ +CSInterface.prototype.setWindowTitle = function(title) +{ + window.__adobe_cep__.invokeSync("setWindowTitle", title); +}; + +/** + * Get the title of the extension window. + * This function works with modal and modeless extensions in all Adobe products, and panel extensions in Photoshop, InDesign, InCopy, Illustrator, Flash Pro and Dreamweaver. + * + * Since 6.1.0 + * + * @return The window title. + */ +CSInterface.prototype.getWindowTitle = function() +{ + return window.__adobe_cep__.invokeSync("getWindowTitle", ""); +}; diff --git a/openpype/hosts/aftereffects/api/extension/js/libs/jquery-2.0.2.min.js b/openpype/hosts/aftereffects/api/extension/js/libs/jquery-2.0.2.min.js new file mode 100644 index 0000000000..73e5218d21 --- /dev/null +++ b/openpype/hosts/aftereffects/api/extension/js/libs/jquery-2.0.2.min.js @@ -0,0 +1,6 @@ +/*! jQuery v2.0.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery-2.0.2.min.map +*/ +(function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],p="2.0.2",f=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,x=function(e,n){return new x.fn.init(e,n,t)},b=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener("DOMContentLoaded",S,!1),e.removeEventListener("load",S,!1),x.ready()};x.fn=x.prototype={jquery:p,constructor:x,init:function(e,t,n){var r,i;if(!e)return this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:T.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),C.test(r[1])&&x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=o.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?n.ready(e):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return d.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[1]||{},a=2),"object"==typeof s||x.isFunction(s)||(s={}),u===a&&(s=this,--a);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(x.isPlainObject(r)||(i=x.isArray(r)))?(i?(i=!1,o=n&&x.isArray(n)?n:[]):o=n&&x.isPlainObject(n)?n:{},s[t]=x.extend(l,o,r)):r!==undefined&&(s[t]=r));return s},x.extend({expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=a),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){(e===!0?--x.readyWait:x.isReady)||(x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(o,[x]),x.fn.trigger&&x(o).trigger("ready").off("ready")))},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if("object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=undefined}return(!t||t.getElementsByTagName("parsererror").length)&&x.error("Invalid XML: "+e),t},noop:function(){},globalEval:function(e){var t,n=eval;e=x.trim(e),e&&(1===e.indexOf("use strict")?(t=o.createElement("script"),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(k,"ms-").replace(N,E)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=j(e);if(n){if(s){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":v.call(e)},makeArray:function(e,t){var n=t||[];return null!=e&&(j(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:g.call(t,e,n)},merge:function(e,t){var n=t.length,r=e.length,i=0;if("number"==typeof n)for(;n>i;i++)e[r++]=t[i];else while(t[i]!==undefined)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=j(e),a=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(a[a.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(a[a.length]=r);return f.apply([],a)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),x.isFunction(e)?(r=d.call(arguments,2),i=function(){return e.apply(t||this,r.concat(d.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):undefined},access:function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===x.type(n)){i=!0;for(a in n)x.access(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,x.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(x(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),x.ready.promise=function(t){return n||(n=x.Deferred(),"complete"===o.readyState?setTimeout(x.ready):(o.addEventListener("DOMContentLoaded",S,!1),e.addEventListener("load",S,!1))),n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function j(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}t=x(o),function(e,undefined){var t,n,r,i,o,s,a,u,l,c,p,f,h,d,g,m,y,v="sizzle"+-new Date,b=e.document,w=0,T=0,C=at(),k=at(),N=at(),E=!1,S=function(){return 0},j=typeof undefined,D=1<<31,A={}.hasOwnProperty,L=[],H=L.pop,q=L.push,O=L.push,F=L.slice,P=L.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;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]",W="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",$=W.replace("w","w#"),B="\\["+M+"*("+W+")"+M+"*(?:([*^$|!~]?=)"+M+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+$+")|)|)"+M+"*\\]",I=":("+W+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+B.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=RegExp("^"+M+"*,"+M+"*"),X=RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=RegExp(M+"*[+~]"),Y=RegExp("="+M+"*([^\\]'\"]*)"+M+"*\\]","g"),V=RegExp(I),G=RegExp("^"+$+"$"),J={ID:RegExp("^#("+W+")"),CLASS:RegExp("^\\.("+W+")"),TAG:RegExp("^("+W.replace("w","w*")+")"),ATTR:RegExp("^"+B),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:RegExp("^(?:"+R+")$","i"),needsContext:RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/^(?:input|select|textarea|button)$/i,et=/^h\d$/i,tt=/'|\\/g,nt=RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),rt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{O.apply(L=F.call(b.childNodes),b.childNodes),L[b.childNodes.length].nodeType}catch(it){O={apply:L.length?function(e,t){q.apply(e,F.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function ot(e,t,r,i){var o,s,a,u,l,f,g,m,x,w;if((t?t.ownerDocument||t:b)!==p&&c(t),t=t||p,r=r||[],!e||"string"!=typeof e)return r;if(1!==(u=t.nodeType)&&9!==u)return[];if(h&&!i){if(o=K.exec(e))if(a=o[1]){if(9===u){if(s=t.getElementById(a),!s||!s.parentNode)return r;if(s.id===a)return r.push(s),r}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(a))&&y(t,s)&&s.id===a)return r.push(s),r}else{if(o[2])return O.apply(r,t.getElementsByTagName(e)),r;if((a=o[3])&&n.getElementsByClassName&&t.getElementsByClassName)return O.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&(!d||!d.test(e))){if(m=g=v,x=t,w=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){f=vt(e),(g=t.getAttribute("id"))?m=g.replace(tt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",l=f.length;while(l--)f[l]=m+xt(f[l]);x=U.test(e)&&t.parentNode||t,w=f.join(",")}if(w)try{return O.apply(r,x.querySelectorAll(w)),r}catch(T){}finally{g||t.removeAttribute("id")}}}return St(e.replace(z,"$1"),t,r,i)}function st(e){return Q.test(e+"")}function at(){var e=[];function t(n,r){return e.push(n+=" ")>i.cacheLength&&delete t[e.shift()],t[n]=r}return t}function ut(e){return e[v]=!0,e}function lt(e){var t=p.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t,n){e=e.split("|");var r,o=e.length,s=n?null:t;while(o--)(r=i.attrHandle[e[o]])&&r!==t||(i.attrHandle[e[o]]=s)}function pt(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:e[t]===!0?t.toLowerCase():null}function ft(e,t){return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}function ht(e){return"input"===e.nodeName.toLowerCase()?e.defaultValue:undefined}function dt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function gt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function mt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function yt(e){return ut(function(t){return t=+t,ut(function(n,r){var i,o=e([],n.length,t),s=o.length;while(s--)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}s=ot.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},n=ot.support={},c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:b,r=t.parentWindow;return t!==p&&9===t.nodeType&&t.documentElement?(p=t,f=t.documentElement,h=!s(t),r&&r.frameElement&&r.attachEvent("onbeforeunload",function(){c()}),n.attributes=lt(function(e){return e.innerHTML="",ct("type|href|height|width",ft,"#"===e.firstChild.getAttribute("href")),ct(R,pt,null==e.getAttribute("disabled")),e.className="i",!e.getAttribute("className")}),n.input=lt(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}),ct("value",ht,n.attributes&&n.input),n.getElementsByTagName=lt(function(e){return e.appendChild(t.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=lt(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),n.getById=lt(function(e){return f.appendChild(e).id=v,!t.getElementsByName||!t.getElementsByName(v).length}),n.getById?(i.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){return e.getAttribute("id")===t}}):(delete i.find.ID,i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=n.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==j?t.getElementsByTagName(e):undefined}: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},i.find.CLASS=n.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==j&&h?t.getElementsByClassName(e):undefined},g=[],d=[],(n.qsa=st(t.querySelectorAll))&&(lt(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),lt(function(e){var n=t.createElement("input");n.setAttribute("type","hidden"),e.appendChild(n).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")})),(n.matchesSelector=st(m=f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&<(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",I)}),d=d.length&&RegExp(d.join("|")),g=g.length&&RegExp(g.join("|")),y=st(f.contains)||f.compareDocumentPosition?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},n.sortDetached=lt(function(e){return 1&e.compareDocumentPosition(t.createElement("div"))}),S=f.compareDocumentPosition?function(e,r){if(e===r)return E=!0,0;var i=r.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(r);return i?1&i||!n.sortDetached&&r.compareDocumentPosition(e)===i?e===t||y(b,e)?-1:r===t||y(b,r)?1:l?P.call(l,e)-P.call(l,r):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],u=[n];if(e===n)return E=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:l?P.call(l,e)-P.call(l,n):0;if(o===s)return dt(e,n);r=e;while(r=r.parentNode)a.unshift(r);r=n;while(r=r.parentNode)u.unshift(r);while(a[i]===u[i])i++;return i?dt(a[i],u[i]):a[i]===b?-1:u[i]===b?1:0},t):p},ot.matches=function(e,t){return ot(e,null,null,t)},ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Y,"='$1']"),!(!n.matchesSelector||!h||g&&g.test(t)||d&&d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return ot(t,p,null,[e]).length>0},ot.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},ot.attr=function(e,t){(e.ownerDocument||e)!==p&&c(e);var r=i.attrHandle[t.toLowerCase()],o=r&&A.call(i.attrHandle,t.toLowerCase())?r(e,t,!h):undefined;return o===undefined?n.attributes||!h?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null:o},ot.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},ot.uniqueSort=function(e){var t,r=[],i=0,o=0;if(E=!n.detectDuplicates,l=!n.sortStable&&e.slice(0),e.sort(S),E){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return e},o=ot.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 for(;t=e[r];r++)n+=o(t);return n},i=ot.selectors={cacheLength:50,createPseudo:ut,match:J,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(nt,rt),e[3]=(e[4]||e[5]||"").replace(nt,rt),"~="===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]||ot.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]&&ot.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return J.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&V.test(n)&&(t=vt(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(nt,rt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&C(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,h,d,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,y=a&&t.nodeName.toLowerCase(),x=!u&&!a;if(m){if(o){while(g){p=t;while(p=p[g])if(a?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&x){c=m[v]||(m[v]={}),l=c[e]||[],h=l[0]===w&&l[1],f=l[0]===w&&l[2],p=h&&m.childNodes[h];while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[w,h,f];break}}else if(x&&(l=(t[v]||(t[v]={}))[e])&&l[0]===w)f=l[1];else while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if((a?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(x&&((p[v]||(p[v]={}))[e]=[w,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||ot.error("unsupported pseudo: "+e);return r[v]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ut(function(e,n){var i,o=r(e,t),s=o.length;while(s--)i=P.call(e,o[s]),e[i]=!(n[i]=o[s])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ut(function(e){var t=[],n=[],r=a(e.replace(z,"$1"));return r[v]?ut(function(e,t,n,i){var o,s=r(e,null,i,[]),a=e.length;while(a--)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ut(function(e){return function(t){return ot(e,t).length>0}}),contains:ut(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ut(function(e){return G.test(e||"")||ot.error("unsupported lang: "+e),e=e.replace(nt,rt).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!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,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return et.test(e.nodeName)},input:function(e){return Z.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"))||t.toLowerCase()===e.type)},first:yt(function(){return[0]}),last:yt(function(e,t){return[t-1]}),eq:yt(function(e,t,n){return[0>n?n+t:n]}),even:yt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:yt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:yt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:yt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[t]=gt(t);for(t in{submit:!0,reset:!0})i.pseudos[t]=mt(t);function vt(e,t){var n,r,o,s,a,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);a=e,u=[],l=i.preFilter;while(a){(!n||(r=_.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=X.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(z," ")}),a=a.slice(n.length));for(s in i.filter)!(r=J[s].exec(a))||l[s]&&!(r=l[s](r))||(n=r.shift(),o.push({value:n,type:s,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ot.error(e):k(e,u).slice(0)}function xt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function bt(e,t,n){var i=t.dir,o=n&&"parentNode"===i,s=T++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,a){var u,l,c,p=w+" "+s;if(a){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,a))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[v]||(t[v]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,a)||r,l[1]===!0)return!0}}function wt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function Tt(e,t,n,r,i){var o,s=[],a=0,u=e.length,l=null!=t;for(;u>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function Ct(e,t,n,r,i,o){return r&&!r[v]&&(r=Ct(r)),i&&!i[v]&&(i=Ct(i,o)),ut(function(o,s,a,u){var l,c,p,f=[],h=[],d=s.length,g=o||Et(t||"*",a.nodeType?[a]:a,[]),m=!e||!o&&t?g:Tt(g,f,e,a,u),y=n?i||(o?e:d||r)?[]:s:m;if(n&&n(m,y,a,u),r){l=Tt(y,h),r(l,[],a,u),c=l.length;while(c--)(p=l[c])&&(y[h[c]]=!(m[h[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?P.call(o,p):f[c])>-1&&(o[l]=!(s[l]=p))}}else y=Tt(y===s?y.splice(d,y.length):y),i?i(null,s,y,u):O.apply(s,y)})}function kt(e){var t,n,r,o=e.length,s=i.relative[e[0].type],a=s||i.relative[" "],l=s?1:0,c=bt(function(e){return e===t},a,!0),p=bt(function(e){return P.call(t,e)>-1},a,!0),f=[function(e,n,r){return!s&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>l;l++)if(n=i.relative[e[l].type])f=[bt(wt(f),n)];else{if(n=i.filter[e[l].type].apply(null,e[l].matches),n[v]){for(r=++l;o>r;r++)if(i.relative[e[r].type])break;return Ct(l>1&&wt(f),l>1&&xt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&kt(e.slice(l,r)),o>r&&kt(e=e.slice(r)),o>r&&xt(e))}f.push(n)}return wt(f)}function Nt(e,t){var n=0,o=t.length>0,s=e.length>0,a=function(a,l,c,f,h){var d,g,m,y=[],v=0,x="0",b=a&&[],T=null!=h,C=u,k=a||s&&i.find.TAG("*",h&&l.parentNode||l),N=w+=null==C?1:Math.random()||.1;for(T&&(u=l!==p&&l,r=n);null!=(d=k[x]);x++){if(s&&d){g=0;while(m=e[g++])if(m(d,l,c)){f.push(d);break}T&&(w=N,r=++n)}o&&((d=!m&&d)&&v--,a&&b.push(d))}if(v+=x,o&&x!==v){g=0;while(m=t[g++])m(b,y,l,c);if(a){if(v>0)while(x--)b[x]||y[x]||(y[x]=H.call(f));y=Tt(y)}O.apply(f,y),T&&!a&&y.length>0&&v+t.length>1&&ot.uniqueSort(f)}return T&&(w=N,u=C),b};return o?ut(a):a}a=ot.compile=function(e,t){var n,r=[],i=[],o=N[e+" "];if(!o){t||(t=vt(e)),n=t.length;while(n--)o=kt(t[n]),o[v]?r.push(o):i.push(o);o=N(e,Nt(i,r))}return o};function Et(e,t,n){var r=0,i=t.length;for(;i>r;r++)ot(e,t[r],n);return n}function St(e,t,r,o){var s,u,l,c,p,f=vt(e);if(!o&&1===f.length){if(u=f[0]=f[0].slice(0),u.length>2&&"ID"===(l=u[0]).type&&n.getById&&9===t.nodeType&&h&&i.relative[u[1].type]){if(t=(i.find.ID(l.matches[0].replace(nt,rt),t)||[])[0],!t)return r;e=e.slice(u.shift().value.length)}s=J.needsContext.test(e)?0:u.length;while(s--){if(l=u[s],i.relative[c=l.type])break;if((p=i.find[c])&&(o=p(l.matches[0].replace(nt,rt),U.test(u[0].type)&&t.parentNode||t))){if(u.splice(s,1),e=o.length&&xt(u),!e)return O.apply(r,o),r;break}}}return a(e,f)(o,t,!h,r,U.test(e)),r}i.pseudos.nth=i.pseudos.eq;function jt(){}jt.prototype=i.filters=i.pseudos,i.setFilters=new jt,n.sortStable=v.split("").sort(S).join("")===v,c(),[0,0].sort(S),n.detectDuplicates=E,x.find=ot,x.expr=ot.selectors,x.expr[":"]=x.expr.pseudos,x.unique=ot.uniqueSort,x.text=ot.getText,x.isXMLDoc=ot.isXML,x.contains=ot.contains}(e);var D={};function A(e){var t=D[e]={};return x.each(e.match(w)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?D[e]||A(e):x.extend({},e);var t,n,r,i,o,s,a=[],u=!e.once&&[],l=function(p){for(t=e.memory&&p,n=!0,s=i||0,i=0,o=a.length,r=!0;a&&o>s;s++)if(a[s].apply(p[0],p[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,a&&(u?u.length&&l(u.shift()):t?a=[]:c.disable())},c={add:function(){if(a){var n=a.length;(function s(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==r&&s(n)})})(arguments),r?o=a.length:t&&(i=n,l(t))}return this},remove:function(){return a&&x.each(arguments,function(e,t){var n;while((n=x.inArray(t,a,n))>-1)a.splice(n,1),r&&(o>=n&&o--,s>=n&&s--)}),this},has:function(e){return e?x.inArray(e,a)>-1:!(!a||!a.length)},empty:function(){return a=[],o=0,this},disable:function(){return a=u=t=undefined,this},disabled:function(){return!a},lock:function(){return u=undefined,t||c.disable(),this},locked:function(){return!u},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!a||n&&!u||(r?u.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var s=o[0],a=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=d.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),s=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?d.call(arguments):r,n===a?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},a,u,l;if(r>1)for(a=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(s(t,l,n)).fail(o.reject).progress(s(t,u,a)):--i;return i||o.resolveWith(l,n),o.promise()}}),x.support=function(t){var n=o.createElement("input"),r=o.createDocumentFragment(),i=o.createElement("div"),s=o.createElement("select"),a=s.appendChild(o.createElement("option"));return n.type?(n.type="checkbox",t.checkOn=""!==n.value,t.optSelected=a.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!a.disabled,n=o.createElement("input"),n.value="t",n.type="radio",t.radioValue="t"===n.value,n.setAttribute("checked","t"),n.setAttribute("name","t"),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles="onfocusin"in e,i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===i.style.backgroundClip,x(function(){var n,r,s="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",a=o.getElementsByTagName("body")[0];a&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",a.appendChild(n).appendChild(i),i.innerHTML="",i.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",x.swap(a,null!=a.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,r=i.appendChild(o.createElement("div")),r.style.cssText=i.style.cssText=s,r.style.marginRight=r.style.width="0",i.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),a.removeChild(n))}),t):t}({});var L,H,q=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,O=/([A-Z])/g;function F(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=x.expando+Math.random()}F.uid=1,F.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},F.prototype={key:function(e){if(!F.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=F.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,x.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(x.isEmptyObject(o))x.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return t===undefined?n:n[t]},access:function(e,t,n){return t===undefined||t&&"string"==typeof t&&n===undefined?this.get(e,t):(this.set(e,t,n),n!==undefined?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(t===undefined)this.cache[o]={};else{x.isArray(t)?r=t.concat(t.map(x.camelCase)):(i=x.camelCase(t),t in s?r=[t,i]:(r=i,r=r in s?[r]:r.match(w)||[])),n=r.length;while(n--)delete s[r[n]]}},hasData:function(e){return!x.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}},L=new F,H=new F,x.extend({acceptData:F.accepts,hasData:function(e){return L.hasData(e)||H.hasData(e)},data:function(e,t,n){return L.access(e,t,n)},removeData:function(e,t){L.remove(e,t)},_data:function(e,t,n){return H.access(e,t,n)},_removeData:function(e,t){H.remove(e,t)}}),x.fn.extend({data:function(e,t){var n,r,i=this[0],o=0,s=null;if(e===undefined){if(this.length&&(s=L.get(i),1===i.nodeType&&!H.get(i,"hasDataAttrs"))){for(n=i.attributes;n.length>o;o++)r=n[o].name,0===r.indexOf("data-")&&(r=x.camelCase(r.slice(5)),P(i,r,s[r]));H.set(i,"hasDataAttrs",!0)}return s}return"object"==typeof e?this.each(function(){L.set(this,e)}):x.access(this,function(t){var n,r=x.camelCase(e);if(i&&t===undefined){if(n=L.get(i,e),n!==undefined)return n;if(n=L.get(i,r),n!==undefined)return n;if(n=P(i,r,undefined),n!==undefined)return n}else this.each(function(){var n=L.get(this,r);L.set(this,r,t),-1!==e.indexOf("-")&&n!==undefined&&L.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){L.remove(this,e)})}});function P(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(O,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:q.test(n)?JSON.parse(n):n}catch(i){}L.set(e,t,n)}else n=undefined;return n}x.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=H.get(e,t),n&&(!r||x.isArray(n)?r=H.access(e,t,x.makeArray(n)):r.push(n)),r||[]):undefined},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),s=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire() +},_queueHooks:function(e,t){var n=t+"queueHooks";return H.get(e,n)||H.access(e,n,{empty:x.Callbacks("once memory").add(function(){H.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),n>arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t);x._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=x.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=undefined),e=e||"fx";while(s--)n=H.get(o[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var R,M,W=/[\t\r\n\f]/g,$=/\r/g,B=/^(?:input|select|textarea|button)$/i;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,u="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,i="boolean"==typeof t;return x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,s=0,a=x(this),u=t,l=e.match(w)||[];while(o=l[s++])u=i?u:!a.hasClass(o),a[u?"addClass":"removeClass"](o)}else(n===r||"boolean"===n)&&(this.className&&H.set(this,"__className__",this.className),this.className=this.className||e===!1?"":H.get(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(W," ").indexOf(t)>=0)return!0;return!1},val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=x.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,x(this).val()):e,null==i?i="":"number"==typeof i?i+="":x.isArray(i)&&(i=x.map(i,function(e){return null==e?"":e+""})),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))});if(i)return t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace($,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,u=0>i?a:o?i:0;for(;a>u;u++)if(n=r[u],!(!n.selected&&u!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),s=i.length;while(s--)r=i[s],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,t,n){var i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===r?x.prop(e,t,n):(1===s&&x.isXMLDoc(e)||(t=t.toLowerCase(),i=x.attrHooks[t]||(x.expr.match.bool.test(t)?M:R)),n===undefined?i&&"get"in i&&null!==(o=i.get(e,t))?o:(o=x.find.attr(e,t),null==o?undefined:o):null!==n?i&&"set"in i&&(o=i.set(e,n,t))!==undefined?o:(e.setAttribute(t,n+""),n):(x.removeAttr(e,t),undefined))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return o=1!==s||!x.isXMLDoc(e),o&&(t=x.propFix[t]||t,i=x.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||B.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),M={set:function(e,t,n){return t===!1?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,t){var n=x.expr.attrHandle[t]||x.find.attr;x.expr.attrHandle[t]=function(e,t,r){var i=x.expr.attrHandle[t],o=r?undefined:(x.expr.attrHandle[t]=undefined)!=n(e,t,r)?t.toLowerCase():null;return x.expr.attrHandle[t]=i,o}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,t){return x.isArray(t)?e.checked=x.inArray(x(e).val(),t)>=0:undefined}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var I=/^key/,z=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,X=/^([^.]*)(?:\.(.+)|)$/;function U(){return!0}function Y(){return!1}function V(){try{return o.activeElement}catch(e){}}x.event={global:{},add:function(e,t,n,i,o){var s,a,u,l,c,p,f,h,d,g,m,y=H.get(e);if(y){n.handler&&(s=n,n=s.handler,o=s.selector),n.guid||(n.guid=x.guid++),(l=y.events)||(l=y.events={}),(a=y.handle)||(a=y.handle=function(e){return typeof x===r||e&&x.event.triggered===e.type?undefined:x.event.dispatch.apply(a.elem,arguments)},a.elem=e),t=(t||"").match(w)||[""],c=t.length;while(c--)u=X.exec(t[c])||[],d=m=u[1],g=(u[2]||"").split(".").sort(),d&&(f=x.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=x.event.special[d]||{},p=x.extend({type:d,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&x.expr.match.needsContext.test(o),namespace:g.join(".")},s),(h=l[d])||(h=l[d]=[],h.delegateCount=0,f.setup&&f.setup.call(e,i,g,a)!==!1||e.addEventListener&&e.addEventListener(d,a,!1)),f.add&&(f.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,p):h.push(p),x.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,s,a,u,l,c,p,f,h,d,g,m=H.hasData(e)&&H.get(e);if(m&&(u=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(a=X.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){p=x.event.special[h]||{},h=(r?p.delegateType:p.bindType)||h,f=u[h]||[],a=a[2]&&RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=f.length;while(o--)c=f[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,p.remove&&p.remove.call(e,c));s&&!f.length&&(p.teardown&&p.teardown.call(e,d,m.handle)!==!1||x.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)x.event.remove(e,h+t[l],n,r,!0);x.isEmptyObject(u)&&(delete m.handle,H.remove(e,"events"))}},trigger:function(t,n,r,i){var s,a,u,l,c,p,f,h=[r||o],d=y.call(t,"type")?t.type:t,g=y.call(t,"namespace")?t.namespace.split("."):[];if(a=u=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!_.test(d+x.event.triggered)&&(d.indexOf(".")>=0&&(g=d.split("."),d=g.shift(),g.sort()),c=0>d.indexOf(":")&&"on"+d,t=t[x.expando]?t:new x.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.namespace_re=t.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:x.makeArray(n,[t]),f=x.event.special[d]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&&!f.noBubble&&!x.isWindow(r)){for(l=f.delegateType||d,_.test(l+d)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(r.ownerDocument||o)&&h.push(u.defaultView||u.parentWindow||e)}s=0;while((a=h[s++])&&!t.isPropagationStopped())t.type=s>1?l:f.bindType||d,p=(H.get(a,"events")||{})[t.type]&&H.get(a,"handle"),p&&p.apply(a,n),p=c&&a[c],p&&x.acceptData(a)&&p.apply&&p.apply(a,n)===!1&&t.preventDefault();return t.type=d,i||t.isDefaultPrevented()||f._default&&f._default.apply(h.pop(),n)!==!1||!x.acceptData(r)||c&&x.isFunction(r[d])&&!x.isWindow(r)&&(u=r[c],u&&(r[c]=null),x.event.triggered=d,r[d](),x.event.triggered=undefined,u&&(r[c]=u)),t.result}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,o,s=[],a=d.call(arguments),u=(H.get(this,"events")||{})[e.type]||[],l=x.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),t=0;while((i=s[t++])&&!e.isPropagationStopped()){e.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((x.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a),r!==undefined&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;a>n;n++)o=t[n],i=o.selector+" ",r[i]===undefined&&(r[i]=o.needsContext?x(i,this).index(u)>=0:x.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return t.length>a&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||o,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||s===undefined||(e.which=1&s?1:2&s?3:4&s?2:0),e}},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,s=e,a=this.fixHooks[i];a||(this.fixHooks[i]=a=z.test(i)?this.mouseHooks:I.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new x.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=o),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,s):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==V()&&this.focus?(this.focus(),!1):undefined},delegateType:"focusin"},blur:{trigger:function(){return this===V()&&this.blur?(this.blur(),!1):undefined},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&x.nodeName(this,"input")?(this.click(),!1):undefined},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},x.Event=function(e,t){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&&e.getPreventDefault()?U:Y):this.type=e,t&&x.extend(this,t),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,undefined):new x.Event(e,t)},x.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=U,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=U,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=U,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,t,n,r,i){var o,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}if(null==n&&null==r?(r=t,n=t=undefined):null==r&&("string"==typeof t?(r=n,n=undefined):(r=n,n=t,t=undefined)),r===!1)r=Y;else if(!r)return this;return 1===i&&(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),this.each(function(){x.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,x(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(t===!1||"function"==typeof t)&&(n=t,t=undefined),n===!1&&(n=Y),this.each(function(){x.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?x.event.trigger(e,t,n,!0):undefined}});var G=/^.[^:#\[\.,]*$/,J=/^(?:parents|prev(?:Until|All))/,Q=x.expr.match.needsContext,K={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){var e=0;for(;n>e;e++)if(x.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(et(this,e||[],!0))},filter:function(e){return this.pushStack(et(this,e||[],!1))},is:function(e){return!!et(this,"string"==typeof e&&Q.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],s=Q.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(s?s.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?g.call(x(e),this[0]):g.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function Z(e,t){while((e=e[t])&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return Z(e,"nextSibling")},prev:function(e){return Z(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return e.contentDocument||x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(K[e]||x.unique(i),J.test(e)&&i.reverse()),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,t,n){var r=[],i=n!==undefined;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&x(e).is(n))break;r.push(e)}return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function et(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(G.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return g.call(t,e)>=0!==n})}var tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,nt=/<([\w:]+)/,rt=/<|&#?\w+;/,it=/<(?:script|style|link)/i,ot=/^(?:checkbox|radio)$/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^$|\/(?:java|ecma)script/i,ut=/^true\/(.*)/,lt=/^\s*\s*$/g,ct={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ct.optgroup=ct.option,ct.tbody=ct.tfoot=ct.colgroup=ct.caption=ct.thead,ct.th=ct.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===undefined?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(mt(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&dt(mt(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(mt(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!it.test(e)&&!ct[(nt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(tt,"<$1>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(x.cleanData(mt(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=f.apply([],e);var r,i,o,s,a,u,l=0,c=this.length,p=this,h=c-1,d=e[0],g=x.isFunction(d);if(g||!(1>=c||"string"!=typeof d||x.support.checkClone)&&st.test(d))return this.each(function(r){var i=p.eq(r);g&&(e[0]=d.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(r=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),i=r.firstChild,1===r.childNodes.length&&(r=i),i)){for(o=x.map(mt(r,"script"),ft),s=o.length;c>l;l++)a=r,l!==h&&(a=x.clone(a,!0,!0),s&&x.merge(o,mt(a,"script"))),t.call(this[l],a,l);if(s)for(u=o[o.length-1].ownerDocument,x.map(o,ht),l=0;s>l;l++)a=o[l],at.test(a.type||"")&&!H.access(a,"globalEval")&&x.contains(u,a)&&(a.src?x._evalUrl(a.src):x.globalEval(a.textContent.replace(lt,"")))}return this}}),x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=[],i=x(e),o=i.length-1,s=0;for(;o>=s;s++)n=s===o?this:this.clone(!0),x(i[s])[t](n),h.apply(r,n.get());return this.pushStack(r)}}),x.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=x.contains(e.ownerDocument,e);if(!(x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(s=mt(a),o=mt(e),r=0,i=o.length;i>r;r++)yt(o[r],s[r]);if(t)if(n)for(o=o||mt(e),s=s||mt(a),r=0,i=o.length;i>r;r++)gt(o[r],s[r]);else gt(e,a);return s=mt(a,"script"),s.length>0&&dt(s,!u&&mt(e,"script")),a},buildFragment:function(e,t,n,r){var i,o,s,a,u,l,c=0,p=e.length,f=t.createDocumentFragment(),h=[];for(;p>c;c++)if(i=e[c],i||0===i)if("object"===x.type(i))x.merge(h,i.nodeType?[i]:i);else if(rt.test(i)){o=o||f.appendChild(t.createElement("div")),s=(nt.exec(i)||["",""])[1].toLowerCase(),a=ct[s]||ct._default,o.innerHTML=a[1]+i.replace(tt,"<$1>")+a[2],l=a[0];while(l--)o=o.firstChild;x.merge(h,o.childNodes),o=f.firstChild,o.textContent=""}else h.push(t.createTextNode(i));f.textContent="",c=0;while(i=h[c++])if((!r||-1===x.inArray(i,r))&&(u=x.contains(i.ownerDocument,i),o=mt(f.appendChild(i),"script"),u&&dt(o),n)){l=0;while(i=o[l++])at.test(i.type||"")&&n.push(i)}return f},cleanData:function(e){var t,n,r,i,o,s,a=x.event.special,u=0;for(;(n=e[u])!==undefined;u++){if(F.accepts(n)&&(o=n[H.expando],o&&(t=H.cache[o]))){if(r=Object.keys(t.events||{}),r.length)for(s=0;(i=r[s])!==undefined;s++)a[i]?x.event.remove(n,i):x.removeEvent(n,i,t.handle);H.cache[o]&&delete H.cache[o]}delete L.cache[n[L.expando]]}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}});function pt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ft(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ht(e){var t=ut.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function dt(e,t){var n=e.length,r=0;for(;n>r;r++)H.set(e[r],"globalEval",!t||H.get(t[r],"globalEval"))}function gt(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(H.hasData(e)&&(o=H.access(e),s=H.set(t,o),l=o.events)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)x.event.add(t,i,l[i][n])}L.hasData(e)&&(a=L.access(e),u=x.extend({},a),L.set(t,u))}}function mt(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return t===undefined||t&&x.nodeName(e,t)?x.merge([e],n):n}function yt(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ot.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}x.fn.extend({wrapAll:function(e){var t;return x.isFunction(e)?this.each(function(t){x(this).wrapAll(e.call(this,t))}):(this[0]&&(t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var vt,xt,bt=/^(none|table(?!-c[ea]).+)/,wt=/^margin/,Tt=RegExp("^("+b+")(.*)$","i"),Ct=RegExp("^("+b+")(?!px)[a-z%]+$","i"),kt=RegExp("^([+-])=("+b+")","i"),Nt={BODY:"block"},Et={position:"absolute",visibility:"hidden",display:"block"},St={letterSpacing:0,fontWeight:400},jt=["Top","Right","Bottom","Left"],Dt=["Webkit","O","Moz","ms"];function At(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Dt.length;while(i--)if(t=Dt[i]+n,t in e)return t;return r}function Lt(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function Ht(t){return e.getComputedStyle(t,null)}function qt(e,t){var n,r,i,o=[],s=0,a=e.length;for(;a>s;s++)r=e[s],r.style&&(o[s]=H.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&Lt(r)&&(o[s]=H.access(r,"olddisplay",Rt(r.nodeName)))):o[s]||(i=Lt(r),(n&&"none"!==n||!i)&&H.set(r,"olddisplay",i?n:x.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}x.fn.extend({css:function(e,t){return x.access(this,function(e,t,n){var r,i,o={},s=0;if(x.isArray(t)){for(r=Ht(e),i=t.length;i>s;s++)o[t[s]]=x.css(e,t[s],!1,r);return o}return n!==undefined?x.style(e,t,n):x.css(e,t)},e,t,arguments.length>1)},show:function(){return qt(this,!0)},hide:function(){return qt(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:Lt(this))?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=vt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=x.camelCase(t),u=e.style;return t=x.cssProps[a]||(x.cssProps[a]=At(u,a)),s=x.cssHooks[t]||x.cssHooks[a],n===undefined?s&&"get"in s&&(i=s.get(e,!1,r))!==undefined?i:u[t]:(o=typeof n,"string"===o&&(i=kt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(x.css(e,t)),o="number"),null==n||"number"===o&&isNaN(n)||("number"!==o||x.cssNumber[a]||(n+="px"),x.support.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&(n=s.set(e,n,r))===undefined||(u[t]=n)),undefined)}},css:function(e,t,n,r){var i,o,s,a=x.camelCase(t);return t=x.cssProps[a]||(x.cssProps[a]=At(e.style,a)),s=x.cssHooks[t]||x.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),i===undefined&&(i=vt(e,t,r)),"normal"===i&&t in St&&(i=St[t]),""===n||n?(o=parseFloat(i),n===!0||x.isNumeric(o)?o||0:i):i}}),vt=function(e,t,n){var r,i,o,s=n||Ht(e),a=s?s.getPropertyValue(t)||s[t]:undefined,u=e.style;return s&&(""!==a||x.contains(e.ownerDocument,e)||(a=x.style(e,t)),Ct.test(a)&&wt.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=s.width,u.width=r,u.minWidth=i,u.maxWidth=o)),a};function Ot(e,t,n){var r=Tt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ft(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;for(;4>o;o+=2)"margin"===n&&(s+=x.css(e,n+jt[o],!0,i)),r?("content"===n&&(s-=x.css(e,"padding"+jt[o],!0,i)),"margin"!==n&&(s-=x.css(e,"border"+jt[o]+"Width",!0,i))):(s+=x.css(e,"padding"+jt[o],!0,i),"padding"!==n&&(s+=x.css(e,"border"+jt[o]+"Width",!0,i)));return s}function Pt(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Ht(e),s=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=vt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Ct.test(i))return i;r=s&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+Ft(e,t,n||(s?"border":"content"),r,o)+"px"}function Rt(e){var t=o,n=Nt[e];return n||(n=Mt(e,t),"none"!==n&&n||(xt=(xt||x("