Issue #3087685 by zrpnr, bnjmnm, randomyao22, lauriii, xjm, Wim Leers, catch, nod_: Remove deprecated jQuery UI components and fork remaining source code into core
parent
e49e554766
commit
75ac95e895
|
@ -1,11 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI Touch Punch 0.2.3
|
||||
*
|
||||
* Copyright 2011–2014, Dave Furfero
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
*
|
||||
* Depends:
|
||||
* jquery.ui.widget.js
|
||||
* jquery.ui.mouse.js
|
||||
*/
|
||||
!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);
|
|
@ -1,30 +0,0 @@
|
|||
# [jQuery UI](http://jqueryui.com/) - Interactions and Widgets for the web
|
||||
|
||||
jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of jQuery. Whether you're building highly interactive web applications, or you just need to add a date picker to a form control, jQuery UI is the perfect choice.
|
||||
|
||||
If you want to use jQuery UI, go to [jqueryui.com](http://jqueryui.com) to get started, [jqueryui.com/demos/](http://jqueryui.com/demos/) for demos, [api.jqueryui.com](http://api.jqueryui.com/) for API documentation, or the [Using jQuery UI Forum](http://forum.jquery.com/using-jquery-ui) for discussions and questions.
|
||||
|
||||
If you want to report a bug/issue, please visit [bugs.jqueryui.com](http://bugs.jqueryui.com).
|
||||
|
||||
If you are interested in helping develop jQuery UI, you are in the right place.
|
||||
To discuss development with team members and the community, visit the [Developing jQuery UI Forum](http://forum.jquery.com/developing-jquery-ui) or [#jqueryui-dev on irc.freenode.net](http://irc.jquery.org/).
|
||||
|
||||
|
||||
## For Contributors
|
||||
|
||||
If you want to help and provide a patch for a bugfix or new feature, please take
|
||||
a few minutes and look at [our Getting Involved guide](http://wiki.jqueryui.com/w/page/35263114/Getting-Involved).
|
||||
In particular check out the [Coding standards](http://wiki.jqueryui.com/w/page/12137737/Coding-standards)
|
||||
and [Commit Message Style Guide](http://contribute.jquery.org/commits-and-pull-requests/#commit-guidelines).
|
||||
|
||||
In general, fork the project, create a branch for a specific change and send a
|
||||
pull request for that branch. Don't mix unrelated changes. You can use the commit
|
||||
message as the description for the pull request.
|
||||
|
||||
For more information, see the [contributing page](CONTRIBUTING.md).
|
||||
|
||||
## Running the Unit Tests
|
||||
|
||||
Run the unit tests manually with appropriate browsers and any local web server. See our [environment setup](CONTRIBUTING.md#environment-minimum-required) and [information on running tests](CONTRIBUTING.md#running-the-tests).
|
||||
|
||||
You can also run the unit tests inside phantomjs by [setting up your environment](CONTRIBUTING.md#user-content-environment-recommended-setup).
|
|
@ -1,74 +0,0 @@
|
|||
{
|
||||
"name": "jquery-ui",
|
||||
"title": "jQuery UI",
|
||||
"description": "A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.",
|
||||
"version": "1.12.1",
|
||||
"homepage": "http://jqueryui.com",
|
||||
"author": {
|
||||
"name": "jQuery Foundation and other contributors",
|
||||
"url": "https://github.com/jquery/jquery-ui/blob/1.12.1/AUTHORS.txt"
|
||||
},
|
||||
"main": "ui/widget.js",
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "Scott González",
|
||||
"email": "scott.gonzalez@gmail.com",
|
||||
"url": "http://scottgonzalez.com"
|
||||
},
|
||||
{
|
||||
"name": "Jörn Zaefferer",
|
||||
"email": "joern.zaefferer@gmail.com",
|
||||
"url": "http://bassistance.de"
|
||||
},
|
||||
{
|
||||
"name": "Mike Sherov",
|
||||
"email": "mike.sherov@gmail.com",
|
||||
"url": "http://mike.sherov.com"
|
||||
},
|
||||
{
|
||||
"name": "TJ VanToll",
|
||||
"email": "tj.vantoll@gmail.com",
|
||||
"url": "http://tjvantoll.com"
|
||||
},
|
||||
{
|
||||
"name": "Felix Nagel",
|
||||
"email": "info@felixnagel.com",
|
||||
"url": "http://www.felixnagel.com"
|
||||
},
|
||||
{
|
||||
"name": "Alex Schmitz",
|
||||
"email": "arschmitz@gmail.com",
|
||||
"url": "https://github.com/arschmitz"
|
||||
}
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/jquery/jquery-ui.git"
|
||||
},
|
||||
"bugs": "https://bugs.jqueryui.com/",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"test": "grunt"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"commitplease": "2.3.0",
|
||||
"grunt": "0.4.5",
|
||||
"grunt-bowercopy": "1.2.4",
|
||||
"grunt-cli": "0.1.13",
|
||||
"grunt-compare-size": "0.4.0",
|
||||
"grunt-contrib-concat": "0.5.1",
|
||||
"grunt-contrib-csslint": "0.5.0",
|
||||
"grunt-contrib-jshint": "0.12.0",
|
||||
"grunt-contrib-qunit": "1.0.1",
|
||||
"grunt-contrib-requirejs": "0.4.4",
|
||||
"grunt-contrib-uglify": "0.11.1",
|
||||
"grunt-git-authors": "3.1.0",
|
||||
"grunt-html": "6.0.0",
|
||||
"grunt-jscs": "2.1.0",
|
||||
"load-grunt-tasks": "3.4.0",
|
||||
"rimraf": "2.5.1",
|
||||
"testswarm": "1.1.0"
|
||||
},
|
||||
"keywords": []
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI Accordion 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/accordion/#theming
|
||||
*/
|
||||
.ui-accordion .ui-accordion-header {
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
margin: 2px 0 0 0;
|
||||
padding: .5em .5em .5em .7em;
|
||||
font-size: 100%;
|
||||
}
|
||||
.ui-accordion .ui-accordion-content {
|
||||
padding: 1em 2.2em;
|
||||
border-top: 0;
|
||||
overflow: auto;
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI CSS Framework 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/category/theming/
|
||||
*/
|
||||
@import "base.css";
|
||||
@import "theme.css";
|
|
@ -1,29 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI CSS Framework 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/category/theming/
|
||||
*/
|
||||
@import url("core.css");
|
||||
|
||||
@import url("accordion.css");
|
||||
@import url("autocomplete.css");
|
||||
@import url("button.css");
|
||||
@import url("checkboxradio.css");
|
||||
@import url("controlgroup.css");
|
||||
@import url("dialog.css");
|
||||
@import url("draggable.css");
|
||||
@import url("menu.css");
|
||||
@import url("progressbar.css");
|
||||
@import url("resizable.css");
|
||||
@import url("selectable.css");
|
||||
@import url("selectmenu.css");
|
||||
@import url("sortable.css");
|
||||
@import url("slider.css");
|
||||
@import url("spinner.css");
|
||||
@import url("tabs.css");
|
||||
@import url("tooltip.css");
|
|
@ -1,28 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI Progressbar 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/progressbar/#theming
|
||||
*/
|
||||
.ui-progressbar {
|
||||
height: 2em;
|
||||
text-align: left;
|
||||
overflow: hidden;
|
||||
}
|
||||
.ui-progressbar .ui-progressbar-value {
|
||||
margin: -1px;
|
||||
height: 100%;
|
||||
}
|
||||
.ui-progressbar .ui-progressbar-overlay {
|
||||
background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
|
||||
height: 100%;
|
||||
filter: alpha(opacity=25); /* support: IE8 */
|
||||
opacity: 0.25;
|
||||
}
|
||||
.ui-progressbar-indeterminate .ui-progressbar-value {
|
||||
background-image: none;
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI Selectable 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
.ui-selectable {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-selectable-helper {
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
border: 1px dotted black;
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI Selectmenu 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/selectmenu/#theming
|
||||
*/
|
||||
.ui-selectmenu-menu {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: none;
|
||||
}
|
||||
.ui-selectmenu-menu .ui-menu {
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
line-height: 1.5;
|
||||
padding: 2px 0.4em;
|
||||
margin: 0.5em 0 0 0;
|
||||
height: auto;
|
||||
border: 0;
|
||||
}
|
||||
.ui-selectmenu-open {
|
||||
display: block;
|
||||
}
|
||||
.ui-selectmenu-text {
|
||||
display: block;
|
||||
margin-right: 20px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.ui-selectmenu-button.ui-button {
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
width: 14em;
|
||||
}
|
||||
.ui-selectmenu-icon.ui-icon {
|
||||
float: right;
|
||||
margin-top: 0;
|
||||
}
|
|
@ -1,75 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI Slider 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/slider/#theming
|
||||
*/
|
||||
.ui-slider {
|
||||
position: relative;
|
||||
text-align: left;
|
||||
}
|
||||
.ui-slider .ui-slider-handle {
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
width: 1.2em;
|
||||
height: 1.2em;
|
||||
cursor: default;
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-slider .ui-slider-range {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
font-size: .7em;
|
||||
display: block;
|
||||
border: 0;
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
/* support: IE8 - See #6727 */
|
||||
.ui-slider.ui-state-disabled .ui-slider-handle,
|
||||
.ui-slider.ui-state-disabled .ui-slider-range {
|
||||
filter: inherit;
|
||||
}
|
||||
|
||||
.ui-slider-horizontal {
|
||||
height: .8em;
|
||||
}
|
||||
.ui-slider-horizontal .ui-slider-handle {
|
||||
top: -.3em;
|
||||
margin-left: -.6em;
|
||||
}
|
||||
.ui-slider-horizontal .ui-slider-range {
|
||||
top: 0;
|
||||
height: 100%;
|
||||
}
|
||||
.ui-slider-horizontal .ui-slider-range-min {
|
||||
left: 0;
|
||||
}
|
||||
.ui-slider-horizontal .ui-slider-range-max {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.ui-slider-vertical {
|
||||
width: .8em;
|
||||
height: 100px;
|
||||
}
|
||||
.ui-slider-vertical .ui-slider-handle {
|
||||
left: -.3em;
|
||||
margin-left: 0;
|
||||
margin-bottom: -.6em;
|
||||
}
|
||||
.ui-slider-vertical .ui-slider-range {
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.ui-slider-vertical .ui-slider-range-min {
|
||||
bottom: 0;
|
||||
}
|
||||
.ui-slider-vertical .ui-slider-range-max {
|
||||
top: 0;
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI Sortable 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
.ui-sortable-handle {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI Spinner 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/spinner/#theming
|
||||
*/
|
||||
.ui-spinner {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.ui-spinner-input {
|
||||
border: none;
|
||||
background: none;
|
||||
color: inherit;
|
||||
padding: .222em 0;
|
||||
margin: .2em 0;
|
||||
vertical-align: middle;
|
||||
margin-left: .4em;
|
||||
margin-right: 2em;
|
||||
}
|
||||
.ui-spinner-button {
|
||||
width: 1.6em;
|
||||
height: 50%;
|
||||
font-size: .5em;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
cursor: default;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
right: 0;
|
||||
}
|
||||
/* more specificity required here to override default borders */
|
||||
.ui-spinner a.ui-spinner-button {
|
||||
border-top-style: none;
|
||||
border-bottom-style: none;
|
||||
border-right-style: none;
|
||||
}
|
||||
.ui-spinner-up {
|
||||
top: 0;
|
||||
}
|
||||
.ui-spinner-down {
|
||||
bottom: 0;
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI Tabs 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/tabs/#theming
|
||||
*/
|
||||
.ui-tabs {
|
||||
position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
||||
padding: .2em;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav {
|
||||
margin: 0;
|
||||
padding: .2em .2em 0;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li {
|
||||
list-style: none;
|
||||
float: left;
|
||||
position: relative;
|
||||
top: 0;
|
||||
margin: 1px .2em 0 0;
|
||||
border-bottom-width: 0;
|
||||
padding: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
|
||||
float: left;
|
||||
padding: .5em 1em;
|
||||
text-decoration: none;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
|
||||
margin-bottom: -1px;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
|
||||
.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
|
||||
cursor: text;
|
||||
}
|
||||
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
|
||||
cursor: pointer;
|
||||
}
|
||||
.ui-tabs .ui-tabs-panel {
|
||||
display: block;
|
||||
border-width: 0;
|
||||
padding: 1em 1.4em;
|
||||
background: none;
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI Tooltip 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/tooltip/#theming
|
||||
*/
|
||||
.ui-tooltip {
|
||||
padding: 8px;
|
||||
position: absolute;
|
||||
z-index: 9999;
|
||||
max-width: 300px;
|
||||
}
|
||||
body .ui-tooltip {
|
||||
border-width: 2px;
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(){define(["jquery","./data","./disable-selection","./focusable","./form","./ie","./keycode","./labels","./jquery-1-7","./plugin","./safe-active-element","./safe-blur","./scroll-parent","./tabbable","./unique-id","./version"])}();
|
|
@ -1,4 +1,9 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version"],a):a(jQuery)}(function(a){return a.extend(a.expr[":"],{data:a.expr.createPseudo?a.expr.createPseudo(function(b){return function(c){return!!a.data(c,b)}}):function(b,c,d){return!!a.data(b,d[3])}})});
|
||||
/*!
|
||||
* jQuery UI :data 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){return e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo((function(n){return function(t){return!!e.data(t,n)}})):function(n,t,r){return!!e.data(n,r[3])}})}));
|
|
@ -0,0 +1,39 @@
|
|||
/*!
|
||||
* jQuery UI :data 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: :data Selector
|
||||
//>>group: Core
|
||||
//>>description: Selects elements which have data stored under the specified key.
|
||||
//>>docs: http://api.jqueryui.com/data-selector/
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
return $.extend( $.expr[ ":" ], {
|
||||
data: $.expr.createPseudo ?
|
||||
$.expr.createPseudo( function( dataName ) {
|
||||
return function( elem ) {
|
||||
return !!$.data( elem, dataName );
|
||||
};
|
||||
} ) :
|
||||
|
||||
// Support: jQuery <1.8
|
||||
function( elem, i, match ) {
|
||||
return !!$.data( elem, match[ 3 ] );
|
||||
}
|
||||
} );
|
||||
} ) );
|
|
@ -1,4 +1,9 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version"],a):a(jQuery)}(function(a){return a.fn.extend({disableSelection:function(){var a="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(a+".ui-disableSelection",function(a){a.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}})});
|
||||
/*!
|
||||
* jQuery UI Disable Selection 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){return e.fn.extend({disableSelection:(n="onselectstart"in document.createElement("div")?"selectstart":"mousedown",function(){return this.on(n+".ui-disableSelection",(function(e){e.preventDefault()}))}),enableSelection:function(){return this.off(".ui-disableSelection")}});var n}));
|
|
@ -0,0 +1,46 @@
|
|||
/*!
|
||||
* jQuery UI Disable Selection 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: disableSelection
|
||||
//>>group: Core
|
||||
//>>description: Disable selection of text content within the set of matched elements.
|
||||
//>>docs: http://api.jqueryui.com/disableSelection/
|
||||
|
||||
// This file is deprecated
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
|
||||
return $.fn.extend( {
|
||||
disableSelection: ( function() {
|
||||
var eventType = "onselectstart" in document.createElement( "div" ) ?
|
||||
"selectstart" :
|
||||
"mousedown";
|
||||
|
||||
return function() {
|
||||
return this.on( eventType + ".ui-disableSelection", function( event ) {
|
||||
event.preventDefault();
|
||||
} );
|
||||
};
|
||||
} )(),
|
||||
|
||||
enableSelection: function() {
|
||||
return this.off( ".ui-disableSelection" );
|
||||
}
|
||||
} );
|
||||
|
||||
} ) );
|
File diff suppressed because one or more lines are too long
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect"],a):a(jQuery)}(function(a){return a.effects.define("blind","hide",function(b,c){var d={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},e=a(this),f=b.direction||"up",g=e.cssClip(),h={clip:a.extend({},g)},i=a.effects.createPlaceholder(e);h.clip[d[f][0]]=h.clip[d[f][1]],"show"===b.mode&&(e.cssClip(h.clip),i&&i.css(a.effects.clipToBox(h)),h.clip=g),i&&i.animate(a.effects.clipToBox(h),b.duration,b.easing),e.animate(h,{queue:!1,duration:b.duration,easing:b.easing,complete:c})})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect"],a):a(jQuery)}(function(a){return a.effects.define("bounce",function(b,c){var d,e,f,g=a(this),h=b.mode,i="hide"===h,j="show"===h,k=b.direction||"up",l=b.distance,m=b.times||5,n=2*m+(j||i?1:0),o=b.duration/n,p=b.easing,q="up"===k||"down"===k?"top":"left",r="up"===k||"left"===k,s=0,t=g.queue().length;for(a.effects.createPlaceholder(g),f=g.css(q),l||(l=g["top"===q?"outerHeight":"outerWidth"]()/3),j&&(e={opacity:1},e[q]=f,g.css("opacity",0).css(q,r?2*-l:2*l).animate(e,o,p)),i&&(l/=Math.pow(2,m-1)),e={},e[q]=f;s<m;s++)d={},d[q]=(r?"-=":"+=")+l,g.animate(d,o,p).animate(e,o,p),l=i?2*l:l/2;i&&(d={opacity:0},d[q]=(r?"-=":"+=")+l,g.animate(d,o,p)),g.queue(c),a.effects.unshift(g,t,n+1)})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect"],a):a(jQuery)}(function(a){return a.effects.define("clip","hide",function(b,c){var d,e={},f=a(this),g=b.direction||"vertical",h="both"===g,i=h||"horizontal"===g,j=h||"vertical"===g;d=f.cssClip(),e.clip={top:j?(d.bottom-d.top)/2:d.top,right:i?(d.right-d.left)/2:d.right,bottom:j?(d.bottom-d.top)/2:d.bottom,left:i?(d.right-d.left)/2:d.left},a.effects.createPlaceholder(f),"show"===b.mode&&(f.cssClip(e.clip),e.clip=d),f.animate(e,{queue:!1,duration:b.duration,easing:b.easing,complete:c})})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect"],a):a(jQuery)}(function(a){return a.effects.define("drop","hide",function(b,c){var d,e=a(this),f=b.mode,g="show"===f,h=b.direction||"left",i="up"===h||"down"===h?"top":"left",j="up"===h||"left"===h?"-=":"+=",k="+="===j?"-=":"+=",l={opacity:0};a.effects.createPlaceholder(e),d=b.distance||e["top"===i?"outerHeight":"outerWidth"](!0)/2,l[i]=j+d,g&&(e.css(l),l[i]=k+d,l.opacity=1),e.animate(l,{queue:!1,duration:b.duration,easing:b.easing,complete:c})})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect"],a):a(jQuery)}(function(a){return a.effects.define("explode","hide",function(b,c){function d(){t.push(this),t.length===l*m&&e()}function e(){n.css({visibility:"visible"}),a(t).remove(),c()}var f,g,h,i,j,k,l=b.pieces?Math.round(Math.sqrt(b.pieces)):3,m=l,n=a(this),o=b.mode,p="show"===o,q=n.show().css("visibility","hidden").offset(),r=Math.ceil(n.outerWidth()/m),s=Math.ceil(n.outerHeight()/l),t=[];for(f=0;f<l;f++)for(i=q.top+f*s,k=f-(l-1)/2,g=0;g<m;g++)h=q.left+g*r,j=g-(m-1)/2,n.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-g*r,top:-f*s}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:r,height:s,left:h+(p?j*r:0),top:i+(p?k*s:0),opacity:p?0:1}).animate({left:h+(p?0:j*r),top:i+(p?0:k*s),opacity:p?1:0},b.duration||500,b.easing,d)})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect"],a):a(jQuery)}(function(a){return a.effects.define("fade","toggle",function(b,c){var d="show"===b.mode;a(this).css("opacity",d?0:1).animate({opacity:d?1:0},{queue:!1,duration:b.duration,easing:b.easing,complete:c})})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect"],a):a(jQuery)}(function(a){return a.effects.define("fold","hide",function(b,c){var d=a(this),e=b.mode,f="show"===e,g="hide"===e,h=b.size||15,i=/([0-9]+)%/.exec(h),j=!!b.horizFirst,k=j?["right","bottom"]:["bottom","right"],l=b.duration/2,m=a.effects.createPlaceholder(d),n=d.cssClip(),o={clip:a.extend({},n)},p={clip:a.extend({},n)},q=[n[k[0]],n[k[1]]],r=d.queue().length;i&&(h=parseInt(i[1],10)/100*q[g?0:1]),o.clip[k[0]]=h,p.clip[k[0]]=h,p.clip[k[1]]=0,f&&(d.cssClip(p.clip),m&&m.css(a.effects.clipToBox(p)),p.clip=n),d.queue(function(c){m&&m.animate(a.effects.clipToBox(o),l,b.easing).animate(a.effects.clipToBox(p),l,b.easing),c()}).animate(o,l,b.easing).animate(p,l,b.easing).queue(c),a.effects.unshift(d,r,4)})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect"],a):a(jQuery)}(function(a){return a.effects.define("highlight","show",function(b,c){var d=a(this),e={backgroundColor:d.css("backgroundColor")};"hide"===b.mode&&(e.opacity=0),a.effects.saveStyle(d),d.css({backgroundImage:"none",backgroundColor:b.color||"#ffff99"}).animate(e,{queue:!1,duration:b.duration,easing:b.easing,complete:c})})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect","./effect-scale"],a):a(jQuery)}(function(a){return a.effects.define("puff","hide",function(b,c){var d=a.extend(!0,{},b,{fade:!0,percent:parseInt(b.percent,10)||150});a.effects.effect.scale.call(this,d,c)})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect"],a):a(jQuery)}(function(a){return a.effects.define("pulsate","show",function(b,c){var d=a(this),e=b.mode,f="show"===e,g="hide"===e,h=f||g,i=2*(b.times||5)+(h?1:0),j=b.duration/i,k=0,l=1,m=d.queue().length;for(!f&&d.is(":visible")||(d.css("opacity",0).show(),k=1);l<i;l++)d.animate({opacity:k},j,b.easing),k=1-k;d.animate({opacity:k},j,b.easing),d.queue(c),a.effects.unshift(d,m,i+1)})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect","./effect-size"],a):a(jQuery)}(function(a){return a.effects.define("scale",function(b,c){var d=a(this),e=b.mode,f=parseInt(b.percent,10)||(0===parseInt(b.percent,10)?0:"effect"!==e?0:100),g=a.extend(!0,{from:a.effects.scaledDimensions(d),to:a.effects.scaledDimensions(d,f,b.direction||"both"),origin:b.origin||["middle","center"]},b);b.fade&&(g.from.opacity=1,g.to.opacity=0),a.effects.effect.size.call(this,g,c)})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect"],a):a(jQuery)}(function(a){return a.effects.define("shake",function(b,c){var d=1,e=a(this),f=b.direction||"left",g=b.distance||20,h=b.times||3,i=2*h+1,j=Math.round(b.duration/i),k="up"===f||"down"===f?"top":"left",l="up"===f||"left"===f,m={},n={},o={},p=e.queue().length;for(a.effects.createPlaceholder(e),m[k]=(l?"-=":"+=")+g,n[k]=(l?"+=":"-=")+2*g,o[k]=(l?"-=":"+=")+2*g,e.animate(m,j,b.easing);d<h;d++)e.animate(n,j,b.easing).animate(o,j,b.easing);e.animate(n,j,b.easing).animate(m,j/2,b.easing).queue(c),a.effects.unshift(e,p,i+1)})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect"],a):a(jQuery)}(function(a){return a.effects.define("size",function(b,c){var d,e,f,g=a(this),h=["fontSize"],i=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],j=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],k=b.mode,l="effect"!==k,m=b.scale||"both",n=b.origin||["middle","center"],o=g.css("position"),p=g.position(),q=a.effects.scaledDimensions(g),r=b.from||q,s=b.to||a.effects.scaledDimensions(g,0);a.effects.createPlaceholder(g),"show"===k&&(f=r,r=s,s=f),e={from:{y:r.height/q.height,x:r.width/q.width},to:{y:s.height/q.height,x:s.width/q.width}},"box"!==m&&"both"!==m||(e.from.y!==e.to.y&&(r=a.effects.setTransition(g,i,e.from.y,r),s=a.effects.setTransition(g,i,e.to.y,s)),e.from.x!==e.to.x&&(r=a.effects.setTransition(g,j,e.from.x,r),s=a.effects.setTransition(g,j,e.to.x,s))),"content"!==m&&"both"!==m||e.from.y!==e.to.y&&(r=a.effects.setTransition(g,h,e.from.y,r),s=a.effects.setTransition(g,h,e.to.y,s)),n&&(d=a.effects.getBaseline(n,q),r.top=(q.outerHeight-r.outerHeight)*d.y+p.top,r.left=(q.outerWidth-r.outerWidth)*d.x+p.left,s.top=(q.outerHeight-s.outerHeight)*d.y+p.top,s.left=(q.outerWidth-s.outerWidth)*d.x+p.left),g.css(r),"content"!==m&&"both"!==m||(i=i.concat(["marginTop","marginBottom"]).concat(h),j=j.concat(["marginLeft","marginRight"]),g.find("*[width]").each(function(){var c=a(this),d=a.effects.scaledDimensions(c),f={height:d.height*e.from.y,width:d.width*e.from.x,outerHeight:d.outerHeight*e.from.y,outerWidth:d.outerWidth*e.from.x},g={height:d.height*e.to.y,width:d.width*e.to.x,outerHeight:d.height*e.to.y,outerWidth:d.width*e.to.x};e.from.y!==e.to.y&&(f=a.effects.setTransition(c,i,e.from.y,f),g=a.effects.setTransition(c,i,e.to.y,g)),e.from.x!==e.to.x&&(f=a.effects.setTransition(c,j,e.from.x,f),g=a.effects.setTransition(c,j,e.to.x,g)),l&&a.effects.saveStyle(c),c.css(f),c.animate(g,b.duration,b.easing,function(){l&&a.effects.restoreStyle(c)})})),g.animate(s,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){var b=g.offset();0===s.opacity&&g.css("opacity",r.opacity),l||(g.css("position","static"===o?"relative":o).offset(b),a.effects.saveStyle(g)),c()}})})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect"],a):a(jQuery)}(function(a){return a.effects.define("slide","show",function(b,c){var d,e,f=a(this),g={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},h=b.mode,i=b.direction||"left",j="up"===i||"down"===i?"top":"left",k="up"===i||"left"===i,l=b.distance||f["top"===j?"outerHeight":"outerWidth"](!0),m={};a.effects.createPlaceholder(f),d=f.cssClip(),e=f.position()[j],m[j]=(k?-1:1)*l+e,m.clip=f.cssClip(),m.clip[g[i][1]]=m.clip[g[i][0]],"show"===h&&(f.cssClip(m.clip),f.css(j,m[j]),m.clip=d,m[j]=e),f.animate(m,{queue:!1,duration:b.duration,easing:b.easing,complete:c})})});
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../effect"],a):a(jQuery)}(function(a){var b;return a.uiBackCompat!==!1&&(b=a.effects.define("transfer",function(b,c){a(this).transfer(b,c)})),b});
|
|
@ -1,4 +1 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version"],a):a(jQuery)}(function(a){return a.ui.escapeSelector=function(){var a=/([!"#$%&'()*+,.\/:;<=>?@[\]^`{|}~])/g;return function(b){return b.replace(a,"\\$1")}}()});
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){return e.ui.escapeSelector=(n=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g,function(e){return e.replace(n,"\\$1")});var n}));
|
|
@ -0,0 +1,21 @@
|
|||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
|
||||
// Internal use only
|
||||
return $.ui.escapeSelector = ( function() {
|
||||
var selectorEscape = /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;
|
||||
return function( selector ) {
|
||||
return selector.replace( selectorEscape, "\\$1" );
|
||||
};
|
||||
} )();
|
||||
|
||||
} ) );
|
|
@ -1,4 +1,9 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version"],a):a(jQuery)}(function(a){function b(a){for(var b=a.css("visibility");"inherit"===b;)a=a.parent(),b=a.css("visibility");return"hidden"!==b}return a.ui.focusable=function(c,d){var e,f,g,h,i,j=c.nodeName.toLowerCase();return"area"===j?(e=c.parentNode,f=e.name,!(!c.href||!f||"map"!==e.nodeName.toLowerCase())&&(g=a("img[usemap='#"+f+"']"),g.length>0&&g.is(":visible"))):(/^(input|select|textarea|button|object)$/.test(j)?(h=!c.disabled,h&&(i=a(c).closest("fieldset")[0],i&&(h=!i.disabled))):h="a"===j?c.href||d:d,h&&a(c).is(":visible")&&b(a(c)))},a.extend(a.expr[":"],{focusable:function(b){return a.ui.focusable(b,null!=a.attr(b,"tabindex"))}}),a.ui.focusable});
|
||||
/*!
|
||||
* jQuery UI Focusable 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){return e.ui.focusable=function(i,t){var n,a,r,s,o,u=i.nodeName.toLowerCase();return"area"===u?(a=(n=i.parentNode).name,!(!i.href||!a||"map"!==n.nodeName.toLowerCase())&&((r=e("img[usemap='#"+a+"']")).length>0&&r.is(":visible"))):(/^(input|select|textarea|button|object)$/.test(u)?(s=!i.disabled)&&(o=e(i).closest("fieldset")[0])&&(s=!o.disabled):s="a"===u&&i.href||t,s&&e(i).is(":visible")&&function(e){var i=e.css("visibility");for(;"inherit"===i;)e=e.parent(),i=e.css("visibility");return"hidden"!==i}(e(i)))},e.extend(e.expr[":"],{focusable:function(i){return e.ui.focusable(i,null!=e.attr(i,"tabindex"))}}),e.ui.focusable}));
|
|
@ -0,0 +1,84 @@
|
|||
/*!
|
||||
* jQuery UI Focusable 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: :focusable Selector
|
||||
//>>group: Core
|
||||
//>>description: Selects elements which can be focused.
|
||||
//>>docs: http://api.jqueryui.com/focusable-selector/
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
|
||||
// Selectors
|
||||
$.ui.focusable = function( element, hasTabindex ) {
|
||||
var map, mapName, img, focusableIfVisible, fieldset,
|
||||
nodeName = element.nodeName.toLowerCase();
|
||||
|
||||
if ( "area" === nodeName ) {
|
||||
map = element.parentNode;
|
||||
mapName = map.name;
|
||||
if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
|
||||
return false;
|
||||
}
|
||||
img = $( "img[usemap='#" + mapName + "']" );
|
||||
return img.length > 0 && img.is( ":visible" );
|
||||
}
|
||||
|
||||
if ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) {
|
||||
focusableIfVisible = !element.disabled;
|
||||
|
||||
if ( focusableIfVisible ) {
|
||||
|
||||
// Form controls within a disabled fieldset are disabled.
|
||||
// However, controls within the fieldset's legend do not get disabled.
|
||||
// Since controls generally aren't placed inside legends, we skip
|
||||
// this portion of the check.
|
||||
fieldset = $( element ).closest( "fieldset" )[ 0 ];
|
||||
if ( fieldset ) {
|
||||
focusableIfVisible = !fieldset.disabled;
|
||||
}
|
||||
}
|
||||
} else if ( "a" === nodeName ) {
|
||||
focusableIfVisible = element.href || hasTabindex;
|
||||
} else {
|
||||
focusableIfVisible = hasTabindex;
|
||||
}
|
||||
|
||||
return focusableIfVisible && $( element ).is( ":visible" ) && visible( $( element ) );
|
||||
};
|
||||
|
||||
// Support: IE 8 only
|
||||
// IE 8 doesn't resolve inherit to visible/hidden for computed values
|
||||
function visible( element ) {
|
||||
var visibility = element.css( "visibility" );
|
||||
while ( visibility === "inherit" ) {
|
||||
element = element.parent();
|
||||
visibility = element.css( "visibility" );
|
||||
}
|
||||
return visibility !== "hidden";
|
||||
}
|
||||
|
||||
$.extend( $.expr[ ":" ], {
|
||||
focusable: function( element ) {
|
||||
return $.ui.focusable( element, $.attr( element, "tabindex" ) != null );
|
||||
}
|
||||
} );
|
||||
|
||||
return $.ui.focusable;
|
||||
|
||||
} ) );
|
|
@ -1,4 +1 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version"],a):a(jQuery)}(function(a){return a.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):a(this[0].form)}});
|
||||
!function(n){"function"==typeof define&&define.amd?define(["jquery","./version"],n):n(jQuery)}((function(n){return n.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):n(this[0].form)}}));
|
|
@ -1,4 +1,9 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./form","./version"],a):a(jQuery)}(function(a){return a.ui.formResetMixin={_formResetHandler:function(){var b=a(this);setTimeout(function(){var c=b.data("ui-form-reset-instances");a.each(c,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var a=this.form.data("ui-form-reset-instances")||[];a.length||this.form.on("reset.ui-form-reset",this._formResetHandler),a.push(this),this.form.data("ui-form-reset-instances",a)}},_unbindFormResetHandler:function(){if(this.form.length){var b=this.form.data("ui-form-reset-instances");b.splice(a.inArray(this,b),1),b.length?this.form.data("ui-form-reset-instances",b):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}}});
|
||||
/*!
|
||||
* jQuery UI Form Reset Mixin 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery","./form","./version"],e):e(jQuery)}((function(e){return e.ui.formResetMixin={_formResetHandler:function(){var t=e(this);setTimeout((function(){var r=t.data("ui-form-reset-instances");e.each(r,(function(){this.refresh()}))}))},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var e=this.form.data("ui-form-reset-instances")||[];e.length||this.form.on("reset.ui-form-reset",this._formResetHandler),e.push(this),this.form.data("ui-form-reset-instances",e)}},_unbindFormResetHandler:function(){if(this.form.length){var t=this.form.data("ui-form-reset-instances");t.splice(e.inArray(this,t),1),t.length?this.form.data("ui-form-reset-instances",t):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}}}));
|
|
@ -0,0 +1,77 @@
|
|||
/*!
|
||||
* jQuery UI Form Reset Mixin 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: Form Reset Mixin
|
||||
//>>group: Core
|
||||
//>>description: Refresh input widgets when their form is reset
|
||||
//>>docs: http://api.jqueryui.com/form-reset-mixin/
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [
|
||||
"jquery",
|
||||
"./form",
|
||||
"./version"
|
||||
], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
}( function( $ ) {
|
||||
|
||||
return $.ui.formResetMixin = {
|
||||
_formResetHandler: function() {
|
||||
var form = $( this );
|
||||
|
||||
// Wait for the form reset to actually happen before refreshing
|
||||
setTimeout( function() {
|
||||
var instances = form.data( "ui-form-reset-instances" );
|
||||
$.each( instances, function() {
|
||||
this.refresh();
|
||||
} );
|
||||
} );
|
||||
},
|
||||
|
||||
_bindFormResetHandler: function() {
|
||||
this.form = this.element.form();
|
||||
if ( !this.form.length ) {
|
||||
return;
|
||||
}
|
||||
|
||||
var instances = this.form.data( "ui-form-reset-instances" ) || [];
|
||||
if ( !instances.length ) {
|
||||
|
||||
// We don't use _on() here because we use a single event handler per form
|
||||
this.form.on( "reset.ui-form-reset", this._formResetHandler );
|
||||
}
|
||||
instances.push( this );
|
||||
this.form.data( "ui-form-reset-instances", instances );
|
||||
},
|
||||
|
||||
_unbindFormResetHandler: function() {
|
||||
if ( !this.form.length ) {
|
||||
return;
|
||||
}
|
||||
|
||||
var instances = this.form.data( "ui-form-reset-instances" );
|
||||
instances.splice( $.inArray( this, instances ), 1 );
|
||||
if ( instances.length ) {
|
||||
this.form.data( "ui-form-reset-instances", instances );
|
||||
} else {
|
||||
this.form
|
||||
.removeData( "ui-form-reset-instances" )
|
||||
.off( "reset.ui-form-reset" );
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
} ) );
|
|
@ -0,0 +1,20 @@
|
|||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
|
||||
// Support: IE8 Only
|
||||
// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop
|
||||
// with a string, so we need to find the proper form.
|
||||
return $.fn.form = function() {
|
||||
return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form );
|
||||
};
|
||||
|
||||
} ) );
|
|
@ -1,4 +1 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version"],a):a(jQuery)}(function(a){return a.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())});
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){return e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())}));
|
|
@ -0,0 +1,15 @@
|
|||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
|
||||
// This file is deprecated
|
||||
return $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
|
||||
} ) );
|
|
@ -1,4 +1,10 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version"],a):a(jQuery)}(function(a){"1.7"===a.fn.jquery.substring(0,3)&&(a.each(["Width","Height"],function(b,c){function d(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.css(b,"padding"+this))||0,d&&(c-=parseFloat(a.css(b,"border"+this+"Width"))||0),f&&(c-=parseFloat(a.css(b,"margin"+this))||0)}),c}var e="Width"===c?["Left","Right"]:["Top","Bottom"],f=c.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+c]=function(b){return void 0===b?g["inner"+c].call(this):this.each(function(){a(this).css(f,d(this,b)+"px")})},a.fn["outer"+c]=function(b,e){return"number"!=typeof b?g["outer"+c].call(this,b):this.each(function(){a(this).css(f,d(this,b,!0,e)+"px")})}}),a.fn.addBack=function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))})});
|
||||
/*!
|
||||
* jQuery UI Support for jQuery core 1.7.x 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
*/
|
||||
!function(t){"function"==typeof define&&define.amd?define(["jquery","./version"],t):t(jQuery)}((function(t){"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],(function(n,i){var e="Width"===i?["Left","Right"]:["Top","Bottom"],r=i.toLowerCase(),h={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};function s(n,i,r,h){return t.each(e,(function(){i-=parseFloat(t.css(n,"padding"+this))||0,r&&(i-=parseFloat(t.css(n,"border"+this+"Width"))||0),h&&(i-=parseFloat(t.css(n,"margin"+this))||0)})),i}t.fn["inner"+i]=function(n){return void 0===n?h["inner"+i].call(this):this.each((function(){t(this).css(r,s(this,n)+"px")}))},t.fn["outer"+i]=function(n,e){return"number"!=typeof n?h["outer"+i].call(this,n):this.each((function(){t(this).css(r,s(this,n,!0,e)+"px")}))}})),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))})}));
|
|
@ -0,0 +1,89 @@
|
|||
/*!
|
||||
* jQuery UI Support for jQuery core 1.7.x 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
*/
|
||||
|
||||
//>>label: jQuery 1.7 Support
|
||||
//>>group: Core
|
||||
//>>description: Support version 1.7.x of jQuery core
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
}( function( $ ) {
|
||||
|
||||
// Support: jQuery 1.7 only
|
||||
// Not a great way to check versions, but since we only support 1.7+ and only
|
||||
// need to detect <1.8, this is a simple check that should suffice. Checking
|
||||
// for "1.7." would be a bit safer, but the version string is 1.7, not 1.7.0
|
||||
// and we'll never reach 1.70.0 (if we do, we certainly won't be supporting
|
||||
// 1.7 anymore). See #11197 for why we're not using feature detection.
|
||||
if ( $.fn.jquery.substring( 0, 3 ) === "1.7" ) {
|
||||
|
||||
// Setters for .innerWidth(), .innerHeight(), .outerWidth(), .outerHeight()
|
||||
// Unlike jQuery Core 1.8+, these only support numeric values to set the
|
||||
// dimensions in pixels
|
||||
$.each( [ "Width", "Height" ], function( i, name ) {
|
||||
var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
|
||||
type = name.toLowerCase(),
|
||||
orig = {
|
||||
innerWidth: $.fn.innerWidth,
|
||||
innerHeight: $.fn.innerHeight,
|
||||
outerWidth: $.fn.outerWidth,
|
||||
outerHeight: $.fn.outerHeight
|
||||
};
|
||||
|
||||
function reduce( elem, size, border, margin ) {
|
||||
$.each( side, function() {
|
||||
size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
|
||||
if ( border ) {
|
||||
size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
|
||||
}
|
||||
if ( margin ) {
|
||||
size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
|
||||
}
|
||||
} );
|
||||
return size;
|
||||
}
|
||||
|
||||
$.fn[ "inner" + name ] = function( size ) {
|
||||
if ( size === undefined ) {
|
||||
return orig[ "inner" + name ].call( this );
|
||||
}
|
||||
|
||||
return this.each( function() {
|
||||
$( this ).css( type, reduce( this, size ) + "px" );
|
||||
} );
|
||||
};
|
||||
|
||||
$.fn[ "outer" + name ] = function( size, margin ) {
|
||||
if ( typeof size !== "number" ) {
|
||||
return orig[ "outer" + name ].call( this, size );
|
||||
}
|
||||
|
||||
return this.each( function() {
|
||||
$( this ).css( type, reduce( this, size, true, margin ) + "px" );
|
||||
} );
|
||||
};
|
||||
} );
|
||||
|
||||
$.fn.addBack = function( selector ) {
|
||||
return this.add( selector == null ?
|
||||
this.prevObject : this.prevObject.filter( selector )
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
} ) );
|
|
@ -1,4 +1,9 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version"],a):a(jQuery)}(function(a){return a.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}});
|
||||
/*!
|
||||
* jQuery UI Keycode 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
!function(E){"function"==typeof define&&define.amd?define(["jquery","./version"],E):E(jQuery)}((function(E){return E.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}));
|
|
@ -0,0 +1,45 @@
|
|||
/*!
|
||||
* jQuery UI Keycode 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: Keycode
|
||||
//>>group: Core
|
||||
//>>description: Provide keycodes as keynames
|
||||
//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
return $.ui.keyCode = {
|
||||
BACKSPACE: 8,
|
||||
COMMA: 188,
|
||||
DELETE: 46,
|
||||
DOWN: 40,
|
||||
END: 35,
|
||||
ENTER: 13,
|
||||
ESCAPE: 27,
|
||||
HOME: 36,
|
||||
LEFT: 37,
|
||||
PAGE_DOWN: 34,
|
||||
PAGE_UP: 33,
|
||||
PERIOD: 190,
|
||||
RIGHT: 39,
|
||||
SPACE: 32,
|
||||
TAB: 9,
|
||||
UP: 38
|
||||
};
|
||||
|
||||
} ) );
|
|
@ -1,4 +1,9 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version","./escape-selector"],a):a(jQuery)}(function(a){return a.fn.labels=function(){var b,c,d,e,f;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(e=this.eq(0).parents("label"),d=this.attr("id"),d&&(b=this.eq(0).parents().last(),f=b.add(b.length?b.siblings():this.siblings()),c="label[for='"+a.ui.escapeSelector(d)+"']",e=e.add(f.find(c).addBack(c))),this.pushStack(e))}});
|
||||
/*!
|
||||
* jQuery UI Labels 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery","./version","./escape-selector"],e):e(jQuery)}((function(e){return e.fn.labels=function(){var t,s,i,n,a;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),(i=this.attr("id"))&&(a=(t=this.eq(0).parents().last()).add(t.length?t.siblings():this.siblings()),s="label[for='"+e.ui.escapeSelector(i)+"']",n=n.add(a.find(s).addBack(s))),this.pushStack(n))}}));
|
|
@ -0,0 +1,62 @@
|
|||
/*!
|
||||
* jQuery UI Labels 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: labels
|
||||
//>>group: Core
|
||||
//>>description: Find all the labels associated with a given input
|
||||
//>>docs: http://api.jqueryui.com/labels/
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version", "./escape-selector" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
|
||||
return $.fn.labels = function() {
|
||||
var ancestor, selector, id, labels, ancestors;
|
||||
|
||||
// Check control.labels first
|
||||
if ( this[ 0 ].labels && this[ 0 ].labels.length ) {
|
||||
return this.pushStack( this[ 0 ].labels );
|
||||
}
|
||||
|
||||
// Support: IE <= 11, FF <= 37, Android <= 2.3 only
|
||||
// Above browsers do not support control.labels. Everything below is to support them
|
||||
// as well as document fragments. control.labels does not work on document fragments
|
||||
labels = this.eq( 0 ).parents( "label" );
|
||||
|
||||
// Look for the label based on the id
|
||||
id = this.attr( "id" );
|
||||
if ( id ) {
|
||||
|
||||
// We don't search against the document in case the element
|
||||
// is disconnected from the DOM
|
||||
ancestor = this.eq( 0 ).parents().last();
|
||||
|
||||
// Get a full set of top level ancestors
|
||||
ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() );
|
||||
|
||||
// Create a selector for the label based on the id
|
||||
selector = "label[for='" + $.ui.escapeSelector( id ) + "']";
|
||||
|
||||
labels = labels.add( ancestors.find( selector ).addBack( selector ) );
|
||||
|
||||
}
|
||||
|
||||
// Return whatever we have found for labels
|
||||
return this.pushStack( labels );
|
||||
};
|
||||
|
||||
} ) );
|
|
@ -1,4 +1 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version"],a):a(jQuery)}(function(a){return a.ui.plugin={add:function(b,c,d){var e,f=a.ui[b].prototype;for(e in d)f.plugins[e]=f.plugins[e]||[],f.plugins[e].push([c,d[e]])},call:function(a,b,c,d){var e,f=a.plugins[b];if(f&&(d||a.element[0].parentNode&&11!==a.element[0].parentNode.nodeType))for(e=0;e<f.length;e++)a.options[f[e][0]]&&f[e][1].apply(a.element,c)}}});
|
||||
!function(n){"function"==typeof define&&define.amd?define(["jquery","./version"],n):n(jQuery)}((function(n){return n.ui.plugin={add:function(e,i,o){var t,u=n.ui[e].prototype;for(t in o)u.plugins[t]=u.plugins[t]||[],u.plugins[t].push([i,o[t]])},call:function(n,e,i,o){var t,u=n.plugins[e];if(u&&(o||n.element[0].parentNode&&11!==n.element[0].parentNode.nodeType))for(t=0;t<u.length;t++)n.options[u[t][0]]&&u[t][1].apply(n.element,i)}}}));
|
|
@ -0,0 +1,44 @@
|
|||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
|
||||
// $.ui.plugin is deprecated. Use $.widget() extensions instead.
|
||||
return $.ui.plugin = {
|
||||
add: function( module, option, set ) {
|
||||
var i,
|
||||
proto = $.ui[ module ].prototype;
|
||||
for ( i in set ) {
|
||||
proto.plugins[ i ] = proto.plugins[ i ] || [];
|
||||
proto.plugins[ i ].push( [ option, set[ i ] ] );
|
||||
}
|
||||
},
|
||||
call: function( instance, name, args, allowDisconnected ) {
|
||||
var i,
|
||||
set = instance.plugins[ name ];
|
||||
|
||||
if ( !set ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode ||
|
||||
instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( i = 0; i < set.length; i++ ) {
|
||||
if ( instance.options[ set[ i ][ 0 ] ] ) {
|
||||
set[ i ][ 1 ].apply( instance.element, args );
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
} ) );
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,498 @@
|
|||
/*!
|
||||
* jQuery UI Position 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/position/
|
||||
*/
|
||||
|
||||
//>>label: Position
|
||||
//>>group: Core
|
||||
//>>description: Positions elements relative to other elements.
|
||||
//>>docs: http://api.jqueryui.com/position/
|
||||
//>>demos: http://jqueryui.com/position/
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
}( function( $ ) {
|
||||
( function() {
|
||||
var cachedScrollbarWidth,
|
||||
max = Math.max,
|
||||
abs = Math.abs,
|
||||
rhorizontal = /left|center|right/,
|
||||
rvertical = /top|center|bottom/,
|
||||
roffset = /[\+\-]\d+(\.[\d]+)?%?/,
|
||||
rposition = /^\w+/,
|
||||
rpercent = /%$/,
|
||||
_position = $.fn.position;
|
||||
|
||||
function getOffsets( offsets, width, height ) {
|
||||
return [
|
||||
parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
|
||||
parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
|
||||
];
|
||||
}
|
||||
|
||||
function parseCss( element, property ) {
|
||||
return parseInt( $.css( element, property ), 10 ) || 0;
|
||||
}
|
||||
|
||||
function getDimensions( elem ) {
|
||||
var raw = elem[ 0 ];
|
||||
if ( raw.nodeType === 9 ) {
|
||||
return {
|
||||
width: elem.width(),
|
||||
height: elem.height(),
|
||||
offset: { top: 0, left: 0 }
|
||||
};
|
||||
}
|
||||
if ( $.isWindow( raw ) ) {
|
||||
return {
|
||||
width: elem.width(),
|
||||
height: elem.height(),
|
||||
offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
|
||||
};
|
||||
}
|
||||
if ( raw.preventDefault ) {
|
||||
return {
|
||||
width: 0,
|
||||
height: 0,
|
||||
offset: { top: raw.pageY, left: raw.pageX }
|
||||
};
|
||||
}
|
||||
return {
|
||||
width: elem.outerWidth(),
|
||||
height: elem.outerHeight(),
|
||||
offset: elem.offset()
|
||||
};
|
||||
}
|
||||
|
||||
$.position = {
|
||||
scrollbarWidth: function() {
|
||||
if ( cachedScrollbarWidth !== undefined ) {
|
||||
return cachedScrollbarWidth;
|
||||
}
|
||||
var w1, w2,
|
||||
div = $( "<div " +
|
||||
"style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'>" +
|
||||
"<div style='height:100px;width:auto;'></div></div>" ),
|
||||
innerDiv = div.children()[ 0 ];
|
||||
|
||||
$( "body" ).append( div );
|
||||
w1 = innerDiv.offsetWidth;
|
||||
div.css( "overflow", "scroll" );
|
||||
|
||||
w2 = innerDiv.offsetWidth;
|
||||
|
||||
if ( w1 === w2 ) {
|
||||
w2 = div[ 0 ].clientWidth;
|
||||
}
|
||||
|
||||
div.remove();
|
||||
|
||||
return ( cachedScrollbarWidth = w1 - w2 );
|
||||
},
|
||||
getScrollInfo: function( within ) {
|
||||
var overflowX = within.isWindow || within.isDocument ? "" :
|
||||
within.element.css( "overflow-x" ),
|
||||
overflowY = within.isWindow || within.isDocument ? "" :
|
||||
within.element.css( "overflow-y" ),
|
||||
hasOverflowX = overflowX === "scroll" ||
|
||||
( overflowX === "auto" && within.width < within.element[ 0 ].scrollWidth ),
|
||||
hasOverflowY = overflowY === "scroll" ||
|
||||
( overflowY === "auto" && within.height < within.element[ 0 ].scrollHeight );
|
||||
return {
|
||||
width: hasOverflowY ? $.position.scrollbarWidth() : 0,
|
||||
height: hasOverflowX ? $.position.scrollbarWidth() : 0
|
||||
};
|
||||
},
|
||||
getWithinInfo: function( element ) {
|
||||
var withinElement = $( element || window ),
|
||||
isWindow = $.isWindow( withinElement[ 0 ] ),
|
||||
isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9,
|
||||
hasOffset = !isWindow && !isDocument;
|
||||
return {
|
||||
element: withinElement,
|
||||
isWindow: isWindow,
|
||||
isDocument: isDocument,
|
||||
offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 },
|
||||
scrollLeft: withinElement.scrollLeft(),
|
||||
scrollTop: withinElement.scrollTop(),
|
||||
width: withinElement.outerWidth(),
|
||||
height: withinElement.outerHeight()
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.position = function( options ) {
|
||||
if ( !options || !options.of ) {
|
||||
return _position.apply( this, arguments );
|
||||
}
|
||||
|
||||
// Make a copy, we don't want to modify arguments
|
||||
options = $.extend( {}, options );
|
||||
|
||||
var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
|
||||
target = $( options.of ),
|
||||
within = $.position.getWithinInfo( options.within ),
|
||||
scrollInfo = $.position.getScrollInfo( within ),
|
||||
collision = ( options.collision || "flip" ).split( " " ),
|
||||
offsets = {};
|
||||
|
||||
dimensions = getDimensions( target );
|
||||
if ( target[ 0 ].preventDefault ) {
|
||||
|
||||
// Force left top to allow flipping
|
||||
options.at = "left top";
|
||||
}
|
||||
targetWidth = dimensions.width;
|
||||
targetHeight = dimensions.height;
|
||||
targetOffset = dimensions.offset;
|
||||
|
||||
// Clone to reuse original targetOffset later
|
||||
basePosition = $.extend( {}, targetOffset );
|
||||
|
||||
// Force my and at to have valid horizontal and vertical positions
|
||||
// if a value is missing or invalid, it will be converted to center
|
||||
$.each( [ "my", "at" ], function() {
|
||||
var pos = ( options[ this ] || "" ).split( " " ),
|
||||
horizontalOffset,
|
||||
verticalOffset;
|
||||
|
||||
if ( pos.length === 1 ) {
|
||||
pos = rhorizontal.test( pos[ 0 ] ) ?
|
||||
pos.concat( [ "center" ] ) :
|
||||
rvertical.test( pos[ 0 ] ) ?
|
||||
[ "center" ].concat( pos ) :
|
||||
[ "center", "center" ];
|
||||
}
|
||||
pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
|
||||
pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
|
||||
|
||||
// Calculate offsets
|
||||
horizontalOffset = roffset.exec( pos[ 0 ] );
|
||||
verticalOffset = roffset.exec( pos[ 1 ] );
|
||||
offsets[ this ] = [
|
||||
horizontalOffset ? horizontalOffset[ 0 ] : 0,
|
||||
verticalOffset ? verticalOffset[ 0 ] : 0
|
||||
];
|
||||
|
||||
// Reduce to just the positions without the offsets
|
||||
options[ this ] = [
|
||||
rposition.exec( pos[ 0 ] )[ 0 ],
|
||||
rposition.exec( pos[ 1 ] )[ 0 ]
|
||||
];
|
||||
} );
|
||||
|
||||
// Normalize collision option
|
||||
if ( collision.length === 1 ) {
|
||||
collision[ 1 ] = collision[ 0 ];
|
||||
}
|
||||
|
||||
if ( options.at[ 0 ] === "right" ) {
|
||||
basePosition.left += targetWidth;
|
||||
} else if ( options.at[ 0 ] === "center" ) {
|
||||
basePosition.left += targetWidth / 2;
|
||||
}
|
||||
|
||||
if ( options.at[ 1 ] === "bottom" ) {
|
||||
basePosition.top += targetHeight;
|
||||
} else if ( options.at[ 1 ] === "center" ) {
|
||||
basePosition.top += targetHeight / 2;
|
||||
}
|
||||
|
||||
atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
|
||||
basePosition.left += atOffset[ 0 ];
|
||||
basePosition.top += atOffset[ 1 ];
|
||||
|
||||
return this.each( function() {
|
||||
var collisionPosition, using,
|
||||
elem = $( this ),
|
||||
elemWidth = elem.outerWidth(),
|
||||
elemHeight = elem.outerHeight(),
|
||||
marginLeft = parseCss( this, "marginLeft" ),
|
||||
marginTop = parseCss( this, "marginTop" ),
|
||||
collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) +
|
||||
scrollInfo.width,
|
||||
collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) +
|
||||
scrollInfo.height,
|
||||
position = $.extend( {}, basePosition ),
|
||||
myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
|
||||
|
||||
if ( options.my[ 0 ] === "right" ) {
|
||||
position.left -= elemWidth;
|
||||
} else if ( options.my[ 0 ] === "center" ) {
|
||||
position.left -= elemWidth / 2;
|
||||
}
|
||||
|
||||
if ( options.my[ 1 ] === "bottom" ) {
|
||||
position.top -= elemHeight;
|
||||
} else if ( options.my[ 1 ] === "center" ) {
|
||||
position.top -= elemHeight / 2;
|
||||
}
|
||||
|
||||
position.left += myOffset[ 0 ];
|
||||
position.top += myOffset[ 1 ];
|
||||
|
||||
collisionPosition = {
|
||||
marginLeft: marginLeft,
|
||||
marginTop: marginTop
|
||||
};
|
||||
|
||||
$.each( [ "left", "top" ], function( i, dir ) {
|
||||
if ( $.ui.position[ collision[ i ] ] ) {
|
||||
$.ui.position[ collision[ i ] ][ dir ]( position, {
|
||||
targetWidth: targetWidth,
|
||||
targetHeight: targetHeight,
|
||||
elemWidth: elemWidth,
|
||||
elemHeight: elemHeight,
|
||||
collisionPosition: collisionPosition,
|
||||
collisionWidth: collisionWidth,
|
||||
collisionHeight: collisionHeight,
|
||||
offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
|
||||
my: options.my,
|
||||
at: options.at,
|
||||
within: within,
|
||||
elem: elem
|
||||
} );
|
||||
}
|
||||
} );
|
||||
|
||||
if ( options.using ) {
|
||||
|
||||
// Adds feedback as second argument to using callback, if present
|
||||
using = function( props ) {
|
||||
var left = targetOffset.left - position.left,
|
||||
right = left + targetWidth - elemWidth,
|
||||
top = targetOffset.top - position.top,
|
||||
bottom = top + targetHeight - elemHeight,
|
||||
feedback = {
|
||||
target: {
|
||||
element: target,
|
||||
left: targetOffset.left,
|
||||
top: targetOffset.top,
|
||||
width: targetWidth,
|
||||
height: targetHeight
|
||||
},
|
||||
element: {
|
||||
element: elem,
|
||||
left: position.left,
|
||||
top: position.top,
|
||||
width: elemWidth,
|
||||
height: elemHeight
|
||||
},
|
||||
horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
|
||||
vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
|
||||
};
|
||||
if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
|
||||
feedback.horizontal = "center";
|
||||
}
|
||||
if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
|
||||
feedback.vertical = "middle";
|
||||
}
|
||||
if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
|
||||
feedback.important = "horizontal";
|
||||
} else {
|
||||
feedback.important = "vertical";
|
||||
}
|
||||
options.using.call( this, props, feedback );
|
||||
};
|
||||
}
|
||||
|
||||
elem.offset( $.extend( position, { using: using } ) );
|
||||
} );
|
||||
};
|
||||
|
||||
$.ui.position = {
|
||||
fit: {
|
||||
left: function( position, data ) {
|
||||
var within = data.within,
|
||||
withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
|
||||
outerWidth = within.width,
|
||||
collisionPosLeft = position.left - data.collisionPosition.marginLeft,
|
||||
overLeft = withinOffset - collisionPosLeft,
|
||||
overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
|
||||
newOverRight;
|
||||
|
||||
// Element is wider than within
|
||||
if ( data.collisionWidth > outerWidth ) {
|
||||
|
||||
// Element is initially over the left side of within
|
||||
if ( overLeft > 0 && overRight <= 0 ) {
|
||||
newOverRight = position.left + overLeft + data.collisionWidth - outerWidth -
|
||||
withinOffset;
|
||||
position.left += overLeft - newOverRight;
|
||||
|
||||
// Element is initially over right side of within
|
||||
} else if ( overRight > 0 && overLeft <= 0 ) {
|
||||
position.left = withinOffset;
|
||||
|
||||
// Element is initially over both left and right sides of within
|
||||
} else {
|
||||
if ( overLeft > overRight ) {
|
||||
position.left = withinOffset + outerWidth - data.collisionWidth;
|
||||
} else {
|
||||
position.left = withinOffset;
|
||||
}
|
||||
}
|
||||
|
||||
// Too far left -> align with left edge
|
||||
} else if ( overLeft > 0 ) {
|
||||
position.left += overLeft;
|
||||
|
||||
// Too far right -> align with right edge
|
||||
} else if ( overRight > 0 ) {
|
||||
position.left -= overRight;
|
||||
|
||||
// Adjust based on position and margin
|
||||
} else {
|
||||
position.left = max( position.left - collisionPosLeft, position.left );
|
||||
}
|
||||
},
|
||||
top: function( position, data ) {
|
||||
var within = data.within,
|
||||
withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
|
||||
outerHeight = data.within.height,
|
||||
collisionPosTop = position.top - data.collisionPosition.marginTop,
|
||||
overTop = withinOffset - collisionPosTop,
|
||||
overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
|
||||
newOverBottom;
|
||||
|
||||
// Element is taller than within
|
||||
if ( data.collisionHeight > outerHeight ) {
|
||||
|
||||
// Element is initially over the top of within
|
||||
if ( overTop > 0 && overBottom <= 0 ) {
|
||||
newOverBottom = position.top + overTop + data.collisionHeight - outerHeight -
|
||||
withinOffset;
|
||||
position.top += overTop - newOverBottom;
|
||||
|
||||
// Element is initially over bottom of within
|
||||
} else if ( overBottom > 0 && overTop <= 0 ) {
|
||||
position.top = withinOffset;
|
||||
|
||||
// Element is initially over both top and bottom of within
|
||||
} else {
|
||||
if ( overTop > overBottom ) {
|
||||
position.top = withinOffset + outerHeight - data.collisionHeight;
|
||||
} else {
|
||||
position.top = withinOffset;
|
||||
}
|
||||
}
|
||||
|
||||
// Too far up -> align with top
|
||||
} else if ( overTop > 0 ) {
|
||||
position.top += overTop;
|
||||
|
||||
// Too far down -> align with bottom edge
|
||||
} else if ( overBottom > 0 ) {
|
||||
position.top -= overBottom;
|
||||
|
||||
// Adjust based on position and margin
|
||||
} else {
|
||||
position.top = max( position.top - collisionPosTop, position.top );
|
||||
}
|
||||
}
|
||||
},
|
||||
flip: {
|
||||
left: function( position, data ) {
|
||||
var within = data.within,
|
||||
withinOffset = within.offset.left + within.scrollLeft,
|
||||
outerWidth = within.width,
|
||||
offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
|
||||
collisionPosLeft = position.left - data.collisionPosition.marginLeft,
|
||||
overLeft = collisionPosLeft - offsetLeft,
|
||||
overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
|
||||
myOffset = data.my[ 0 ] === "left" ?
|
||||
-data.elemWidth :
|
||||
data.my[ 0 ] === "right" ?
|
||||
data.elemWidth :
|
||||
0,
|
||||
atOffset = data.at[ 0 ] === "left" ?
|
||||
data.targetWidth :
|
||||
data.at[ 0 ] === "right" ?
|
||||
-data.targetWidth :
|
||||
0,
|
||||
offset = -2 * data.offset[ 0 ],
|
||||
newOverRight,
|
||||
newOverLeft;
|
||||
|
||||
if ( overLeft < 0 ) {
|
||||
newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth -
|
||||
outerWidth - withinOffset;
|
||||
if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
|
||||
position.left += myOffset + atOffset + offset;
|
||||
}
|
||||
} else if ( overRight > 0 ) {
|
||||
newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset +
|
||||
atOffset + offset - offsetLeft;
|
||||
if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
|
||||
position.left += myOffset + atOffset + offset;
|
||||
}
|
||||
}
|
||||
},
|
||||
top: function( position, data ) {
|
||||
var within = data.within,
|
||||
withinOffset = within.offset.top + within.scrollTop,
|
||||
outerHeight = within.height,
|
||||
offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
|
||||
collisionPosTop = position.top - data.collisionPosition.marginTop,
|
||||
overTop = collisionPosTop - offsetTop,
|
||||
overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
|
||||
top = data.my[ 1 ] === "top",
|
||||
myOffset = top ?
|
||||
-data.elemHeight :
|
||||
data.my[ 1 ] === "bottom" ?
|
||||
data.elemHeight :
|
||||
0,
|
||||
atOffset = data.at[ 1 ] === "top" ?
|
||||
data.targetHeight :
|
||||
data.at[ 1 ] === "bottom" ?
|
||||
-data.targetHeight :
|
||||
0,
|
||||
offset = -2 * data.offset[ 1 ],
|
||||
newOverTop,
|
||||
newOverBottom;
|
||||
if ( overTop < 0 ) {
|
||||
newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight -
|
||||
outerHeight - withinOffset;
|
||||
if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {
|
||||
position.top += myOffset + atOffset + offset;
|
||||
}
|
||||
} else if ( overBottom > 0 ) {
|
||||
newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset +
|
||||
offset - offsetTop;
|
||||
if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {
|
||||
position.top += myOffset + atOffset + offset;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
flipfit: {
|
||||
left: function() {
|
||||
$.ui.position.flip.left.apply( this, arguments );
|
||||
$.ui.position.fit.left.apply( this, arguments );
|
||||
},
|
||||
top: function() {
|
||||
$.ui.position.flip.top.apply( this, arguments );
|
||||
$.ui.position.fit.top.apply( this, arguments );
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
} )();
|
||||
|
||||
return $.ui.position;
|
||||
|
||||
} ) );
|
|
@ -1,4 +1 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version"],a):a(jQuery)}(function(a){return a.ui.safeActiveElement=function(a){var b;try{b=a.activeElement}catch(c){b=a.body}return b||(b=a.body),b.nodeName||(b=a.body),b}});
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){return e.ui.safeActiveElement=function(e){var n;try{n=e.activeElement}catch(t){n=e.body}return n||(n=e.body),n.nodeName||(n=e.body),n}}));
|
|
@ -0,0 +1,40 @@
|
|||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
return $.ui.safeActiveElement = function( document ) {
|
||||
var activeElement;
|
||||
|
||||
// Support: IE 9 only
|
||||
// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
|
||||
try {
|
||||
activeElement = document.activeElement;
|
||||
} catch ( error ) {
|
||||
activeElement = document.body;
|
||||
}
|
||||
|
||||
// Support: IE 9 - 11 only
|
||||
// IE may return null instead of an element
|
||||
// Interestingly, this only seems to occur when NOT in an iframe
|
||||
if ( !activeElement ) {
|
||||
activeElement = document.body;
|
||||
}
|
||||
|
||||
// Support: IE 11 only
|
||||
// IE11 returns a seemingly empty object in some cases when accessing
|
||||
// document.activeElement from an <iframe>
|
||||
if ( !activeElement.nodeName ) {
|
||||
activeElement = document.body;
|
||||
}
|
||||
|
||||
return activeElement;
|
||||
};
|
||||
|
||||
} ) );
|
|
@ -1,4 +1 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version"],a):a(jQuery)}(function(a){return a.ui.safeBlur=function(b){b&&"body"!==b.nodeName.toLowerCase()&&a(b).trigger("blur")}});
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){return e.ui.safeBlur=function(n){n&&"body"!==n.nodeName.toLowerCase()&&e(n).trigger("blur")}}));
|
|
@ -0,0 +1,21 @@
|
|||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
return $.ui.safeBlur = function( element ) {
|
||||
|
||||
// Support: IE9 - 10 only
|
||||
// If the <body> is blurred, IE will switch windows, see #9420
|
||||
if ( element && element.nodeName.toLowerCase() !== "body" ) {
|
||||
$( element ).trigger( "blur" );
|
||||
}
|
||||
};
|
||||
|
||||
} ) );
|
|
@ -1,4 +1,9 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version"],a):a(jQuery)}(function(a){return a.fn.scrollParent=function(b){var c=this.css("position"),d="absolute"===c,e=b?/(auto|scroll|hidden)/:/(auto|scroll)/,f=this.parents().filter(function(){var b=a(this);return(!d||"static"!==b.css("position"))&&e.test(b.css("overflow")+b.css("overflow-y")+b.css("overflow-x"))}).eq(0);return"fixed"!==c&&f.length?f:a(this[0].ownerDocument||document)}});
|
||||
/*!
|
||||
* jQuery UI Scroll Parent 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){return e.fn.scrollParent=function(t){var n=this.css("position"),o="absolute"===n,s=t?/(auto|scroll|hidden)/:/(auto|scroll)/,i=this.parents().filter((function(){var t=e(this);return(!o||"static"!==t.css("position"))&&s.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))})).eq(0);return"fixed"!==n&&i.length?i:e(this[0].ownerDocument||document)}}));
|
|
@ -0,0 +1,45 @@
|
|||
/*!
|
||||
* jQuery UI Scroll Parent 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: scrollParent
|
||||
//>>group: Core
|
||||
//>>description: Get the closest ancestor element that is scrollable.
|
||||
//>>docs: http://api.jqueryui.com/scrollParent/
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
|
||||
return $.fn.scrollParent = function( includeHidden ) {
|
||||
var position = this.css( "position" ),
|
||||
excludeStaticParent = position === "absolute",
|
||||
overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
|
||||
scrollParent = this.parents().filter( function() {
|
||||
var parent = $( this );
|
||||
if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
|
||||
return false;
|
||||
}
|
||||
return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) +
|
||||
parent.css( "overflow-x" ) );
|
||||
} ).eq( 0 );
|
||||
|
||||
return position === "fixed" || !scrollParent.length ?
|
||||
$( this[ 0 ].ownerDocument || document ) :
|
||||
scrollParent;
|
||||
};
|
||||
|
||||
} ) );
|
|
@ -1,4 +1,9 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version","./focusable"],a):a(jQuery)}(function(a){return a.extend(a.expr[":"],{tabbable:function(b){var c=a.attr(b,"tabindex"),d=null!=c;return(!d||c>=0)&&a.ui.focusable(b,d)}})});
|
||||
/*!
|
||||
* jQuery UI Tabbable 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery","./version","./focusable"],e):e(jQuery)}((function(e){return e.extend(e.expr[":"],{tabbable:function(n){var t=e.attr(n,"tabindex"),u=null!=t;return(!u||t>=0)&&e.ui.focusable(n,u)}})}));
|
|
@ -0,0 +1,35 @@
|
|||
/*!
|
||||
* jQuery UI Tabbable 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: :tabbable Selector
|
||||
//>>group: Core
|
||||
//>>description: Selects elements which can be tabbed to.
|
||||
//>>docs: http://api.jqueryui.com/tabbable-selector/
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version", "./focusable" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
|
||||
return $.extend( $.expr[ ":" ], {
|
||||
tabbable: function( element ) {
|
||||
var tabIndex = $.attr( element, "tabindex" ),
|
||||
hasTabindex = tabIndex != null;
|
||||
return ( !hasTabindex || tabIndex >= 0 ) && $.ui.focusable( element, hasTabindex );
|
||||
}
|
||||
} );
|
||||
|
||||
} ) );
|
|
@ -1,4 +1,9 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./version"],a):a(jQuery)}(function(a){return a.fn.extend({uniqueId:function(){var a=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++a)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&a(this).removeAttr("id")})}})});
|
||||
/*!
|
||||
* jQuery UI Unique ID 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
!function(i){"function"==typeof define&&define.amd?define(["jquery","./version"],i):i(jQuery)}((function(i){return i.fn.extend({uniqueId:(n=0,function(){return this.each((function(){this.id||(this.id="ui-id-"+ ++n)}))}),removeUniqueId:function(){return this.each((function(){/^ui-id-\d+$/.test(this.id)&&i(this).removeAttr("id")}))}});var n}));
|
|
@ -0,0 +1,49 @@
|
|||
/*!
|
||||
* jQuery UI Unique ID 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: uniqueId
|
||||
//>>group: Core
|
||||
//>>description: Functions to generate and remove uniqueId's
|
||||
//>>docs: http://api.jqueryui.com/uniqueId/
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
|
||||
return $.fn.extend( {
|
||||
uniqueId: ( function() {
|
||||
var uuid = 0;
|
||||
|
||||
return function() {
|
||||
return this.each( function() {
|
||||
if ( !this.id ) {
|
||||
this.id = "ui-id-" + ( ++uuid );
|
||||
}
|
||||
} );
|
||||
};
|
||||
} )(),
|
||||
|
||||
removeUniqueId: function() {
|
||||
return this.each( function() {
|
||||
if ( /^ui-id-\d+$/.test( this.id ) ) {
|
||||
$( this ).removeAttr( "id" );
|
||||
}
|
||||
} );
|
||||
}
|
||||
} );
|
||||
|
||||
} ) );
|
|
@ -1,4 +1 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){return a.ui=a.ui||{},a.ui.version="1.12.1"});
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}((function(e){return e.ui=e.ui||{},e.ui.version="1.12.1"}));
|
|
@ -0,0 +1,17 @@
|
|||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
} ( function( $ ) {
|
||||
|
||||
$.ui = $.ui || {};
|
||||
|
||||
return $.ui.version = "1.12.1";
|
||||
|
||||
} ) );
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,733 @@
|
|||
/*!
|
||||
* jQuery UI Widget 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: Widget
|
||||
//>>group: Core
|
||||
//>>description: Provides a factory for creating stateful widgets with a common API.
|
||||
//>>docs: http://api.jqueryui.com/jQuery.widget/
|
||||
//>>demos: http://jqueryui.com/widget/
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [ "jquery", "./version" ], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
}( function( $ ) {
|
||||
|
||||
var widgetUuid = 0;
|
||||
var widgetSlice = Array.prototype.slice;
|
||||
|
||||
$.cleanData = ( function( orig ) {
|
||||
return function( elems ) {
|
||||
var events, elem, i;
|
||||
for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {
|
||||
try {
|
||||
|
||||
// Only trigger remove when necessary to save time
|
||||
events = $._data( elem, "events" );
|
||||
if ( events && events.remove ) {
|
||||
$( elem ).triggerHandler( "remove" );
|
||||
}
|
||||
|
||||
// Http://bugs.jquery.com/ticket/8235
|
||||
} catch ( e ) {}
|
||||
}
|
||||
orig( elems );
|
||||
};
|
||||
} )( $.cleanData );
|
||||
|
||||
$.widget = function( name, base, prototype ) {
|
||||
var existingConstructor, constructor, basePrototype;
|
||||
|
||||
// ProxiedPrototype allows the provided prototype to remain unmodified
|
||||
// so that it can be used as a mixin for multiple widgets (#8876)
|
||||
var proxiedPrototype = {};
|
||||
|
||||
var namespace = name.split( "." )[ 0 ];
|
||||
name = name.split( "." )[ 1 ];
|
||||
var fullName = namespace + "-" + name;
|
||||
|
||||
if ( !prototype ) {
|
||||
prototype = base;
|
||||
base = $.Widget;
|
||||
}
|
||||
|
||||
if ( $.isArray( prototype ) ) {
|
||||
prototype = $.extend.apply( null, [ {} ].concat( prototype ) );
|
||||
}
|
||||
|
||||
// Create selector for plugin
|
||||
$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
|
||||
return !!$.data( elem, fullName );
|
||||
};
|
||||
|
||||
$[ namespace ] = $[ namespace ] || {};
|
||||
existingConstructor = $[ namespace ][ name ];
|
||||
constructor = $[ namespace ][ name ] = function( options, element ) {
|
||||
|
||||
// Allow instantiation without "new" keyword
|
||||
if ( !this._createWidget ) {
|
||||
return new constructor( options, element );
|
||||
}
|
||||
|
||||
// Allow instantiation without initializing for simple inheritance
|
||||
// must use "new" keyword (the code above always passes args)
|
||||
if ( arguments.length ) {
|
||||
this._createWidget( options, element );
|
||||
}
|
||||
};
|
||||
|
||||
// Extend with the existing constructor to carry over any static properties
|
||||
$.extend( constructor, existingConstructor, {
|
||||
version: prototype.version,
|
||||
|
||||
// Copy the object used to create the prototype in case we need to
|
||||
// redefine the widget later
|
||||
_proto: $.extend( {}, prototype ),
|
||||
|
||||
// Track widgets that inherit from this widget in case this widget is
|
||||
// redefined after a widget inherits from it
|
||||
_childConstructors: []
|
||||
} );
|
||||
|
||||
basePrototype = new base();
|
||||
|
||||
// We need to make the options hash a property directly on the new instance
|
||||
// otherwise we'll modify the options hash on the prototype that we're
|
||||
// inheriting from
|
||||
basePrototype.options = $.widget.extend( {}, basePrototype.options );
|
||||
$.each( prototype, function( prop, value ) {
|
||||
if ( !$.isFunction( value ) ) {
|
||||
proxiedPrototype[ prop ] = value;
|
||||
return;
|
||||
}
|
||||
proxiedPrototype[ prop ] = ( function() {
|
||||
function _super() {
|
||||
return base.prototype[ prop ].apply( this, arguments );
|
||||
}
|
||||
|
||||
function _superApply( args ) {
|
||||
return base.prototype[ prop ].apply( this, args );
|
||||
}
|
||||
|
||||
return function() {
|
||||
var __super = this._super;
|
||||
var __superApply = this._superApply;
|
||||
var returnValue;
|
||||
|
||||
this._super = _super;
|
||||
this._superApply = _superApply;
|
||||
|
||||
returnValue = value.apply( this, arguments );
|
||||
|
||||
this._super = __super;
|
||||
this._superApply = __superApply;
|
||||
|
||||
return returnValue;
|
||||
};
|
||||
} )();
|
||||
} );
|
||||
constructor.prototype = $.widget.extend( basePrototype, {
|
||||
|
||||
// TODO: remove support for widgetEventPrefix
|
||||
// always use the name + a colon as the prefix, e.g., draggable:start
|
||||
// don't prefix for widgets that aren't DOM-based
|
||||
widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name
|
||||
}, proxiedPrototype, {
|
||||
constructor: constructor,
|
||||
namespace: namespace,
|
||||
widgetName: name,
|
||||
widgetFullName: fullName
|
||||
} );
|
||||
|
||||
// If this widget is being redefined then we need to find all widgets that
|
||||
// are inheriting from it and redefine all of them so that they inherit from
|
||||
// the new version of this widget. We're essentially trying to replace one
|
||||
// level in the prototype chain.
|
||||
if ( existingConstructor ) {
|
||||
$.each( existingConstructor._childConstructors, function( i, child ) {
|
||||
var childPrototype = child.prototype;
|
||||
|
||||
// Redefine the child widget using the same prototype that was
|
||||
// originally used, but inherit from the new version of the base
|
||||
$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor,
|
||||
child._proto );
|
||||
} );
|
||||
|
||||
// Remove the list of existing child constructors from the old constructor
|
||||
// so the old child constructors can be garbage collected
|
||||
delete existingConstructor._childConstructors;
|
||||
} else {
|
||||
base._childConstructors.push( constructor );
|
||||
}
|
||||
|
||||
$.widget.bridge( name, constructor );
|
||||
|
||||
return constructor;
|
||||
};
|
||||
|
||||
$.widget.extend = function( target ) {
|
||||
var input = widgetSlice.call( arguments, 1 );
|
||||
var inputIndex = 0;
|
||||
var inputLength = input.length;
|
||||
var key;
|
||||
var value;
|
||||
|
||||
for ( ; inputIndex < inputLength; inputIndex++ ) {
|
||||
for ( key in input[ inputIndex ] ) {
|
||||
value = input[ inputIndex ][ key ];
|
||||
if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
|
||||
|
||||
// Clone objects
|
||||
if ( $.isPlainObject( value ) ) {
|
||||
target[ key ] = $.isPlainObject( target[ key ] ) ?
|
||||
$.widget.extend( {}, target[ key ], value ) :
|
||||
|
||||
// Don't extend strings, arrays, etc. with objects
|
||||
$.widget.extend( {}, value );
|
||||
|
||||
// Copy everything else by reference
|
||||
} else {
|
||||
target[ key ] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return target;
|
||||
};
|
||||
|
||||
$.widget.bridge = function( name, object ) {
|
||||
var fullName = object.prototype.widgetFullName || name;
|
||||
$.fn[ name ] = function( options ) {
|
||||
var isMethodCall = typeof options === "string";
|
||||
var args = widgetSlice.call( arguments, 1 );
|
||||
var returnValue = this;
|
||||
|
||||
if ( isMethodCall ) {
|
||||
|
||||
// If this is an empty collection, we need to have the instance method
|
||||
// return undefined instead of the jQuery instance
|
||||
if ( !this.length && options === "instance" ) {
|
||||
returnValue = undefined;
|
||||
} else {
|
||||
this.each( function() {
|
||||
var methodValue;
|
||||
var instance = $.data( this, fullName );
|
||||
|
||||
if ( options === "instance" ) {
|
||||
returnValue = instance;
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( !instance ) {
|
||||
return $.error( "cannot call methods on " + name +
|
||||
" prior to initialization; " +
|
||||
"attempted to call method '" + options + "'" );
|
||||
}
|
||||
|
||||
if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) {
|
||||
return $.error( "no such method '" + options + "' for " + name +
|
||||
" widget instance" );
|
||||
}
|
||||
|
||||
methodValue = instance[ options ].apply( instance, args );
|
||||
|
||||
if ( methodValue !== instance && methodValue !== undefined ) {
|
||||
returnValue = methodValue && methodValue.jquery ?
|
||||
returnValue.pushStack( methodValue.get() ) :
|
||||
methodValue;
|
||||
return false;
|
||||
}
|
||||
} );
|
||||
}
|
||||
} else {
|
||||
|
||||
// Allow multiple hashes to be passed on init
|
||||
if ( args.length ) {
|
||||
options = $.widget.extend.apply( null, [ options ].concat( args ) );
|
||||
}
|
||||
|
||||
this.each( function() {
|
||||
var instance = $.data( this, fullName );
|
||||
if ( instance ) {
|
||||
instance.option( options || {} );
|
||||
if ( instance._init ) {
|
||||
instance._init();
|
||||
}
|
||||
} else {
|
||||
$.data( this, fullName, new object( options, this ) );
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
return returnValue;
|
||||
};
|
||||
};
|
||||
|
||||
$.Widget = function( /* options, element */ ) {};
|
||||
$.Widget._childConstructors = [];
|
||||
|
||||
$.Widget.prototype = {
|
||||
widgetName: "widget",
|
||||
widgetEventPrefix: "",
|
||||
defaultElement: "<div>",
|
||||
|
||||
options: {
|
||||
classes: {},
|
||||
disabled: false,
|
||||
|
||||
// Callbacks
|
||||
create: null
|
||||
},
|
||||
|
||||
_createWidget: function( options, element ) {
|
||||
element = $( element || this.defaultElement || this )[ 0 ];
|
||||
this.element = $( element );
|
||||
this.uuid = widgetUuid++;
|
||||
this.eventNamespace = "." + this.widgetName + this.uuid;
|
||||
|
||||
this.bindings = $();
|
||||
this.hoverable = $();
|
||||
this.focusable = $();
|
||||
this.classesElementLookup = {};
|
||||
|
||||
if ( element !== this ) {
|
||||
$.data( element, this.widgetFullName, this );
|
||||
this._on( true, this.element, {
|
||||
remove: function( event ) {
|
||||
if ( event.target === element ) {
|
||||
this.destroy();
|
||||
}
|
||||
}
|
||||
} );
|
||||
this.document = $( element.style ?
|
||||
|
||||
// Element within the document
|
||||
element.ownerDocument :
|
||||
|
||||
// Element is window or document
|
||||
element.document || element );
|
||||
this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );
|
||||
}
|
||||
|
||||
this.options = $.widget.extend( {},
|
||||
this.options,
|
||||
this._getCreateOptions(),
|
||||
options );
|
||||
|
||||
this._create();
|
||||
|
||||
if ( this.options.disabled ) {
|
||||
this._setOptionDisabled( this.options.disabled );
|
||||
}
|
||||
|
||||
this._trigger( "create", null, this._getCreateEventData() );
|
||||
this._init();
|
||||
},
|
||||
|
||||
_getCreateOptions: function() {
|
||||
return {};
|
||||
},
|
||||
|
||||
_getCreateEventData: $.noop,
|
||||
|
||||
_create: $.noop,
|
||||
|
||||
_init: $.noop,
|
||||
|
||||
destroy: function() {
|
||||
var that = this;
|
||||
|
||||
this._destroy();
|
||||
$.each( this.classesElementLookup, function( key, value ) {
|
||||
that._removeClass( value, key );
|
||||
} );
|
||||
|
||||
// We can probably remove the unbind calls in 2.0
|
||||
// all event bindings should go through this._on()
|
||||
this.element
|
||||
.off( this.eventNamespace )
|
||||
.removeData( this.widgetFullName );
|
||||
this.widget()
|
||||
.off( this.eventNamespace )
|
||||
.removeAttr( "aria-disabled" );
|
||||
|
||||
// Clean up events and states
|
||||
this.bindings.off( this.eventNamespace );
|
||||
},
|
||||
|
||||
_destroy: $.noop,
|
||||
|
||||
widget: function() {
|
||||
return this.element;
|
||||
},
|
||||
|
||||
option: function( key, value ) {
|
||||
var options = key;
|
||||
var parts;
|
||||
var curOption;
|
||||
var i;
|
||||
|
||||
if ( arguments.length === 0 ) {
|
||||
|
||||
// Don't return a reference to the internal hash
|
||||
return $.widget.extend( {}, this.options );
|
||||
}
|
||||
|
||||
if ( typeof key === "string" ) {
|
||||
|
||||
// Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
|
||||
options = {};
|
||||
parts = key.split( "." );
|
||||
key = parts.shift();
|
||||
if ( parts.length ) {
|
||||
curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
|
||||
for ( i = 0; i < parts.length - 1; i++ ) {
|
||||
curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
|
||||
curOption = curOption[ parts[ i ] ];
|
||||
}
|
||||
key = parts.pop();
|
||||
if ( arguments.length === 1 ) {
|
||||
return curOption[ key ] === undefined ? null : curOption[ key ];
|
||||
}
|
||||
curOption[ key ] = value;
|
||||
} else {
|
||||
if ( arguments.length === 1 ) {
|
||||
return this.options[ key ] === undefined ? null : this.options[ key ];
|
||||
}
|
||||
options[ key ] = value;
|
||||
}
|
||||
}
|
||||
|
||||
this._setOptions( options );
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
_setOptions: function( options ) {
|
||||
var key;
|
||||
|
||||
for ( key in options ) {
|
||||
this._setOption( key, options[ key ] );
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
_setOption: function( key, value ) {
|
||||
if ( key === "classes" ) {
|
||||
this._setOptionClasses( value );
|
||||
}
|
||||
|
||||
this.options[ key ] = value;
|
||||
|
||||
if ( key === "disabled" ) {
|
||||
this._setOptionDisabled( value );
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
_setOptionClasses: function( value ) {
|
||||
var classKey, elements, currentElements;
|
||||
|
||||
for ( classKey in value ) {
|
||||
currentElements = this.classesElementLookup[ classKey ];
|
||||
if ( value[ classKey ] === this.options.classes[ classKey ] ||
|
||||
!currentElements ||
|
||||
!currentElements.length ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// We are doing this to create a new jQuery object because the _removeClass() call
|
||||
// on the next line is going to destroy the reference to the current elements being
|
||||
// tracked. We need to save a copy of this collection so that we can add the new classes
|
||||
// below.
|
||||
elements = $( currentElements.get() );
|
||||
this._removeClass( currentElements, classKey );
|
||||
|
||||
// We don't use _addClass() here, because that uses this.options.classes
|
||||
// for generating the string of classes. We want to use the value passed in from
|
||||
// _setOption(), this is the new value of the classes option which was passed to
|
||||
// _setOption(). We pass this value directly to _classes().
|
||||
elements.addClass( this._classes( {
|
||||
element: elements,
|
||||
keys: classKey,
|
||||
classes: value,
|
||||
add: true
|
||||
} ) );
|
||||
}
|
||||
},
|
||||
|
||||
_setOptionDisabled: function( value ) {
|
||||
this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value );
|
||||
|
||||
// If the widget is becoming disabled, then nothing is interactive
|
||||
if ( value ) {
|
||||
this._removeClass( this.hoverable, null, "ui-state-hover" );
|
||||
this._removeClass( this.focusable, null, "ui-state-focus" );
|
||||
}
|
||||
},
|
||||
|
||||
enable: function() {
|
||||
return this._setOptions( { disabled: false } );
|
||||
},
|
||||
|
||||
disable: function() {
|
||||
return this._setOptions( { disabled: true } );
|
||||
},
|
||||
|
||||
_classes: function( options ) {
|
||||
var full = [];
|
||||
var that = this;
|
||||
|
||||
options = $.extend( {
|
||||
element: this.element,
|
||||
classes: this.options.classes || {}
|
||||
}, options );
|
||||
|
||||
function processClassString( classes, checkOption ) {
|
||||
var current, i;
|
||||
for ( i = 0; i < classes.length; i++ ) {
|
||||
current = that.classesElementLookup[ classes[ i ] ] || $();
|
||||
if ( options.add ) {
|
||||
current = $( $.unique( current.get().concat( options.element.get() ) ) );
|
||||
} else {
|
||||
current = $( current.not( options.element ).get() );
|
||||
}
|
||||
that.classesElementLookup[ classes[ i ] ] = current;
|
||||
full.push( classes[ i ] );
|
||||
if ( checkOption && options.classes[ classes[ i ] ] ) {
|
||||
full.push( options.classes[ classes[ i ] ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this._on( options.element, {
|
||||
"remove": "_untrackClassesElement"
|
||||
} );
|
||||
|
||||
if ( options.keys ) {
|
||||
processClassString( options.keys.match( /\S+/g ) || [], true );
|
||||
}
|
||||
if ( options.extra ) {
|
||||
processClassString( options.extra.match( /\S+/g ) || [] );
|
||||
}
|
||||
|
||||
return full.join( " " );
|
||||
},
|
||||
|
||||
_untrackClassesElement: function( event ) {
|
||||
var that = this;
|
||||
$.each( that.classesElementLookup, function( key, value ) {
|
||||
if ( $.inArray( event.target, value ) !== -1 ) {
|
||||
that.classesElementLookup[ key ] = $( value.not( event.target ).get() );
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
_removeClass: function( element, keys, extra ) {
|
||||
return this._toggleClass( element, keys, extra, false );
|
||||
},
|
||||
|
||||
_addClass: function( element, keys, extra ) {
|
||||
return this._toggleClass( element, keys, extra, true );
|
||||
},
|
||||
|
||||
_toggleClass: function( element, keys, extra, add ) {
|
||||
add = ( typeof add === "boolean" ) ? add : extra;
|
||||
var shift = ( typeof element === "string" || element === null ),
|
||||
options = {
|
||||
extra: shift ? keys : extra,
|
||||
keys: shift ? element : keys,
|
||||
element: shift ? this.element : element,
|
||||
add: add
|
||||
};
|
||||
options.element.toggleClass( this._classes( options ), add );
|
||||
return this;
|
||||
},
|
||||
|
||||
_on: function( suppressDisabledCheck, element, handlers ) {
|
||||
var delegateElement;
|
||||
var instance = this;
|
||||
|
||||
// No suppressDisabledCheck flag, shuffle arguments
|
||||
if ( typeof suppressDisabledCheck !== "boolean" ) {
|
||||
handlers = element;
|
||||
element = suppressDisabledCheck;
|
||||
suppressDisabledCheck = false;
|
||||
}
|
||||
|
||||
// No element argument, shuffle and use this.element
|
||||
if ( !handlers ) {
|
||||
handlers = element;
|
||||
element = this.element;
|
||||
delegateElement = this.widget();
|
||||
} else {
|
||||
element = delegateElement = $( element );
|
||||
this.bindings = this.bindings.add( element );
|
||||
}
|
||||
|
||||
$.each( handlers, function( event, handler ) {
|
||||
function handlerProxy() {
|
||||
|
||||
// Allow widgets to customize the disabled handling
|
||||
// - disabled as an array instead of boolean
|
||||
// - disabled class as method for disabling individual parts
|
||||
if ( !suppressDisabledCheck &&
|
||||
( instance.options.disabled === true ||
|
||||
$( this ).hasClass( "ui-state-disabled" ) ) ) {
|
||||
return;
|
||||
}
|
||||
return ( typeof handler === "string" ? instance[ handler ] : handler )
|
||||
.apply( instance, arguments );
|
||||
}
|
||||
|
||||
// Copy the guid so direct unbinding works
|
||||
if ( typeof handler !== "string" ) {
|
||||
handlerProxy.guid = handler.guid =
|
||||
handler.guid || handlerProxy.guid || $.guid++;
|
||||
}
|
||||
|
||||
var match = event.match( /^([\w:-]*)\s*(.*)$/ );
|
||||
var eventName = match[ 1 ] + instance.eventNamespace;
|
||||
var selector = match[ 2 ];
|
||||
|
||||
if ( selector ) {
|
||||
delegateElement.on( eventName, selector, handlerProxy );
|
||||
} else {
|
||||
element.on( eventName, handlerProxy );
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
_off: function( element, eventName ) {
|
||||
eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) +
|
||||
this.eventNamespace;
|
||||
element.off( eventName ).off( eventName );
|
||||
|
||||
// Clear the stack to avoid memory leaks (#10056)
|
||||
this.bindings = $( this.bindings.not( element ).get() );
|
||||
this.focusable = $( this.focusable.not( element ).get() );
|
||||
this.hoverable = $( this.hoverable.not( element ).get() );
|
||||
},
|
||||
|
||||
_delay: function( handler, delay ) {
|
||||
function handlerProxy() {
|
||||
return ( typeof handler === "string" ? instance[ handler ] : handler )
|
||||
.apply( instance, arguments );
|
||||
}
|
||||
var instance = this;
|
||||
return setTimeout( handlerProxy, delay || 0 );
|
||||
},
|
||||
|
||||
_hoverable: function( element ) {
|
||||
this.hoverable = this.hoverable.add( element );
|
||||
this._on( element, {
|
||||
mouseenter: function( event ) {
|
||||
this._addClass( $( event.currentTarget ), null, "ui-state-hover" );
|
||||
},
|
||||
mouseleave: function( event ) {
|
||||
this._removeClass( $( event.currentTarget ), null, "ui-state-hover" );
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
_focusable: function( element ) {
|
||||
this.focusable = this.focusable.add( element );
|
||||
this._on( element, {
|
||||
focusin: function( event ) {
|
||||
this._addClass( $( event.currentTarget ), null, "ui-state-focus" );
|
||||
},
|
||||
focusout: function( event ) {
|
||||
this._removeClass( $( event.currentTarget ), null, "ui-state-focus" );
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
_trigger: function( type, event, data ) {
|
||||
var prop, orig;
|
||||
var callback = this.options[ type ];
|
||||
|
||||
data = data || {};
|
||||
event = $.Event( event );
|
||||
event.type = ( type === this.widgetEventPrefix ?
|
||||
type :
|
||||
this.widgetEventPrefix + type ).toLowerCase();
|
||||
|
||||
// The original event may come from any element
|
||||
// so we need to reset the target on the new event
|
||||
event.target = this.element[ 0 ];
|
||||
|
||||
// Copy original event properties over to the new event
|
||||
orig = event.originalEvent;
|
||||
if ( orig ) {
|
||||
for ( prop in orig ) {
|
||||
if ( !( prop in event ) ) {
|
||||
event[ prop ] = orig[ prop ];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.element.trigger( event, data );
|
||||
return !( $.isFunction( callback ) &&
|
||||
callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||
|
||||
event.isDefaultPrevented() );
|
||||
}
|
||||
};
|
||||
|
||||
$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
|
||||
$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
|
||||
if ( typeof options === "string" ) {
|
||||
options = { effect: options };
|
||||
}
|
||||
|
||||
var hasOptions;
|
||||
var effectName = !options ?
|
||||
method :
|
||||
options === true || typeof options === "number" ?
|
||||
defaultEffect :
|
||||
options.effect || defaultEffect;
|
||||
|
||||
options = options || {};
|
||||
if ( typeof options === "number" ) {
|
||||
options = { duration: options };
|
||||
}
|
||||
|
||||
hasOptions = !$.isEmptyObject( options );
|
||||
options.complete = callback;
|
||||
|
||||
if ( options.delay ) {
|
||||
element.delay( options.delay );
|
||||
}
|
||||
|
||||
if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
|
||||
element[ method ]( options );
|
||||
} else if ( effectName !== method && element[ effectName ] ) {
|
||||
element[ effectName ]( options.duration, options.easing, callback );
|
||||
} else {
|
||||
element.queue( function( next ) {
|
||||
$( this )[ method ]();
|
||||
if ( callback ) {
|
||||
callback.call( element[ 0 ] );
|
||||
}
|
||||
next();
|
||||
} );
|
||||
}
|
||||
};
|
||||
} );
|
||||
|
||||
return $.widget;
|
||||
|
||||
} ) );
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,682 @@
|
|||
/*!
|
||||
* jQuery UI Autocomplete 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: Autocomplete
|
||||
//>>group: Widgets
|
||||
//>>description: Lists suggested words as the user is typing.
|
||||
//>>docs: http://api.jqueryui.com/autocomplete/
|
||||
//>>demos: http://jqueryui.com/autocomplete/
|
||||
//>>css.structure: ../../themes/base/core.css
|
||||
//>>css.structure: ../../themes/base/autocomplete.css
|
||||
//>>css.theme: ../../themes/base/theme.css
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [
|
||||
"jquery",
|
||||
"./menu",
|
||||
"../keycode",
|
||||
"../position",
|
||||
"../safe-active-element",
|
||||
"../version",
|
||||
"../widget"
|
||||
], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
}( function( $ ) {
|
||||
|
||||
$.widget( "ui.autocomplete", {
|
||||
version: "1.12.1",
|
||||
defaultElement: "<input>",
|
||||
options: {
|
||||
appendTo: null,
|
||||
autoFocus: false,
|
||||
delay: 300,
|
||||
minLength: 1,
|
||||
position: {
|
||||
my: "left top",
|
||||
at: "left bottom",
|
||||
collision: "none"
|
||||
},
|
||||
source: null,
|
||||
|
||||
// Callbacks
|
||||
change: null,
|
||||
close: null,
|
||||
focus: null,
|
||||
open: null,
|
||||
response: null,
|
||||
search: null,
|
||||
select: null
|
||||
},
|
||||
|
||||
requestIndex: 0,
|
||||
pending: 0,
|
||||
|
||||
_create: function() {
|
||||
|
||||
// Some browsers only repeat keydown events, not keypress events,
|
||||
// so we use the suppressKeyPress flag to determine if we've already
|
||||
// handled the keydown event. #7269
|
||||
// Unfortunately the code for & in keypress is the same as the up arrow,
|
||||
// so we use the suppressKeyPressRepeat flag to avoid handling keypress
|
||||
// events when we know the keydown event was used to modify the
|
||||
// search term. #7799
|
||||
var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
|
||||
nodeName = this.element[ 0 ].nodeName.toLowerCase(),
|
||||
isTextarea = nodeName === "textarea",
|
||||
isInput = nodeName === "input";
|
||||
|
||||
// Textareas are always multi-line
|
||||
// Inputs are always single-line, even if inside a contentEditable element
|
||||
// IE also treats inputs as contentEditable
|
||||
// All other element types are determined by whether or not they're contentEditable
|
||||
this.isMultiLine = isTextarea || !isInput && this._isContentEditable( this.element );
|
||||
|
||||
this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];
|
||||
this.isNewMenu = true;
|
||||
|
||||
this._addClass( "ui-autocomplete-input" );
|
||||
this.element.attr( "autocomplete", "off" );
|
||||
|
||||
this._on( this.element, {
|
||||
keydown: function( event ) {
|
||||
if ( this.element.prop( "readOnly" ) ) {
|
||||
suppressKeyPress = true;
|
||||
suppressInput = true;
|
||||
suppressKeyPressRepeat = true;
|
||||
return;
|
||||
}
|
||||
|
||||
suppressKeyPress = false;
|
||||
suppressInput = false;
|
||||
suppressKeyPressRepeat = false;
|
||||
var keyCode = $.ui.keyCode;
|
||||
switch ( event.keyCode ) {
|
||||
case keyCode.PAGE_UP:
|
||||
suppressKeyPress = true;
|
||||
this._move( "previousPage", event );
|
||||
break;
|
||||
case keyCode.PAGE_DOWN:
|
||||
suppressKeyPress = true;
|
||||
this._move( "nextPage", event );
|
||||
break;
|
||||
case keyCode.UP:
|
||||
suppressKeyPress = true;
|
||||
this._keyEvent( "previous", event );
|
||||
break;
|
||||
case keyCode.DOWN:
|
||||
suppressKeyPress = true;
|
||||
this._keyEvent( "next", event );
|
||||
break;
|
||||
case keyCode.ENTER:
|
||||
|
||||
// when menu is open and has focus
|
||||
if ( this.menu.active ) {
|
||||
|
||||
// #6055 - Opera still allows the keypress to occur
|
||||
// which causes forms to submit
|
||||
suppressKeyPress = true;
|
||||
event.preventDefault();
|
||||
this.menu.select( event );
|
||||
}
|
||||
break;
|
||||
case keyCode.TAB:
|
||||
if ( this.menu.active ) {
|
||||
this.menu.select( event );
|
||||
}
|
||||
break;
|
||||
case keyCode.ESCAPE:
|
||||
if ( this.menu.element.is( ":visible" ) ) {
|
||||
if ( !this.isMultiLine ) {
|
||||
this._value( this.term );
|
||||
}
|
||||
this.close( event );
|
||||
|
||||
// Different browsers have different default behavior for escape
|
||||
// Single press can mean undo or clear
|
||||
// Double press in IE means clear the whole form
|
||||
event.preventDefault();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
suppressKeyPressRepeat = true;
|
||||
|
||||
// search timeout should be triggered before the input value is changed
|
||||
this._searchTimeout( event );
|
||||
break;
|
||||
}
|
||||
},
|
||||
keypress: function( event ) {
|
||||
if ( suppressKeyPress ) {
|
||||
suppressKeyPress = false;
|
||||
if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
|
||||
event.preventDefault();
|
||||
}
|
||||
return;
|
||||
}
|
||||
if ( suppressKeyPressRepeat ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Replicate some key handlers to allow them to repeat in Firefox and Opera
|
||||
var keyCode = $.ui.keyCode;
|
||||
switch ( event.keyCode ) {
|
||||
case keyCode.PAGE_UP:
|
||||
this._move( "previousPage", event );
|
||||
break;
|
||||
case keyCode.PAGE_DOWN:
|
||||
this._move( "nextPage", event );
|
||||
break;
|
||||
case keyCode.UP:
|
||||
this._keyEvent( "previous", event );
|
||||
break;
|
||||
case keyCode.DOWN:
|
||||
this._keyEvent( "next", event );
|
||||
break;
|
||||
}
|
||||
},
|
||||
input: function( event ) {
|
||||
if ( suppressInput ) {
|
||||
suppressInput = false;
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
this._searchTimeout( event );
|
||||
},
|
||||
focus: function() {
|
||||
this.selectedItem = null;
|
||||
this.previous = this._value();
|
||||
},
|
||||
blur: function( event ) {
|
||||
if ( this.cancelBlur ) {
|
||||
delete this.cancelBlur;
|
||||
return;
|
||||
}
|
||||
|
||||
clearTimeout( this.searching );
|
||||
this.close( event );
|
||||
this._change( event );
|
||||
}
|
||||
} );
|
||||
|
||||
this._initSource();
|
||||
this.menu = $( "<ul>" )
|
||||
.appendTo( this._appendTo() )
|
||||
.menu( {
|
||||
|
||||
// disable ARIA support, the live region takes care of that
|
||||
role: null
|
||||
} )
|
||||
.hide()
|
||||
.menu( "instance" );
|
||||
|
||||
this._addClass( this.menu.element, "ui-autocomplete", "ui-front" );
|
||||
this._on( this.menu.element, {
|
||||
mousedown: function( event ) {
|
||||
|
||||
// prevent moving focus out of the text field
|
||||
event.preventDefault();
|
||||
|
||||
// IE doesn't prevent moving focus even with event.preventDefault()
|
||||
// so we set a flag to know when we should ignore the blur event
|
||||
this.cancelBlur = true;
|
||||
this._delay( function() {
|
||||
delete this.cancelBlur;
|
||||
|
||||
// Support: IE 8 only
|
||||
// Right clicking a menu item or selecting text from the menu items will
|
||||
// result in focus moving out of the input. However, we've already received
|
||||
// and ignored the blur event because of the cancelBlur flag set above. So
|
||||
// we restore focus to ensure that the menu closes properly based on the user's
|
||||
// next actions.
|
||||
if ( this.element[ 0 ] !== $.ui.safeActiveElement( this.document[ 0 ] ) ) {
|
||||
this.element.trigger( "focus" );
|
||||
}
|
||||
} );
|
||||
},
|
||||
menufocus: function( event, ui ) {
|
||||
var label, item;
|
||||
|
||||
// support: Firefox
|
||||
// Prevent accidental activation of menu items in Firefox (#7024 #9118)
|
||||
if ( this.isNewMenu ) {
|
||||
this.isNewMenu = false;
|
||||
if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {
|
||||
this.menu.blur();
|
||||
|
||||
this.document.one( "mousemove", function() {
|
||||
$( event.target ).trigger( event.originalEvent );
|
||||
} );
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
item = ui.item.data( "ui-autocomplete-item" );
|
||||
if ( false !== this._trigger( "focus", event, { item: item } ) ) {
|
||||
|
||||
// use value to match what will end up in the input, if it was a key event
|
||||
if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {
|
||||
this._value( item.value );
|
||||
}
|
||||
}
|
||||
|
||||
// Announce the value in the liveRegion
|
||||
label = ui.item.attr( "aria-label" ) || item.value;
|
||||
if ( label && $.trim( label ).length ) {
|
||||
this.liveRegion.children().hide();
|
||||
$( "<div>" ).text( label ).appendTo( this.liveRegion );
|
||||
}
|
||||
},
|
||||
menuselect: function( event, ui ) {
|
||||
var item = ui.item.data( "ui-autocomplete-item" ),
|
||||
previous = this.previous;
|
||||
|
||||
// Only trigger when focus was lost (click on menu)
|
||||
if ( this.element[ 0 ] !== $.ui.safeActiveElement( this.document[ 0 ] ) ) {
|
||||
this.element.trigger( "focus" );
|
||||
this.previous = previous;
|
||||
|
||||
// #6109 - IE triggers two focus events and the second
|
||||
// is asynchronous, so we need to reset the previous
|
||||
// term synchronously and asynchronously :-(
|
||||
this._delay( function() {
|
||||
this.previous = previous;
|
||||
this.selectedItem = item;
|
||||
} );
|
||||
}
|
||||
|
||||
if ( false !== this._trigger( "select", event, { item: item } ) ) {
|
||||
this._value( item.value );
|
||||
}
|
||||
|
||||
// reset the term after the select event
|
||||
// this allows custom select handling to work properly
|
||||
this.term = this._value();
|
||||
|
||||
this.close( event );
|
||||
this.selectedItem = item;
|
||||
}
|
||||
} );
|
||||
|
||||
this.liveRegion = $( "<div>", {
|
||||
role: "status",
|
||||
"aria-live": "assertive",
|
||||
"aria-relevant": "additions"
|
||||
} )
|
||||
.appendTo( this.document[ 0 ].body );
|
||||
|
||||
this._addClass( this.liveRegion, null, "ui-helper-hidden-accessible" );
|
||||
|
||||
// Turning off autocomplete prevents the browser from remembering the
|
||||
// value when navigating through history, so we re-enable autocomplete
|
||||
// if the page is unloaded before the widget is destroyed. #7790
|
||||
this._on( this.window, {
|
||||
beforeunload: function() {
|
||||
this.element.removeAttr( "autocomplete" );
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
_destroy: function() {
|
||||
clearTimeout( this.searching );
|
||||
this.element.removeAttr( "autocomplete" );
|
||||
this.menu.element.remove();
|
||||
this.liveRegion.remove();
|
||||
},
|
||||
|
||||
_setOption: function( key, value ) {
|
||||
this._super( key, value );
|
||||
if ( key === "source" ) {
|
||||
this._initSource();
|
||||
}
|
||||
if ( key === "appendTo" ) {
|
||||
this.menu.element.appendTo( this._appendTo() );
|
||||
}
|
||||
if ( key === "disabled" && value && this.xhr ) {
|
||||
this.xhr.abort();
|
||||
}
|
||||
},
|
||||
|
||||
_isEventTargetInWidget: function( event ) {
|
||||
var menuElement = this.menu.element[ 0 ];
|
||||
|
||||
return event.target === this.element[ 0 ] ||
|
||||
event.target === menuElement ||
|
||||
$.contains( menuElement, event.target );
|
||||
},
|
||||
|
||||
_closeOnClickOutside: function( event ) {
|
||||
if ( !this._isEventTargetInWidget( event ) ) {
|
||||
this.close();
|
||||
}
|
||||
},
|
||||
|
||||
_appendTo: function() {
|
||||
var element = this.options.appendTo;
|
||||
|
||||
if ( element ) {
|
||||
element = element.jquery || element.nodeType ?
|
||||
$( element ) :
|
||||
this.document.find( element ).eq( 0 );
|
||||
}
|
||||
|
||||
if ( !element || !element[ 0 ] ) {
|
||||
element = this.element.closest( ".ui-front, dialog" );
|
||||
}
|
||||
|
||||
if ( !element.length ) {
|
||||
element = this.document[ 0 ].body;
|
||||
}
|
||||
|
||||
return element;
|
||||
},
|
||||
|
||||
_initSource: function() {
|
||||
var array, url,
|
||||
that = this;
|
||||
if ( $.isArray( this.options.source ) ) {
|
||||
array = this.options.source;
|
||||
this.source = function( request, response ) {
|
||||
response( $.ui.autocomplete.filter( array, request.term ) );
|
||||
};
|
||||
} else if ( typeof this.options.source === "string" ) {
|
||||
url = this.options.source;
|
||||
this.source = function( request, response ) {
|
||||
if ( that.xhr ) {
|
||||
that.xhr.abort();
|
||||
}
|
||||
that.xhr = $.ajax( {
|
||||
url: url,
|
||||
data: request,
|
||||
dataType: "json",
|
||||
success: function( data ) {
|
||||
response( data );
|
||||
},
|
||||
error: function() {
|
||||
response( [] );
|
||||
}
|
||||
} );
|
||||
};
|
||||
} else {
|
||||
this.source = this.options.source;
|
||||
}
|
||||
},
|
||||
|
||||
_searchTimeout: function( event ) {
|
||||
clearTimeout( this.searching );
|
||||
this.searching = this._delay( function() {
|
||||
|
||||
// Search if the value has changed, or if the user retypes the same value (see #7434)
|
||||
var equalValues = this.term === this._value(),
|
||||
menuVisible = this.menu.element.is( ":visible" ),
|
||||
modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
|
||||
|
||||
if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {
|
||||
this.selectedItem = null;
|
||||
this.search( null, event );
|
||||
}
|
||||
}, this.options.delay );
|
||||
},
|
||||
|
||||
search: function( value, event ) {
|
||||
value = value != null ? value : this._value();
|
||||
|
||||
// Always save the actual value, not the one passed as an argument
|
||||
this.term = this._value();
|
||||
|
||||
if ( value.length < this.options.minLength ) {
|
||||
return this.close( event );
|
||||
}
|
||||
|
||||
if ( this._trigger( "search", event ) === false ) {
|
||||
return;
|
||||
}
|
||||
|
||||
return this._search( value );
|
||||
},
|
||||
|
||||
_search: function( value ) {
|
||||
this.pending++;
|
||||
this._addClass( "ui-autocomplete-loading" );
|
||||
this.cancelSearch = false;
|
||||
|
||||
this.source( { term: value }, this._response() );
|
||||
},
|
||||
|
||||
_response: function() {
|
||||
var index = ++this.requestIndex;
|
||||
|
||||
return $.proxy( function( content ) {
|
||||
if ( index === this.requestIndex ) {
|
||||
this.__response( content );
|
||||
}
|
||||
|
||||
this.pending--;
|
||||
if ( !this.pending ) {
|
||||
this._removeClass( "ui-autocomplete-loading" );
|
||||
}
|
||||
}, this );
|
||||
},
|
||||
|
||||
__response: function( content ) {
|
||||
if ( content ) {
|
||||
content = this._normalize( content );
|
||||
}
|
||||
this._trigger( "response", null, { content: content } );
|
||||
if ( !this.options.disabled && content && content.length && !this.cancelSearch ) {
|
||||
this._suggest( content );
|
||||
this._trigger( "open" );
|
||||
} else {
|
||||
|
||||
// use ._close() instead of .close() so we don't cancel future searches
|
||||
this._close();
|
||||
}
|
||||
},
|
||||
|
||||
close: function( event ) {
|
||||
this.cancelSearch = true;
|
||||
this._close( event );
|
||||
},
|
||||
|
||||
_close: function( event ) {
|
||||
|
||||
// Remove the handler that closes the menu on outside clicks
|
||||
this._off( this.document, "mousedown" );
|
||||
|
||||
if ( this.menu.element.is( ":visible" ) ) {
|
||||
this.menu.element.hide();
|
||||
this.menu.blur();
|
||||
this.isNewMenu = true;
|
||||
this._trigger( "close", event );
|
||||
}
|
||||
},
|
||||
|
||||
_change: function( event ) {
|
||||
if ( this.previous !== this._value() ) {
|
||||
this._trigger( "change", event, { item: this.selectedItem } );
|
||||
}
|
||||
},
|
||||
|
||||
_normalize: function( items ) {
|
||||
|
||||
// assume all items have the right format when the first item is complete
|
||||
if ( items.length && items[ 0 ].label && items[ 0 ].value ) {
|
||||
return items;
|
||||
}
|
||||
return $.map( items, function( item ) {
|
||||
if ( typeof item === "string" ) {
|
||||
return {
|
||||
label: item,
|
||||
value: item
|
||||
};
|
||||
}
|
||||
return $.extend( {}, item, {
|
||||
label: item.label || item.value,
|
||||
value: item.value || item.label
|
||||
} );
|
||||
} );
|
||||
},
|
||||
|
||||
_suggest: function( items ) {
|
||||
var ul = this.menu.element.empty();
|
||||
this._renderMenu( ul, items );
|
||||
this.isNewMenu = true;
|
||||
this.menu.refresh();
|
||||
|
||||
// Size and position menu
|
||||
ul.show();
|
||||
this._resizeMenu();
|
||||
ul.position( $.extend( {
|
||||
of: this.element
|
||||
}, this.options.position ) );
|
||||
|
||||
if ( this.options.autoFocus ) {
|
||||
this.menu.next();
|
||||
}
|
||||
|
||||
// Listen for interactions outside of the widget (#6642)
|
||||
this._on( this.document, {
|
||||
mousedown: "_closeOnClickOutside"
|
||||
} );
|
||||
},
|
||||
|
||||
_resizeMenu: function() {
|
||||
var ul = this.menu.element;
|
||||
ul.outerWidth( Math.max(
|
||||
|
||||
// Firefox wraps long text (possibly a rounding bug)
|
||||
// so we add 1px to avoid the wrapping (#7513)
|
||||
ul.width( "" ).outerWidth() + 1,
|
||||
this.element.outerWidth()
|
||||
) );
|
||||
},
|
||||
|
||||
_renderMenu: function( ul, items ) {
|
||||
var that = this;
|
||||
$.each( items, function( index, item ) {
|
||||
that._renderItemData( ul, item );
|
||||
} );
|
||||
},
|
||||
|
||||
_renderItemData: function( ul, item ) {
|
||||
return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
|
||||
},
|
||||
|
||||
_renderItem: function( ul, item ) {
|
||||
return $( "<li>" )
|
||||
.append( $( "<div>" ).text( item.label ) )
|
||||
.appendTo( ul );
|
||||
},
|
||||
|
||||
_move: function( direction, event ) {
|
||||
if ( !this.menu.element.is( ":visible" ) ) {
|
||||
this.search( null, event );
|
||||
return;
|
||||
}
|
||||
if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
|
||||
this.menu.isLastItem() && /^next/.test( direction ) ) {
|
||||
|
||||
if ( !this.isMultiLine ) {
|
||||
this._value( this.term );
|
||||
}
|
||||
|
||||
this.menu.blur();
|
||||
return;
|
||||
}
|
||||
this.menu[ direction ]( event );
|
||||
},
|
||||
|
||||
widget: function() {
|
||||
return this.menu.element;
|
||||
},
|
||||
|
||||
_value: function() {
|
||||
return this.valueMethod.apply( this.element, arguments );
|
||||
},
|
||||
|
||||
_keyEvent: function( keyEvent, event ) {
|
||||
if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
|
||||
this._move( keyEvent, event );
|
||||
|
||||
// Prevents moving cursor to beginning/end of the text field in some browsers
|
||||
event.preventDefault();
|
||||
}
|
||||
},
|
||||
|
||||
// Support: Chrome <=50
|
||||
// We should be able to just use this.element.prop( "isContentEditable" )
|
||||
// but hidden elements always report false in Chrome.
|
||||
// https://code.google.com/p/chromium/issues/detail?id=313082
|
||||
_isContentEditable: function( element ) {
|
||||
if ( !element.length ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var editable = element.prop( "contentEditable" );
|
||||
|
||||
if ( editable === "inherit" ) {
|
||||
return this._isContentEditable( element.parent() );
|
||||
}
|
||||
|
||||
return editable === "true";
|
||||
}
|
||||
} );
|
||||
|
||||
$.extend( $.ui.autocomplete, {
|
||||
escapeRegex: function( value ) {
|
||||
return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
|
||||
},
|
||||
filter: function( array, term ) {
|
||||
var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
|
||||
return $.grep( array, function( value ) {
|
||||
return matcher.test( value.label || value.value || value );
|
||||
} );
|
||||
}
|
||||
} );
|
||||
|
||||
// Live region extension, adding a `messages` option
|
||||
// NOTE: This is an experimental API. We are still investigating
|
||||
// a full solution for string manipulation and internationalization.
|
||||
$.widget( "ui.autocomplete", $.ui.autocomplete, {
|
||||
options: {
|
||||
messages: {
|
||||
noResults: "No search results.",
|
||||
results: function( amount ) {
|
||||
return amount + ( amount > 1 ? " results are" : " result is" ) +
|
||||
" available, use up and down arrow keys to navigate.";
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
__response: function( content ) {
|
||||
var message;
|
||||
this._superApply( arguments );
|
||||
if ( this.options.disabled || this.cancelSearch ) {
|
||||
return;
|
||||
}
|
||||
if ( content && content.length ) {
|
||||
message = this.options.messages.results( content.length );
|
||||
} else {
|
||||
message = this.options.messages.noResults;
|
||||
}
|
||||
this.liveRegion.children().hide();
|
||||
$( "<div>" ).text( message ).appendTo( this.liveRegion );
|
||||
}
|
||||
} );
|
||||
|
||||
return $.ui.autocomplete;
|
||||
|
||||
} ) );
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,386 @@
|
|||
/*!
|
||||
* jQuery UI Button 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: Button
|
||||
//>>group: Widgets
|
||||
//>>description: Enhances a form with themeable buttons.
|
||||
//>>docs: http://api.jqueryui.com/button/
|
||||
//>>demos: http://jqueryui.com/button/
|
||||
//>>css.structure: ../../themes/base/core.css
|
||||
//>>css.structure: ../../themes/base/button.css
|
||||
//>>css.theme: ../../themes/base/theme.css
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [
|
||||
"jquery",
|
||||
|
||||
// These are only for backcompat
|
||||
// TODO: Remove after 1.12
|
||||
"./controlgroup",
|
||||
"./checkboxradio",
|
||||
|
||||
"../keycode",
|
||||
"../widget"
|
||||
], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
}( function( $ ) {
|
||||
|
||||
$.widget( "ui.button", {
|
||||
version: "1.12.1",
|
||||
defaultElement: "<button>",
|
||||
options: {
|
||||
classes: {
|
||||
"ui-button": "ui-corner-all"
|
||||
},
|
||||
disabled: null,
|
||||
icon: null,
|
||||
iconPosition: "beginning",
|
||||
label: null,
|
||||
showLabel: true
|
||||
},
|
||||
|
||||
_getCreateOptions: function() {
|
||||
var disabled,
|
||||
|
||||
// This is to support cases like in jQuery Mobile where the base widget does have
|
||||
// an implementation of _getCreateOptions
|
||||
options = this._super() || {};
|
||||
|
||||
this.isInput = this.element.is( "input" );
|
||||
|
||||
disabled = this.element[ 0 ].disabled;
|
||||
if ( disabled != null ) {
|
||||
options.disabled = disabled;
|
||||
}
|
||||
|
||||
this.originalLabel = this.isInput ? this.element.val() : this.element.html();
|
||||
if ( this.originalLabel ) {
|
||||
options.label = this.originalLabel;
|
||||
}
|
||||
|
||||
return options;
|
||||
},
|
||||
|
||||
_create: function() {
|
||||
if ( !this.option.showLabel & !this.options.icon ) {
|
||||
this.options.showLabel = true;
|
||||
}
|
||||
|
||||
// We have to check the option again here even though we did in _getCreateOptions,
|
||||
// because null may have been passed on init which would override what was set in
|
||||
// _getCreateOptions
|
||||
if ( this.options.disabled == null ) {
|
||||
this.options.disabled = this.element[ 0 ].disabled || false;
|
||||
}
|
||||
|
||||
this.hasTitle = !!this.element.attr( "title" );
|
||||
|
||||
// Check to see if the label needs to be set or if its already correct
|
||||
if ( this.options.label && this.options.label !== this.originalLabel ) {
|
||||
if ( this.isInput ) {
|
||||
this.element.val( this.options.label );
|
||||
} else {
|
||||
this.element.html( this.options.label );
|
||||
}
|
||||
}
|
||||
this._addClass( "ui-button", "ui-widget" );
|
||||
this._setOption( "disabled", this.options.disabled );
|
||||
this._enhance();
|
||||
|
||||
if ( this.element.is( "a" ) ) {
|
||||
this._on( {
|
||||
"keyup": function( event ) {
|
||||
if ( event.keyCode === $.ui.keyCode.SPACE ) {
|
||||
event.preventDefault();
|
||||
|
||||
// Support: PhantomJS <= 1.9, IE 8 Only
|
||||
// If a native click is available use it so we actually cause navigation
|
||||
// otherwise just trigger a click event
|
||||
if ( this.element[ 0 ].click ) {
|
||||
this.element[ 0 ].click();
|
||||
} else {
|
||||
this.element.trigger( "click" );
|
||||
}
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
},
|
||||
|
||||
_enhance: function() {
|
||||
if ( !this.element.is( "button" ) ) {
|
||||
this.element.attr( "role", "button" );
|
||||
}
|
||||
|
||||
if ( this.options.icon ) {
|
||||
this._updateIcon( "icon", this.options.icon );
|
||||
this._updateTooltip();
|
||||
}
|
||||
},
|
||||
|
||||
_updateTooltip: function() {
|
||||
this.title = this.element.attr( "title" );
|
||||
|
||||
if ( !this.options.showLabel && !this.title ) {
|
||||
this.element.attr( "title", this.options.label );
|
||||
}
|
||||
},
|
||||
|
||||
_updateIcon: function( option, value ) {
|
||||
var icon = option !== "iconPosition",
|
||||
position = icon ? this.options.iconPosition : value,
|
||||
displayBlock = position === "top" || position === "bottom";
|
||||
|
||||
// Create icon
|
||||
if ( !this.icon ) {
|
||||
this.icon = $( "<span>" );
|
||||
|
||||
this._addClass( this.icon, "ui-button-icon", "ui-icon" );
|
||||
|
||||
if ( !this.options.showLabel ) {
|
||||
this._addClass( "ui-button-icon-only" );
|
||||
}
|
||||
} else if ( icon ) {
|
||||
|
||||
// If we are updating the icon remove the old icon class
|
||||
this._removeClass( this.icon, null, this.options.icon );
|
||||
}
|
||||
|
||||
// If we are updating the icon add the new icon class
|
||||
if ( icon ) {
|
||||
this._addClass( this.icon, null, value );
|
||||
}
|
||||
|
||||
this._attachIcon( position );
|
||||
|
||||
// If the icon is on top or bottom we need to add the ui-widget-icon-block class and remove
|
||||
// the iconSpace if there is one.
|
||||
if ( displayBlock ) {
|
||||
this._addClass( this.icon, null, "ui-widget-icon-block" );
|
||||
if ( this.iconSpace ) {
|
||||
this.iconSpace.remove();
|
||||
}
|
||||
} else {
|
||||
|
||||
// Position is beginning or end so remove the ui-widget-icon-block class and add the
|
||||
// space if it does not exist
|
||||
if ( !this.iconSpace ) {
|
||||
this.iconSpace = $( "<span> </span>" );
|
||||
this._addClass( this.iconSpace, "ui-button-icon-space" );
|
||||
}
|
||||
this._removeClass( this.icon, null, "ui-wiget-icon-block" );
|
||||
this._attachIconSpace( position );
|
||||
}
|
||||
},
|
||||
|
||||
_destroy: function() {
|
||||
this.element.removeAttr( "role" );
|
||||
|
||||
if ( this.icon ) {
|
||||
this.icon.remove();
|
||||
}
|
||||
if ( this.iconSpace ) {
|
||||
this.iconSpace.remove();
|
||||
}
|
||||
if ( !this.hasTitle ) {
|
||||
this.element.removeAttr( "title" );
|
||||
}
|
||||
},
|
||||
|
||||
_attachIconSpace: function( iconPosition ) {
|
||||
this.icon[ /^(?:end|bottom)/.test( iconPosition ) ? "before" : "after" ]( this.iconSpace );
|
||||
},
|
||||
|
||||
_attachIcon: function( iconPosition ) {
|
||||
this.element[ /^(?:end|bottom)/.test( iconPosition ) ? "append" : "prepend" ]( this.icon );
|
||||
},
|
||||
|
||||
_setOptions: function( options ) {
|
||||
var newShowLabel = options.showLabel === undefined ?
|
||||
this.options.showLabel :
|
||||
options.showLabel,
|
||||
newIcon = options.icon === undefined ? this.options.icon : options.icon;
|
||||
|
||||
if ( !newShowLabel && !newIcon ) {
|
||||
options.showLabel = true;
|
||||
}
|
||||
this._super( options );
|
||||
},
|
||||
|
||||
_setOption: function( key, value ) {
|
||||
if ( key === "icon" ) {
|
||||
if ( value ) {
|
||||
this._updateIcon( key, value );
|
||||
} else if ( this.icon ) {
|
||||
this.icon.remove();
|
||||
if ( this.iconSpace ) {
|
||||
this.iconSpace.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( key === "iconPosition" ) {
|
||||
this._updateIcon( key, value );
|
||||
}
|
||||
|
||||
// Make sure we can't end up with a button that has neither text nor icon
|
||||
if ( key === "showLabel" ) {
|
||||
this._toggleClass( "ui-button-icon-only", null, !value );
|
||||
this._updateTooltip();
|
||||
}
|
||||
|
||||
if ( key === "label" ) {
|
||||
if ( this.isInput ) {
|
||||
this.element.val( value );
|
||||
} else {
|
||||
|
||||
// If there is an icon, append it, else nothing then append the value
|
||||
// this avoids removal of the icon when setting label text
|
||||
this.element.html( value );
|
||||
if ( this.icon ) {
|
||||
this._attachIcon( this.options.iconPosition );
|
||||
this._attachIconSpace( this.options.iconPosition );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this._super( key, value );
|
||||
|
||||
if ( key === "disabled" ) {
|
||||
this._toggleClass( null, "ui-state-disabled", value );
|
||||
this.element[ 0 ].disabled = value;
|
||||
if ( value ) {
|
||||
this.element.blur();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
refresh: function() {
|
||||
|
||||
// Make sure to only check disabled if its an element that supports this otherwise
|
||||
// check for the disabled class to determine state
|
||||
var isDisabled = this.element.is( "input, button" ) ?
|
||||
this.element[ 0 ].disabled : this.element.hasClass( "ui-button-disabled" );
|
||||
|
||||
if ( isDisabled !== this.options.disabled ) {
|
||||
this._setOptions( { disabled: isDisabled } );
|
||||
}
|
||||
|
||||
this._updateTooltip();
|
||||
}
|
||||
} );
|
||||
|
||||
// DEPRECATED
|
||||
if ( $.uiBackCompat !== false ) {
|
||||
|
||||
// Text and Icons options
|
||||
$.widget( "ui.button", $.ui.button, {
|
||||
options: {
|
||||
text: true,
|
||||
icons: {
|
||||
primary: null,
|
||||
secondary: null
|
||||
}
|
||||
},
|
||||
|
||||
_create: function() {
|
||||
if ( this.options.showLabel && !this.options.text ) {
|
||||
this.options.showLabel = this.options.text;
|
||||
}
|
||||
if ( !this.options.showLabel && this.options.text ) {
|
||||
this.options.text = this.options.showLabel;
|
||||
}
|
||||
if ( !this.options.icon && ( this.options.icons.primary ||
|
||||
this.options.icons.secondary ) ) {
|
||||
if ( this.options.icons.primary ) {
|
||||
this.options.icon = this.options.icons.primary;
|
||||
} else {
|
||||
this.options.icon = this.options.icons.secondary;
|
||||
this.options.iconPosition = "end";
|
||||
}
|
||||
} else if ( this.options.icon ) {
|
||||
this.options.icons.primary = this.options.icon;
|
||||
}
|
||||
this._super();
|
||||
},
|
||||
|
||||
_setOption: function( key, value ) {
|
||||
if ( key === "text" ) {
|
||||
this._super( "showLabel", value );
|
||||
return;
|
||||
}
|
||||
if ( key === "showLabel" ) {
|
||||
this.options.text = value;
|
||||
}
|
||||
if ( key === "icon" ) {
|
||||
this.options.icons.primary = value;
|
||||
}
|
||||
if ( key === "icons" ) {
|
||||
if ( value.primary ) {
|
||||
this._super( "icon", value.primary );
|
||||
this._super( "iconPosition", "beginning" );
|
||||
} else if ( value.secondary ) {
|
||||
this._super( "icon", value.secondary );
|
||||
this._super( "iconPosition", "end" );
|
||||
}
|
||||
}
|
||||
this._superApply( arguments );
|
||||
}
|
||||
} );
|
||||
|
||||
$.fn.button = ( function( orig ) {
|
||||
return function() {
|
||||
if ( !this.length || ( this.length && this[ 0 ].tagName !== "INPUT" ) ||
|
||||
( this.length && this[ 0 ].tagName === "INPUT" && (
|
||||
this.attr( "type" ) !== "checkbox" && this.attr( "type" ) !== "radio"
|
||||
) ) ) {
|
||||
return orig.apply( this, arguments );
|
||||
}
|
||||
if ( !$.ui.checkboxradio ) {
|
||||
$.error( "Checkboxradio widget missing" );
|
||||
}
|
||||
if ( arguments.length === 0 ) {
|
||||
return this.checkboxradio( {
|
||||
"icon": false
|
||||
} );
|
||||
}
|
||||
return this.checkboxradio.apply( this, arguments );
|
||||
};
|
||||
} )( $.fn.button );
|
||||
|
||||
$.fn.buttonset = function() {
|
||||
if ( !$.ui.controlgroup ) {
|
||||
$.error( "Controlgroup widget missing" );
|
||||
}
|
||||
if ( arguments[ 0 ] === "option" && arguments[ 1 ] === "items" && arguments[ 2 ] ) {
|
||||
return this.controlgroup.apply( this,
|
||||
[ arguments[ 0 ], "items.button", arguments[ 2 ] ] );
|
||||
}
|
||||
if ( arguments[ 0 ] === "option" && arguments[ 1 ] === "items" ) {
|
||||
return this.controlgroup.apply( this, [ arguments[ 0 ], "items.button" ] );
|
||||
}
|
||||
if ( typeof arguments[ 0 ] === "object" && arguments[ 0 ].items ) {
|
||||
arguments[ 0 ].items = {
|
||||
button: arguments[ 0 ].items
|
||||
};
|
||||
}
|
||||
return this.controlgroup.apply( this, arguments );
|
||||
};
|
||||
}
|
||||
|
||||
return $.ui.button;
|
||||
|
||||
} ) );
|
|
@ -1,4 +1,9 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../escape-selector","../form-reset-mixin","../labels","../widget"],a):a(jQuery)}(function(a){return a.widget("ui.checkboxradio",[a.ui.formResetMixin,{version:"1.12.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var b,c,d=this,e=this._super()||{};return this._readType(),c=this.element.labels(),this.label=a(c[c.length-1]),this.label.length||a.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each(function(){d.originalLabel+=3===this.nodeType?a(this).text():this.outerHTML}),this.originalLabel&&(e.label=this.originalLabel),b=this.element[0].disabled,null!=b&&(e.disabled=b),e},_create:function(){var a=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),a&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var b=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===b&&/radio|checkbox/.test(this.type)||a.error("Can't create checkboxradio on element.nodeName="+b+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var b,c=this.element[0].name,d="input[name='"+a.ui.escapeSelector(c)+"']";return c?(b=this.form.length?a(this.form[0].elements).filter(d):a(d).filter(function(){return 0===a(this).form().length}),b.not(this.element)):a([])},_toggleClasses:function(){var b=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",b),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",b)._toggleClass(this.icon,null,"ui-icon-blank",!b),"radio"===this.type&&this._getRadioGroup().each(function(){var b=a(this).checkboxradio("instance");b&&b._removeClass(b.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(a,b){if("label"!==a||b)return this._super(a,b),"disabled"===a?(this._toggleClass(this.label,null,"ui-state-disabled",b),void(this.element[0].disabled=b)):void this.refresh()},_updateIcon:function(b){var c="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=a("<span>"),this.iconSpace=a("<span> </span>"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(c+=b?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,b?"ui-icon-blank":"ui-icon-check")):c+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",c),b||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var a=this.label.contents().not(this.element[0]);this.icon&&(a=a.not(this.icon[0])),this.iconSpace&&(a=a.not(this.iconSpace[0])),a.remove(),this.label.append(this.options.label)},refresh:function(){var a=this.element[0].checked,b=this.element[0].disabled;this._updateIcon(a),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",a),null!==this.options.label&&this._updateLabel(),b!==this.options.disabled&&this._setOptions({disabled:b})}}]),a.ui.checkboxradio});
|
||||
/*!
|
||||
* jQuery UI Checkboxradio 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery","../escape-selector","../form-reset-mixin","../labels","../widget"],e):e(jQuery)}((function(e){return e.widget("ui.checkboxradio",[e.ui.formResetMixin,{version:"1.12.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var i,t,s=this,o=this._super()||{};return this._readType(),t=this.element.labels(),this.label=e(t[t.length-1]),this.label.length||e.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each((function(){s.originalLabel+=3===this.nodeType?e(this).text():this.outerHTML})),this.originalLabel&&(o.label=this.originalLabel),null!=(i=this.element[0].disabled)&&(o.disabled=i),o},_create:function(){var e=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),e&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var i=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===i&&/radio|checkbox/.test(this.type)||e.error("Can't create checkboxradio on element.nodeName="+i+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var i=this.element[0].name,t="input[name='"+e.ui.escapeSelector(i)+"']";return i?(this.form.length?e(this.form[0].elements).filter(t):e(t).filter((function(){return 0===e(this).form().length}))).not(this.element):e([])},_toggleClasses:function(){var i=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",i),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",i)._toggleClass(this.icon,null,"ui-icon-blank",!i),"radio"===this.type&&this._getRadioGroup().each((function(){var i=e(this).checkboxradio("instance");i&&i._removeClass(i.label,"ui-checkboxradio-checked","ui-state-active")}))},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(e,i){if("label"!==e||i){if(this._super(e,i),"disabled"===e)return this._toggleClass(this.label,null,"ui-state-disabled",i),void(this.element[0].disabled=i);this.refresh()}},_updateIcon:function(i){var t="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=e("<span>"),this.iconSpace=e("<span> </span>"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(t+=i?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,i?"ui-icon-blank":"ui-icon-check")):t+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",t),i||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var e=this.label.contents().not(this.element[0]);this.icon&&(e=e.not(this.icon[0])),this.iconSpace&&(e=e.not(this.iconSpace[0])),e.remove(),this.label.append(this.options.label)},refresh:function(){var e=this.element[0].checked,i=this.element[0].disabled;this._updateIcon(e),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),null!==this.options.label&&this._updateLabel(),i!==this.options.disabled&&this._setOptions({disabled:i})}}]),e.ui.checkboxradio}));
|
|
@ -0,0 +1,286 @@
|
|||
/*!
|
||||
* jQuery UI Checkboxradio 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: Checkboxradio
|
||||
//>>group: Widgets
|
||||
//>>description: Enhances a form with multiple themeable checkboxes or radio buttons.
|
||||
//>>docs: http://api.jqueryui.com/checkboxradio/
|
||||
//>>demos: http://jqueryui.com/checkboxradio/
|
||||
//>>css.structure: ../../themes/base/core.css
|
||||
//>>css.structure: ../../themes/base/button.css
|
||||
//>>css.structure: ../../themes/base/checkboxradio.css
|
||||
//>>css.theme: ../../themes/base/theme.css
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [
|
||||
"jquery",
|
||||
"../escape-selector",
|
||||
"../form-reset-mixin",
|
||||
"../labels",
|
||||
"../widget"
|
||||
], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
}( function( $ ) {
|
||||
|
||||
$.widget( "ui.checkboxradio", [ $.ui.formResetMixin, {
|
||||
version: "1.12.1",
|
||||
options: {
|
||||
disabled: null,
|
||||
label: null,
|
||||
icon: true,
|
||||
classes: {
|
||||
"ui-checkboxradio-label": "ui-corner-all",
|
||||
"ui-checkboxradio-icon": "ui-corner-all"
|
||||
}
|
||||
},
|
||||
|
||||
_getCreateOptions: function() {
|
||||
var disabled, labels;
|
||||
var that = this;
|
||||
var options = this._super() || {};
|
||||
|
||||
// We read the type here, because it makes more sense to throw a element type error first,
|
||||
// rather then the error for lack of a label. Often if its the wrong type, it
|
||||
// won't have a label (e.g. calling on a div, btn, etc)
|
||||
this._readType();
|
||||
|
||||
labels = this.element.labels();
|
||||
|
||||
// If there are multiple labels, use the last one
|
||||
this.label = $( labels[ labels.length - 1 ] );
|
||||
if ( !this.label.length ) {
|
||||
$.error( "No label found for checkboxradio widget" );
|
||||
}
|
||||
|
||||
this.originalLabel = "";
|
||||
|
||||
// We need to get the label text but this may also need to make sure it does not contain the
|
||||
// input itself.
|
||||
this.label.contents().not( this.element[ 0 ] ).each( function() {
|
||||
|
||||
// The label contents could be text, html, or a mix. We concat each element to get a
|
||||
// string representation of the label, without the input as part of it.
|
||||
that.originalLabel += this.nodeType === 3 ? $( this ).text() : this.outerHTML;
|
||||
} );
|
||||
|
||||
// Set the label option if we found label text
|
||||
if ( this.originalLabel ) {
|
||||
options.label = this.originalLabel;
|
||||
}
|
||||
|
||||
disabled = this.element[ 0 ].disabled;
|
||||
if ( disabled != null ) {
|
||||
options.disabled = disabled;
|
||||
}
|
||||
return options;
|
||||
},
|
||||
|
||||
_create: function() {
|
||||
var checked = this.element[ 0 ].checked;
|
||||
|
||||
this._bindFormResetHandler();
|
||||
|
||||
if ( this.options.disabled == null ) {
|
||||
this.options.disabled = this.element[ 0 ].disabled;
|
||||
}
|
||||
|
||||
this._setOption( "disabled", this.options.disabled );
|
||||
this._addClass( "ui-checkboxradio", "ui-helper-hidden-accessible" );
|
||||
this._addClass( this.label, "ui-checkboxradio-label", "ui-button ui-widget" );
|
||||
|
||||
if ( this.type === "radio" ) {
|
||||
this._addClass( this.label, "ui-checkboxradio-radio-label" );
|
||||
}
|
||||
|
||||
if ( this.options.label && this.options.label !== this.originalLabel ) {
|
||||
this._updateLabel();
|
||||
} else if ( this.originalLabel ) {
|
||||
this.options.label = this.originalLabel;
|
||||
}
|
||||
|
||||
this._enhance();
|
||||
|
||||
if ( checked ) {
|
||||
this._addClass( this.label, "ui-checkboxradio-checked", "ui-state-active" );
|
||||
if ( this.icon ) {
|
||||
this._addClass( this.icon, null, "ui-state-hover" );
|
||||
}
|
||||
}
|
||||
|
||||
this._on( {
|
||||
change: "_toggleClasses",
|
||||
focus: function() {
|
||||
this._addClass( this.label, null, "ui-state-focus ui-visual-focus" );
|
||||
},
|
||||
blur: function() {
|
||||
this._removeClass( this.label, null, "ui-state-focus ui-visual-focus" );
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
_readType: function() {
|
||||
var nodeName = this.element[ 0 ].nodeName.toLowerCase();
|
||||
this.type = this.element[ 0 ].type;
|
||||
if ( nodeName !== "input" || !/radio|checkbox/.test( this.type ) ) {
|
||||
$.error( "Can't create checkboxradio on element.nodeName=" + nodeName +
|
||||
" and element.type=" + this.type );
|
||||
}
|
||||
},
|
||||
|
||||
// Support jQuery Mobile enhanced option
|
||||
_enhance: function() {
|
||||
this._updateIcon( this.element[ 0 ].checked );
|
||||
},
|
||||
|
||||
widget: function() {
|
||||
return this.label;
|
||||
},
|
||||
|
||||
_getRadioGroup: function() {
|
||||
var group;
|
||||
var name = this.element[ 0 ].name;
|
||||
var nameSelector = "input[name='" + $.ui.escapeSelector( name ) + "']";
|
||||
|
||||
if ( !name ) {
|
||||
return $( [] );
|
||||
}
|
||||
|
||||
if ( this.form.length ) {
|
||||
group = $( this.form[ 0 ].elements ).filter( nameSelector );
|
||||
} else {
|
||||
|
||||
// Not inside a form, check all inputs that also are not inside a form
|
||||
group = $( nameSelector ).filter( function() {
|
||||
return $( this ).form().length === 0;
|
||||
} );
|
||||
}
|
||||
|
||||
return group.not( this.element );
|
||||
},
|
||||
|
||||
_toggleClasses: function() {
|
||||
var checked = this.element[ 0 ].checked;
|
||||
this._toggleClass( this.label, "ui-checkboxradio-checked", "ui-state-active", checked );
|
||||
|
||||
if ( this.options.icon && this.type === "checkbox" ) {
|
||||
this._toggleClass( this.icon, null, "ui-icon-check ui-state-checked", checked )
|
||||
._toggleClass( this.icon, null, "ui-icon-blank", !checked );
|
||||
}
|
||||
|
||||
if ( this.type === "radio" ) {
|
||||
this._getRadioGroup()
|
||||
.each( function() {
|
||||
var instance = $( this ).checkboxradio( "instance" );
|
||||
|
||||
if ( instance ) {
|
||||
instance._removeClass( instance.label,
|
||||
"ui-checkboxradio-checked", "ui-state-active" );
|
||||
}
|
||||
} );
|
||||
}
|
||||
},
|
||||
|
||||
_destroy: function() {
|
||||
this._unbindFormResetHandler();
|
||||
|
||||
if ( this.icon ) {
|
||||
this.icon.remove();
|
||||
this.iconSpace.remove();
|
||||
}
|
||||
},
|
||||
|
||||
_setOption: function( key, value ) {
|
||||
|
||||
// We don't allow the value to be set to nothing
|
||||
if ( key === "label" && !value ) {
|
||||
return;
|
||||
}
|
||||
|
||||
this._super( key, value );
|
||||
|
||||
if ( key === "disabled" ) {
|
||||
this._toggleClass( this.label, null, "ui-state-disabled", value );
|
||||
this.element[ 0 ].disabled = value;
|
||||
|
||||
// Don't refresh when setting disabled
|
||||
return;
|
||||
}
|
||||
this.refresh();
|
||||
},
|
||||
|
||||
_updateIcon: function( checked ) {
|
||||
var toAdd = "ui-icon ui-icon-background ";
|
||||
|
||||
if ( this.options.icon ) {
|
||||
if ( !this.icon ) {
|
||||
this.icon = $( "<span>" );
|
||||
this.iconSpace = $( "<span> </span>" );
|
||||
this._addClass( this.iconSpace, "ui-checkboxradio-icon-space" );
|
||||
}
|
||||
|
||||
if ( this.type === "checkbox" ) {
|
||||
toAdd += checked ? "ui-icon-check ui-state-checked" : "ui-icon-blank";
|
||||
this._removeClass( this.icon, null, checked ? "ui-icon-blank" : "ui-icon-check" );
|
||||
} else {
|
||||
toAdd += "ui-icon-blank";
|
||||
}
|
||||
this._addClass( this.icon, "ui-checkboxradio-icon", toAdd );
|
||||
if ( !checked ) {
|
||||
this._removeClass( this.icon, null, "ui-icon-check ui-state-checked" );
|
||||
}
|
||||
this.icon.prependTo( this.label ).after( this.iconSpace );
|
||||
} else if ( this.icon !== undefined ) {
|
||||
this.icon.remove();
|
||||
this.iconSpace.remove();
|
||||
delete this.icon;
|
||||
}
|
||||
},
|
||||
|
||||
_updateLabel: function() {
|
||||
|
||||
// Remove the contents of the label ( minus the icon, icon space, and input )
|
||||
var contents = this.label.contents().not( this.element[ 0 ] );
|
||||
if ( this.icon ) {
|
||||
contents = contents.not( this.icon[ 0 ] );
|
||||
}
|
||||
if ( this.iconSpace ) {
|
||||
contents = contents.not( this.iconSpace[ 0 ] );
|
||||
}
|
||||
contents.remove();
|
||||
|
||||
this.label.append( this.options.label );
|
||||
},
|
||||
|
||||
refresh: function() {
|
||||
var checked = this.element[ 0 ].checked,
|
||||
isDisabled = this.element[ 0 ].disabled;
|
||||
|
||||
this._updateIcon( checked );
|
||||
this._toggleClass( this.label, "ui-checkboxradio-checked", "ui-state-active", checked );
|
||||
if ( this.options.label !== null ) {
|
||||
this._updateLabel();
|
||||
}
|
||||
|
||||
if ( isDisabled !== this.options.disabled ) {
|
||||
this._setOptions( { "disabled": isDisabled } );
|
||||
}
|
||||
}
|
||||
|
||||
} ] );
|
||||
|
||||
return $.ui.checkboxradio;
|
||||
|
||||
} ) );
|
|
@ -1,4 +1,9 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../widget"],a):a(jQuery)}(function(a){var b=/ui-corner-([a-z]){2,6}/g;return a.widget("ui.controlgroup",{version:"1.12.1",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var b=this,c=[];a.each(this.options.items,function(d,e){var f,g={};if(e)return"controlgroupLabel"===d?(f=b.element.find(e),f.each(function(){var b=a(this);b.children(".ui-controlgroup-label-contents").length||b.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")}),b._addClass(f,null,"ui-widget ui-widget-content ui-state-default"),void(c=c.concat(f.get()))):void(a.fn[d]&&(g=b["_"+d+"Options"]?b["_"+d+"Options"]("middle"):{classes:{}},b.element.find(e).each(function(){var e=a(this),f=e[d]("instance"),h=a.widget.extend({},g);if("button"!==d||!e.parent(".ui-spinner").length){f||(f=e[d]()[d]("instance")),f&&(h.classes=b._resolveClassesValues(h.classes,f)),e[d](h);var i=e[d]("widget");a.data(i[0],"ui-controlgroup-data",f?f:e[d]("instance")),c.push(i[0])}})))}),this.childWidgets=a(a.unique(c)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(b){this.childWidgets.each(function(){var c=a(this),d=c.data("ui-controlgroup-data");d&&d[b]&&d[b]()})},_updateCornerClass:function(a,b){var c="ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all",d=this._buildSimpleOptions(b,"label").classes.label;this._removeClass(a,null,c),this._addClass(a,null,d)},_buildSimpleOptions:function(a,b){var c="vertical"===this.options.direction,d={classes:{}};return d.classes[b]={middle:"",first:"ui-corner-"+(c?"top":"left"),last:"ui-corner-"+(c?"bottom":"right"),only:"ui-corner-all"}[a],d},_spinnerOptions:function(a){var b=this._buildSimpleOptions(a,"ui-spinner");return b.classes["ui-spinner-up"]="",b.classes["ui-spinner-down"]="",b},_buttonOptions:function(a){return this._buildSimpleOptions(a,"ui-button")},_checkboxradioOptions:function(a){return this._buildSimpleOptions(a,"ui-checkboxradio-label")},_selectmenuOptions:function(a){var b="vertical"===this.options.direction;return{width:!!b&&"auto",classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(b?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(b?"top":"left")},last:{"ui-selectmenu-button-open":b?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(b?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[a]}},_resolveClassesValues:function(c,d){var e={};return a.each(c,function(f){var g=d.options.classes[f]||"";g=a.trim(g.replace(b,"")),e[f]=(g+" "+c[f]).replace(/\s+/g," ")}),e},_setOption:function(a,b){return"direction"===a&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(a,b),"disabled"===a?void this._callChildMethod(b?"disable":"enable"):void this.refresh()},refresh:function(){var b,c=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),b=this.childWidgets,this.options.onlyVisible&&(b=b.filter(":visible")),b.length&&(a.each(["first","last"],function(a,d){var e=b[d]().data("ui-controlgroup-data");if(e&&c["_"+e.widgetName+"Options"]){var f=c["_"+e.widgetName+"Options"](1===b.length?"only":d);f.classes=c._resolveClassesValues(f.classes,e),e.element[e.widgetName](f)}else c._updateCornerClass(b[d](),d)}),this._callChildMethod("refresh"))}})});
|
||||
/*!
|
||||
* jQuery UI Controlgroup 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
!function(t){"function"==typeof define&&define.amd?define(["jquery","../widget"],t):t(jQuery)}((function(t){var e=/ui-corner-([a-z]){2,6}/g;return t.widget("ui.controlgroup",{version:"1.12.1",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var e=this,i=[];t.each(this.options.items,(function(n,o){var s,l={};if(o)return"controlgroupLabel"===n?((s=e.element.find(o)).each((function(){var e=t(this);e.children(".ui-controlgroup-label-contents").length||e.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")})),e._addClass(s,null,"ui-widget ui-widget-content ui-state-default"),void(i=i.concat(s.get()))):void(t.fn[n]&&(l=e["_"+n+"Options"]?e["_"+n+"Options"]("middle"):{classes:{}},e.element.find(o).each((function(){var o=t(this),s=o[n]("instance"),r=t.widget.extend({},l);if("button"!==n||!o.parent(".ui-spinner").length){s||(s=o[n]()[n]("instance")),s&&(r.classes=e._resolveClassesValues(r.classes,s)),o[n](r);var u=o[n]("widget");t.data(u[0],"ui-controlgroup-data",s||o[n]("instance")),i.push(u[0])}}))))})),this.childWidgets=t(t.unique(i)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each((function(){var i=t(this).data("ui-controlgroup-data");i&&i[e]&&i[e]()}))},_updateCornerClass:function(t,e){var i=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,"ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all"),this._addClass(t,null,i)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,n={classes:{}};return n.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],n},_spinnerOptions:function(t){var e=this._buildSimpleOptions(t,"ui-spinner");return e.classes["ui-spinner-up"]="",e.classes["ui-spinner-down"]="",e},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:!!e&&"auto",classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(i,n){var o={};return t.each(i,(function(s){var l=n.options.classes[s]||"";l=t.trim(l.replace(e,"")),o[s]=(l+" "+i[s]).replace(/\s+/g," ")})),o},_setOption:function(t,e){"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"!==t?this.refresh():this._callChildMethod(e?"disable":"enable")},refresh:function(){var e,i=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),e=this.childWidgets,this.options.onlyVisible&&(e=e.filter(":visible")),e.length&&(t.each(["first","last"],(function(t,n){var o=e[n]().data("ui-controlgroup-data");if(o&&i["_"+o.widgetName+"Options"]){var s=i["_"+o.widgetName+"Options"](1===e.length?"only":n);s.classes=i._resolveClassesValues(s.classes,o),o.element[o.widgetName](s)}else i._updateCornerClass(e[n](),n)})),this._callChildMethod("refresh"))}})}));
|
|
@ -0,0 +1,298 @@
|
|||
/*!
|
||||
* jQuery UI Controlgroup 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: Controlgroup
|
||||
//>>group: Widgets
|
||||
//>>description: Visually groups form control widgets
|
||||
//>>docs: http://api.jqueryui.com/controlgroup/
|
||||
//>>demos: http://jqueryui.com/controlgroup/
|
||||
//>>css.structure: ../../themes/base/core.css
|
||||
//>>css.structure: ../../themes/base/controlgroup.css
|
||||
//>>css.theme: ../../themes/base/theme.css
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [
|
||||
"jquery",
|
||||
"../widget"
|
||||
], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
}( function( $ ) {
|
||||
var controlgroupCornerRegex = /ui-corner-([a-z]){2,6}/g;
|
||||
|
||||
return $.widget( "ui.controlgroup", {
|
||||
version: "1.12.1",
|
||||
defaultElement: "<div>",
|
||||
options: {
|
||||
direction: "horizontal",
|
||||
disabled: null,
|
||||
onlyVisible: true,
|
||||
items: {
|
||||
"button": "input[type=button], input[type=submit], input[type=reset], button, a",
|
||||
"controlgroupLabel": ".ui-controlgroup-label",
|
||||
"checkboxradio": "input[type='checkbox'], input[type='radio']",
|
||||
"selectmenu": "select",
|
||||
"spinner": ".ui-spinner-input"
|
||||
}
|
||||
},
|
||||
|
||||
_create: function() {
|
||||
this._enhance();
|
||||
},
|
||||
|
||||
// To support the enhanced option in jQuery Mobile, we isolate DOM manipulation
|
||||
_enhance: function() {
|
||||
this.element.attr( "role", "toolbar" );
|
||||
this.refresh();
|
||||
},
|
||||
|
||||
_destroy: function() {
|
||||
this._callChildMethod( "destroy" );
|
||||
this.childWidgets.removeData( "ui-controlgroup-data" );
|
||||
this.element.removeAttr( "role" );
|
||||
if ( this.options.items.controlgroupLabel ) {
|
||||
this.element
|
||||
.find( this.options.items.controlgroupLabel )
|
||||
.find( ".ui-controlgroup-label-contents" )
|
||||
.contents().unwrap();
|
||||
}
|
||||
},
|
||||
|
||||
_initWidgets: function() {
|
||||
var that = this,
|
||||
childWidgets = [];
|
||||
|
||||
// First we iterate over each of the items options
|
||||
$.each( this.options.items, function( widget, selector ) {
|
||||
var labels;
|
||||
var options = {};
|
||||
|
||||
// Make sure the widget has a selector set
|
||||
if ( !selector ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( widget === "controlgroupLabel" ) {
|
||||
labels = that.element.find( selector );
|
||||
labels.each( function() {
|
||||
var element = $( this );
|
||||
|
||||
if ( element.children( ".ui-controlgroup-label-contents" ).length ) {
|
||||
return;
|
||||
}
|
||||
element.contents()
|
||||
.wrapAll( "<span class='ui-controlgroup-label-contents'></span>" );
|
||||
} );
|
||||
that._addClass( labels, null, "ui-widget ui-widget-content ui-state-default" );
|
||||
childWidgets = childWidgets.concat( labels.get() );
|
||||
return;
|
||||
}
|
||||
|
||||
// Make sure the widget actually exists
|
||||
if ( !$.fn[ widget ] ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// We assume everything is in the middle to start because we can't determine
|
||||
// first / last elements until all enhancments are done.
|
||||
if ( that[ "_" + widget + "Options" ] ) {
|
||||
options = that[ "_" + widget + "Options" ]( "middle" );
|
||||
} else {
|
||||
options = { classes: {} };
|
||||
}
|
||||
|
||||
// Find instances of this widget inside controlgroup and init them
|
||||
that.element
|
||||
.find( selector )
|
||||
.each( function() {
|
||||
var element = $( this );
|
||||
var instance = element[ widget ]( "instance" );
|
||||
|
||||
// We need to clone the default options for this type of widget to avoid
|
||||
// polluting the variable options which has a wider scope than a single widget.
|
||||
var instanceOptions = $.widget.extend( {}, options );
|
||||
|
||||
// If the button is the child of a spinner ignore it
|
||||
// TODO: Find a more generic solution
|
||||
if ( widget === "button" && element.parent( ".ui-spinner" ).length ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Create the widget if it doesn't exist
|
||||
if ( !instance ) {
|
||||
instance = element[ widget ]()[ widget ]( "instance" );
|
||||
}
|
||||
if ( instance ) {
|
||||
instanceOptions.classes =
|
||||
that._resolveClassesValues( instanceOptions.classes, instance );
|
||||
}
|
||||
element[ widget ]( instanceOptions );
|
||||
|
||||
// Store an instance of the controlgroup to be able to reference
|
||||
// from the outermost element for changing options and refresh
|
||||
var widgetElement = element[ widget ]( "widget" );
|
||||
$.data( widgetElement[ 0 ], "ui-controlgroup-data",
|
||||
instance ? instance : element[ widget ]( "instance" ) );
|
||||
|
||||
childWidgets.push( widgetElement[ 0 ] );
|
||||
} );
|
||||
} );
|
||||
|
||||
this.childWidgets = $( $.unique( childWidgets ) );
|
||||
this._addClass( this.childWidgets, "ui-controlgroup-item" );
|
||||
},
|
||||
|
||||
_callChildMethod: function( method ) {
|
||||
this.childWidgets.each( function() {
|
||||
var element = $( this ),
|
||||
data = element.data( "ui-controlgroup-data" );
|
||||
if ( data && data[ method ] ) {
|
||||
data[ method ]();
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
_updateCornerClass: function( element, position ) {
|
||||
var remove = "ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all";
|
||||
var add = this._buildSimpleOptions( position, "label" ).classes.label;
|
||||
|
||||
this._removeClass( element, null, remove );
|
||||
this._addClass( element, null, add );
|
||||
},
|
||||
|
||||
_buildSimpleOptions: function( position, key ) {
|
||||
var direction = this.options.direction === "vertical";
|
||||
var result = {
|
||||
classes: {}
|
||||
};
|
||||
result.classes[ key ] = {
|
||||
"middle": "",
|
||||
"first": "ui-corner-" + ( direction ? "top" : "left" ),
|
||||
"last": "ui-corner-" + ( direction ? "bottom" : "right" ),
|
||||
"only": "ui-corner-all"
|
||||
}[ position ];
|
||||
|
||||
return result;
|
||||
},
|
||||
|
||||
_spinnerOptions: function( position ) {
|
||||
var options = this._buildSimpleOptions( position, "ui-spinner" );
|
||||
|
||||
options.classes[ "ui-spinner-up" ] = "";
|
||||
options.classes[ "ui-spinner-down" ] = "";
|
||||
|
||||
return options;
|
||||
},
|
||||
|
||||
_buttonOptions: function( position ) {
|
||||
return this._buildSimpleOptions( position, "ui-button" );
|
||||
},
|
||||
|
||||
_checkboxradioOptions: function( position ) {
|
||||
return this._buildSimpleOptions( position, "ui-checkboxradio-label" );
|
||||
},
|
||||
|
||||
_selectmenuOptions: function( position ) {
|
||||
var direction = this.options.direction === "vertical";
|
||||
return {
|
||||
width: direction ? "auto" : false,
|
||||
classes: {
|
||||
middle: {
|
||||
"ui-selectmenu-button-open": "",
|
||||
"ui-selectmenu-button-closed": ""
|
||||
},
|
||||
first: {
|
||||
"ui-selectmenu-button-open": "ui-corner-" + ( direction ? "top" : "tl" ),
|
||||
"ui-selectmenu-button-closed": "ui-corner-" + ( direction ? "top" : "left" )
|
||||
},
|
||||
last: {
|
||||
"ui-selectmenu-button-open": direction ? "" : "ui-corner-tr",
|
||||
"ui-selectmenu-button-closed": "ui-corner-" + ( direction ? "bottom" : "right" )
|
||||
},
|
||||
only: {
|
||||
"ui-selectmenu-button-open": "ui-corner-top",
|
||||
"ui-selectmenu-button-closed": "ui-corner-all"
|
||||
}
|
||||
|
||||
}[ position ]
|
||||
};
|
||||
},
|
||||
|
||||
_resolveClassesValues: function( classes, instance ) {
|
||||
var result = {};
|
||||
$.each( classes, function( key ) {
|
||||
var current = instance.options.classes[ key ] || "";
|
||||
current = $.trim( current.replace( controlgroupCornerRegex, "" ) );
|
||||
result[ key ] = ( current + " " + classes[ key ] ).replace( /\s+/g, " " );
|
||||
} );
|
||||
return result;
|
||||
},
|
||||
|
||||
_setOption: function( key, value ) {
|
||||
if ( key === "direction" ) {
|
||||
this._removeClass( "ui-controlgroup-" + this.options.direction );
|
||||
}
|
||||
|
||||
this._super( key, value );
|
||||
if ( key === "disabled" ) {
|
||||
this._callChildMethod( value ? "disable" : "enable" );
|
||||
return;
|
||||
}
|
||||
|
||||
this.refresh();
|
||||
},
|
||||
|
||||
refresh: function() {
|
||||
var children,
|
||||
that = this;
|
||||
|
||||
this._addClass( "ui-controlgroup ui-controlgroup-" + this.options.direction );
|
||||
|
||||
if ( this.options.direction === "horizontal" ) {
|
||||
this._addClass( null, "ui-helper-clearfix" );
|
||||
}
|
||||
this._initWidgets();
|
||||
|
||||
children = this.childWidgets;
|
||||
|
||||
// We filter here because we need to track all childWidgets not just the visible ones
|
||||
if ( this.options.onlyVisible ) {
|
||||
children = children.filter( ":visible" );
|
||||
}
|
||||
|
||||
if ( children.length ) {
|
||||
|
||||
// We do this last because we need to make sure all enhancment is done
|
||||
// before determining first and last
|
||||
$.each( [ "first", "last" ], function( index, value ) {
|
||||
var instance = children[ value ]().data( "ui-controlgroup-data" );
|
||||
|
||||
if ( instance && that[ "_" + instance.widgetName + "Options" ] ) {
|
||||
var options = that[ "_" + instance.widgetName + "Options" ](
|
||||
children.length === 1 ? "only" : value
|
||||
);
|
||||
options.classes = that._resolveClassesValues( options.classes, instance );
|
||||
instance.element[ instance.widgetName ]( options );
|
||||
} else {
|
||||
that._updateCornerClass( children[ value ](), value );
|
||||
}
|
||||
} );
|
||||
|
||||
// Finally call the refresh method on each of the child widgets.
|
||||
this._callChildMethod( "refresh" );
|
||||
}
|
||||
}
|
||||
} );
|
||||
} ) );
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,940 @@
|
|||
/*!
|
||||
* jQuery UI Dialog 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: Dialog
|
||||
//>>group: Widgets
|
||||
//>>description: Displays customizable dialog windows.
|
||||
//>>docs: http://api.jqueryui.com/dialog/
|
||||
//>>demos: http://jqueryui.com/dialog/
|
||||
//>>css.structure: ../../themes/base/core.css
|
||||
//>>css.structure: ../../themes/base/dialog.css
|
||||
//>>css.theme: ../../themes/base/theme.css
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [
|
||||
"jquery",
|
||||
"./button",
|
||||
"./draggable",
|
||||
"./mouse",
|
||||
"./resizable",
|
||||
"../focusable",
|
||||
"../keycode",
|
||||
"../position",
|
||||
"../safe-active-element",
|
||||
"../safe-blur",
|
||||
"../tabbable",
|
||||
"../unique-id",
|
||||
"../version",
|
||||
"../widget"
|
||||
], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
}( function( $ ) {
|
||||
|
||||
$.widget( "ui.dialog", {
|
||||
version: "1.12.1",
|
||||
options: {
|
||||
appendTo: "body",
|
||||
autoOpen: true,
|
||||
buttons: [],
|
||||
classes: {
|
||||
"ui-dialog": "ui-corner-all",
|
||||
"ui-dialog-titlebar": "ui-corner-all"
|
||||
},
|
||||
closeOnEscape: true,
|
||||
closeText: "Close",
|
||||
draggable: true,
|
||||
hide: null,
|
||||
height: "auto",
|
||||
maxHeight: null,
|
||||
maxWidth: null,
|
||||
minHeight: 150,
|
||||
minWidth: 150,
|
||||
modal: false,
|
||||
position: {
|
||||
my: "center",
|
||||
at: "center",
|
||||
of: window,
|
||||
collision: "fit",
|
||||
|
||||
// Ensure the titlebar is always visible
|
||||
using: function( pos ) {
|
||||
var topOffset = $( this ).css( pos ).offset().top;
|
||||
if ( topOffset < 0 ) {
|
||||
$( this ).css( "top", pos.top - topOffset );
|
||||
}
|
||||
}
|
||||
},
|
||||
resizable: true,
|
||||
show: null,
|
||||
title: null,
|
||||
width: 300,
|
||||
|
||||
// Callbacks
|
||||
beforeClose: null,
|
||||
close: null,
|
||||
drag: null,
|
||||
dragStart: null,
|
||||
dragStop: null,
|
||||
focus: null,
|
||||
open: null,
|
||||
resize: null,
|
||||
resizeStart: null,
|
||||
resizeStop: null
|
||||
},
|
||||
|
||||
sizeRelatedOptions: {
|
||||
buttons: true,
|
||||
height: true,
|
||||
maxHeight: true,
|
||||
maxWidth: true,
|
||||
minHeight: true,
|
||||
minWidth: true,
|
||||
width: true
|
||||
},
|
||||
|
||||
resizableRelatedOptions: {
|
||||
maxHeight: true,
|
||||
maxWidth: true,
|
||||
minHeight: true,
|
||||
minWidth: true
|
||||
},
|
||||
|
||||
_create: function() {
|
||||
this.originalCss = {
|
||||
display: this.element[ 0 ].style.display,
|
||||
width: this.element[ 0 ].style.width,
|
||||
minHeight: this.element[ 0 ].style.minHeight,
|
||||
maxHeight: this.element[ 0 ].style.maxHeight,
|
||||
height: this.element[ 0 ].style.height
|
||||
};
|
||||
this.originalPosition = {
|
||||
parent: this.element.parent(),
|
||||
index: this.element.parent().children().index( this.element )
|
||||
};
|
||||
this.originalTitle = this.element.attr( "title" );
|
||||
if ( this.options.title == null && this.originalTitle != null ) {
|
||||
this.options.title = this.originalTitle;
|
||||
}
|
||||
|
||||
// Dialogs can't be disabled
|
||||
if ( this.options.disabled ) {
|
||||
this.options.disabled = false;
|
||||
}
|
||||
|
||||
this._createWrapper();
|
||||
|
||||
this.element
|
||||
.show()
|
||||
.removeAttr( "title" )
|
||||
.appendTo( this.uiDialog );
|
||||
|
||||
this._addClass( "ui-dialog-content", "ui-widget-content" );
|
||||
|
||||
this._createTitlebar();
|
||||
this._createButtonPane();
|
||||
|
||||
if ( this.options.draggable && $.fn.draggable ) {
|
||||
this._makeDraggable();
|
||||
}
|
||||
if ( this.options.resizable && $.fn.resizable ) {
|
||||
this._makeResizable();
|
||||
}
|
||||
|
||||
this._isOpen = false;
|
||||
|
||||
this._trackFocus();
|
||||
},
|
||||
|
||||
_init: function() {
|
||||
if ( this.options.autoOpen ) {
|
||||
this.open();
|
||||
}
|
||||
},
|
||||
|
||||
_appendTo: function() {
|
||||
var element = this.options.appendTo;
|
||||
if ( element && ( element.jquery || element.nodeType ) ) {
|
||||
return $( element );
|
||||
}
|
||||
return this.document.find( element || "body" ).eq( 0 );
|
||||
},
|
||||
|
||||
_destroy: function() {
|
||||
var next,
|
||||
originalPosition = this.originalPosition;
|
||||
|
||||
this._untrackInstance();
|
||||
this._destroyOverlay();
|
||||
|
||||
this.element
|
||||
.removeUniqueId()
|
||||
.css( this.originalCss )
|
||||
|
||||
// Without detaching first, the following becomes really slow
|
||||
.detach();
|
||||
|
||||
this.uiDialog.remove();
|
||||
|
||||
if ( this.originalTitle ) {
|
||||
this.element.attr( "title", this.originalTitle );
|
||||
}
|
||||
|
||||
next = originalPosition.parent.children().eq( originalPosition.index );
|
||||
|
||||
// Don't try to place the dialog next to itself (#8613)
|
||||
if ( next.length && next[ 0 ] !== this.element[ 0 ] ) {
|
||||
next.before( this.element );
|
||||
} else {
|
||||
originalPosition.parent.append( this.element );
|
||||
}
|
||||
},
|
||||
|
||||
widget: function() {
|
||||
return this.uiDialog;
|
||||
},
|
||||
|
||||
disable: $.noop,
|
||||
enable: $.noop,
|
||||
|
||||
close: function( event ) {
|
||||
var that = this;
|
||||
|
||||
if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) {
|
||||
return;
|
||||
}
|
||||
|
||||
this._isOpen = false;
|
||||
this._focusedElement = null;
|
||||
this._destroyOverlay();
|
||||
this._untrackInstance();
|
||||
|
||||
if ( !this.opener.filter( ":focusable" ).trigger( "focus" ).length ) {
|
||||
|
||||
// Hiding a focused element doesn't trigger blur in WebKit
|
||||
// so in case we have nothing to focus on, explicitly blur the active element
|
||||
// https://bugs.webkit.org/show_bug.cgi?id=47182
|
||||
$.ui.safeBlur( $.ui.safeActiveElement( this.document[ 0 ] ) );
|
||||
}
|
||||
|
||||
this._hide( this.uiDialog, this.options.hide, function() {
|
||||
that._trigger( "close", event );
|
||||
} );
|
||||
},
|
||||
|
||||
isOpen: function() {
|
||||
return this._isOpen;
|
||||
},
|
||||
|
||||
moveToTop: function() {
|
||||
this._moveToTop();
|
||||
},
|
||||
|
||||
_moveToTop: function( event, silent ) {
|
||||
var moved = false,
|
||||
zIndices = this.uiDialog.siblings( ".ui-front:visible" ).map( function() {
|
||||
return +$( this ).css( "z-index" );
|
||||
} ).get(),
|
||||
zIndexMax = Math.max.apply( null, zIndices );
|
||||
|
||||
if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) {
|
||||
this.uiDialog.css( "z-index", zIndexMax + 1 );
|
||||
moved = true;
|
||||
}
|
||||
|
||||
if ( moved && !silent ) {
|
||||
this._trigger( "focus", event );
|
||||
}
|
||||
return moved;
|
||||
},
|
||||
|
||||
open: function() {
|
||||
var that = this;
|
||||
if ( this._isOpen ) {
|
||||
if ( this._moveToTop() ) {
|
||||
this._focusTabbable();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
this._isOpen = true;
|
||||
this.opener = $( $.ui.safeActiveElement( this.document[ 0 ] ) );
|
||||
|
||||
this._size();
|
||||
this._position();
|
||||
this._createOverlay();
|
||||
this._moveToTop( null, true );
|
||||
|
||||
// Ensure the overlay is moved to the top with the dialog, but only when
|
||||
// opening. The overlay shouldn't move after the dialog is open so that
|
||||
// modeless dialogs opened after the modal dialog stack properly.
|
||||
if ( this.overlay ) {
|
||||
this.overlay.css( "z-index", this.uiDialog.css( "z-index" ) - 1 );
|
||||
}
|
||||
|
||||
this._show( this.uiDialog, this.options.show, function() {
|
||||
that._focusTabbable();
|
||||
that._trigger( "focus" );
|
||||
} );
|
||||
|
||||
// Track the dialog immediately upon openening in case a focus event
|
||||
// somehow occurs outside of the dialog before an element inside the
|
||||
// dialog is focused (#10152)
|
||||
this._makeFocusTarget();
|
||||
|
||||
this._trigger( "open" );
|
||||
},
|
||||
|
||||
_focusTabbable: function() {
|
||||
|
||||
// Set focus to the first match:
|
||||
// 1. An element that was focused previously
|
||||
// 2. First element inside the dialog matching [autofocus]
|
||||
// 3. Tabbable element inside the content element
|
||||
// 4. Tabbable element inside the buttonpane
|
||||
// 5. The close button
|
||||
// 6. The dialog itself
|
||||
var hasFocus = this._focusedElement;
|
||||
if ( !hasFocus ) {
|
||||
hasFocus = this.element.find( "[autofocus]" );
|
||||
}
|
||||
if ( !hasFocus.length ) {
|
||||
hasFocus = this.element.find( ":tabbable" );
|
||||
}
|
||||
if ( !hasFocus.length ) {
|
||||
hasFocus = this.uiDialogButtonPane.find( ":tabbable" );
|
||||
}
|
||||
if ( !hasFocus.length ) {
|
||||
hasFocus = this.uiDialogTitlebarClose.filter( ":tabbable" );
|
||||
}
|
||||
if ( !hasFocus.length ) {
|
||||
hasFocus = this.uiDialog;
|
||||
}
|
||||
hasFocus.eq( 0 ).trigger( "focus" );
|
||||
},
|
||||
|
||||
_keepFocus: function( event ) {
|
||||
function checkFocus() {
|
||||
var activeElement = $.ui.safeActiveElement( this.document[ 0 ] ),
|
||||
isActive = this.uiDialog[ 0 ] === activeElement ||
|
||||
$.contains( this.uiDialog[ 0 ], activeElement );
|
||||
if ( !isActive ) {
|
||||
this._focusTabbable();
|
||||
}
|
||||
}
|
||||
event.preventDefault();
|
||||
checkFocus.call( this );
|
||||
|
||||
// support: IE
|
||||
// IE <= 8 doesn't prevent moving focus even with event.preventDefault()
|
||||
// so we check again later
|
||||
this._delay( checkFocus );
|
||||
},
|
||||
|
||||
_createWrapper: function() {
|
||||
this.uiDialog = $( "<div>" )
|
||||
.hide()
|
||||
.attr( {
|
||||
|
||||
// Setting tabIndex makes the div focusable
|
||||
tabIndex: -1,
|
||||
role: "dialog"
|
||||
} )
|
||||
.appendTo( this._appendTo() );
|
||||
|
||||
this._addClass( this.uiDialog, "ui-dialog", "ui-widget ui-widget-content ui-front" );
|
||||
this._on( this.uiDialog, {
|
||||
keydown: function( event ) {
|
||||
if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
|
||||
event.keyCode === $.ui.keyCode.ESCAPE ) {
|
||||
event.preventDefault();
|
||||
this.close( event );
|
||||
return;
|
||||
}
|
||||
|
||||
// Prevent tabbing out of dialogs
|
||||
if ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) {
|
||||
return;
|
||||
}
|
||||
var tabbables = this.uiDialog.find( ":tabbable" ),
|
||||
first = tabbables.filter( ":first" ),
|
||||
last = tabbables.filter( ":last" );
|
||||
|
||||
if ( ( event.target === last[ 0 ] || event.target === this.uiDialog[ 0 ] ) &&
|
||||
!event.shiftKey ) {
|
||||
this._delay( function() {
|
||||
first.trigger( "focus" );
|
||||
} );
|
||||
event.preventDefault();
|
||||
} else if ( ( event.target === first[ 0 ] ||
|
||||
event.target === this.uiDialog[ 0 ] ) && event.shiftKey ) {
|
||||
this._delay( function() {
|
||||
last.trigger( "focus" );
|
||||
} );
|
||||
event.preventDefault();
|
||||
}
|
||||
},
|
||||
mousedown: function( event ) {
|
||||
if ( this._moveToTop( event ) ) {
|
||||
this._focusTabbable();
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
||||
// We assume that any existing aria-describedby attribute means
|
||||
// that the dialog content is marked up properly
|
||||
// otherwise we brute force the content as the description
|
||||
if ( !this.element.find( "[aria-describedby]" ).length ) {
|
||||
this.uiDialog.attr( {
|
||||
"aria-describedby": this.element.uniqueId().attr( "id" )
|
||||
} );
|
||||
}
|
||||
},
|
||||
|
||||
_createTitlebar: function() {
|
||||
var uiDialogTitle;
|
||||
|
||||
this.uiDialogTitlebar = $( "<div>" );
|
||||
this._addClass( this.uiDialogTitlebar,
|
||||
"ui-dialog-titlebar", "ui-widget-header ui-helper-clearfix" );
|
||||
this._on( this.uiDialogTitlebar, {
|
||||
mousedown: function( event ) {
|
||||
|
||||
// Don't prevent click on close button (#8838)
|
||||
// Focusing a dialog that is partially scrolled out of view
|
||||
// causes the browser to scroll it into view, preventing the click event
|
||||
if ( !$( event.target ).closest( ".ui-dialog-titlebar-close" ) ) {
|
||||
|
||||
// Dialog isn't getting focus when dragging (#8063)
|
||||
this.uiDialog.trigger( "focus" );
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
||||
// Support: IE
|
||||
// Use type="button" to prevent enter keypresses in textboxes from closing the
|
||||
// dialog in IE (#9312)
|
||||
this.uiDialogTitlebarClose = $( "<button type='button'></button>" )
|
||||
.button( {
|
||||
label: $( "<a>" ).text( this.options.closeText ).html(),
|
||||
icon: "ui-icon-closethick",
|
||||
showLabel: false
|
||||
} )
|
||||
.appendTo( this.uiDialogTitlebar );
|
||||
|
||||
this._addClass( this.uiDialogTitlebarClose, "ui-dialog-titlebar-close" );
|
||||
this._on( this.uiDialogTitlebarClose, {
|
||||
click: function( event ) {
|
||||
event.preventDefault();
|
||||
this.close( event );
|
||||
}
|
||||
} );
|
||||
|
||||
uiDialogTitle = $( "<span>" ).uniqueId().prependTo( this.uiDialogTitlebar );
|
||||
this._addClass( uiDialogTitle, "ui-dialog-title" );
|
||||
this._title( uiDialogTitle );
|
||||
|
||||
this.uiDialogTitlebar.prependTo( this.uiDialog );
|
||||
|
||||
this.uiDialog.attr( {
|
||||
"aria-labelledby": uiDialogTitle.attr( "id" )
|
||||
} );
|
||||
},
|
||||
|
||||
_title: function( title ) {
|
||||
if ( this.options.title ) {
|
||||
title.text( this.options.title );
|
||||
} else {
|
||||
title.html( " " );
|
||||
}
|
||||
},
|
||||
|
||||
_createButtonPane: function() {
|
||||
this.uiDialogButtonPane = $( "<div>" );
|
||||
this._addClass( this.uiDialogButtonPane, "ui-dialog-buttonpane",
|
||||
"ui-widget-content ui-helper-clearfix" );
|
||||
|
||||
this.uiButtonSet = $( "<div>" )
|
||||
.appendTo( this.uiDialogButtonPane );
|
||||
this._addClass( this.uiButtonSet, "ui-dialog-buttonset" );
|
||||
|
||||
this._createButtons();
|
||||
},
|
||||
|
||||
_createButtons: function() {
|
||||
var that = this,
|
||||
buttons = this.options.buttons;
|
||||
|
||||
// If we already have a button pane, remove it
|
||||
this.uiDialogButtonPane.remove();
|
||||
this.uiButtonSet.empty();
|
||||
|
||||
if ( $.isEmptyObject( buttons ) || ( $.isArray( buttons ) && !buttons.length ) ) {
|
||||
this._removeClass( this.uiDialog, "ui-dialog-buttons" );
|
||||
return;
|
||||
}
|
||||
|
||||
$.each( buttons, function( name, props ) {
|
||||
var click, buttonOptions;
|
||||
props = $.isFunction( props ) ?
|
||||
{ click: props, text: name } :
|
||||
props;
|
||||
|
||||
// Default to a non-submitting button
|
||||
props = $.extend( { type: "button" }, props );
|
||||
|
||||
// Change the context for the click callback to be the main element
|
||||
click = props.click;
|
||||
buttonOptions = {
|
||||
icon: props.icon,
|
||||
iconPosition: props.iconPosition,
|
||||
showLabel: props.showLabel,
|
||||
|
||||
// Deprecated options
|
||||
icons: props.icons,
|
||||
text: props.text
|
||||
};
|
||||
|
||||
delete props.click;
|
||||
delete props.icon;
|
||||
delete props.iconPosition;
|
||||
delete props.showLabel;
|
||||
|
||||
// Deprecated options
|
||||
delete props.icons;
|
||||
if ( typeof props.text === "boolean" ) {
|
||||
delete props.text;
|
||||
}
|
||||
|
||||
$( "<button></button>", props )
|
||||
.button( buttonOptions )
|
||||
.appendTo( that.uiButtonSet )
|
||||
.on( "click", function() {
|
||||
click.apply( that.element[ 0 ], arguments );
|
||||
} );
|
||||
} );
|
||||
this._addClass( this.uiDialog, "ui-dialog-buttons" );
|
||||
this.uiDialogButtonPane.appendTo( this.uiDialog );
|
||||
},
|
||||
|
||||
_makeDraggable: function() {
|
||||
var that = this,
|
||||
options = this.options;
|
||||
|
||||
function filteredUi( ui ) {
|
||||
return {
|
||||
position: ui.position,
|
||||
offset: ui.offset
|
||||
};
|
||||
}
|
||||
|
||||
this.uiDialog.draggable( {
|
||||
cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
|
||||
handle: ".ui-dialog-titlebar",
|
||||
containment: "document",
|
||||
start: function( event, ui ) {
|
||||
that._addClass( $( this ), "ui-dialog-dragging" );
|
||||
that._blockFrames();
|
||||
that._trigger( "dragStart", event, filteredUi( ui ) );
|
||||
},
|
||||
drag: function( event, ui ) {
|
||||
that._trigger( "drag", event, filteredUi( ui ) );
|
||||
},
|
||||
stop: function( event, ui ) {
|
||||
var left = ui.offset.left - that.document.scrollLeft(),
|
||||
top = ui.offset.top - that.document.scrollTop();
|
||||
|
||||
options.position = {
|
||||
my: "left top",
|
||||
at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
|
||||
"top" + ( top >= 0 ? "+" : "" ) + top,
|
||||
of: that.window
|
||||
};
|
||||
that._removeClass( $( this ), "ui-dialog-dragging" );
|
||||
that._unblockFrames();
|
||||
that._trigger( "dragStop", event, filteredUi( ui ) );
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
_makeResizable: function() {
|
||||
var that = this,
|
||||
options = this.options,
|
||||
handles = options.resizable,
|
||||
|
||||
// .ui-resizable has position: relative defined in the stylesheet
|
||||
// but dialogs have to use absolute or fixed positioning
|
||||
position = this.uiDialog.css( "position" ),
|
||||
resizeHandles = typeof handles === "string" ?
|
||||
handles :
|
||||
"n,e,s,w,se,sw,ne,nw";
|
||||
|
||||
function filteredUi( ui ) {
|
||||
return {
|
||||
originalPosition: ui.originalPosition,
|
||||
originalSize: ui.originalSize,
|
||||
position: ui.position,
|
||||
size: ui.size
|
||||
};
|
||||
}
|
||||
|
||||
this.uiDialog.resizable( {
|
||||
cancel: ".ui-dialog-content",
|
||||
containment: "document",
|
||||
alsoResize: this.element,
|
||||
maxWidth: options.maxWidth,
|
||||
maxHeight: options.maxHeight,
|
||||
minWidth: options.minWidth,
|
||||
minHeight: this._minHeight(),
|
||||
handles: resizeHandles,
|
||||
start: function( event, ui ) {
|
||||
that._addClass( $( this ), "ui-dialog-resizing" );
|
||||
that._blockFrames();
|
||||
that._trigger( "resizeStart", event, filteredUi( ui ) );
|
||||
},
|
||||
resize: function( event, ui ) {
|
||||
that._trigger( "resize", event, filteredUi( ui ) );
|
||||
},
|
||||
stop: function( event, ui ) {
|
||||
var offset = that.uiDialog.offset(),
|
||||
left = offset.left - that.document.scrollLeft(),
|
||||
top = offset.top - that.document.scrollTop();
|
||||
|
||||
options.height = that.uiDialog.height();
|
||||
options.width = that.uiDialog.width();
|
||||
options.position = {
|
||||
my: "left top",
|
||||
at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
|
||||
"top" + ( top >= 0 ? "+" : "" ) + top,
|
||||
of: that.window
|
||||
};
|
||||
that._removeClass( $( this ), "ui-dialog-resizing" );
|
||||
that._unblockFrames();
|
||||
that._trigger( "resizeStop", event, filteredUi( ui ) );
|
||||
}
|
||||
} )
|
||||
.css( "position", position );
|
||||
},
|
||||
|
||||
_trackFocus: function() {
|
||||
this._on( this.widget(), {
|
||||
focusin: function( event ) {
|
||||
this._makeFocusTarget();
|
||||
this._focusedElement = $( event.target );
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
_makeFocusTarget: function() {
|
||||
this._untrackInstance();
|
||||
this._trackingInstances().unshift( this );
|
||||
},
|
||||
|
||||
_untrackInstance: function() {
|
||||
var instances = this._trackingInstances(),
|
||||
exists = $.inArray( this, instances );
|
||||
if ( exists !== -1 ) {
|
||||
instances.splice( exists, 1 );
|
||||
}
|
||||
},
|
||||
|
||||
_trackingInstances: function() {
|
||||
var instances = this.document.data( "ui-dialog-instances" );
|
||||
if ( !instances ) {
|
||||
instances = [];
|
||||
this.document.data( "ui-dialog-instances", instances );
|
||||
}
|
||||
return instances;
|
||||
},
|
||||
|
||||
_minHeight: function() {
|
||||
var options = this.options;
|
||||
|
||||
return options.height === "auto" ?
|
||||
options.minHeight :
|
||||
Math.min( options.minHeight, options.height );
|
||||
},
|
||||
|
||||
_position: function() {
|
||||
|
||||
// Need to show the dialog to get the actual offset in the position plugin
|
||||
var isVisible = this.uiDialog.is( ":visible" );
|
||||
if ( !isVisible ) {
|
||||
this.uiDialog.show();
|
||||
}
|
||||
this.uiDialog.position( this.options.position );
|
||||
if ( !isVisible ) {
|
||||
this.uiDialog.hide();
|
||||
}
|
||||
},
|
||||
|
||||
_setOptions: function( options ) {
|
||||
var that = this,
|
||||
resize = false,
|
||||
resizableOptions = {};
|
||||
|
||||
$.each( options, function( key, value ) {
|
||||
that._setOption( key, value );
|
||||
|
||||
if ( key in that.sizeRelatedOptions ) {
|
||||
resize = true;
|
||||
}
|
||||
if ( key in that.resizableRelatedOptions ) {
|
||||
resizableOptions[ key ] = value;
|
||||
}
|
||||
} );
|
||||
|
||||
if ( resize ) {
|
||||
this._size();
|
||||
this._position();
|
||||
}
|
||||
if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
|
||||
this.uiDialog.resizable( "option", resizableOptions );
|
||||
}
|
||||
},
|
||||
|
||||
_setOption: function( key, value ) {
|
||||
var isDraggable, isResizable,
|
||||
uiDialog = this.uiDialog;
|
||||
|
||||
if ( key === "disabled" ) {
|
||||
return;
|
||||
}
|
||||
|
||||
this._super( key, value );
|
||||
|
||||
if ( key === "appendTo" ) {
|
||||
this.uiDialog.appendTo( this._appendTo() );
|
||||
}
|
||||
|
||||
if ( key === "buttons" ) {
|
||||
this._createButtons();
|
||||
}
|
||||
|
||||
if ( key === "closeText" ) {
|
||||
this.uiDialogTitlebarClose.button( {
|
||||
|
||||
// Ensure that we always pass a string
|
||||
label: $( "<a>" ).text( "" + this.options.closeText ).html()
|
||||
} );
|
||||
}
|
||||
|
||||
if ( key === "draggable" ) {
|
||||
isDraggable = uiDialog.is( ":data(ui-draggable)" );
|
||||
if ( isDraggable && !value ) {
|
||||
uiDialog.draggable( "destroy" );
|
||||
}
|
||||
|
||||
if ( !isDraggable && value ) {
|
||||
this._makeDraggable();
|
||||
}
|
||||
}
|
||||
|
||||
if ( key === "position" ) {
|
||||
this._position();
|
||||
}
|
||||
|
||||
if ( key === "resizable" ) {
|
||||
|
||||
// currently resizable, becoming non-resizable
|
||||
isResizable = uiDialog.is( ":data(ui-resizable)" );
|
||||
if ( isResizable && !value ) {
|
||||
uiDialog.resizable( "destroy" );
|
||||
}
|
||||
|
||||
// Currently resizable, changing handles
|
||||
if ( isResizable && typeof value === "string" ) {
|
||||
uiDialog.resizable( "option", "handles", value );
|
||||
}
|
||||
|
||||
// Currently non-resizable, becoming resizable
|
||||
if ( !isResizable && value !== false ) {
|
||||
this._makeResizable();
|
||||
}
|
||||
}
|
||||
|
||||
if ( key === "title" ) {
|
||||
this._title( this.uiDialogTitlebar.find( ".ui-dialog-title" ) );
|
||||
}
|
||||
},
|
||||
|
||||
_size: function() {
|
||||
|
||||
// If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
|
||||
// divs will both have width and height set, so we need to reset them
|
||||
var nonContentHeight, minContentHeight, maxContentHeight,
|
||||
options = this.options;
|
||||
|
||||
// Reset content sizing
|
||||
this.element.show().css( {
|
||||
width: "auto",
|
||||
minHeight: 0,
|
||||
maxHeight: "none",
|
||||
height: 0
|
||||
} );
|
||||
|
||||
if ( options.minWidth > options.width ) {
|
||||
options.width = options.minWidth;
|
||||
}
|
||||
|
||||
// Reset wrapper sizing
|
||||
// determine the height of all the non-content elements
|
||||
nonContentHeight = this.uiDialog.css( {
|
||||
height: "auto",
|
||||
width: options.width
|
||||
} )
|
||||
.outerHeight();
|
||||
minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
|
||||
maxContentHeight = typeof options.maxHeight === "number" ?
|
||||
Math.max( 0, options.maxHeight - nonContentHeight ) :
|
||||
"none";
|
||||
|
||||
if ( options.height === "auto" ) {
|
||||
this.element.css( {
|
||||
minHeight: minContentHeight,
|
||||
maxHeight: maxContentHeight,
|
||||
height: "auto"
|
||||
} );
|
||||
} else {
|
||||
this.element.height( Math.max( 0, options.height - nonContentHeight ) );
|
||||
}
|
||||
|
||||
if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
|
||||
this.uiDialog.resizable( "option", "minHeight", this._minHeight() );
|
||||
}
|
||||
},
|
||||
|
||||
_blockFrames: function() {
|
||||
this.iframeBlocks = this.document.find( "iframe" ).map( function() {
|
||||
var iframe = $( this );
|
||||
|
||||
return $( "<div>" )
|
||||
.css( {
|
||||
position: "absolute",
|
||||
width: iframe.outerWidth(),
|
||||
height: iframe.outerHeight()
|
||||
} )
|
||||
.appendTo( iframe.parent() )
|
||||
.offset( iframe.offset() )[ 0 ];
|
||||
} );
|
||||
},
|
||||
|
||||
_unblockFrames: function() {
|
||||
if ( this.iframeBlocks ) {
|
||||
this.iframeBlocks.remove();
|
||||
delete this.iframeBlocks;
|
||||
}
|
||||
},
|
||||
|
||||
_allowInteraction: function( event ) {
|
||||
if ( $( event.target ).closest( ".ui-dialog" ).length ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// TODO: Remove hack when datepicker implements
|
||||
// the .ui-front logic (#8989)
|
||||
return !!$( event.target ).closest( ".ui-datepicker" ).length;
|
||||
},
|
||||
|
||||
_createOverlay: function() {
|
||||
if ( !this.options.modal ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// We use a delay in case the overlay is created from an
|
||||
// event that we're going to be cancelling (#2804)
|
||||
var isOpening = true;
|
||||
this._delay( function() {
|
||||
isOpening = false;
|
||||
} );
|
||||
|
||||
if ( !this.document.data( "ui-dialog-overlays" ) ) {
|
||||
|
||||
// Prevent use of anchors and inputs
|
||||
// Using _on() for an event handler shared across many instances is
|
||||
// safe because the dialogs stack and must be closed in reverse order
|
||||
this._on( this.document, {
|
||||
focusin: function( event ) {
|
||||
if ( isOpening ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !this._allowInteraction( event ) ) {
|
||||
event.preventDefault();
|
||||
this._trackingInstances()[ 0 ]._focusTabbable();
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
this.overlay = $( "<div>" )
|
||||
.appendTo( this._appendTo() );
|
||||
|
||||
this._addClass( this.overlay, null, "ui-widget-overlay ui-front" );
|
||||
this._on( this.overlay, {
|
||||
mousedown: "_keepFocus"
|
||||
} );
|
||||
this.document.data( "ui-dialog-overlays",
|
||||
( this.document.data( "ui-dialog-overlays" ) || 0 ) + 1 );
|
||||
},
|
||||
|
||||
_destroyOverlay: function() {
|
||||
if ( !this.options.modal ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( this.overlay ) {
|
||||
var overlays = this.document.data( "ui-dialog-overlays" ) - 1;
|
||||
|
||||
if ( !overlays ) {
|
||||
this._off( this.document, "focusin" );
|
||||
this.document.removeData( "ui-dialog-overlays" );
|
||||
} else {
|
||||
this.document.data( "ui-dialog-overlays", overlays );
|
||||
}
|
||||
|
||||
this.overlay.remove();
|
||||
this.overlay = null;
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
||||
// DEPRECATED
|
||||
// TODO: switch return back to widget declaration at top of file when this is removed
|
||||
if ( $.uiBackCompat !== false ) {
|
||||
|
||||
// Backcompat for dialogClass option
|
||||
$.widget( "ui.dialog", $.ui.dialog, {
|
||||
options: {
|
||||
dialogClass: ""
|
||||
},
|
||||
_createWrapper: function() {
|
||||
this._super();
|
||||
this.uiDialog.addClass( this.options.dialogClass );
|
||||
},
|
||||
_setOption: function( key, value ) {
|
||||
if ( key === "dialogClass" ) {
|
||||
this.uiDialog
|
||||
.removeClass( this.options.dialogClass )
|
||||
.addClass( value );
|
||||
}
|
||||
this._superApply( arguments );
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
return $.ui.dialog;
|
||||
|
||||
} ) );
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,673 @@
|
|||
/*!
|
||||
* jQuery UI Menu 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: Menu
|
||||
//>>group: Widgets
|
||||
//>>description: Creates nestable menus.
|
||||
//>>docs: http://api.jqueryui.com/menu/
|
||||
//>>demos: http://jqueryui.com/menu/
|
||||
//>>css.structure: ../../themes/base/core.css
|
||||
//>>css.structure: ../../themes/base/menu.css
|
||||
//>>css.theme: ../../themes/base/theme.css
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [
|
||||
"jquery",
|
||||
"../keycode",
|
||||
"../position",
|
||||
"../safe-active-element",
|
||||
"../unique-id",
|
||||
"../version",
|
||||
"../widget"
|
||||
], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
}( function( $ ) {
|
||||
|
||||
return $.widget( "ui.menu", {
|
||||
version: "1.12.1",
|
||||
defaultElement: "<ul>",
|
||||
delay: 300,
|
||||
options: {
|
||||
icons: {
|
||||
submenu: "ui-icon-caret-1-e"
|
||||
},
|
||||
items: "> *",
|
||||
menus: "ul",
|
||||
position: {
|
||||
my: "left top",
|
||||
at: "right top"
|
||||
},
|
||||
role: "menu",
|
||||
|
||||
// Callbacks
|
||||
blur: null,
|
||||
focus: null,
|
||||
select: null
|
||||
},
|
||||
|
||||
_create: function() {
|
||||
this.activeMenu = this.element;
|
||||
|
||||
// Flag used to prevent firing of the click handler
|
||||
// as the event bubbles up through nested menus
|
||||
this.mouseHandled = false;
|
||||
this.element
|
||||
.uniqueId()
|
||||
.attr( {
|
||||
role: this.options.role,
|
||||
tabIndex: 0
|
||||
} );
|
||||
|
||||
this._addClass( "ui-menu", "ui-widget ui-widget-content" );
|
||||
this._on( {
|
||||
|
||||
// Prevent focus from sticking to links inside menu after clicking
|
||||
// them (focus should always stay on UL during navigation).
|
||||
"mousedown .ui-menu-item": function( event ) {
|
||||
event.preventDefault();
|
||||
},
|
||||
"click .ui-menu-item": function( event ) {
|
||||
var target = $( event.target );
|
||||
var active = $( $.ui.safeActiveElement( this.document[ 0 ] ) );
|
||||
if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
|
||||
this.select( event );
|
||||
|
||||
// Only set the mouseHandled flag if the event will bubble, see #9469.
|
||||
if ( !event.isPropagationStopped() ) {
|
||||
this.mouseHandled = true;
|
||||
}
|
||||
|
||||
// Open submenu on click
|
||||
if ( target.has( ".ui-menu" ).length ) {
|
||||
this.expand( event );
|
||||
} else if ( !this.element.is( ":focus" ) &&
|
||||
active.closest( ".ui-menu" ).length ) {
|
||||
|
||||
// Redirect focus to the menu
|
||||
this.element.trigger( "focus", [ true ] );
|
||||
|
||||
// If the active item is on the top level, let it stay active.
|
||||
// Otherwise, blur the active item since it is no longer visible.
|
||||
if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) {
|
||||
clearTimeout( this.timer );
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"mouseenter .ui-menu-item": function( event ) {
|
||||
|
||||
// Ignore mouse events while typeahead is active, see #10458.
|
||||
// Prevents focusing the wrong item when typeahead causes a scroll while the mouse
|
||||
// is over an item in the menu
|
||||
if ( this.previousFilter ) {
|
||||
return;
|
||||
}
|
||||
|
||||
var actualTarget = $( event.target ).closest( ".ui-menu-item" ),
|
||||
target = $( event.currentTarget );
|
||||
|
||||
// Ignore bubbled events on parent items, see #11641
|
||||
if ( actualTarget[ 0 ] !== target[ 0 ] ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove ui-state-active class from siblings of the newly focused menu item
|
||||
// to avoid a jump caused by adjacent elements both having a class with a border
|
||||
this._removeClass( target.siblings().children( ".ui-state-active" ),
|
||||
null, "ui-state-active" );
|
||||
this.focus( event, target );
|
||||
},
|
||||
mouseleave: "collapseAll",
|
||||
"mouseleave .ui-menu": "collapseAll",
|
||||
focus: function( event, keepActiveItem ) {
|
||||
|
||||
// If there's already an active item, keep it active
|
||||
// If not, activate the first item
|
||||
var item = this.active || this.element.find( this.options.items ).eq( 0 );
|
||||
|
||||
if ( !keepActiveItem ) {
|
||||
this.focus( event, item );
|
||||
}
|
||||
},
|
||||
blur: function( event ) {
|
||||
this._delay( function() {
|
||||
var notContained = !$.contains(
|
||||
this.element[ 0 ],
|
||||
$.ui.safeActiveElement( this.document[ 0 ] )
|
||||
);
|
||||
if ( notContained ) {
|
||||
this.collapseAll( event );
|
||||
}
|
||||
} );
|
||||
},
|
||||
keydown: "_keydown"
|
||||
} );
|
||||
|
||||
this.refresh();
|
||||
|
||||
// Clicks outside of a menu collapse any open menus
|
||||
this._on( this.document, {
|
||||
click: function( event ) {
|
||||
if ( this._closeOnDocumentClick( event ) ) {
|
||||
this.collapseAll( event );
|
||||
}
|
||||
|
||||
// Reset the mouseHandled flag
|
||||
this.mouseHandled = false;
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
_destroy: function() {
|
||||
var items = this.element.find( ".ui-menu-item" )
|
||||
.removeAttr( "role aria-disabled" ),
|
||||
submenus = items.children( ".ui-menu-item-wrapper" )
|
||||
.removeUniqueId()
|
||||
.removeAttr( "tabIndex role aria-haspopup" );
|
||||
|
||||
// Destroy (sub)menus
|
||||
this.element
|
||||
.removeAttr( "aria-activedescendant" )
|
||||
.find( ".ui-menu" ).addBack()
|
||||
.removeAttr( "role aria-labelledby aria-expanded aria-hidden aria-disabled " +
|
||||
"tabIndex" )
|
||||
.removeUniqueId()
|
||||
.show();
|
||||
|
||||
submenus.children().each( function() {
|
||||
var elem = $( this );
|
||||
if ( elem.data( "ui-menu-submenu-caret" ) ) {
|
||||
elem.remove();
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
_keydown: function( event ) {
|
||||
var match, prev, character, skip,
|
||||
preventDefault = true;
|
||||
|
||||
switch ( event.keyCode ) {
|
||||
case $.ui.keyCode.PAGE_UP:
|
||||
this.previousPage( event );
|
||||
break;
|
||||
case $.ui.keyCode.PAGE_DOWN:
|
||||
this.nextPage( event );
|
||||
break;
|
||||
case $.ui.keyCode.HOME:
|
||||
this._move( "first", "first", event );
|
||||
break;
|
||||
case $.ui.keyCode.END:
|
||||
this._move( "last", "last", event );
|
||||
break;
|
||||
case $.ui.keyCode.UP:
|
||||
this.previous( event );
|
||||
break;
|
||||
case $.ui.keyCode.DOWN:
|
||||
this.next( event );
|
||||
break;
|
||||
case $.ui.keyCode.LEFT:
|
||||
this.collapse( event );
|
||||
break;
|
||||
case $.ui.keyCode.RIGHT:
|
||||
if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
|
||||
this.expand( event );
|
||||
}
|
||||
break;
|
||||
case $.ui.keyCode.ENTER:
|
||||
case $.ui.keyCode.SPACE:
|
||||
this._activate( event );
|
||||
break;
|
||||
case $.ui.keyCode.ESCAPE:
|
||||
this.collapse( event );
|
||||
break;
|
||||
default:
|
||||
preventDefault = false;
|
||||
prev = this.previousFilter || "";
|
||||
skip = false;
|
||||
|
||||
// Support number pad values
|
||||
character = event.keyCode >= 96 && event.keyCode <= 105 ?
|
||||
( event.keyCode - 96 ).toString() : String.fromCharCode( event.keyCode );
|
||||
|
||||
clearTimeout( this.filterTimer );
|
||||
|
||||
if ( character === prev ) {
|
||||
skip = true;
|
||||
} else {
|
||||
character = prev + character;
|
||||
}
|
||||
|
||||
match = this._filterMenuItems( character );
|
||||
match = skip && match.index( this.active.next() ) !== -1 ?
|
||||
this.active.nextAll( ".ui-menu-item" ) :
|
||||
match;
|
||||
|
||||
// If no matches on the current filter, reset to the last character pressed
|
||||
// to move down the menu to the first item that starts with that character
|
||||
if ( !match.length ) {
|
||||
character = String.fromCharCode( event.keyCode );
|
||||
match = this._filterMenuItems( character );
|
||||
}
|
||||
|
||||
if ( match.length ) {
|
||||
this.focus( event, match );
|
||||
this.previousFilter = character;
|
||||
this.filterTimer = this._delay( function() {
|
||||
delete this.previousFilter;
|
||||
}, 1000 );
|
||||
} else {
|
||||
delete this.previousFilter;
|
||||
}
|
||||
}
|
||||
|
||||
if ( preventDefault ) {
|
||||
event.preventDefault();
|
||||
}
|
||||
},
|
||||
|
||||
_activate: function( event ) {
|
||||
if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
|
||||
if ( this.active.children( "[aria-haspopup='true']" ).length ) {
|
||||
this.expand( event );
|
||||
} else {
|
||||
this.select( event );
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
refresh: function() {
|
||||
var menus, items, newSubmenus, newItems, newWrappers,
|
||||
that = this,
|
||||
icon = this.options.icons.submenu,
|
||||
submenus = this.element.find( this.options.menus );
|
||||
|
||||
this._toggleClass( "ui-menu-icons", null, !!this.element.find( ".ui-icon" ).length );
|
||||
|
||||
// Initialize nested menus
|
||||
newSubmenus = submenus.filter( ":not(.ui-menu)" )
|
||||
.hide()
|
||||
.attr( {
|
||||
role: this.options.role,
|
||||
"aria-hidden": "true",
|
||||
"aria-expanded": "false"
|
||||
} )
|
||||
.each( function() {
|
||||
var menu = $( this ),
|
||||
item = menu.prev(),
|
||||
submenuCaret = $( "<span>" ).data( "ui-menu-submenu-caret", true );
|
||||
|
||||
that._addClass( submenuCaret, "ui-menu-icon", "ui-icon " + icon );
|
||||
item
|
||||
.attr( "aria-haspopup", "true" )
|
||||
.prepend( submenuCaret );
|
||||
menu.attr( "aria-labelledby", item.attr( "id" ) );
|
||||
} );
|
||||
|
||||
this._addClass( newSubmenus, "ui-menu", "ui-widget ui-widget-content ui-front" );
|
||||
|
||||
menus = submenus.add( this.element );
|
||||
items = menus.find( this.options.items );
|
||||
|
||||
// Initialize menu-items containing spaces and/or dashes only as dividers
|
||||
items.not( ".ui-menu-item" ).each( function() {
|
||||
var item = $( this );
|
||||
if ( that._isDivider( item ) ) {
|
||||
that._addClass( item, "ui-menu-divider", "ui-widget-content" );
|
||||
}
|
||||
} );
|
||||
|
||||
// Don't refresh list items that are already adapted
|
||||
newItems = items.not( ".ui-menu-item, .ui-menu-divider" );
|
||||
newWrappers = newItems.children()
|
||||
.not( ".ui-menu" )
|
||||
.uniqueId()
|
||||
.attr( {
|
||||
tabIndex: -1,
|
||||
role: this._itemRole()
|
||||
} );
|
||||
this._addClass( newItems, "ui-menu-item" )
|
||||
._addClass( newWrappers, "ui-menu-item-wrapper" );
|
||||
|
||||
// Add aria-disabled attribute to any disabled menu item
|
||||
items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
|
||||
|
||||
// If the active item has been removed, blur the menu
|
||||
if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
|
||||
this.blur();
|
||||
}
|
||||
},
|
||||
|
||||
_itemRole: function() {
|
||||
return {
|
||||
menu: "menuitem",
|
||||
listbox: "option"
|
||||
}[ this.options.role ];
|
||||
},
|
||||
|
||||
_setOption: function( key, value ) {
|
||||
if ( key === "icons" ) {
|
||||
var icons = this.element.find( ".ui-menu-icon" );
|
||||
this._removeClass( icons, null, this.options.icons.submenu )
|
||||
._addClass( icons, null, value.submenu );
|
||||
}
|
||||
this._super( key, value );
|
||||
},
|
||||
|
||||
_setOptionDisabled: function( value ) {
|
||||
this._super( value );
|
||||
|
||||
this.element.attr( "aria-disabled", String( value ) );
|
||||
this._toggleClass( null, "ui-state-disabled", !!value );
|
||||
},
|
||||
|
||||
focus: function( event, item ) {
|
||||
var nested, focused, activeParent;
|
||||
this.blur( event, event && event.type === "focus" );
|
||||
|
||||
this._scrollIntoView( item );
|
||||
|
||||
this.active = item.first();
|
||||
|
||||
focused = this.active.children( ".ui-menu-item-wrapper" );
|
||||
this._addClass( focused, null, "ui-state-active" );
|
||||
|
||||
// Only update aria-activedescendant if there's a role
|
||||
// otherwise we assume focus is managed elsewhere
|
||||
if ( this.options.role ) {
|
||||
this.element.attr( "aria-activedescendant", focused.attr( "id" ) );
|
||||
}
|
||||
|
||||
// Highlight active parent menu item, if any
|
||||
activeParent = this.active
|
||||
.parent()
|
||||
.closest( ".ui-menu-item" )
|
||||
.children( ".ui-menu-item-wrapper" );
|
||||
this._addClass( activeParent, null, "ui-state-active" );
|
||||
|
||||
if ( event && event.type === "keydown" ) {
|
||||
this._close();
|
||||
} else {
|
||||
this.timer = this._delay( function() {
|
||||
this._close();
|
||||
}, this.delay );
|
||||
}
|
||||
|
||||
nested = item.children( ".ui-menu" );
|
||||
if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {
|
||||
this._startOpening( nested );
|
||||
}
|
||||
this.activeMenu = item.parent();
|
||||
|
||||
this._trigger( "focus", event, { item: item } );
|
||||
},
|
||||
|
||||
_scrollIntoView: function( item ) {
|
||||
var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
|
||||
if ( this._hasScroll() ) {
|
||||
borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0;
|
||||
paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0;
|
||||
offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
|
||||
scroll = this.activeMenu.scrollTop();
|
||||
elementHeight = this.activeMenu.height();
|
||||
itemHeight = item.outerHeight();
|
||||
|
||||
if ( offset < 0 ) {
|
||||
this.activeMenu.scrollTop( scroll + offset );
|
||||
} else if ( offset + itemHeight > elementHeight ) {
|
||||
this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
blur: function( event, fromFocus ) {
|
||||
if ( !fromFocus ) {
|
||||
clearTimeout( this.timer );
|
||||
}
|
||||
|
||||
if ( !this.active ) {
|
||||
return;
|
||||
}
|
||||
|
||||
this._removeClass( this.active.children( ".ui-menu-item-wrapper" ),
|
||||
null, "ui-state-active" );
|
||||
|
||||
this._trigger( "blur", event, { item: this.active } );
|
||||
this.active = null;
|
||||
},
|
||||
|
||||
_startOpening: function( submenu ) {
|
||||
clearTimeout( this.timer );
|
||||
|
||||
// Don't open if already open fixes a Firefox bug that caused a .5 pixel
|
||||
// shift in the submenu position when mousing over the caret icon
|
||||
if ( submenu.attr( "aria-hidden" ) !== "true" ) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.timer = this._delay( function() {
|
||||
this._close();
|
||||
this._open( submenu );
|
||||
}, this.delay );
|
||||
},
|
||||
|
||||
_open: function( submenu ) {
|
||||
var position = $.extend( {
|
||||
of: this.active
|
||||
}, this.options.position );
|
||||
|
||||
clearTimeout( this.timer );
|
||||
this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) )
|
||||
.hide()
|
||||
.attr( "aria-hidden", "true" );
|
||||
|
||||
submenu
|
||||
.show()
|
||||
.removeAttr( "aria-hidden" )
|
||||
.attr( "aria-expanded", "true" )
|
||||
.position( position );
|
||||
},
|
||||
|
||||
collapseAll: function( event, all ) {
|
||||
clearTimeout( this.timer );
|
||||
this.timer = this._delay( function() {
|
||||
|
||||
// If we were passed an event, look for the submenu that contains the event
|
||||
var currentMenu = all ? this.element :
|
||||
$( event && event.target ).closest( this.element.find( ".ui-menu" ) );
|
||||
|
||||
// If we found no valid submenu ancestor, use the main menu to close all
|
||||
// sub menus anyway
|
||||
if ( !currentMenu.length ) {
|
||||
currentMenu = this.element;
|
||||
}
|
||||
|
||||
this._close( currentMenu );
|
||||
|
||||
this.blur( event );
|
||||
|
||||
// Work around active item staying active after menu is blurred
|
||||
this._removeClass( currentMenu.find( ".ui-state-active" ), null, "ui-state-active" );
|
||||
|
||||
this.activeMenu = currentMenu;
|
||||
}, this.delay );
|
||||
},
|
||||
|
||||
// With no arguments, closes the currently active menu - if nothing is active
|
||||
// it closes all menus. If passed an argument, it will search for menus BELOW
|
||||
_close: function( startMenu ) {
|
||||
if ( !startMenu ) {
|
||||
startMenu = this.active ? this.active.parent() : this.element;
|
||||
}
|
||||
|
||||
startMenu.find( ".ui-menu" )
|
||||
.hide()
|
||||
.attr( "aria-hidden", "true" )
|
||||
.attr( "aria-expanded", "false" );
|
||||
},
|
||||
|
||||
_closeOnDocumentClick: function( event ) {
|
||||
return !$( event.target ).closest( ".ui-menu" ).length;
|
||||
},
|
||||
|
||||
_isDivider: function( item ) {
|
||||
|
||||
// Match hyphen, em dash, en dash
|
||||
return !/[^\-\u2014\u2013\s]/.test( item.text() );
|
||||
},
|
||||
|
||||
collapse: function( event ) {
|
||||
var newItem = this.active &&
|
||||
this.active.parent().closest( ".ui-menu-item", this.element );
|
||||
if ( newItem && newItem.length ) {
|
||||
this._close();
|
||||
this.focus( event, newItem );
|
||||
}
|
||||
},
|
||||
|
||||
expand: function( event ) {
|
||||
var newItem = this.active &&
|
||||
this.active
|
||||
.children( ".ui-menu " )
|
||||
.find( this.options.items )
|
||||
.first();
|
||||
|
||||
if ( newItem && newItem.length ) {
|
||||
this._open( newItem.parent() );
|
||||
|
||||
// Delay so Firefox will not hide activedescendant change in expanding submenu from AT
|
||||
this._delay( function() {
|
||||
this.focus( event, newItem );
|
||||
} );
|
||||
}
|
||||
},
|
||||
|
||||
next: function( event ) {
|
||||
this._move( "next", "first", event );
|
||||
},
|
||||
|
||||
previous: function( event ) {
|
||||
this._move( "prev", "last", event );
|
||||
},
|
||||
|
||||
isFirstItem: function() {
|
||||
return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
|
||||
},
|
||||
|
||||
isLastItem: function() {
|
||||
return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
|
||||
},
|
||||
|
||||
_move: function( direction, filter, event ) {
|
||||
var next;
|
||||
if ( this.active ) {
|
||||
if ( direction === "first" || direction === "last" ) {
|
||||
next = this.active
|
||||
[ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
|
||||
.eq( -1 );
|
||||
} else {
|
||||
next = this.active
|
||||
[ direction + "All" ]( ".ui-menu-item" )
|
||||
.eq( 0 );
|
||||
}
|
||||
}
|
||||
if ( !next || !next.length || !this.active ) {
|
||||
next = this.activeMenu.find( this.options.items )[ filter ]();
|
||||
}
|
||||
|
||||
this.focus( event, next );
|
||||
},
|
||||
|
||||
nextPage: function( event ) {
|
||||
var item, base, height;
|
||||
|
||||
if ( !this.active ) {
|
||||
this.next( event );
|
||||
return;
|
||||
}
|
||||
if ( this.isLastItem() ) {
|
||||
return;
|
||||
}
|
||||
if ( this._hasScroll() ) {
|
||||
base = this.active.offset().top;
|
||||
height = this.element.height();
|
||||
this.active.nextAll( ".ui-menu-item" ).each( function() {
|
||||
item = $( this );
|
||||
return item.offset().top - base - height < 0;
|
||||
} );
|
||||
|
||||
this.focus( event, item );
|
||||
} else {
|
||||
this.focus( event, this.activeMenu.find( this.options.items )
|
||||
[ !this.active ? "first" : "last" ]() );
|
||||
}
|
||||
},
|
||||
|
||||
previousPage: function( event ) {
|
||||
var item, base, height;
|
||||
if ( !this.active ) {
|
||||
this.next( event );
|
||||
return;
|
||||
}
|
||||
if ( this.isFirstItem() ) {
|
||||
return;
|
||||
}
|
||||
if ( this._hasScroll() ) {
|
||||
base = this.active.offset().top;
|
||||
height = this.element.height();
|
||||
this.active.prevAll( ".ui-menu-item" ).each( function() {
|
||||
item = $( this );
|
||||
return item.offset().top - base + height > 0;
|
||||
} );
|
||||
|
||||
this.focus( event, item );
|
||||
} else {
|
||||
this.focus( event, this.activeMenu.find( this.options.items ).first() );
|
||||
}
|
||||
},
|
||||
|
||||
_hasScroll: function() {
|
||||
return this.element.outerHeight() < this.element.prop( "scrollHeight" );
|
||||
},
|
||||
|
||||
select: function( event ) {
|
||||
|
||||
// TODO: It should never be possible to not have an active item at this
|
||||
// point, but the tests don't trigger mouseenter before click.
|
||||
this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
|
||||
var ui = { item: this.active };
|
||||
if ( !this.active.has( ".ui-menu" ).length ) {
|
||||
this.collapseAll( event, true );
|
||||
}
|
||||
this._trigger( "select", event, ui );
|
||||
},
|
||||
|
||||
_filterMenuItems: function( character ) {
|
||||
var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ),
|
||||
regex = new RegExp( "^" + escapedCharacter, "i" );
|
||||
|
||||
return this.activeMenu
|
||||
.find( this.options.items )
|
||||
|
||||
// Only match on items, not dividers or other content (#10571)
|
||||
.filter( ".ui-menu-item" )
|
||||
.filter( function() {
|
||||
return regex.test(
|
||||
$.trim( $( this ).children( ".ui-menu-item-wrapper" ).text() ) );
|
||||
} );
|
||||
}
|
||||
} );
|
||||
|
||||
} ) );
|
|
@ -1,4 +1,9 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../ie","../version","../widget"],a):a(jQuery)}(function(a){var b=!1;return a(document).on("mouseup",function(){b=!1}),a.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.on("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).on("click."+this.widgetName,function(c){if(!0===a.data(c.target,b.widgetName+".preventClickEvent"))return a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(c){if(!b){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(c),this._mouseDownEvent=c;var d=this,e=1===c.which,f=!("string"!=typeof this.options.cancel||!c.target.nodeName)&&a(c.target).closest(this.options.cancel).length;return!(e&&!f&&this._mouseCapture(c))||(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){d.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(c)&&this._mouseDelayMet(c)&&(this._mouseStarted=this._mouseStart(c)!==!1,!this._mouseStarted)?(c.preventDefault(),!0):(!0===a.data(c.target,this.widgetName+".preventClickEvent")&&a.removeData(c.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return d._mouseMove(a)},this._mouseUpDelegate=function(a){return d._mouseUp(a)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),c.preventDefault(),b=!0,!0))}},_mouseMove:function(b){if(this._mouseMoved){if(a.ui.ie&&(!document.documentMode||document.documentMode<9)&&!b.button)return this._mouseUp(b);if(!b.which)if(b.originalEvent.altKey||b.originalEvent.ctrlKey||b.originalEvent.metaKey||b.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(b)}return(b.which||b.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted)},_mouseUp:function(c){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,c.target===this._mouseDownEvent.target&&a.data(c.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(c)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,b=!1,c.preventDefault()},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})});
|
||||
/*!
|
||||
* jQuery UI Mouse 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery","../ie","../version","../widget"],e):e(jQuery)}((function(e){var t=!1;return e(document).on("mouseup",(function(){t=!1})),e.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.on("mousedown."+this.widgetName,(function(e){return t._mouseDown(e)})).on("click."+this.widgetName,(function(i){if(!0===e.data(i.target,t.widgetName+".preventClickEvent"))return e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1})),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(i){if(!t){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(i),this._mouseDownEvent=i;var s=this,o=1===i.which,n=!("string"!=typeof this.options.cancel||!i.target.nodeName)&&e(i.target).closest(this.options.cancel).length;return!(o&&!n&&this._mouseCapture(i))||(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout((function(){s.mouseDelayMet=!0}),this.options.delay)),this._mouseDistanceMet(i)&&this._mouseDelayMet(i)&&(this._mouseStarted=!1!==this._mouseStart(i),!this._mouseStarted)?(i.preventDefault(),!0):(!0===e.data(i.target,this.widgetName+".preventClickEvent")&&e.removeData(i.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return s._mouseMove(e)},this._mouseUpDelegate=function(e){return s._mouseUp(e)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),i.preventDefault(),t=!0,!0))}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(i){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,i.target===this._mouseDownEvent.target&&e.data(i.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(i)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,t=!1,i.preventDefault()},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})}));
|
|
@ -0,0 +1,226 @@
|
|||
/*!
|
||||
* jQuery UI Mouse 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
//>>label: Mouse
|
||||
//>>group: Widgets
|
||||
//>>description: Abstracts mouse-based interactions to assist in creating certain widgets.
|
||||
//>>docs: http://api.jqueryui.com/mouse/
|
||||
|
||||
( function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define( [
|
||||
"jquery",
|
||||
"../ie",
|
||||
"../version",
|
||||
"../widget"
|
||||
], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
}( function( $ ) {
|
||||
|
||||
var mouseHandled = false;
|
||||
$( document ).on( "mouseup", function() {
|
||||
mouseHandled = false;
|
||||
} );
|
||||
|
||||
return $.widget( "ui.mouse", {
|
||||
version: "1.12.1",
|
||||
options: {
|
||||
cancel: "input, textarea, button, select, option",
|
||||
distance: 1,
|
||||
delay: 0
|
||||
},
|
||||
_mouseInit: function() {
|
||||
var that = this;
|
||||
|
||||
this.element
|
||||
.on( "mousedown." + this.widgetName, function( event ) {
|
||||
return that._mouseDown( event );
|
||||
} )
|
||||
.on( "click." + this.widgetName, function( event ) {
|
||||
if ( true === $.data( event.target, that.widgetName + ".preventClickEvent" ) ) {
|
||||
$.removeData( event.target, that.widgetName + ".preventClickEvent" );
|
||||
event.stopImmediatePropagation();
|
||||
return false;
|
||||
}
|
||||
} );
|
||||
|
||||
this.started = false;
|
||||
},
|
||||
|
||||
// TODO: make sure destroying one instance of mouse doesn't mess with
|
||||
// other instances of mouse
|
||||
_mouseDestroy: function() {
|
||||
this.element.off( "." + this.widgetName );
|
||||
if ( this._mouseMoveDelegate ) {
|
||||
this.document
|
||||
.off( "mousemove." + this.widgetName, this._mouseMoveDelegate )
|
||||
.off( "mouseup." + this.widgetName, this._mouseUpDelegate );
|
||||
}
|
||||
},
|
||||
|
||||
_mouseDown: function( event ) {
|
||||
|
||||
// don't let more than one widget handle mouseStart
|
||||
if ( mouseHandled ) {
|
||||
return;
|
||||
}
|
||||
|
||||
this._mouseMoved = false;
|
||||
|
||||
// We may have missed mouseup (out of window)
|
||||
( this._mouseStarted && this._mouseUp( event ) );
|
||||
|
||||
this._mouseDownEvent = event;
|
||||
|
||||
var that = this,
|
||||
btnIsLeft = ( event.which === 1 ),
|
||||
|
||||
// event.target.nodeName works around a bug in IE 8 with
|
||||
// disabled inputs (#7620)
|
||||
elIsCancel = ( typeof this.options.cancel === "string" && event.target.nodeName ?
|
||||
$( event.target ).closest( this.options.cancel ).length : false );
|
||||
if ( !btnIsLeft || elIsCancel || !this._mouseCapture( event ) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
this.mouseDelayMet = !this.options.delay;
|
||||
if ( !this.mouseDelayMet ) {
|
||||
this._mouseDelayTimer = setTimeout( function() {
|
||||
that.mouseDelayMet = true;
|
||||
}, this.options.delay );
|
||||
}
|
||||
|
||||
if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {
|
||||
this._mouseStarted = ( this._mouseStart( event ) !== false );
|
||||
if ( !this._mouseStarted ) {
|
||||
event.preventDefault();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Click event may never have fired (Gecko & Opera)
|
||||
if ( true === $.data( event.target, this.widgetName + ".preventClickEvent" ) ) {
|
||||
$.removeData( event.target, this.widgetName + ".preventClickEvent" );
|
||||
}
|
||||
|
||||
// These delegates are required to keep context
|
||||
this._mouseMoveDelegate = function( event ) {
|
||||
return that._mouseMove( event );
|
||||
};
|
||||
this._mouseUpDelegate = function( event ) {
|
||||
return that._mouseUp( event );
|
||||
};
|
||||
|
||||
this.document
|
||||
.on( "mousemove." + this.widgetName, this._mouseMoveDelegate )
|
||||
.on( "mouseup." + this.widgetName, this._mouseUpDelegate );
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
mouseHandled = true;
|
||||
return true;
|
||||
},
|
||||
|
||||
_mouseMove: function( event ) {
|
||||
|
||||
// Only check for mouseups outside the document if you've moved inside the document
|
||||
// at least once. This prevents the firing of mouseup in the case of IE<9, which will
|
||||
// fire a mousemove event if content is placed under the cursor. See #7778
|
||||
// Support: IE <9
|
||||
if ( this._mouseMoved ) {
|
||||
|
||||
// IE mouseup check - mouseup happened when mouse was out of window
|
||||
if ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) &&
|
||||
!event.button ) {
|
||||
return this._mouseUp( event );
|
||||
|
||||
// Iframe mouseup check - mouseup occurred in another document
|
||||
} else if ( !event.which ) {
|
||||
|
||||
// Support: Safari <=8 - 9
|
||||
// Safari sets which to 0 if you press any of the following keys
|
||||
// during a drag (#14461)
|
||||
if ( event.originalEvent.altKey || event.originalEvent.ctrlKey ||
|
||||
event.originalEvent.metaKey || event.originalEvent.shiftKey ) {
|
||||
this.ignoreMissingWhich = true;
|
||||
} else if ( !this.ignoreMissingWhich ) {
|
||||
return this._mouseUp( event );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( event.which || event.button ) {
|
||||
this._mouseMoved = true;
|
||||
}
|
||||
|
||||
if ( this._mouseStarted ) {
|
||||
this._mouseDrag( event );
|
||||
return event.preventDefault();
|
||||
}
|
||||
|
||||
if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {
|
||||
this._mouseStarted =
|
||||
( this._mouseStart( this._mouseDownEvent, event ) !== false );
|
||||
( this._mouseStarted ? this._mouseDrag( event ) : this._mouseUp( event ) );
|
||||
}
|
||||
|
||||
return !this._mouseStarted;
|
||||
},
|
||||
|
||||
_mouseUp: function( event ) {
|
||||
this.document
|
||||
.off( "mousemove." + this.widgetName, this._mouseMoveDelegate )
|
||||
.off( "mouseup." + this.widgetName, this._mouseUpDelegate );
|
||||
|
||||
if ( this._mouseStarted ) {
|
||||
this._mouseStarted = false;
|
||||
|
||||
if ( event.target === this._mouseDownEvent.target ) {
|
||||
$.data( event.target, this.widgetName + ".preventClickEvent", true );
|
||||
}
|
||||
|
||||
this._mouseStop( event );
|
||||
}
|
||||
|
||||
if ( this._mouseDelayTimer ) {
|
||||
clearTimeout( this._mouseDelayTimer );
|
||||
delete this._mouseDelayTimer;
|
||||
}
|
||||
|
||||
this.ignoreMissingWhich = false;
|
||||
mouseHandled = false;
|
||||
event.preventDefault();
|
||||
},
|
||||
|
||||
_mouseDistanceMet: function( event ) {
|
||||
return ( Math.max(
|
||||
Math.abs( this._mouseDownEvent.pageX - event.pageX ),
|
||||
Math.abs( this._mouseDownEvent.pageY - event.pageY )
|
||||
) >= this.options.distance
|
||||
);
|
||||
},
|
||||
|
||||
_mouseDelayMet: function( /* event */ ) {
|
||||
return this.mouseDelayMet;
|
||||
},
|
||||
|
||||
// These are placeholder methods, to be overriden by extending plugin
|
||||
_mouseStart: function( /* event */ ) {},
|
||||
_mouseDrag: function( /* event */ ) {},
|
||||
_mouseStop: function( /* event */ ) {},
|
||||
_mouseCapture: function( /* event */ ) { return true; }
|
||||
} );
|
||||
|
||||
} ) );
|
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../version","../widget"],a):a(jQuery)}(function(a){return a.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=a("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(a){return void 0===a?this.options.value:(this.options.value=this._constrainedValue(a),void this._refreshValue())},_constrainedValue:function(a){return void 0===a&&(a=this.options.value),this.indeterminate=a===!1,"number"!=typeof a&&(a=0),!this.indeterminate&&Math.min(this.options.max,Math.max(this.min,a))},_setOptions:function(a){var b=a.value;delete a.value,this._super(a),this.options.value=this._constrainedValue(b),this._refreshValue()},_setOption:function(a,b){"max"===a&&(b=Math.max(this.min,b)),this._super(a,b)},_setOptionDisabled:function(a){this._super(a),this.element.attr("aria-disabled",a),this._toggleClass(null,"ui-state-disabled",!!a)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var b=this.options.value,c=this._percentage();this.valueDiv.toggle(this.indeterminate||b>this.min).width(c.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,b===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=a("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":b}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==b&&(this.oldValue=b,this._trigger("change")),b===this.options.max&&this._trigger("complete")}})});
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
|
@ -1,4 +0,0 @@
|
|||
/*! jQuery UI - v1.12.1 - 2017-03-31
|
||||
* http://jqueryui.com
|
||||
* Copyright jQuery Foundation and other contributors; Licensed */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","./mouse","../version","../widget"],a):a(jQuery)}(function(a){return a.widget("ui.selectable",a.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var b=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){b.elementPos=a(b.element[0]).offset(),b.selectees=a(b.options.filter,b.element[0]),b._addClass(b.selectees,"ui-selectee"),b.selectees.each(function(){var c=a(this),d=c.offset(),e={left:d.left-b.elementPos.left,top:d.top-b.elementPos.top};a.data(this,"selectable-item",{element:this,$element:c,left:e.left,top:e.top,right:e.left+c.outerWidth(),bottom:e.top+c.outerHeight(),startselected:!1,selected:c.hasClass("ui-selected"),selecting:c.hasClass("ui-selecting"),unselecting:c.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=a("<div>"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(b){var c=this,d=this.options;this.opos=[b.pageX,b.pageY],this.elementPos=a(this.element[0]).offset(),this.options.disabled||(this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.pageX,top:b.pageY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,b.metaKey||b.ctrlKey||(c._removeClass(d.$element,"ui-selected"),d.selected=!1,c._addClass(d.$element,"ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().addBack().each(function(){var d,e=a.data(this,"selectable-item");if(e)return d=!b.metaKey&&!b.ctrlKey||!e.$element.hasClass("ui-selected"),c._removeClass(e.$element,d?"ui-unselecting":"ui-selected")._addClass(e.$element,d?"ui-selecting":"ui-unselecting"),e.unselecting=!d,e.selecting=d,e.selected=d,d?c._trigger("selecting",b,{selecting:e.element}):c._trigger("unselecting",b,{unselecting:e.element}),!1}))},_mouseDrag:function(b){if(this.dragged=!0,!this.options.disabled){var c,d=this,e=this.options,f=this.opos[0],g=this.opos[1],h=b.pageX,i=b.pageY;return f>h&&(c=h,h=f,f=c),g>i&&(c=i,i=g,g=c),this.helper.css({left:f,top:g,width:h-f,height:i-g}),this.selectees.each(function(){var c=a.data(this,"selectable-item"),j=!1,k={};c&&c.element!==d.element[0]&&(k.left=c.left+d.elementPos.left,k.right=c.right+d.elementPos.left,k.top=c.top+d.elementPos.top,k.bottom=c.bottom+d.elementPos.top,"touch"===e.tolerance?j=!(k.left>h||k.right<f||k.top>i||k.bottom<g):"fit"===e.tolerance&&(j=k.left>f&&k.right<h&&k.top>g&&k.bottom<i),j?(c.selected&&(d._removeClass(c.$element,"ui-selected"),c.selected=!1),c.unselecting&&(d._removeClass(c.$element,"ui-unselecting"),c.unselecting=!1),c.selecting||(d._addClass(c.$element,"ui-selecting"),c.selecting=!0,d._trigger("selecting",b,{selecting:c.element}))):(c.selecting&&((b.metaKey||b.ctrlKey)&&c.startselected?(d._removeClass(c.$element,"ui-selecting"),c.selecting=!1,d._addClass(c.$element,"ui-selected"),c.selected=!0):(d._removeClass(c.$element,"ui-selecting"),c.selecting=!1,c.startselected&&(d._addClass(c.$element,"ui-unselecting"),c.unselecting=!0),d._trigger("unselecting",b,{unselecting:c.element}))),c.selected&&(b.metaKey||b.ctrlKey||c.startselected||(d._removeClass(c.$element,"ui-selected"),c.selected=!1,d._addClass(c.$element,"ui-unselecting"),c.unselecting=!0,d._trigger("unselecting",b,{unselecting:c.element})))))}),!1}},_mouseStop:function(b){var c=this;return this.dragged=!1,a(".ui-unselecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");c._removeClass(d.$element,"ui-unselecting"),d.unselecting=!1,d.startselected=!1,c._trigger("unselected",b,{unselected:d.element})}),a(".ui-selecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");c._removeClass(d.$element,"ui-selecting")._addClass(d.$element,"ui-selected"),d.selecting=!1,d.selected=!0,d.startselected=!0,c._trigger("selected",b,{selected:d.element})}),this._trigger("stop",b),this.helper.remove(),!1}})});
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -402,7 +402,6 @@ jquery.once:
|
|||
- core/jquery
|
||||
|
||||
jquery.ui:
|
||||
remote: https://github.com/jquery/jquery-ui
|
||||
version: &jquery_ui_version 1.12.1
|
||||
license: &jquery_ui_license
|
||||
name: Public Domain
|
||||
|
@ -433,19 +432,6 @@ jquery.ui:
|
|||
dependencies:
|
||||
- core/jquery
|
||||
|
||||
jquery.ui.accordion:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/widgets/accordion-min.js: { minified: true }
|
||||
css:
|
||||
component:
|
||||
assets/vendor/jquery.ui/themes/base/accordion.css: {}
|
||||
dependencies:
|
||||
- core/jquery.ui
|
||||
- core/jquery.ui.widget
|
||||
deprecated: &jquery_ui_unused_deprecated The "%library_id%" asset library is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. See https://www.drupal.org/node/3067969
|
||||
|
||||
jquery.ui.autocomplete:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
|
@ -487,7 +473,7 @@ jquery.ui.checkboxradio:
|
|||
dependencies:
|
||||
- core/jquery.ui
|
||||
- core/jquery.ui.widget
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
deprecated: &jquery_ui_unused_deprecated The "%library_id%" asset library is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. See https://www.drupal.org/node/3067969
|
||||
|
||||
jquery.ui.controlgroup:
|
||||
version: *jquery_ui_version
|
||||
|
@ -529,162 +515,6 @@ jquery.ui.draggable:
|
|||
- core/jquery.ui.mouse
|
||||
- core/jquery.ui.widget
|
||||
|
||||
jquery.ui.droppable:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/widgets/droppable-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui
|
||||
- core/jquery.ui.widget
|
||||
- core/jquery.ui.mouse
|
||||
- core/jquery.ui.draggable
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.core:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effect-min.js: { weight: -9, minified: true }
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.blind:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-blind-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.bounce:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-bounce-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.clip:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-clip-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.drop:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-drop-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.explode:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-explode-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.fade:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-fade-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.fold:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-fold-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.highlight:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-highlight-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.puff:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-puff-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
- core/jquery.ui.effects.scale
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.pulsate:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-pulsate-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.scale:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-scale-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
- core/jquery.ui.effects.size
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.shake:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-shake-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.size:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-size-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.slide:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-slide-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.effects.transfer:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/effects/effect-transfer-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui.effects.core
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.menu:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
|
@ -715,19 +545,6 @@ jquery.ui.position:
|
|||
dependencies:
|
||||
- core/jquery.ui
|
||||
|
||||
jquery.ui.progressbar:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/widgets/progressbar-min.js: { minified: true }
|
||||
css:
|
||||
component:
|
||||
assets/vendor/jquery.ui/themes/base/progressbar.css: {}
|
||||
dependencies:
|
||||
- core/jquery.ui
|
||||
- core/jquery.ui.widget
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.resizable:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
|
@ -741,118 +558,6 @@ jquery.ui.resizable:
|
|||
- core/jquery.ui.widget
|
||||
- core/jquery.ui.mouse
|
||||
|
||||
jquery.ui.selectable:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/widgets/selectable-min.js: { minified: true }
|
||||
css:
|
||||
component:
|
||||
assets/vendor/jquery.ui/themes/base/selectable.css: {}
|
||||
dependencies:
|
||||
- core/jquery.ui
|
||||
- core/jquery.ui.mouse
|
||||
- core/jquery.ui.widget
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.selectmenu:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/form-reset-mixin-min.js: { minified: true }
|
||||
assets/vendor/jquery.ui/ui/widgets/selectmenu-min.js: { minified: true }
|
||||
css:
|
||||
component:
|
||||
assets/vendor/jquery.ui/themes/base/selectmenu.css: {}
|
||||
assets/vendor/jquery.ui/themes/base/button.css: {}
|
||||
dependencies:
|
||||
- core/jquery.ui
|
||||
- core/jquery.ui.menu
|
||||
- core/jquery.ui.position
|
||||
- core/jquery.ui.widget
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.slider:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/widgets/slider-min.js: { minified: true }
|
||||
css:
|
||||
component:
|
||||
assets/vendor/jquery.ui/themes/base/slider.css: {}
|
||||
dependencies:
|
||||
- core/jquery.ui
|
||||
- core/jquery.ui.mouse
|
||||
- core/jquery.ui.widget
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.sortable:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/widgets/sortable-min.js: { minified: true }
|
||||
dependencies:
|
||||
- core/jquery.ui
|
||||
- core/jquery.ui.mouse
|
||||
- core/jquery.ui.widget
|
||||
deprecated: The "%library_id%" asset library is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. See https://www.drupal.org/node/3084730
|
||||
|
||||
jquery.ui.spinner:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/widgets/spinner-min.js: { minified: true }
|
||||
css:
|
||||
component:
|
||||
assets/vendor/jquery.ui/themes/base/spinner.css: {}
|
||||
dependencies:
|
||||
- core/jquery.ui
|
||||
- core/jquery.ui.widget
|
||||
- core/jquery.ui.button
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.tabs:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/widgets/tabs-min.js: { minified: true }
|
||||
css:
|
||||
component:
|
||||
assets/vendor/jquery.ui/themes/base/tabs.css: {}
|
||||
dependencies:
|
||||
- core/jquery.ui
|
||||
- core/jquery.ui.widget
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.tooltip:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
js:
|
||||
assets/vendor/jquery.ui/ui/widgets/tooltip-min.js: { minified: true }
|
||||
css:
|
||||
component:
|
||||
assets/vendor/jquery.ui/themes/base/tooltip.css: {}
|
||||
dependencies:
|
||||
- core/jquery.ui
|
||||
- core/jquery.ui.widget
|
||||
- core/jquery.ui.position
|
||||
deprecated: *jquery_ui_unused_deprecated
|
||||
|
||||
jquery.ui.touch-punch:
|
||||
remote: https://github.com/furf/jquery-ui-touch-punch
|
||||
version: "0.2.3"
|
||||
license:
|
||||
name: GNU-GPL-2.0-or-later
|
||||
url: https://github.com/furf/jquery-ui-touch-punch
|
||||
gpl-compatible: true
|
||||
js:
|
||||
assets/vendor/jquery-ui-touch-punch/jquery.ui.touch-punch.js: {}
|
||||
dependencies:
|
||||
- core/jquery.ui
|
||||
- core/jquery.ui.mouse
|
||||
- core/jquery.ui.widget
|
||||
deprecated: The "%library_id%" asset library is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. See https://www.drupal.org/node/3084730
|
||||
|
||||
jquery.ui.widget:
|
||||
version: *jquery_ui_version
|
||||
license: *jquery_ui_license
|
||||
|
|
|
@ -8,12 +8,13 @@
|
|||
"node": ">= 8.11"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "yarn build:css & yarn build:js",
|
||||
"build": "yarn build:css & yarn build:js & yarn build:jqueryui",
|
||||
"watch": "yarn watch:css & yarn watch:js",
|
||||
"build:css": "cross-env BABEL_ENV=legacy node ./scripts/css/postcss-build.js",
|
||||
"watch:css": "cross-env BABEL_ENV=legacy node ./scripts/css/postcss-watch.js",
|
||||
"build:js": "cross-env BABEL_ENV=legacy node ./scripts/js/babel-es6-build.js",
|
||||
"build:js-dev": "cross-env NODE_ENV=development BABEL_ENV=legacy node ./scripts/js/babel-es6-build.js",
|
||||
"build:jqueryui": "cross-env NODE_ENV=development BABEL_ENV=legacy node ./scripts/js/jqueryui-build.js",
|
||||
"watch:js": "cross-env BABEL_ENV=legacy node ./scripts/js/babel-es6-watch.js",
|
||||
"watch:js-dev": "cross-env NODE_ENV=development BABEL_ENV=legacy node ./scripts/js/babel-es6-watch.js",
|
||||
"lint:core-js": "node ./node_modules/eslint/bin/eslint.js .",
|
||||
|
@ -55,7 +56,8 @@
|
|||
"stylelint-checkstyle-formatter": "^0.1.1",
|
||||
"stylelint-config-standard": "^18.2.0",
|
||||
"stylelint-no-browser-hacks": "^1.2.1",
|
||||
"stylelint-order": "^2.1.0"
|
||||
"stylelint-order": "^2.1.0",
|
||||
"terser": "^4.3.9"
|
||||
},
|
||||
"//": "'development is the default environment, and legacy is for transpiling the old jQuery codebase",
|
||||
"babel": {
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
/**
|
||||
* @file
|
||||
*
|
||||
* Provides the build:jqueryui command to minify *.js source files.
|
||||
*
|
||||
* Run build:jqueryui with --file to only parse a specific file.
|
||||
* @example <caption>Only process assets/vendor/jquery.ui/ui/widget.js and
|
||||
* assets/vendor/jquery.ui/ui/plugin.js</caption
|
||||
* yarn run build:jqueryui --file assets/vendor/jquery.ui/ui/widget.js --file
|
||||
* assets/vendor/jquery.ui/ui/plugin.js
|
||||
* @example <caption>Check if all files have been compiled correctly</caption>
|
||||
* yarn run build:jqueryui --check
|
||||
*
|
||||
* @internal This file is part of the core javascript build process and is only
|
||||
* meant to be used in that context.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
const glob = require('glob');
|
||||
const argv = require('minimist')(process.argv.slice(2));
|
||||
const check = require('./jqueryui-check');
|
||||
const minify = require('./jqueryui-terser');
|
||||
const log = require('./log');
|
||||
|
||||
// Match only on jQuery UI .js files.
|
||||
const fileMatch = './assets/vendor/jquery.ui/**/!(*-min).js';
|
||||
const processFiles = (error, filePaths) => {
|
||||
if (error) {
|
||||
process.exitCode = 1;
|
||||
}
|
||||
// Process all the found files.
|
||||
let callback = minify;
|
||||
if (argv.check) {
|
||||
callback = check;
|
||||
}
|
||||
filePaths.forEach(callback);
|
||||
};
|
||||
|
||||
if (argv.file) {
|
||||
processFiles(null, [].concat(argv.file));
|
||||
}
|
||||
else {
|
||||
glob(fileMatch, {}, processFiles);
|
||||
}
|
||||
process.exitCode = 0;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue