From a98ea6b7fc4df6f606d4a00b9544970157598eca Mon Sep 17 00:00:00 2001 From: David Botton Date: Tue, 21 Jun 2022 20:31:57 -0400 Subject: [PATCH] Bump jQuery to 3.6.0 and jQueryUI to 1.13.1 --- source/clog-connection.lisp | 7 +- .../css/images/ui-icons_444444_256x240.png | Bin 0 -> 7090 bytes .../css/images/ui-icons_555555_256x240.png | Bin 0 -> 7074 bytes .../css/images/ui-icons_777620_256x240.png | Bin 0 -> 4618 bytes .../css/images/ui-icons_777777_256x240.png | Bin 0 -> 7111 bytes .../css/images/ui-icons_cc0000_256x240.png | Bin 0 -> 4618 bytes .../css/images/ui-icons_ffffff_256x240.png | Bin 0 -> 6487 bytes static-files/css/jquery-ui.css | 26 +- static-files/css/jquery-ui.structure.css | 886 ++++++++ static-files/css/jquery-ui.theme.css | 446 ++++ static-files/js/jquery-ui.js | 1785 ++++++++++------- static-files/js/jquery.min.js | 4 +- templates/www/www/boot.html | 2 +- .../css/images/ui-icons_444444_256x240.png | Bin 0 -> 7090 bytes .../css/images/ui-icons_555555_256x240.png | Bin 0 -> 7074 bytes .../css/images/ui-icons_777620_256x240.png | Bin 0 -> 4618 bytes .../css/images/ui-icons_777777_256x240.png | Bin 0 -> 7111 bytes .../css/images/ui-icons_cc0000_256x240.png | Bin 0 -> 4618 bytes .../css/images/ui-icons_ffffff_256x240.png | Bin 0 -> 6487 bytes templates/www/www/css/jquery-ui.css | 26 +- templates/www/www/css/jquery-ui.structure.css | 886 ++++++++ templates/www/www/css/jquery-ui.theme.css | 446 ++++ templates/www/www/js/jquery-ui.js | 1785 ++++++++++------- templates/www/www/js/jquery.min.js | 4 +- .../28-tutorial/hello-builder/www/boot.html | 4 +- 25 files changed, 4843 insertions(+), 1464 deletions(-) create mode 100644 static-files/css/images/ui-icons_444444_256x240.png create mode 100644 static-files/css/images/ui-icons_555555_256x240.png create mode 100644 static-files/css/images/ui-icons_777620_256x240.png create mode 100644 static-files/css/images/ui-icons_777777_256x240.png create mode 100644 static-files/css/images/ui-icons_cc0000_256x240.png create mode 100644 static-files/css/images/ui-icons_ffffff_256x240.png create mode 100644 static-files/css/jquery-ui.structure.css create mode 100644 static-files/css/jquery-ui.theme.css create mode 100644 templates/www/www/css/images/ui-icons_444444_256x240.png create mode 100644 templates/www/www/css/images/ui-icons_555555_256x240.png create mode 100644 templates/www/www/css/images/ui-icons_777620_256x240.png create mode 100644 templates/www/www/css/images/ui-icons_777777_256x240.png create mode 100644 templates/www/www/css/images/ui-icons_cc0000_256x240.png create mode 100644 templates/www/www/css/images/ui-icons_ffffff_256x240.png create mode 100644 templates/www/www/css/jquery-ui.structure.css create mode 100644 templates/www/www/css/jquery-ui.theme.css diff --git a/source/clog-connection.lisp b/source/clog-connection.lisp index c0bab58..f91b2cb 100644 --- a/source/clog-connection.lisp +++ b/source/clog-connection.lisp @@ -645,7 +645,8 @@ the browser contents in case of connection loss." ;;;;;;;;;;;;;;;;;;;;;;;; (defun compiled-boot-html (path content) - "Returns a compiled version of current version of boot.html" + "Returns a compiled version version of boot.html. The compiled boot.html +uses the jQuery CDN instead of the static js files." " @@ -654,7 +655,9 @@ the browser contents in case of connection loss." - + diff --git a/static-files/css/images/ui-icons_444444_256x240.png b/static-files/css/images/ui-icons_444444_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..07e4ea066f17984cb7f508c40bc675d783573890 GIT binary patch literal 7090 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 bF+DXXH8G{K@MJ1zB8|b*)z4*}Q$iB}`0O_w literal 0 HcmV?d00001 diff --git a/static-files/css/images/ui-icons_555555_256x240.png b/static-files/css/images/ui-icons_555555_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..5e33fddf0ef9310cc887fa72ced7a95235ae10ef GIT binary patch literal 7074 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 Z)S%SFl*+=Bsi28722WQ%mvv4FO#nf;bmag5 literal 0 HcmV?d00001 diff --git a/static-files/css/images/ui-icons_777620_256x240.png b/static-files/css/images/ui-icons_777620_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..1d096c1af400929d2c29a80904e2775521857960 GIT binary patch literal 4618 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 At^fc4 literal 0 HcmV?d00001 diff --git a/static-files/css/images/ui-icons_777777_256x240.png b/static-files/css/images/ui-icons_777777_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..ff0994dd11f74c320da1b1f52469168e345d6f54 GIT binary patch literal 7111 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 literal 0 HcmV?d00001 diff --git a/static-files/css/jquery-ui.css b/static-files/css/jquery-ui.css index a22ecb0..2f0601a 100644 --- a/static-files/css/jquery-ui.css +++ b/static-files/css/jquery-ui.css @@ -1,7 +1,7 @@ -/*! jQuery UI - v1.12.1 - 2016-09-14 +/*! jQuery UI - v1.13.1 - 2022-01-20 * http://jqueryui.com * Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&fwDefault=normal&cornerRadius=3px&bgColorHeader=e9e9e9&bgTextureHeader=flat&borderColorHeader=dddddd&fcHeader=333333&iconColorHeader=444444&bgColorContent=ffffff&bgTextureContent=flat&borderColorContent=dddddd&fcContent=333333&iconColorContent=444444&bgColorDefault=f6f6f6&bgTextureDefault=flat&borderColorDefault=c5c5c5&fcDefault=454545&iconColorDefault=777777&bgColorHover=ededed&bgTextureHover=flat&borderColorHover=cccccc&fcHover=2b2b2b&iconColorHover=555555&bgColorActive=007fff&bgTextureActive=flat&borderColorActive=003eff&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=fffa90&bgTextureHighlight=flat&borderColorHighlight=dad55e&fcHighlight=777620&iconColorHighlight=777620&bgColorError=fddfdf&bgTextureError=flat&borderColorError=f1a899&fcError=5f3f3f&iconColorError=cc0000&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=666666&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=5px&offsetTopShadow=0px&offsetLeftShadow=0px&cornerRadiusShadow=8px +* To view and modify this theme, visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6 * Copyright jQuery Foundation and other contributors; Licensed MIT */ /* Layout helpers @@ -45,7 +45,7 @@ left: 0; position: absolute; opacity: 0; - filter:Alpha(Opacity=0); /* support: IE8 */ + -ms-filter: "alpha(opacity=0)"; /* support: IE8 */ } .ui-front { @@ -664,7 +664,7 @@ button.ui-button::-moz-focus-inner { .ui-progressbar .ui-progressbar-overlay { background: url("data:image/gif;base64,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"); height: 100%; - filter: alpha(opacity=25); /* support: IE8 */ + -ms-filter: "alpha(opacity=25)"; /* support: IE8 */ opacity: 0.25; } .ui-progressbar-indeterminate .ui-progressbar-value { @@ -728,7 +728,7 @@ button.ui-button::-moz-focus-inner { z-index: 2; width: 1.2em; height: 1.2em; - cursor: default; + cursor: pointer; -ms-touch-action: none; touch-action: none; } @@ -880,6 +880,7 @@ button.ui-button::-moz-focus-inner { body .ui-tooltip { border-width: 2px; } + /* Component containers ----------------------------------*/ .ui-widget { @@ -1040,18 +1041,18 @@ a.ui-button:active, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; - filter:Alpha(Opacity=70); /* support: IE8 */ + -ms-filter: "alpha(opacity=70)"; /* support: IE8 */ font-weight: normal; } .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; - filter:Alpha(Opacity=35); /* support: IE8 */ + -ms-filter: "alpha(opacity=35)"; /* support: IE8 */ background-image: none; } .ui-state-disabled .ui-icon { - filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ + -ms-filter: "alpha(opacity=35)"; /* support: IE8 - See #6059 */ } /* Icons @@ -1092,7 +1093,10 @@ a.ui-button:active, } /* positioning */ -.ui-icon-blank { background-position: 16px 16px; } +/* Three classes needed to override `.ui-button:hover .ui-icon` */ +.ui-icon-blank.ui-icon-blank.ui-icon-blank { + background-image: none; +} .ui-icon-caret-1-n { background-position: 0 0; } .ui-icon-caret-1-ne { background-position: -16px 0; } .ui-icon-caret-1-e { background-position: -32px 0; } @@ -1302,8 +1306,8 @@ a.ui-button:active, /* Overlays */ .ui-widget-overlay { background: #aaaaaa; - opacity: .3; - filter: Alpha(Opacity=30); /* support: IE8 */ + opacity: .003; + -ms-filter: Alpha(Opacity=.3); /* support: IE8 */ } .ui-widget-shadow { -webkit-box-shadow: 0px 0px 5px #666666; diff --git a/static-files/css/jquery-ui.structure.css b/static-files/css/jquery-ui.structure.css new file mode 100644 index 0000000..f433f8c --- /dev/null +++ b/static-files/css/jquery-ui.structure.css @@ -0,0 +1,886 @@ +/*! + * jQuery UI CSS Framework 1.13.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/ + */ +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + -ms-filter: "alpha(opacity=0)"; /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; + pointer-events: none; +} + + +/* Icons +----------------------------------*/ +.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + +.ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; +} + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.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; +} +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} +.ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: 0; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + margin: 0; + cursor: pointer; + /* support: IE10, see #8844 */ + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} +.ui-menu .ui-menu-item-wrapper { + position: relative; + padding: 3px 1em 3px .4em; +} +.ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-state-focus, +.ui-menu .ui-state-active { + margin: -1px; +} + +/* icon support */ +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item-wrapper { + padding-left: 2em; +} + +/* left-aligned */ +.ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: .2em; + margin: auto 0; +} + +/* right-aligned */ +.ui-menu .ui-menu-icon { + left: auto; + right: 0; +} +.ui-button { + padding: .4em 1em; + display: inline-block; + position: relative; + line-height: normal; + margin-right: .1em; + cursor: pointer; + vertical-align: middle; + text-align: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + + /* Support: IE <= 11 */ + overflow: visible; +} + +.ui-button, +.ui-button:link, +.ui-button:visited, +.ui-button:hover, +.ui-button:active { + text-decoration: none; +} + +/* to make room for the icon, a width needs to be set here */ +.ui-button-icon-only { + width: 2em; + box-sizing: border-box; + text-indent: -9999px; + white-space: nowrap; +} + +/* no icon support for input elements */ +input.ui-button.ui-button-icon-only { + text-indent: 0; +} + +/* button icon element(s) */ +.ui-button-icon-only .ui-icon { + position: absolute; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; +} + +.ui-button.ui-icon-notext .ui-icon { + padding: 0; + width: 2.1em; + height: 2.1em; + text-indent: -9999px; + white-space: nowrap; + +} + +input.ui-button.ui-icon-notext .ui-icon { + width: auto; + height: auto; + text-indent: 0; + white-space: normal; + padding: .4em 1em; +} + +/* workarounds */ +/* Support: Firefox 5 - 40 */ +input.ui-button::-moz-focus-inner, +button.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} +.ui-controlgroup { + vertical-align: middle; + display: inline-block; +} +.ui-controlgroup > .ui-controlgroup-item { + float: left; + margin-left: 0; + margin-right: 0; +} +.ui-controlgroup > .ui-controlgroup-item:focus, +.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus { + z-index: 9999; +} +.ui-controlgroup-vertical > .ui-controlgroup-item { + display: block; + float: none; + width: 100%; + margin-top: 0; + margin-bottom: 0; + text-align: left; +} +.ui-controlgroup-vertical .ui-controlgroup-item { + box-sizing: border-box; +} +.ui-controlgroup .ui-controlgroup-label { + padding: .4em 1em; +} +.ui-controlgroup .ui-controlgroup-label span { + font-size: 80%; +} +.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item { + border-left: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item { + border-top: none; +} +.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content { + border-right: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content { + border-bottom: none; +} + +/* Spinner specific style fixes */ +.ui-controlgroup-vertical .ui-spinner-input { + + /* Support: IE8 only, Android < 4.4 only */ + width: 75%; + width: calc( 100% - 2.4em ); +} +.ui-controlgroup-vertical .ui-spinner .ui-spinner-up { + border-top-style: solid; +} + +.ui-checkboxradio-label .ui-icon-background { + box-shadow: inset 1px 1px 1px #ccc; + border-radius: .12em; + border: none; +} +.ui-checkboxradio-radio-label .ui-icon-background { + width: 16px; + height: 16px; + border-radius: 1em; + overflow: visible; + border: none; +} +.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon, +.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon { + background-image: none; + width: 8px; + height: 8px; + border-width: 4px; + border-style: solid; +} +.ui-checkboxradio-disabled { + pointer-events: none; +} +.ui-datepicker { + width: 17em; + padding: .2em .2em 0; + display: none; +} +.ui-datepicker .ui-datepicker-header { + position: relative; + padding: .2em 0; +} +.ui-datepicker .ui-datepicker-prev, +.ui-datepicker .ui-datepicker-next { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; +} +.ui-datepicker .ui-datepicker-prev-hover, +.ui-datepicker .ui-datepicker-next-hover { + top: 1px; +} +.ui-datepicker .ui-datepicker-prev { + left: 2px; +} +.ui-datepicker .ui-datepicker-next { + right: 2px; +} +.ui-datepicker .ui-datepicker-prev-hover { + left: 1px; +} +.ui-datepicker .ui-datepicker-next-hover { + right: 1px; +} +.ui-datepicker .ui-datepicker-prev span, +.ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + font-size: 1em; + margin: 1px 0; +} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { + width: 45%; +} +.ui-datepicker table { + width: 100%; + font-size: .9em; + border-collapse: collapse; + margin: 0 0 .4em; +} +.ui-datepicker th { + padding: .7em .3em; + text-align: center; + font-weight: bold; + border: 0; +} +.ui-datepicker td { + border: 0; + padding: 1px; +} +.ui-datepicker td span, +.ui-datepicker td a { + display: block; + padding: .2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: left; +} + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { + width: auto; +} +.ui-datepicker-multi .ui-datepicker-group { + float: left; +} +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto .4em; +} +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; +} +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; +} +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; +} +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + clear: left; +} +.ui-datepicker-row-break { + clear: both; + width: 100%; + font-size: 0; +} + +/* RTL support */ +.ui-datepicker-rtl { + direction: rtl; +} +.ui-datepicker-rtl .ui-datepicker-prev { + right: 2px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next { + left: 2px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-prev:hover { + right: 1px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next:hover { + left: 1px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: right; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: left; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, +.ui-datepicker-rtl .ui-datepicker-group { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} + +/* Icons */ +.ui-datepicker .ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + left: .5em; + top: .3em; +} +.ui-dialog { + position: absolute; + top: 0; + left: 0; + padding: .2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: .4em 1em; + position: relative; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: .1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: .3em; + top: 50%; + width: 20px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; +} +.ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: .5em 1em; + background: none; + overflow: auto; +} +.ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + margin-top: .5em; + padding: .3em 1em .5em .4em; +} +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; +} +.ui-dialog .ui-dialog-buttonpane button { + margin: .5em .4em .5em 0; + cursor: pointer; +} +.ui-dialog .ui-resizable-n { + height: 2px; + top: 0; +} +.ui-dialog .ui-resizable-e { + width: 2px; + right: 0; +} +.ui-dialog .ui-resizable-s { + height: 2px; + bottom: 0; +} +.ui-dialog .ui-resizable-w { + width: 2px; + left: 0; +} +.ui-dialog .ui-resizable-se, +.ui-dialog .ui-resizable-sw, +.ui-dialog .ui-resizable-ne, +.ui-dialog .ui-resizable-nw { + width: 7px; + height: 7px; +} +.ui-dialog .ui-resizable-se { + right: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-sw { + left: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-ne { + right: 0; + top: 0; +} +.ui-dialog .ui-resizable-nw { + left: 0; + top: 0; +} +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable-disabled .ui-resizable-handle, +.ui-resizable-autohide .ui-resizable-handle { + display: none; +} +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; +} +.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,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"); + height: 100%; + -ms-filter: "alpha(opacity=25)"; /* support: IE8 */ + opacity: 0.25; +} +.ui-progressbar-indeterminate .ui-progressbar-value { + background-image: none; +} +.ui-selectable { + -ms-touch-action: none; + touch-action: none; +} +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted black; +} +.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; +} +.ui-slider { + position: relative; + text-align: left; +} +.ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 1.2em; + height: 1.2em; + cursor: pointer; + -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; +} +.ui-sortable-handle { + -ms-touch-action: none; + touch-action: none; +} +.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; +} +.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; +} +.ui-tooltip { + padding: 8px; + position: absolute; + z-index: 9999; + max-width: 300px; +} +body .ui-tooltip { + border-width: 2px; +} diff --git a/static-files/css/jquery-ui.theme.css b/static-files/css/jquery-ui.theme.css new file mode 100644 index 0000000..8bd4273 --- /dev/null +++ b/static-files/css/jquery-ui.theme.css @@ -0,0 +1,446 @@ +/*! + * jQuery UI CSS Framework 1.13.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/ + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6 + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget.ui-widget-content { + border: 1px solid #c5c5c5; +} +.ui-widget-content { + border: 1px solid #dddddd; + background: #ffffff; + color: #333333; +} +.ui-widget-content a { + color: #333333; +} +.ui-widget-header { + border: 1px solid #dddddd; + background: #e9e9e9; + color: #333333; + font-weight: bold; +} +.ui-widget-header a { + color: #333333; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default, +.ui-button, + +/* We use html here because we need a greater specificity to make sure disabled +works properly when clicked or hovered */ +html .ui-button.ui-state-disabled:hover, +html .ui-button.ui-state-disabled:active { + border: 1px solid #c5c5c5; + background: #f6f6f6; + font-weight: normal; + color: #454545; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited, +a.ui-button, +a:link.ui-button, +a:visited.ui-button, +.ui-button { + color: #454545; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus, +.ui-button:hover, +.ui-button:focus { + border: 1px solid #cccccc; + background: #ededed; + font-weight: normal; + color: #2b2b2b; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited, +a.ui-button:hover, +a.ui-button:focus { + color: #2b2b2b; + text-decoration: none; +} + +.ui-visual-focus { + box-shadow: 0 0 3px 1px rgb(94, 158, 214); +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + border: 1px solid #003eff; + background: #007fff; + font-weight: normal; + color: #ffffff; +} +.ui-icon-background, +.ui-state-active .ui-icon-background { + border: #003eff; + background-color: #ffffff; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #ffffff; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #dad55e; + background: #fffa90; + color: #777620; +} +.ui-state-checked { + border: 1px solid #dad55e; + background: #fffa90; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #777620; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #f1a899; + background: #fddfdf; + color: #5f3f3f; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #5f3f3f; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #5f3f3f; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + -ms-filter: "alpha(opacity=70)"; /* support: IE8 */ + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + -ms-filter: "alpha(opacity=35)"; /* support: IE8 */ + background-image: none; +} +.ui-state-disabled .ui-icon { + -ms-filter: "alpha(opacity=35)"; /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-widget-header .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon, +.ui-button:hover .ui-icon, +.ui-button:focus .ui-icon { + background-image: url("images/ui-icons_555555_256x240.png"); +} +.ui-state-active .ui-icon, +.ui-button:active .ui-icon { + background-image: url("images/ui-icons_ffffff_256x240.png"); +} +.ui-state-highlight .ui-icon, +.ui-button .ui-state-highlight.ui-icon { + background-image: url("images/ui-icons_777620_256x240.png"); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("images/ui-icons_cc0000_256x240.png"); +} +.ui-button .ui-icon { + background-image: url("images/ui-icons_777777_256x240.png"); +} + +/* positioning */ +/* Three classes needed to override `.ui-button:hover .ui-icon` */ +.ui-icon-blank.ui-icon-blank.ui-icon-blank { + background-image: none; +} +.ui-icon-caret-1-n { background-position: 0 0; } +.ui-icon-caret-1-ne { background-position: -16px 0; } +.ui-icon-caret-1-e { background-position: -32px 0; } +.ui-icon-caret-1-se { background-position: -48px 0; } +.ui-icon-caret-1-s { background-position: -65px 0; } +.ui-icon-caret-1-sw { background-position: -80px 0; } +.ui-icon-caret-1-w { background-position: -96px 0; } +.ui-icon-caret-1-nw { background-position: -112px 0; } +.ui-icon-caret-2-n-s { background-position: -128px 0; } +.ui-icon-caret-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -65px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -65px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 1px -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 3px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #aaaaaa; + opacity: .003; + -ms-filter: Alpha(Opacity=.3); /* support: IE8 */ +} +.ui-widget-shadow { + -webkit-box-shadow: 0px 0px 5px #666666; + box-shadow: 0px 0px 5px #666666; +} diff --git a/static-files/js/jquery-ui.js b/static-files/js/jquery-ui.js index 0213552..5d9bfa2 100644 --- a/static-files/js/jquery-ui.js +++ b/static-files/js/jquery-ui.js @@ -1,27 +1,30 @@ -/*! jQuery UI - v1.12.1 - 2016-09-14 +/*! jQuery UI - v1.13.1 - 2022-01-20 * http://jqueryui.com -* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js +* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js * Copyright jQuery Foundation and other contributors; Licensed MIT */ -(function( factory ) { +( function( factory ) { + "use strict"; + if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "jquery" ], factory ); + define( [ "jquery" ], factory ); } else { // Browser globals factory( jQuery ); } -}(function( $ ) { +} )( function( $ ) { +"use strict"; $.ui = $.ui || {}; -var version = $.ui.version = "1.12.1"; +var version = $.ui.version = "1.13.1"; /*! - * jQuery UI Widget 1.12.1 + * jQuery UI Widget 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -36,24 +39,20 @@ var version = $.ui.version = "1.12.1"; //>>demos: http://jqueryui.com/widget/ - var widgetUuid = 0; +var widgetHasOwnProperty = Array.prototype.hasOwnProperty; 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 ) {} + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } } orig( elems ); }; @@ -75,12 +74,12 @@ $.widget = function( name, base, prototype ) { base = $.Widget; } - if ( $.isArray( prototype ) ) { + if ( Array.isArray( prototype ) ) { prototype = $.extend.apply( null, [ {} ].concat( prototype ) ); } // Create selector for plugin - $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + $.expr.pseudos[ fullName.toLowerCase() ] = function( elem ) { return !!$.data( elem, fullName ); }; @@ -89,7 +88,7 @@ $.widget = function( name, base, prototype ) { constructor = $[ namespace ][ name ] = function( options, element ) { // Allow instantiation without "new" keyword - if ( !this._createWidget ) { + if ( !this || !this._createWidget ) { return new constructor( options, element ); } @@ -120,7 +119,7 @@ $.widget = function( name, base, prototype ) { // inheriting from basePrototype.options = $.widget.extend( {}, basePrototype.options ); $.each( prototype, function( prop, value ) { - if ( !$.isFunction( value ) ) { + if ( typeof value !== "function" ) { proxiedPrototype[ prop ] = value; return; } @@ -199,7 +198,7 @@ $.widget.extend = function( target ) { for ( ; inputIndex < inputLength; inputIndex++ ) { for ( key in input[ inputIndex ] ) { value = input[ inputIndex ][ key ]; - if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + if ( widgetHasOwnProperty.call( input[ inputIndex ], key ) && value !== undefined ) { // Clone objects if ( $.isPlainObject( value ) ) { @@ -248,7 +247,8 @@ $.widget.bridge = function( name, object ) { "attempted to call method '" + options + "'" ); } - if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) { + if ( typeof instance[ options ] !== "function" || + options.charAt( 0 ) === "_" ) { return $.error( "no such method '" + options + "' for " + name + " widget instance" ); } @@ -509,12 +509,34 @@ $.Widget.prototype = { classes: this.options.classes || {} }, options ); + function bindRemoveEvent() { + var nodesToBind = []; + + options.element.each( function( _, element ) { + var isTracked = $.map( that.classesElementLookup, function( elements ) { + return elements; + } ) + .some( function( elements ) { + return elements.is( element ); + } ); + + if ( !isTracked ) { + nodesToBind.push( element ); + } + } ); + + that._on( $( nodesToBind ), { + remove: "_untrackClassesElement" + } ); + } + 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() ) ) ); + bindRemoveEvent(); + current = $( $.uniqueSort( current.get().concat( options.element.get() ) ) ); } else { current = $( current.not( options.element ).get() ); } @@ -526,10 +548,6 @@ $.Widget.prototype = { } } - this._on( options.element, { - "remove": "_untrackClassesElement" - } ); - if ( options.keys ) { processClassString( options.keys.match( /\S+/g ) || [], true ); } @@ -547,6 +565,8 @@ $.Widget.prototype = { that.classesElementLookup[ key ] = $( value.not( event.target ).get() ); } } ); + + this._off( $( event.target ) ); }, _removeClass: function( element, keys, extra ) { @@ -627,7 +647,7 @@ $.Widget.prototype = { _off: function( element, eventName ) { eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace; - element.off( eventName ).off( eventName ); + element.off( eventName ); // Clear the stack to avoid memory leaks (#10056) this.bindings = $( this.bindings.not( element ).get() ); @@ -693,7 +713,7 @@ $.Widget.prototype = { } this.element.trigger( event, data ); - return !( $.isFunction( callback ) && + return !( typeof callback === "function" && callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false || event.isDefaultPrevented() ); } @@ -715,6 +735,8 @@ $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { options = options || {}; if ( typeof options === "number" ) { options = { duration: options }; + } else if ( options === true ) { + options = {}; } hasOptions = !$.isEmptyObject( options ); @@ -744,7 +766,7 @@ var widget = $.widget; /*! - * jQuery UI Position 1.12.1 + * jQuery UI Position 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -783,6 +805,10 @@ function parseCss( element, property ) { return parseInt( $.css( element, property ), 10 ) || 0; } +function isWindow( obj ) { + return obj != null && obj === obj.window; +} + function getDimensions( elem ) { var raw = elem[ 0 ]; if ( raw.nodeType === 9 ) { @@ -792,7 +818,7 @@ function getDimensions( elem ) { offset: { top: 0, left: 0 } }; } - if ( $.isWindow( raw ) ) { + if ( isWindow( raw ) ) { return { width: elem.width(), height: elem.height(), @@ -819,9 +845,9 @@ $.position = { return cachedScrollbarWidth; } var w1, w2, - div = $( "
" + - "
" ), + div = $( "
" + + "
" ), innerDiv = div.children()[ 0 ]; $( "body" ).append( div ); @@ -854,12 +880,12 @@ $.position = { }, getWithinInfo: function( element ) { var withinElement = $( element || window ), - isWindow = $.isWindow( withinElement[ 0 ] ), + isElemWindow = isWindow( withinElement[ 0 ] ), isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9, - hasOffset = !isWindow && !isDocument; + hasOffset = !isElemWindow && !isDocument; return { element: withinElement, - isWindow: isWindow, + isWindow: isElemWindow, isDocument: isDocument, offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 }, scrollLeft: withinElement.scrollLeft(), @@ -879,7 +905,12 @@ $.fn.position = function( options ) { options = $.extend( {}, options ); var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, - target = $( options.of ), + + // Make sure string options are treated as CSS selectors + target = typeof options.of === "string" ? + $( document ).find( options.of ) : + $( options.of ), + within = $.position.getWithinInfo( options.within ), scrollInfo = $.position.getScrollInfo( within ), collision = ( options.collision || "flip" ).split( " " ), @@ -1232,7 +1263,7 @@ var position = $.ui.position; /*! - * jQuery UI :data 1.12.1 + * jQuery UI :data 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1246,7 +1277,7 @@ var position = $.ui.position; //>>docs: http://api.jqueryui.com/data-selector/ -var data = $.extend( $.expr[ ":" ], { +var data = $.extend( $.expr.pseudos, { data: $.expr.createPseudo ? $.expr.createPseudo( function( dataName ) { return function( elem ) { @@ -1261,7 +1292,7 @@ var data = $.extend( $.expr[ ":" ], { } ); /*! - * jQuery UI Disable Selection 1.12.1 + * jQuery UI Disable Selection 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1276,7 +1307,6 @@ var data = $.extend( $.expr[ ":" ], { // This file is deprecated - var disableSelection = $.fn.extend( { disableSelection: ( function() { var eventType = "onselectstart" in document.createElement( "div" ) ? @@ -1296,56 +1326,37 @@ var disableSelection = $.fn.extend( { } ); -/*! - * jQuery UI Effects 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ -//>>label: Effects Core -//>>group: Effects -// jscs:disable maximumLineLength -//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects. -// jscs:enable maximumLineLength -//>>docs: http://api.jqueryui.com/category/effects-core/ -//>>demos: http://jqueryui.com/effect/ +// Create a local jQuery because jQuery Color relies on it and the +// global may not exist with AMD and a custom build (#10199). +// This module is a noop if used as a regular AMD module. +// eslint-disable-next-line no-unused-vars +var jQuery = $; - -var dataSpace = "ui-effects-", - dataSpaceStyle = "ui-effects-style", - dataSpaceAnimated = "ui-effects-animated", - - // Create a local jQuery because jQuery Color relies on it and the - // global may not exist with AMD and a custom build (#10199) - jQuery = $; - -$.effects = { - effect: {} -}; - /*! - * jQuery Color Animations v2.1.2 + * jQuery Color Animations v2.2.0 * https://github.com/jquery/jquery-color * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright OpenJS Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * - * Date: Wed Jan 16 08:47:09 2013 -0600 + * Date: Sun May 10 09:02:36 2020 +0200 */ -( function( jQuery, undefined ) { + + var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor " + "borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", - // Plusequals test for += 100 -= 100 + class2type = {}, + toString = class2type.toString, + + // plusequals test for += 100 -= 100 rplusequals = /^([\-+])=\s*(\d+\.?\d*)/, - // A set of RE's that can match strings and generate color tuples. + // a set of RE's that can match strings and generate color tuples. stringParsers = [ { re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function( execResult ) { @@ -1368,24 +1379,31 @@ $.effects = { } }, { - // This regex ignores A-F because it's compared against an already lowercased string - re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, + // this regex ignores A-F because it's compared against an already lowercased string + re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?/, parse: function( execResult ) { return [ parseInt( execResult[ 1 ], 16 ), parseInt( execResult[ 2 ], 16 ), - parseInt( execResult[ 3 ], 16 ) + parseInt( execResult[ 3 ], 16 ), + execResult[ 4 ] ? + ( parseInt( execResult[ 4 ], 16 ) / 255 ).toFixed( 2 ) : + 1 ]; } }, { - // This regex ignores A-F because it's compared against an already lowercased string - re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, + // this regex ignores A-F because it's compared against an already lowercased string + re: /#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?/, parse: function( execResult ) { return [ parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ), parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ), - parseInt( execResult[ 3 ] + execResult[ 3 ], 16 ) + parseInt( execResult[ 3 ] + execResult[ 3 ], 16 ), + execResult[ 4 ] ? + ( parseInt( execResult[ 4 ] + execResult[ 4 ], 16 ) / 255 ) + .toFixed( 2 ) : + 1 ]; } }, { @@ -1401,7 +1419,7 @@ $.effects = { } } ], - // JQuery.Color( ) + // jQuery.Color( ) color = jQuery.Color = function( color, green, blue, alpha ) { return new jQuery.Color.fn.parse( color, green, blue, alpha ); }, @@ -1455,20 +1473,20 @@ $.effects = { }, support = color.support = {}, - // Element for support tests + // element for support tests supportElem = jQuery( "

" )[ 0 ], - // Colors = jQuery.Color.names + // colors = jQuery.Color.names colors, - // Local aliases of functions called often + // local aliases of functions called often each = jQuery.each; -// Determine rgba support immediately +// determine rgba support immediately supportElem.style.cssText = "background-color:rgba(1,1,1,.5)"; support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1; -// Define cache name and alpha properties +// define cache name and alpha properties // for rgba and hsla spaces each( spaces, function( spaceName, space ) { space.cache = "_" + spaceName; @@ -1479,6 +1497,22 @@ each( spaces, function( spaceName, space ) { }; } ); +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); + +function getType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + return typeof obj === "object" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} + function clamp( value, prop, allowEmpty ) { var type = propTypes[ prop.type ] || {}; @@ -1497,13 +1531,13 @@ function clamp( value, prop, allowEmpty ) { if ( type.mod ) { - // We add mod before modding to make sure that negatives values + // we add mod before modding to make sure that negatives values // get converted properly: -10 -> 350 return ( value + type.mod ) % type.mod; } - // For now all property types without mod have min and max - return 0 > value ? 0 : type.max < value ? type.max : value; + // for now all property types without mod have min and max + return Math.min( type.max, Math.max( 0, value ) ); } function stringParse( string ) { @@ -1512,7 +1546,7 @@ function stringParse( string ) { string = string.toLowerCase(); - each( stringParsers, function( i, parser ) { + each( stringParsers, function( _i, parser ) { var parsed, match = parser.re.exec( string ), values = match && parser.parse( match ), @@ -1521,12 +1555,12 @@ function stringParse( string ) { if ( values ) { parsed = inst[ spaceName ]( values ); - // If this was an rgba parse the assignment might happen twice + // if this was an rgba parse the assignment might happen twice // oh well.... inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ]; rgba = inst._rgba = parsed._rgba; - // Exit each( stringParsers ) here because we matched + // exit each( stringParsers ) here because we matched return false; } } ); @@ -1534,7 +1568,7 @@ function stringParse( string ) { // Found a stringParser that handled it if ( rgba.length ) { - // If this came from a parsed string, force "transparent" when alpha is 0 + // if this came from a parsed string, force "transparent" when alpha is 0 // chrome, (and maybe others) return "transparent" as rgba(0,0,0,0) if ( rgba.join() === "0,0,0,0" ) { jQuery.extend( rgba, colors.transparent ); @@ -1542,7 +1576,7 @@ function stringParse( string ) { return inst; } - // Named colors + // named colors return colors[ string ]; } @@ -1558,10 +1592,10 @@ color.fn = jQuery.extend( color.prototype, { } var inst = this, - type = jQuery.type( red ), + type = getType( red ), rgba = this._rgba = []; - // More than 1 argument specified - assume ( red, green, blue, alpha ) + // more than 1 argument specified - assume ( red, green, blue, alpha ) if ( green !== undefined ) { red = [ red, green, blue, alpha ]; type = "array"; @@ -1572,7 +1606,7 @@ color.fn = jQuery.extend( color.prototype, { } if ( type === "array" ) { - each( spaces.rgba.props, function( key, prop ) { + each( spaces.rgba.props, function( _key, prop ) { rgba[ prop.idx ] = clamp( red[ prop.idx ], prop ); } ); return this; @@ -1580,20 +1614,20 @@ color.fn = jQuery.extend( color.prototype, { if ( type === "object" ) { if ( red instanceof color ) { - each( spaces, function( spaceName, space ) { + each( spaces, function( _spaceName, space ) { if ( red[ space.cache ] ) { inst[ space.cache ] = red[ space.cache ].slice(); } } ); } else { - each( spaces, function( spaceName, space ) { + each( spaces, function( _spaceName, space ) { var cache = space.cache; each( space.props, function( key, prop ) { - // If the cache doesn't exist, and we know how to convert + // if the cache doesn't exist, and we know how to convert if ( !inst[ cache ] && space.to ) { - // If the value was null, we don't need to copy it + // if the value was null, we don't need to copy it // if the key was alpha, we don't need to copy it either if ( key === "alpha" || red[ key ] == null ) { return; @@ -1601,17 +1635,19 @@ color.fn = jQuery.extend( color.prototype, { inst[ cache ] = space.to( inst._rgba ); } - // This is the only case where we allow nulls for ALL properties. + // this is the only case where we allow nulls for ALL properties. // call clamp with alwaysAllowEmpty inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true ); } ); - // Everything defined but alpha? - if ( inst[ cache ] && - jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) { + // everything defined but alpha? + if ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) { + + // use the default of 1 + if ( inst[ cache ][ 3 ] == null ) { + inst[ cache ][ 3 ] = 1; + } - // Use the default of 1 - inst[ cache ][ 3 ] = 1; if ( space.from ) { inst._rgba = space.from( inst[ cache ] ); } @@ -1661,18 +1697,18 @@ color.fn = jQuery.extend( color.prototype, { result = start.slice(); end = end[ space.cache ]; - each( space.props, function( key, prop ) { + each( space.props, function( _key, prop ) { var index = prop.idx, startValue = start[ index ], endValue = end[ index ], type = propTypes[ prop.type ] || {}; - // If null, don't override start value + // if null, don't override start value if ( endValue === null ) { return; } - // If null - use end + // if null - use end if ( startValue === null ) { result[ index ] = endValue; } else { @@ -1690,7 +1726,7 @@ color.fn = jQuery.extend( color.prototype, { }, blend: function( opaque ) { - // If we are already opaque - return ourself + // if we are already opaque - return ourself if ( this._rgba[ 3 ] === 1 ) { return this; } @@ -1706,7 +1742,10 @@ color.fn = jQuery.extend( color.prototype, { toRgbaString: function() { var prefix = "rgba(", rgba = jQuery.map( this._rgba, function( v, i ) { - return v == null ? ( i > 2 ? 1 : 0 ) : v; + if ( v != null ) { + return v; + } + return i > 2 ? 1 : 0; } ); if ( rgba[ 3 ] === 1 ) { @@ -1723,7 +1762,7 @@ color.fn = jQuery.extend( color.prototype, { v = i > 2 ? 1 : 0; } - // Catch 1 and 2 + // catch 1 and 2 if ( i && i < 3 ) { v = Math.round( v * 100 ) + "%"; } @@ -1746,7 +1785,7 @@ color.fn = jQuery.extend( color.prototype, { return "#" + jQuery.map( rgba, function( v ) { - // Default to 0 when nulls exist + // default to 0 when nulls exist v = ( v || 0 ).toString( 16 ); return v.length === 1 ? "0" + v : v; } ).join( "" ); @@ -1757,7 +1796,7 @@ color.fn = jQuery.extend( color.prototype, { } ); color.fn.parse.prototype = color.fn; -// Hsla conversions adapted from: +// hsla conversions adapted from: // https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021 function hue2rgb( p, q, h ) { @@ -1799,7 +1838,7 @@ spaces.hsla.to = function( rgba ) { h = ( 60 * ( r - g ) / diff ) + 240; } - // Chroma (diff) == 0 means greyscale which, by definition, saturation = 0% + // chroma (diff) == 0 means greyscale which, by definition, saturation = 0% // otherwise, saturation is based on the ratio of chroma (diff) to lightness (add) if ( diff === 0 ) { s = 0; @@ -1830,16 +1869,17 @@ spaces.hsla.from = function( hsla ) { ]; }; + each( spaces, function( spaceName, space ) { var props = space.props, cache = space.cache, to = space.to, from = space.from; - // Makes rgba() and hsla() + // makes rgba() and hsla() color.fn[ spaceName ] = function( value ) { - // Generate a cache for this space if it doesn't exist + // generate a cache for this space if it doesn't exist if ( to && !this[ cache ] ) { this[ cache ] = to( this._rgba ); } @@ -1848,7 +1888,7 @@ each( spaces, function( spaceName, space ) { } var ret, - type = jQuery.type( value ), + type = getType( value ), arr = ( type === "array" || type === "object" ) ? value : arguments, local = this[ cache ].slice(); @@ -1869,19 +1909,24 @@ each( spaces, function( spaceName, space ) { } }; - // Makes red() green() blue() alpha() hue() saturation() lightness() + // makes red() green() blue() alpha() hue() saturation() lightness() each( props, function( key, prop ) { - // Alpha is included in more than one space + // alpha is included in more than one space if ( color.fn[ key ] ) { return; } color.fn[ key ] = function( value ) { - var vtype = jQuery.type( value ), - fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ), - local = this[ fn ](), - cur = local[ prop.idx ], - match; + var local, cur, match, fn, + vtype = getType( value ); + + if ( key === "alpha" ) { + fn = this._hsla ? "hsla" : "rgba"; + } else { + fn = spaceName; + } + local = this[ fn ](); + cur = local[ prop.idx ]; if ( vtype === "undefined" ) { return cur; @@ -1889,7 +1934,7 @@ each( spaces, function( spaceName, space ) { if ( vtype === "function" ) { value = value.call( this, cur ); - vtype = jQuery.type( value ); + vtype = getType( value ); } if ( value == null && prop.empty ) { return this; @@ -1906,18 +1951,17 @@ each( spaces, function( spaceName, space ) { } ); } ); -// Add cssHook and .fx.step function for each named hook. +// add cssHook and .fx.step function for each named hook. // accept a space separated string of properties color.hook = function( hook ) { var hooks = hook.split( " " ); - each( hooks, function( i, hook ) { + each( hooks, function( _i, hook ) { jQuery.cssHooks[ hook ] = { set: function( elem, value ) { var parsed, curElem, backgroundColor = ""; - if ( value !== "transparent" && ( jQuery.type( value ) !== "string" || - ( parsed = stringParse( value ) ) ) ) { + if ( value !== "transparent" && ( getType( value ) !== "string" || ( parsed = stringParse( value ) ) ) ) { value = color( parsed || value ); if ( !support.rgba && value._rgba[ 3 ] !== 1 ) { curElem = hook === "backgroundColor" ? elem.parentNode : elem; @@ -1943,8 +1987,7 @@ color.hook = function( hook ) { elem.style[ hook ] = value; } catch ( e ) { - // Wrapped to prevent IE from throwing errors on "invalid" values like - // 'auto' or 'inherit' + // wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit' } } }; @@ -1966,7 +2009,7 @@ jQuery.cssHooks.borderColor = { expand: function( value ) { var expanded = {}; - each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) { + each( [ "Top", "Right", "Bottom", "Left" ], function( _i, part ) { expanded[ "border" + part + "Color" ] = value; } ); return expanded; @@ -2002,7 +2045,32 @@ colors = jQuery.Color.names = { _default: "#ffffff" }; -} )( jQuery ); + +/*! + * jQuery UI Effects 1.13.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Effects Core +//>>group: Effects +/* eslint-disable max-len */ +//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects. +/* eslint-enable max-len */ +//>>docs: http://api.jqueryui.com/category/effects-core/ +//>>demos: http://jqueryui.com/effect/ + + +var dataSpace = "ui-effects-", + dataSpaceStyle = "ui-effects-style", + dataSpaceAnimated = "ui-effects-animated"; + +$.effects = { + effect: {} +}; /******************************************************************************/ /****************************** CLASS ANIMATIONS ******************************/ @@ -2034,6 +2102,12 @@ $.each( } ); +function camelCase( string ) { + return string.replace( /-([\da-z])/gi, function( all, letter ) { + return letter.toUpperCase(); + } ); +} + function getElementStyles( elem ) { var key, len, style = elem.ownerDocument.defaultView ? @@ -2046,7 +2120,7 @@ function getElementStyles( elem ) { while ( len-- ) { key = style[ len ]; if ( typeof style[ key ] === "string" ) { - styles[ $.camelCase( key ) ] = style[ key ]; + styles[ camelCase( key ) ] = style[ key ]; } } @@ -2220,12 +2294,12 @@ $.fn.extend( { ( function() { -if ( $.expr && $.expr.filters && $.expr.filters.animated ) { - $.expr.filters.animated = ( function( orig ) { +if ( $.expr && $.expr.pseudos && $.expr.pseudos.animated ) { + $.expr.pseudos.animated = ( function( orig ) { return function( elem ) { return !!$( elem ).data( dataSpaceAnimated ) || orig( elem ); }; - } )( $.expr.filters.animated ); + } )( $.expr.pseudos.animated ); } if ( $.uiBackCompat !== false ) { @@ -2294,6 +2368,7 @@ if ( $.uiBackCompat !== false ) { // Firefox incorrectly exposes anonymous content // https://bugzilla.mozilla.org/show_bug.cgi?id=561664 try { + // eslint-disable-next-line no-unused-expressions active.id; } catch ( e ) { active = document.body; @@ -2356,7 +2431,7 @@ if ( $.uiBackCompat !== false ) { } $.extend( $.effects, { - version: "1.12.1", + version: "1.13.1", define: function( name, mode, effect ) { if ( !effect ) { @@ -2572,7 +2647,7 @@ function _normalizeArguments( effect, options, speed, callback ) { } // Catch (effect, callback) - if ( $.isFunction( options ) ) { + if ( typeof options === "function" ) { callback = options; speed = null; options = {}; @@ -2586,7 +2661,7 @@ function _normalizeArguments( effect, options, speed, callback ) { } // Catch (effect, options, callback) - if ( $.isFunction( speed ) ) { + if ( typeof speed === "function" ) { callback = speed; speed = null; } @@ -2620,7 +2695,7 @@ function standardAnimationOption( option ) { } // Complete callback - if ( $.isFunction( option ) ) { + if ( typeof option === "function" ) { return true; } @@ -2647,7 +2722,7 @@ $.fn.extend( { var el = $( this ), normalizedMode = $.effects.mode( el, mode ) || defaultMode; - // Sentinel for duck-punching the :animated psuedo-selector + // Sentinel for duck-punching the :animated pseudo-selector el.data( dataSpaceAnimated, true ); // Save effect mode for later use, @@ -2655,7 +2730,7 @@ $.fn.extend( { // as the .show() below destroys the initial state modes.push( normalizedMode ); - // See $.uiBackCompat inside of run() for removal of defaultMode in 1.13 + // See $.uiBackCompat inside of run() for removal of defaultMode in 1.14 if ( defaultMode && ( normalizedMode === "show" || ( normalizedMode === defaultMode && normalizedMode === "hide" ) ) ) { el.show(); @@ -2665,7 +2740,7 @@ $.fn.extend( { $.effects.saveStyle( el ); } - if ( $.isFunction( next ) ) { + if ( typeof next === "function" ) { next(); } }; @@ -2700,11 +2775,11 @@ $.fn.extend( { } function done() { - if ( $.isFunction( complete ) ) { + if ( typeof complete === "function" ) { complete.call( elem[ 0 ] ); } - if ( $.isFunction( next ) ) { + if ( typeof next === "function" ) { next(); } } @@ -2813,22 +2888,24 @@ $.fn.extend( { width: target.innerWidth() }, startPosition = element.offset(), - transfer = $( "

" ) - .appendTo( "body" ) - .addClass( options.className ) - .css( { - top: startPosition.top - fixTop, - left: startPosition.left - fixLeft, - height: element.innerHeight(), - width: element.innerWidth(), - position: targetFixed ? "fixed" : "absolute" - } ) - .animate( animation, options.duration, options.easing, function() { - transfer.remove(); - if ( $.isFunction( done ) ) { - done(); - } - } ); + transfer = $( "
" ); + + transfer + .appendTo( "body" ) + .addClass( options.className ) + .css( { + top: startPosition.top - fixTop, + left: startPosition.left - fixLeft, + height: element.innerHeight(), + width: element.innerWidth(), + position: targetFixed ? "fixed" : "absolute" + } ) + .animate( animation, options.duration, options.easing, function() { + transfer.remove(); + if ( typeof done === "function" ) { + done(); + } + } ); } } ); @@ -2922,7 +2999,7 @@ var effect = $.effects; /*! - * jQuery UI Effects Blind 1.12.1 + * jQuery UI Effects Blind 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -2937,7 +3014,6 @@ var effect = $.effects; //>>demos: http://jqueryui.com/effect/ - var effectsEffectBlind = $.effects.define( "blind", "hide", function( options, done ) { var map = { up: [ "bottom", "top" ], @@ -2978,7 +3054,7 @@ var effectsEffectBlind = $.effects.define( "blind", "hide", function( options, d /*! - * jQuery UI Effects Bounce 1.12.1 + * jQuery UI Effects Bounce 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -2993,7 +3069,6 @@ var effectsEffectBlind = $.effects.define( "blind", "hide", function( options, d //>>demos: http://jqueryui.com/effect/ - var effectsEffectBounce = $.effects.define( "bounce", function( options, done ) { var upAnim, downAnim, refValue, element = $( this ), @@ -3074,7 +3149,7 @@ var effectsEffectBounce = $.effects.define( "bounce", function( options, done ) /*! - * jQuery UI Effects Clip 1.12.1 + * jQuery UI Effects Clip 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3089,7 +3164,6 @@ var effectsEffectBounce = $.effects.define( "bounce", function( options, done ) //>>demos: http://jqueryui.com/effect/ - var effectsEffectClip = $.effects.define( "clip", "hide", function( options, done ) { var start, animate = {}, @@ -3125,7 +3199,7 @@ var effectsEffectClip = $.effects.define( "clip", "hide", function( options, don /*! - * jQuery UI Effects Drop 1.12.1 + * jQuery UI Effects Drop 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3140,7 +3214,6 @@ var effectsEffectClip = $.effects.define( "clip", "hide", function( options, don //>>demos: http://jqueryui.com/effect/ - var effectsEffectDrop = $.effects.define( "drop", "hide", function( options, done ) { var distance, @@ -3180,7 +3253,7 @@ var effectsEffectDrop = $.effects.define( "drop", "hide", function( options, don /*! - * jQuery UI Effects Explode 1.12.1 + * jQuery UI Effects Explode 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3190,14 +3263,13 @@ var effectsEffectDrop = $.effects.define( "drop", "hide", function( options, don //>>label: Explode Effect //>>group: Effects -// jscs:disable maximumLineLength +/* eslint-disable max-len */ //>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness. -// jscs:enable maximumLineLength +/* eslint-enable max-len */ //>>docs: http://api.jqueryui.com/explode-effect/ //>>demos: http://jqueryui.com/effect/ - var effectsEffectExplode = $.effects.define( "explode", "hide", function( options, done ) { var i, j, left, top, mx, my, @@ -3277,7 +3349,7 @@ var effectsEffectExplode = $.effects.define( "explode", "hide", function( option /*! - * jQuery UI Effects Fade 1.12.1 + * jQuery UI Effects Fade 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3292,7 +3364,6 @@ var effectsEffectExplode = $.effects.define( "explode", "hide", function( option //>>demos: http://jqueryui.com/effect/ - var effectsEffectFade = $.effects.define( "fade", "toggle", function( options, done ) { var show = options.mode === "show"; @@ -3310,7 +3381,7 @@ var effectsEffectFade = $.effects.define( "fade", "toggle", function( options, d /*! - * jQuery UI Effects Fold 1.12.1 + * jQuery UI Effects Fold 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3325,7 +3396,6 @@ var effectsEffectFade = $.effects.define( "fade", "toggle", function( options, d //>>demos: http://jqueryui.com/effect/ - var effectsEffectFold = $.effects.define( "fold", "hide", function( options, done ) { // Create element @@ -3385,7 +3455,7 @@ var effectsEffectFold = $.effects.define( "fold", "hide", function( options, don /*! - * jQuery UI Effects Highlight 1.12.1 + * jQuery UI Effects Highlight 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3400,7 +3470,6 @@ var effectsEffectFold = $.effects.define( "fold", "hide", function( options, don //>>demos: http://jqueryui.com/effect/ - var effectsEffectHighlight = $.effects.define( "highlight", "show", function( options, done ) { var element = $( this ), animation = { @@ -3428,7 +3497,7 @@ var effectsEffectHighlight = $.effects.define( "highlight", "show", function( op /*! - * jQuery UI Effects Size 1.12.1 + * jQuery UI Effects Size 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3443,7 +3512,6 @@ var effectsEffectHighlight = $.effects.define( "highlight", "show", function( op //>>demos: http://jqueryui.com/effect/ - var effectsEffectSize = $.effects.define( "size", function( options, done ) { // Create element @@ -3520,6 +3588,8 @@ var effectsEffectSize = $.effects.define( "size", function( options, done ) { to.top = ( original.outerHeight - to.outerHeight ) * baseline.y + pos.top; to.left = ( original.outerWidth - to.outerWidth ) * baseline.x + pos.left; } + delete from.outerHeight; + delete from.outerWidth; element.css( from ); // Animate the children if desired @@ -3605,7 +3675,7 @@ var effectsEffectSize = $.effects.define( "size", function( options, done ) { /*! - * jQuery UI Effects Scale 1.12.1 + * jQuery UI Effects Scale 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3620,7 +3690,6 @@ var effectsEffectSize = $.effects.define( "size", function( options, done ) { //>>demos: http://jqueryui.com/effect/ - var effectsEffectScale = $.effects.define( "scale", function( options, done ) { // Create element @@ -3646,7 +3715,7 @@ var effectsEffectScale = $.effects.define( "scale", function( options, done ) { /*! - * jQuery UI Effects Puff 1.12.1 + * jQuery UI Effects Puff 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3661,7 +3730,6 @@ var effectsEffectScale = $.effects.define( "scale", function( options, done ) { //>>demos: http://jqueryui.com/effect/ - var effectsEffectPuff = $.effects.define( "puff", "hide", function( options, done ) { var newOptions = $.extend( true, {}, options, { fade: true, @@ -3673,7 +3741,7 @@ var effectsEffectPuff = $.effects.define( "puff", "hide", function( options, don /*! - * jQuery UI Effects Pulsate 1.12.1 + * jQuery UI Effects Pulsate 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3688,7 +3756,6 @@ var effectsEffectPuff = $.effects.define( "puff", "hide", function( options, don //>>demos: http://jqueryui.com/effect/ - var effectsEffectPulsate = $.effects.define( "pulsate", "show", function( options, done ) { var element = $( this ), mode = options.mode, @@ -3723,7 +3790,7 @@ var effectsEffectPulsate = $.effects.define( "pulsate", "show", function( option /*! - * jQuery UI Effects Shake 1.12.1 + * jQuery UI Effects Shake 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3738,7 +3805,6 @@ var effectsEffectPulsate = $.effects.define( "pulsate", "show", function( option //>>demos: http://jqueryui.com/effect/ - var effectsEffectShake = $.effects.define( "shake", function( options, done ) { var i = 1, @@ -3783,7 +3849,7 @@ var effectsEffectShake = $.effects.define( "shake", function( options, done ) { /*! - * jQuery UI Effects Slide 1.12.1 + * jQuery UI Effects Slide 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3798,7 +3864,6 @@ var effectsEffectShake = $.effects.define( "shake", function( options, done ) { //>>demos: http://jqueryui.com/effect/ - var effectsEffectSlide = $.effects.define( "slide", "show", function( options, done ) { var startClip, startRef, element = $( this ), @@ -3845,7 +3910,7 @@ var effectsEffectSlide = $.effects.define( "slide", "show", function( options, d /*! - * jQuery UI Effects Transfer 1.12.1 + * jQuery UI Effects Transfer 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3860,7 +3925,6 @@ var effectsEffectSlide = $.effects.define( "slide", "show", function( options, d //>>demos: http://jqueryui.com/effect/ - var effect; if ( $.uiBackCompat !== false ) { effect = $.effects.define( "transfer", function( options, done ) { @@ -3871,7 +3935,7 @@ var effectsEffectTransfer = effect; /*! - * jQuery UI Focusable 1.12.1 + * jQuery UI Focusable 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3885,7 +3949,6 @@ var effectsEffectTransfer = effect; //>>docs: http://api.jqueryui.com/focusable-selector/ - // Selectors $.ui.focusable = function( element, hasTabindex ) { var map, mapName, img, focusableIfVisible, fieldset, @@ -3932,10 +3995,10 @@ function visible( element ) { element = element.parent(); visibility = element.css( "visibility" ); } - return visibility !== "hidden"; + return visibility === "visible"; } -$.extend( $.expr[ ":" ], { +$.extend( $.expr.pseudos, { focusable: function( element ) { return $.ui.focusable( element, $.attr( element, "tabindex" ) != null ); } @@ -3945,17 +4008,16 @@ var focusable = $.ui.focusable; - // 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. -var form = $.fn.form = function() { +var form = $.fn._form = function() { return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form ); }; /*! - * jQuery UI Form Reset Mixin 1.12.1 + * jQuery UI Form Reset Mixin 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3969,7 +4031,6 @@ var form = $.fn.form = function() { //>>docs: http://api.jqueryui.com/form-reset-mixin/ - var formResetMixin = $.ui.formResetMixin = { _formResetHandler: function() { var form = $( this ); @@ -3984,7 +4045,7 @@ var formResetMixin = $.ui.formResetMixin = { }, _bindFormResetHandler: function() { - this.form = this.element.form(); + this.form = this.element._form(); if ( !this.form.length ) { return; } @@ -4018,7 +4079,7 @@ var formResetMixin = $.ui.formResetMixin = { /*! - * jQuery UI Support for jQuery core 1.7.x 1.12.1 + * jQuery UI Support for jQuery core 1.8.x and newer 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4027,77 +4088,73 @@ var formResetMixin = $.ui.formResetMixin = { * */ -//>>label: jQuery 1.7 Support +//>>label: jQuery 1.8+ Support //>>group: Core -//>>description: Support version 1.7.x of jQuery core +//>>description: Support version 1.8.x and newer of jQuery core +// Support: jQuery 1.9.x or older +// $.expr[ ":" ] is deprecated. +if ( !$.expr.pseudos ) { + $.expr.pseudos = $.expr[ ":" ]; +} -// 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" ) { +// Support: jQuery 1.11.x or older +// $.unique has been renamed to $.uniqueSort +if ( !$.uniqueSort ) { + $.uniqueSort = $.unique; +} - // 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 - }; +// Support: jQuery 2.2.x or older. +// This method has been defined in jQuery 3.0.0. +// Code from https://github.com/jquery/jquery/blob/e539bac79e666bba95bba86d690b4e609dca2286/src/selector/escapeSelector.js +if ( !$.escapeSelector ) { - 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; + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; + + var fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; } - $.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 ) - ); + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; }; + + $.escapeSelector = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); + }; +} + +// Support: jQuery 3.4.x or older +// These methods have been defined in jQuery 3.5.0. +if ( !$.fn.even || !$.fn.odd ) { + $.fn.extend( { + even: function() { + return this.filter( function( i ) { + return i % 2 === 0; + } ); + }, + odd: function() { + return this.filter( function( i ) { + return i % 2 === 1; + } ); + } + } ); } ; /*! - * jQuery UI Keycode 1.12.1 + * jQuery UI Keycode 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4131,19 +4188,8 @@ var keycode = $.ui.keyCode = { }; - - -// Internal use only -var escapeSelector = $.ui.escapeSelector = ( function() { - var selectorEscape = /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g; - return function( selector ) { - return selector.replace( selectorEscape, "\\$1" ); - }; -} )(); - - /*! - * jQuery UI Labels 1.12.1 + * jQuery UI Labels 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4157,10 +4203,13 @@ var escapeSelector = $.ui.escapeSelector = ( function() { //>>docs: http://api.jqueryui.com/labels/ - var labels = $.fn.labels = function() { var ancestor, selector, id, labels, ancestors; + if ( !this.length ) { + return this.pushStack( [] ); + } + // Check control.labels first if ( this[ 0 ].labels && this[ 0 ].labels.length ) { return this.pushStack( this[ 0 ].labels ); @@ -4183,7 +4232,7 @@ var labels = $.fn.labels = function() { 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 ) + "']"; + selector = "label[for='" + $.escapeSelector( id ) + "']"; labels = labels.add( ancestors.find( selector ).addBack( selector ) ); @@ -4195,7 +4244,7 @@ var labels = $.fn.labels = function() { /*! - * jQuery UI Scroll Parent 1.12.1 + * jQuery UI Scroll Parent 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4209,7 +4258,6 @@ var labels = $.fn.labels = function() { //>>docs: http://api.jqueryui.com/scrollParent/ - var scrollParent = $.fn.scrollParent = function( includeHidden ) { var position = this.css( "position" ), excludeStaticParent = position === "absolute", @@ -4230,7 +4278,7 @@ var scrollParent = $.fn.scrollParent = function( includeHidden ) { /*! - * jQuery UI Tabbable 1.12.1 + * jQuery UI Tabbable 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4244,8 +4292,7 @@ var scrollParent = $.fn.scrollParent = function( includeHidden ) { //>>docs: http://api.jqueryui.com/tabbable-selector/ - -var tabbable = $.extend( $.expr[ ":" ], { +var tabbable = $.extend( $.expr.pseudos, { tabbable: function( element ) { var tabIndex = $.attr( element, "tabindex" ), hasTabindex = tabIndex != null; @@ -4255,7 +4302,7 @@ var tabbable = $.extend( $.expr[ ":" ], { /*! - * jQuery UI Unique ID 1.12.1 + * jQuery UI Unique ID 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4269,7 +4316,6 @@ var tabbable = $.extend( $.expr[ ":" ], { //>>docs: http://api.jqueryui.com/uniqueId/ - var uniqueId = $.fn.extend( { uniqueId: ( function() { var uuid = 0; @@ -4294,7 +4340,7 @@ var uniqueId = $.fn.extend( { /*! - * jQuery UI Accordion 1.12.1 + * jQuery UI Accordion 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4304,9 +4350,9 @@ var uniqueId = $.fn.extend( { //>>label: Accordion //>>group: Widgets -// jscs:disable maximumLineLength +/* eslint-disable max-len */ //>>description: Displays collapsible content panels for presenting information in a limited amount of space. -// jscs:enable maximumLineLength +/* eslint-enable max-len */ //>>docs: http://api.jqueryui.com/accordion/ //>>demos: http://jqueryui.com/accordion/ //>>css.structure: ../../themes/base/core.css @@ -4314,9 +4360,8 @@ var uniqueId = $.fn.extend( { //>>css.theme: ../../themes/base/theme.css - var widgetsAccordion = $.widget( "ui.accordion", { - version: "1.12.1", + version: "1.13.1", options: { active: 0, animate: {}, @@ -4327,7 +4372,9 @@ var widgetsAccordion = $.widget( "ui.accordion", { }, collapsible: false, event: "click", - header: "> li > :first-child, > :not(li):even", + header: function( elem ) { + return elem.find( "> li > :first-child" ).add( elem.find( "> :not(li)" ).even() ); + }, heightStyle: "auto", icons: { activeHeader: "ui-icon-triangle-1-s", @@ -4558,7 +4605,11 @@ var widgetsAccordion = $.widget( "ui.accordion", { var prevHeaders = this.headers, prevPanels = this.panels; - this.headers = this.element.find( this.options.header ); + if ( typeof this.options.header === "function" ) { + this.headers = this.options.header( this.element ); + } else { + this.headers = this.element.find( this.options.header ); + } this._addClass( this.headers, "ui-accordion-header ui-accordion-header-collapsed", "ui-state-default" ); @@ -4921,7 +4972,7 @@ var safeActiveElement = $.ui.safeActiveElement = function( document ) { /*! - * jQuery UI Menu 1.12.1 + * jQuery UI Menu 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -4939,9 +4990,8 @@ var safeActiveElement = $.ui.safeActiveElement = function( document ) { //>>css.theme: ../../themes/base/theme.css - var widgetsMenu = $.widget( "ui.menu", { - version: "1.12.1", + version: "1.13.1", defaultElement: "
    ", delay: 300, options: { @@ -4968,6 +5018,7 @@ var widgetsMenu = $.widget( "ui.menu", { // Flag used to prevent firing of the click handler // as the event bubbles up through nested menus this.mouseHandled = false; + this.lastMousePosition = { x: null, y: null }; this.element .uniqueId() .attr( { @@ -4982,6 +5033,8 @@ var widgetsMenu = $.widget( "ui.menu", { // them (focus should always stay on UL during navigation). "mousedown .ui-menu-item": function( event ) { event.preventDefault(); + + this._activateItem( event ); }, "click .ui-menu-item": function( event ) { var target = $( event.target ); @@ -5011,36 +5064,15 @@ var widgetsMenu = $.widget( "ui.menu", { } } }, - "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 ); - }, + "mouseenter .ui-menu-item": "_activateItem", + "mousemove .ui-menu-item": "_activateItem", 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 ); + var item = this.active || this._menuItems().first(); if ( !keepActiveItem ) { this.focus( event, item ); @@ -5066,7 +5098,7 @@ var widgetsMenu = $.widget( "ui.menu", { this._on( this.document, { click: function( event ) { if ( this._closeOnDocumentClick( event ) ) { - this.collapseAll( event ); + this.collapseAll( event, true ); } // Reset the mouseHandled flag @@ -5075,6 +5107,46 @@ var widgetsMenu = $.widget( "ui.menu", { } ); }, + _activateItem: 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; + } + + // If the mouse didn't actually move, but the page was scrolled, ignore the event (#9356) + if ( event.clientX === this.lastMousePosition.x && + event.clientY === this.lastMousePosition.y ) { + return; + } + + this.lastMousePosition = { + x: event.clientX, + y: event.clientY + }; + + 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; + } + + // If the item is already active, there's nothing to do + if ( target.is( ".ui-state-active" ) ) { + 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 ); + }, + _destroy: function() { var items = this.element.find( ".ui-menu-item" ) .removeAttr( "role aria-disabled" ), @@ -5406,7 +5478,7 @@ var widgetsMenu = $.widget( "ui.menu", { this._removeClass( currentMenu.find( ".ui-state-active" ), null, "ui-state-active" ); this.activeMenu = currentMenu; - }, this.delay ); + }, all ? 0 : this.delay ); }, // With no arguments, closes the currently active menu - if nothing is active @@ -5442,11 +5514,7 @@ var widgetsMenu = $.widget( "ui.menu", { }, expand: function( event ) { - var newItem = this.active && - this.active - .children( ".ui-menu " ) - .find( this.options.items ) - .first(); + var newItem = this.active && this._menuItems( this.active.children( ".ui-menu" ) ).first(); if ( newItem && newItem.length ) { this._open( newItem.parent() ); @@ -5474,21 +5542,27 @@ var widgetsMenu = $.widget( "ui.menu", { return this.active && !this.active.nextAll( ".ui-menu-item" ).length; }, + _menuItems: function( menu ) { + return ( menu || this.element ) + .find( this.options.items ) + .filter( ".ui-menu-item" ); + }, + _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 ); + .last(); } else { next = this.active [ direction + "All" ]( ".ui-menu-item" ) - .eq( 0 ); + .first(); } } if ( !next || !next.length || !this.active ) { - next = this.activeMenu.find( this.options.items )[ filter ](); + next = this._menuItems( this.activeMenu )[ filter ](); } this.focus( event, next ); @@ -5506,7 +5580,13 @@ var widgetsMenu = $.widget( "ui.menu", { } if ( this._hasScroll() ) { base = this.active.offset().top; - height = this.element.height(); + height = this.element.innerHeight(); + + // jQuery 3.2 doesn't include scrollbars in innerHeight, add it back. + if ( $.fn.jquery.indexOf( "3.2." ) === 0 ) { + height += this.element[ 0 ].offsetHeight - this.element.outerHeight(); + } + this.active.nextAll( ".ui-menu-item" ).each( function() { item = $( this ); return item.offset().top - base - height < 0; @@ -5514,7 +5594,7 @@ var widgetsMenu = $.widget( "ui.menu", { this.focus( event, item ); } else { - this.focus( event, this.activeMenu.find( this.options.items ) + this.focus( event, this._menuItems( this.activeMenu ) [ !this.active ? "first" : "last" ]() ); } }, @@ -5530,7 +5610,13 @@ var widgetsMenu = $.widget( "ui.menu", { } if ( this._hasScroll() ) { base = this.active.offset().top; - height = this.element.height(); + height = this.element.innerHeight(); + + // jQuery 3.2 doesn't include scrollbars in innerHeight, add it back. + if ( $.fn.jquery.indexOf( "3.2." ) === 0 ) { + height += this.element[ 0 ].offsetHeight - this.element.outerHeight(); + } + this.active.prevAll( ".ui-menu-item" ).each( function() { item = $( this ); return item.offset().top - base + height > 0; @@ -5538,7 +5624,7 @@ var widgetsMenu = $.widget( "ui.menu", { this.focus( event, item ); } else { - this.focus( event, this.activeMenu.find( this.options.items ).first() ); + this.focus( event, this._menuItems( this.activeMenu ).first() ); } }, @@ -5569,14 +5655,15 @@ var widgetsMenu = $.widget( "ui.menu", { .filter( ".ui-menu-item" ) .filter( function() { return regex.test( - $.trim( $( this ).children( ".ui-menu-item-wrapper" ).text() ) ); + String.prototype.trim.call( + $( this ).children( ".ui-menu-item-wrapper" ).text() ) ); } ); } } ); /*! - * jQuery UI Autocomplete 1.12.1 + * jQuery UI Autocomplete 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -5594,9 +5681,8 @@ var widgetsMenu = $.widget( "ui.menu", { //>>css.theme: ../../themes/base/theme.css - $.widget( "ui.autocomplete", { - version: "1.12.1", + version: "1.13.1", defaultElement: "", options: { appendTo: null, @@ -5622,6 +5708,7 @@ $.widget( "ui.autocomplete", { requestIndex: 0, pending: 0, + liveRegionTimer: null, _create: function() { @@ -5759,11 +5846,6 @@ $.widget( "ui.autocomplete", { this.previous = this._value(); }, blur: function( event ) { - if ( this.cancelBlur ) { - delete this.cancelBlur; - return; - } - clearTimeout( this.searching ); this.close( event ); this._change( event ); @@ -5779,31 +5861,24 @@ $.widget( "ui.autocomplete", { role: null } ) .hide() + + // Support: IE 11 only, Edge <= 14 + // For other browsers, we preventDefault() on the mousedown event + // to keep the dropdown from taking focus from the input. This doesn't + // work for IE/Edge, causing problems with selection and scrolling (#9638) + // Happily, IE and Edge support an "unselectable" attribute that + // prevents an element from receiving focus, exactly what we want here. + .attr( { + "unselectable": "on" + } ) .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 + // 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; @@ -5834,9 +5909,11 @@ $.widget( "ui.autocomplete", { // Announce the value in the liveRegion label = ui.item.attr( "aria-label" ) || item.value; - if ( label && $.trim( label ).length ) { - this.liveRegion.children().hide(); - $( "
    " ).text( label ).appendTo( this.liveRegion ); + if ( label && String.prototype.trim.call( label ).length ) { + clearTimeout( this.liveRegionTimer ); + this.liveRegionTimer = this._delay( function() { + this.liveRegion.html( $( "
    " ).text( label ) ); + }, 100 ); } }, menuselect: function( event, ui ) { @@ -5946,7 +6023,7 @@ $.widget( "ui.autocomplete", { _initSource: function() { var array, url, that = this; - if ( $.isArray( this.options.source ) ) { + if ( Array.isArray( this.options.source ) ) { array = this.options.source; this.source = function( request, response ) { response( $.ui.autocomplete.filter( array, request.term ) ); @@ -6018,7 +6095,7 @@ $.widget( "ui.autocomplete", { _response: function() { var index = ++this.requestIndex; - return $.proxy( function( content ) { + return function( content ) { if ( index === this.requestIndex ) { this.__response( content ); } @@ -6027,7 +6104,7 @@ $.widget( "ui.autocomplete", { if ( !this.pending ) { this._removeClass( "ui-autocomplete-loading" ); } - }, this ); + }.bind( this ); }, __response: function( content ) { @@ -6187,7 +6264,7 @@ $.widget( "ui.autocomplete", { var editable = element.prop( "contentEditable" ); if ( editable === "inherit" ) { - return this._isContentEditable( element.parent() ); + return this._isContentEditable( element.parent() ); } return editable === "true"; @@ -6231,8 +6308,10 @@ $.widget( "ui.autocomplete", $.ui.autocomplete, { } else { message = this.options.messages.noResults; } - this.liveRegion.children().hide(); - $( "
    " ).text( message ).appendTo( this.liveRegion ); + clearTimeout( this.liveRegionTimer ); + this.liveRegionTimer = this._delay( function() { + this.liveRegion.html( $( "
    " ).text( message ) ); + }, 100 ); } } ); @@ -6240,7 +6319,7 @@ var widgetsAutocomplete = $.ui.autocomplete; /*! - * jQuery UI Controlgroup 1.12.1 + * jQuery UI Controlgroup 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -6261,7 +6340,7 @@ var widgetsAutocomplete = $.ui.autocomplete; var controlgroupCornerRegex = /ui-corner-([a-z]){2,6}/g; var widgetsControlgroup = $.widget( "ui.controlgroup", { - version: "1.12.1", + version: "1.13.1", defaultElement: "
    ", options: { direction: "horizontal", @@ -6378,7 +6457,7 @@ var widgetsControlgroup = $.widget( "ui.controlgroup", { } ); } ); - this.childWidgets = $( $.unique( childWidgets ) ); + this.childWidgets = $( $.uniqueSort( childWidgets ) ); this._addClass( this.childWidgets, "ui-controlgroup-item" ); }, @@ -6462,7 +6541,7 @@ var widgetsControlgroup = $.widget( "ui.controlgroup", { var result = {}; $.each( classes, function( key ) { var current = instance.options.classes[ key ] || ""; - current = $.trim( current.replace( controlgroupCornerRegex, "" ) ); + current = String.prototype.trim.call( current.replace( controlgroupCornerRegex, "" ) ); result[ key ] = ( current + " " + classes[ key ] ).replace( /\s+/g, " " ); } ); return result; @@ -6525,7 +6604,7 @@ var widgetsControlgroup = $.widget( "ui.controlgroup", { } ); /*! - * jQuery UI Checkboxradio 1.12.1 + * jQuery UI Checkboxradio 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -6544,9 +6623,8 @@ var widgetsControlgroup = $.widget( "ui.controlgroup", { //>>css.theme: ../../themes/base/theme.css - $.widget( "ui.checkboxradio", [ $.ui.formResetMixin, { - version: "1.12.1", + version: "1.13.1", options: { disabled: null, label: null, @@ -6625,9 +6703,6 @@ $.widget( "ui.checkboxradio", [ $.ui.formResetMixin, { 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( { @@ -6662,7 +6737,7 @@ $.widget( "ui.checkboxradio", [ $.ui.formResetMixin, { _getRadioGroup: function() { var group; var name = this.element[ 0 ].name; - var nameSelector = "input[name='" + $.ui.escapeSelector( name ) + "']"; + var nameSelector = "input[name='" + $.escapeSelector( name ) + "']"; if ( !name ) { return $( [] ); @@ -6674,7 +6749,7 @@ $.widget( "ui.checkboxradio", [ $.ui.formResetMixin, { // Not inside a form, check all inputs that also are not inside a form group = $( nameSelector ).filter( function() { - return $( this ).form().length === 0; + return $( this )._form().length === 0; } ); } @@ -6795,7 +6870,7 @@ var widgetsCheckboxradio = $.ui.checkboxradio; /*! - * jQuery UI Button 1.12.1 + * jQuery UI Button 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -6813,9 +6888,8 @@ var widgetsCheckboxradio = $.ui.checkboxradio; //>>css.theme: ../../themes/base/theme.css - $.widget( "ui.button", { - version: "1.12.1", + version: "1.13.1", defaultElement: "" ).addClass( this._triggerClass ). - html( !buttonImage ? buttonText : $( "" ).attr( - { src:buttonImage, alt:buttonText, title:buttonText } ) ) ); + + if ( this._get( inst, "buttonImageOnly" ) ) { + inst.trigger = $( "" ) + .addClass( this._triggerClass ) + .attr( { + src: buttonImage, + alt: buttonText, + title: buttonText + } ); + } else { + inst.trigger = $( "" : "" ); + controls = ""; + if ( !inst.inline ) { + controls = $( "" : "" ) + ( isRTL ? "" : controls ) + "
    " : ""; + buttonPanel = ""; + if ( showButtonPanel ) { + buttonPanel = $( "
    " ) + .append( isRTL ? controls : "" ) + .append( this._isInRange( inst, gotoDate ) ? + $( "" ).addClass( this._triggerClass ). - html( !buttonImage ? buttonText : $( "" ).attr( - { src:buttonImage, alt:buttonText, title:buttonText } ) ) ); + + if ( this._get( inst, "buttonImageOnly" ) ) { + inst.trigger = $( "" ) + .addClass( this._triggerClass ) + .attr( { + src: buttonImage, + alt: buttonText, + title: buttonText + } ); + } else { + inst.trigger = $( "" : "" ); + controls = ""; + if ( !inst.inline ) { + controls = $( "" : "" ) + ( isRTL ? "" : controls ) + "
    " : ""; + buttonPanel = ""; + if ( showButtonPanel ) { + buttonPanel = $( "
    " ) + .append( isRTL ? controls : "" ) + .append( this._isInRange( inst, gotoDate ) ? + $( "