Changeset 83728 in spip-zone


Ignore:
Timestamp:
Jul 19, 2014, 2:20:41 PM (5 years ago)
Author:
brunobergot@…
Message:

jQuery UI 1.11.0 dans SPIP

Suivre jQuery UI sur les noms des scripts et css de la lib en retirant le préfixe jquery.ui.
On assure la compat en routant les anciens appels vers les nouveaux fichiers
Ajout des nouveaux modules
Retrait du script jquery-ui.js (on peut revenir sur ce point si nécessaire)

cf http://archives.rezo.net/archives/spip-dev.mbox/P2NCPDU6CMRIDQWI57PWJ5TJGGPJAIBK/

Location:
_core_/plugins/jquery_ui
Files:
7 added
1 deleted
16 edited
124 moved

Legend:

Unmodified
Added
Removed
  • _core_/plugins/jquery_ui/css/accordion.css

    r83719 r83728  
    11/*!
    2  * jQuery UI Accordion 1.10.4
     2 * jQuery UI Accordion 1.11.0
    33 * http://jqueryui.com
    44 *
     
    1313        cursor: pointer;
    1414        position: relative;
    15         margin-top: 2px;
     15        margin: 2px 0 0 0;
    1616        padding: .5em .5em .5em .7em;
    1717        min-height: 0; /* support: IE7 */
     18        font-size: 100%;
    1819}
    1920.ui-accordion .ui-accordion-icons {
    2021        padding-left: 2.2em;
    21 }
    22 .ui-accordion .ui-accordion-noicons {
    23         padding-left: .7em;
    2422}
    2523.ui-accordion .ui-accordion-icons .ui-accordion-icons {
  • _core_/plugins/jquery_ui/css/all.css

    r83719 r83728  
    11/*!
    2  * jQuery UI CSS Framework 1.10.4
     2 * jQuery UI CSS Framework 1.11.0
    33 * http://jqueryui.com
    44 *
     
    99 * http://api.jqueryui.com/category/theming/
    1010 */
    11 @import "jquery.ui.base.css";
    12 @import "jquery.ui.theme.css";
     11@import "base.css";
     12@import "theme.css";
  • _core_/plugins/jquery_ui/css/autocomplete.css

    r83719 r83728  
    11/*!
    2  * jQuery UI Autocomplete 1.10.4
     2 * jQuery UI Autocomplete 1.11.0
    33 * http://jqueryui.com
    44 *
  • _core_/plugins/jquery_ui/css/base.css

    r83719 r83728  
    11/*!
    2  * jQuery UI CSS Framework 1.10.4
     2 * jQuery UI CSS Framework 1.11.0
    33 * http://jqueryui.com
    44 *
     
    99 * http://api.jqueryui.com/category/theming/
    1010 */
    11 @import url("jquery.ui.core.css");
     11@import url("core.css");
    1212
    13 @import url("jquery.ui.accordion.css");
    14 @import url("jquery.ui.autocomplete.css");
    15 @import url("jquery.ui.button.css");
    16 @import url("jquery.ui.datepicker.css");
    17 @import url("jquery.ui.dialog.css");
    18 @import url("jquery.ui.menu.css");
    19 @import url("jquery.ui.progressbar.css");
    20 @import url("jquery.ui.resizable.css");
    21 @import url("jquery.ui.selectable.css");
    22 @import url("jquery.ui.slider.css");
    23 @import url("jquery.ui.spinner.css");
    24 @import url("jquery.ui.tabs.css");
    25 @import url("jquery.ui.tooltip.css");
     13@import url("accordion.css");
     14@import url("autocomplete.css");
     15@import url("button.css");
     16@import url("datepicker.css");
     17@import url("dialog.css");
     18@import url("draggable.css");
     19@import url("menu.css");
     20@import url("progressbar.css");
     21@import url("resizable.css");
     22@import url("selectable.css");
     23@import url("selectmenu.css");
     24@import url("sortable.css");
     25@import url("slider.css");
     26@import url("spinner.css");
     27@import url("tabs.css");
     28@import url("tooltip.css");
  • _core_/plugins/jquery_ui/css/button.css

    r83719 r83728  
    11/*!
    2  * jQuery UI Button 1.10.4
     2 * jQuery UI Button 1.11.0
    33 * http://jqueryui.com
    44 *
  • _core_/plugins/jquery_ui/css/core.css

    r83719 r83728  
    11/*!
    2  * jQuery UI CSS Framework 1.10.4
     2 * jQuery UI CSS Framework 1.11.0
    33 * http://jqueryui.com
    44 *
  • _core_/plugins/jquery_ui/css/datepicker.css

    r83719 r83728  
    11/*!
    2  * jQuery UI Datepicker 1.10.4
     2 * jQuery UI Datepicker 1.11.0
    33 * http://jqueryui.com
    44 *
  • _core_/plugins/jquery_ui/css/dialog.css

    r83719 r83728  
    11/*!
    2  * jQuery UI Dialog 1.10.4
     2 * jQuery UI Dialog 1.11.0
    33 * http://jqueryui.com
    44 *
  • _core_/plugins/jquery_ui/css/jquery-ui.css

    r80161 r83728  
    1 /*! jQuery UI - v1.10.4 - 2014-01-20
     1/*! jQuery UI - v1.11.0 - 2014-06-26
    22* http://jqueryui.com
    3 * Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css
     3* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
    44* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
    55* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
     
    8787        height: 100%;
    8888}
    89 .ui-resizable {
    90         position: relative;
    91 }
    92 .ui-resizable-handle {
    93         position: absolute;
    94         font-size: 0.1px;
    95         display: block;
    96 }
    97 .ui-resizable-disabled .ui-resizable-handle,
    98 .ui-resizable-autohide .ui-resizable-handle {
    99         display: none;
    100 }
    101 .ui-resizable-n {
    102         cursor: n-resize;
    103         height: 7px;
    104         width: 100%;
    105         top: -5px;
    106         left: 0;
    107 }
    108 .ui-resizable-s {
    109         cursor: s-resize;
    110         height: 7px;
    111         width: 100%;
    112         bottom: -5px;
    113         left: 0;
    114 }
    115 .ui-resizable-e {
    116         cursor: e-resize;
    117         width: 7px;
    118         right: -5px;
    119         top: 0;
    120         height: 100%;
    121 }
    122 .ui-resizable-w {
    123         cursor: w-resize;
    124         width: 7px;
    125         left: -5px;
    126         top: 0;
    127         height: 100%;
    128 }
    129 .ui-resizable-se {
    130         cursor: se-resize;
    131         width: 12px;
    132         height: 12px;
    133         right: 1px;
    134         bottom: 1px;
    135 }
    136 .ui-resizable-sw {
    137         cursor: sw-resize;
    138         width: 9px;
    139         height: 9px;
    140         left: -5px;
    141         bottom: -5px;
    142 }
    143 .ui-resizable-nw {
    144         cursor: nw-resize;
    145         width: 9px;
    146         height: 9px;
    147         left: -5px;
    148         top: -5px;
    149 }
    150 .ui-resizable-ne {
    151         cursor: ne-resize;
    152         width: 9px;
    153         height: 9px;
    154         right: -5px;
    155         top: -5px;
    156 }
    157 .ui-selectable-helper {
    158         position: absolute;
    159         z-index: 100;
    160         border: 1px dotted black;
    161 }
    16289.ui-accordion .ui-accordion-header {
    16390        display: block;
    16491        cursor: pointer;
    16592        position: relative;
    166         margin-top: 2px;
     93        margin: 2px 0 0 0;
    16794        padding: .5em .5em .5em .7em;
    16895        min-height: 0; /* support: IE7 */
     96        font-size: 100%;
    16997}
    17098.ui-accordion .ui-accordion-icons {
    17199        padding-left: 2.2em;
    172 }
    173 .ui-accordion .ui-accordion-noicons {
    174         padding-left: .7em;
    175100}
    176101.ui-accordion .ui-accordion-icons .ui-accordion-icons {
     
    523448        cursor: move;
    524449}
     450.ui-draggable-handle {
     451        -ms-touch-action: none;
     452        touch-action: none;
     453}
    525454.ui-menu {
    526455        list-style: none;
    527         padding: 2px;
     456        padding: 0;
    528457        margin: 0;
    529458        display: block;
     
    531460}
    532461.ui-menu .ui-menu {
    533         margin-top: -3px;
    534462        position: absolute;
    535463}
    536464.ui-menu .ui-menu-item {
     465        position: relative;
    537466        margin: 0;
    538         padding: 0;
    539         width: 100%;
     467        padding: 3px 1em 3px .4em;
     468        cursor: pointer;
     469        min-height: 0; /* support: IE7 */
    540470        /* support: IE10, see #8844 */
    541         list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
     471        list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
    542472}
    543473.ui-menu .ui-menu-divider {
    544         margin: 5px -2px 5px -2px;
     474        margin: 5px 0;
    545475        height: 0;
    546476        font-size: 0;
     
    548478        border-width: 1px 0 0 0;
    549479}
    550 .ui-menu .ui-menu-item a {
    551         text-decoration: none;
    552         display: block;
    553         padding: 2px .4em;
    554         line-height: 1.5;
    555         min-height: 0; /* support: IE7 */
    556         font-weight: normal;
    557 }
    558 .ui-menu .ui-menu-item a.ui-state-focus,
    559 .ui-menu .ui-menu-item a.ui-state-active {
    560         font-weight: normal;
     480.ui-menu .ui-state-focus,
     481.ui-menu .ui-state-active {
    561482        margin: -1px;
    562 }
    563 
    564 .ui-menu .ui-state-disabled {
    565         font-weight: normal;
    566         margin: .4em 0 .2em;
    567         line-height: 1.5;
    568 }
    569 .ui-menu .ui-state-disabled a {
    570         cursor: default;
    571483}
    572484
     
    575487        position: relative;
    576488}
    577 .ui-menu-icons .ui-menu-item a {
    578         position: relative;
     489.ui-menu-icons .ui-menu-item {
    579490        padding-left: 2em;
    580491}
     
    583494.ui-menu .ui-icon {
    584495        position: absolute;
    585         top: .2em;
     496        top: 0;
     497        bottom: 0;
    586498        left: .2em;
     499        margin: auto 0;
    587500}
    588501
    589502/* right-aligned */
    590503.ui-menu .ui-menu-icon {
    591         position: static;
    592         float: right;
     504        left: auto;
     505        right: 0;
    593506}
    594507.ui-progressbar {
     
    610523        background-image: none;
    611524}
     525.ui-resizable {
     526        position: relative;
     527}
     528.ui-resizable-handle {
     529        position: absolute;
     530        font-size: 0.1px;
     531        display: block;
     532        -ms-touch-action: none;
     533        touch-action: none;
     534}
     535.ui-resizable-disabled .ui-resizable-handle,
     536.ui-resizable-autohide .ui-resizable-handle {
     537        display: none;
     538}
     539.ui-resizable-n {
     540        cursor: n-resize;
     541        height: 7px;
     542        width: 100%;
     543        top: -5px;
     544        left: 0;
     545}
     546.ui-resizable-s {
     547        cursor: s-resize;
     548        height: 7px;
     549        width: 100%;
     550        bottom: -5px;
     551        left: 0;
     552}
     553.ui-resizable-e {
     554        cursor: e-resize;
     555        width: 7px;
     556        right: -5px;
     557        top: 0;
     558        height: 100%;
     559}
     560.ui-resizable-w {
     561        cursor: w-resize;
     562        width: 7px;
     563        left: -5px;
     564        top: 0;
     565        height: 100%;
     566}
     567.ui-resizable-se {
     568        cursor: se-resize;
     569        width: 12px;
     570        height: 12px;
     571        right: 1px;
     572        bottom: 1px;
     573}
     574.ui-resizable-sw {
     575        cursor: sw-resize;
     576        width: 9px;
     577        height: 9px;
     578        left: -5px;
     579        bottom: -5px;
     580}
     581.ui-resizable-nw {
     582        cursor: nw-resize;
     583        width: 9px;
     584        height: 9px;
     585        left: -5px;
     586        top: -5px;
     587}
     588.ui-resizable-ne {
     589        cursor: ne-resize;
     590        width: 9px;
     591        height: 9px;
     592        right: -5px;
     593        top: -5px;
     594}
     595.ui-selectable {
     596        -ms-touch-action: none;
     597        touch-action: none;
     598}
     599.ui-selectable-helper {
     600        position: absolute;
     601        z-index: 100;
     602        border: 1px dotted black;
     603}
     604.ui-selectmenu-menu {
     605        padding: 0;
     606        margin: 0;
     607        position: absolute;
     608        top: 0;
     609        left: 0;
     610        display: none;
     611}
     612.ui-selectmenu-menu .ui-menu {
     613        overflow: auto;
     614        /* Support: IE7 */
     615        overflow-x: hidden;
     616        padding-bottom: 1px;
     617}
     618.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
     619        font-size: 1em;
     620        font-weight: bold;
     621        line-height: 1.5;
     622        padding: 2px 0.4em;
     623        margin: 0.5em 0 0 0;
     624        height: auto;
     625        border: 0;
     626}
     627.ui-selectmenu-open {
     628        display: block;
     629}
     630.ui-selectmenu-button {
     631        display: inline-block;
     632        overflow: hidden;
     633        position: relative;
     634        text-decoration: none;
     635        cursor: pointer;
     636}
     637.ui-selectmenu-button span.ui-icon {
     638        right: 0.5em;
     639        left: auto;
     640        margin-top: -8px;
     641        position: absolute;
     642        top: 50%;
     643}
     644.ui-selectmenu-button span.ui-selectmenu-text {
     645        text-align: left;
     646        padding: 0.4em 2.1em 0.4em 1em;
     647        display: block;
     648        line-height: 1.4;
     649        overflow: hidden;
     650        text-overflow: ellipsis;
     651        white-space: nowrap;
     652}
    612653.ui-slider {
    613654        position: relative;
     
    620661        height: 1.2em;
    621662        cursor: default;
     663        -ms-touch-action: none;
     664        touch-action: none;
    622665}
    623666.ui-slider .ui-slider-range {
     
    672715.ui-slider-vertical .ui-slider-range-max {
    673716        top: 0;
     717}
     718.ui-sortable-handle {
     719        -ms-touch-action: none;
     720        touch-action: none;
    674721}
    675722.ui-spinner {
     
    799846.ui-widget-content {
    800847        border: 1px solid #aaaaaa;
    801         background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;
     848        background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
    802849        color: #222222;
    803850}
     
    807854.ui-widget-header {
    808855        border: 1px solid #aaaaaa;
    809         background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
     856        background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
    810857        color: #222222;
    811858        font-weight: bold;
     
    821868.ui-widget-header .ui-state-default {
    822869        border: 1px solid #d3d3d3;
    823         background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
     870        background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
    824871        font-weight: normal;
    825872        color: #555555;
     
    838885.ui-widget-header .ui-state-focus {
    839886        border: 1px solid #999999;
    840         background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
     887        background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
    841888        font-weight: normal;
    842889        color: #212121;
     
    857904.ui-widget-header .ui-state-active {
    858905        border: 1px solid #aaaaaa;
    859         background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
     906        background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
    860907        font-weight: normal;
    861908        color: #212121;
     
    874921.ui-widget-header .ui-state-highlight {
    875922        border: 1px solid #fcefa1;
    876         background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;
     923        background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
    877924        color: #363636;
    878925}
     
    886933.ui-widget-header .ui-state-error {
    887934        border: 1px solid #cd0a0a;
    888         background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;
     935        background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
    889936        color: #cd0a0a;
    890937}
     
    932979.ui-icon,
    933980.ui-widget-content .ui-icon {
    934         background-image: url(images/ui-icons_222222_256x240.png);
     981        background-image: url("images/ui-icons_222222_256x240.png");
    935982}
    936983.ui-widget-header .ui-icon {
    937         background-image: url(images/ui-icons_222222_256x240.png);
     984        background-image: url("images/ui-icons_222222_256x240.png");
    938985}
    939986.ui-state-default .ui-icon {
    940         background-image: url(images/ui-icons_888888_256x240.png);
     987        background-image: url("images/ui-icons_888888_256x240.png");
    941988}
    942989.ui-state-hover .ui-icon,
    943990.ui-state-focus .ui-icon {
    944         background-image: url(images/ui-icons_454545_256x240.png);
     991        background-image: url("images/ui-icons_454545_256x240.png");
    945992}
    946993.ui-state-active .ui-icon {
    947         background-image: url(images/ui-icons_454545_256x240.png);
     994        background-image: url("images/ui-icons_454545_256x240.png");
    948995}
    949996.ui-state-highlight .ui-icon {
    950         background-image: url(images/ui-icons_2e83ff_256x240.png);
     997        background-image: url("images/ui-icons_2e83ff_256x240.png");
    951998}
    952999.ui-state-error .ui-icon,
    9531000.ui-state-error-text .ui-icon {
    954         background-image: url(images/ui-icons_cd0a0a_256x240.png);
     1001        background-image: url("images/ui-icons_cd0a0a_256x240.png");
    9551002}
    9561003
     
    11651212/* Overlays */
    11661213.ui-widget-overlay {
    1167         background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
     1214        background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
    11681215        opacity: .3;
    11691216        filter: Alpha(Opacity=30);
     
    11721219        margin: -8px 0 0 -8px;
    11731220        padding: 8px;
    1174         background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
     1221        background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
    11751222        opacity: .3;
    11761223        filter: Alpha(Opacity=30);
  • _core_/plugins/jquery_ui/css/menu.css

    r83719 r83728  
    11/*!
    2  * jQuery UI Menu 1.10.4
     2 * jQuery UI Menu 1.11.0
    33 * http://jqueryui.com
    44 *
     
    1111.ui-menu {
    1212        list-style: none;
    13         padding: 2px;
     13        padding: 0;
    1414        margin: 0;
    1515        display: block;
     
    1717}
    1818.ui-menu .ui-menu {
    19         margin-top: -3px;
    2019        position: absolute;
    2120}
    2221.ui-menu .ui-menu-item {
     22        position: relative;
    2323        margin: 0;
    24         padding: 0;
    25         width: 100%;
     24        padding: 3px 1em 3px .4em;
     25        cursor: pointer;
     26        min-height: 0; /* support: IE7 */
    2627        /* support: IE10, see #8844 */
    27         list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
     28        list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
    2829}
    2930.ui-menu .ui-menu-divider {
    30         margin: 5px -2px 5px -2px;
     31        margin: 5px 0;
    3132        height: 0;
    3233        font-size: 0;
     
    3435        border-width: 1px 0 0 0;
    3536}
    36 .ui-menu .ui-menu-item a {
    37         text-decoration: none;
    38         display: block;
    39         padding: 2px .4em;
    40         line-height: 1.5;
    41         min-height: 0; /* support: IE7 */
    42         font-weight: normal;
    43 }
    44 .ui-menu .ui-menu-item a.ui-state-focus,
    45 .ui-menu .ui-menu-item a.ui-state-active {
    46         font-weight: normal;
     37.ui-menu .ui-state-focus,
     38.ui-menu .ui-state-active {
    4739        margin: -1px;
    48 }
    49 
    50 .ui-menu .ui-state-disabled {
    51         font-weight: normal;
    52         margin: .4em 0 .2em;
    53         line-height: 1.5;
    54 }
    55 .ui-menu .ui-state-disabled a {
    56         cursor: default;
    5740}
    5841
     
    6144        position: relative;
    6245}
    63 .ui-menu-icons .ui-menu-item a {
    64         position: relative;
     46.ui-menu-icons .ui-menu-item {
    6547        padding-left: 2em;
    6648}
     
    6951.ui-menu .ui-icon {
    7052        position: absolute;
    71         top: .2em;
     53        top: 0;
     54        bottom: 0;
    7255        left: .2em;
     56        margin: auto 0;
    7357}
    7458
    7559/* right-aligned */
    7660.ui-menu .ui-menu-icon {
    77         position: static;
    78         float: right;
     61        left: auto;
     62        right: 0;
    7963}
  • _core_/plugins/jquery_ui/css/progressbar.css

    r83719 r83728  
    11/*!
    2  * jQuery UI Progressbar 1.10.4
     2 * jQuery UI Progressbar 1.11.0
    33 * http://jqueryui.com
    44 *
  • _core_/plugins/jquery_ui/css/resizable.css

    r83719 r83728  
    11/*!
    2  * jQuery UI Resizable 1.10.4
     2 * jQuery UI Resizable 1.11.0
    33 * http://jqueryui.com
    44 *
     
    1414        font-size: 0.1px;
    1515        display: block;
     16        -ms-touch-action: none;
     17        touch-action: none;
    1618}
    1719.ui-resizable-disabled .ui-resizable-handle,
  • _core_/plugins/jquery_ui/css/selectable.css

    r83719 r83728  
    11/*!
    2  * jQuery UI Selectable 1.10.4
     2 * jQuery UI Selectable 1.11.0
    33 * http://jqueryui.com
    44 *
     
    77 * http://jquery.org/license
    88 */
     9.ui-selectable {
     10        -ms-touch-action: none;
     11        touch-action: none;
     12}
    913.ui-selectable-helper {
    1014        position: absolute;
  • _core_/plugins/jquery_ui/css/slider.css

    r83719 r83728  
    11/*!
    2  * jQuery UI Slider 1.10.4
     2 * jQuery UI Slider 1.11.0
    33 * http://jqueryui.com
    44 *
     
    1919        height: 1.2em;
    2020        cursor: default;
     21        -ms-touch-action: none;
     22        touch-action: none;
    2123}
    2224.ui-slider .ui-slider-range {
  • _core_/plugins/jquery_ui/css/spinner.css

    r83719 r83728  
    11/*!
    2  * jQuery UI Spinner 1.10.4
     2 * jQuery UI Spinner 1.11.0
    33 * http://jqueryui.com
    44 *
  • _core_/plugins/jquery_ui/css/tabs.css

    r83719 r83728  
    11/*!
    2  * jQuery UI Tabs 1.10.4
     2 * jQuery UI Tabs 1.11.0
    33 * http://jqueryui.com
    44 *
  • _core_/plugins/jquery_ui/css/theme.css

    r83719 r83728  
    11/*!
    2  * jQuery UI CSS Framework 1.10.4
     2 * jQuery UI CSS Framework 1.11.0
    33 * http://jqueryui.com
    44 *
     
    3131.ui-widget-content {
    3232        border: 1px solid #aaaaaa;
    33         background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;
     33        background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
    3434        color: #222222;
    3535}
     
    3939.ui-widget-header {
    4040        border: 1px solid #aaaaaa;
    41         background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
     41        background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
    4242        color: #222222;
    4343        font-weight: bold;
     
    5353.ui-widget-header .ui-state-default {
    5454        border: 1px solid #d3d3d3;
    55         background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
     55        background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
    5656        font-weight: normal;
    5757        color: #555555;
     
    7070.ui-widget-header .ui-state-focus {
    7171        border: 1px solid #999999;
    72         background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
     72        background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
    7373        font-weight: normal;
    7474        color: #212121;
     
    8989.ui-widget-header .ui-state-active {
    9090        border: 1px solid #aaaaaa;
    91         background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
     91        background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
    9292        font-weight: normal;
    9393        color: #212121;
     
    106106.ui-widget-header .ui-state-highlight {
    107107        border: 1px solid #fcefa1;
    108         background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;
     108        background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
    109109        color: #363636;
    110110}
     
    118118.ui-widget-header .ui-state-error {
    119119        border: 1px solid #cd0a0a;
    120         background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;
     120        background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
    121121        color: #cd0a0a;
    122122}
     
    164164.ui-icon,
    165165.ui-widget-content .ui-icon {
    166         background-image: url(images/ui-icons_222222_256x240.png);
     166        background-image: url("images/ui-icons_222222_256x240.png");
    167167}
    168168.ui-widget-header .ui-icon {
    169         background-image: url(images/ui-icons_222222_256x240.png);
     169        background-image: url("images/ui-icons_222222_256x240.png");
    170170}
    171171.ui-state-default .ui-icon {
    172         background-image: url(images/ui-icons_888888_256x240.png);
     172        background-image: url("images/ui-icons_888888_256x240.png");
    173173}
    174174.ui-state-hover .ui-icon,
    175175.ui-state-focus .ui-icon {
    176         background-image: url(images/ui-icons_454545_256x240.png);
     176        background-image: url("images/ui-icons_454545_256x240.png");
    177177}
    178178.ui-state-active .ui-icon {
    179         background-image: url(images/ui-icons_454545_256x240.png);
     179        background-image: url("images/ui-icons_454545_256x240.png");
    180180}
    181181.ui-state-highlight .ui-icon {
    182         background-image: url(images/ui-icons_2e83ff_256x240.png);
     182        background-image: url("images/ui-icons_2e83ff_256x240.png");
    183183}
    184184.ui-state-error .ui-icon,
    185185.ui-state-error-text .ui-icon {
    186         background-image: url(images/ui-icons_cd0a0a_256x240.png);
     186        background-image: url("images/ui-icons_cd0a0a_256x240.png");
    187187}
    188188
     
    397397/* Overlays */
    398398.ui-widget-overlay {
    399         background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
     399        background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
    400400        opacity: .3;
    401401        filter: Alpha(Opacity=30);
     
    404404        margin: -8px 0 0 -8px;
    405405        padding: 8px;
    406         background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
     406        background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
    407407        opacity: .3;
    408408        filter: Alpha(Opacity=30);
  • _core_/plugins/jquery_ui/css/tooltip.css

    r83719 r83728  
    11/*!
    2  * jQuery UI Tooltip 1.10.4
     2 * jQuery UI Tooltip 1.11.0
    33 * http://jqueryui.com
    44 *
  • _core_/plugins/jquery_ui/jqueryui_pipelines.php

    r82427 r83728  
    1818                if(preg_match('/jquery\.effects\..*/',$val))
    1919                        $jqueryui_plugins[$nb] = str_replace('jquery.effects.','jquery.ui.effect-',$val);
     20                if(preg_match('/jquery\.ui\..*/',$val))
     21                        $jqueryui_plugins[$nb] = str_replace('jquery.ui.','',$val);
    2022        }
    2123        // gestion des dépendances des modules demandés
     
    5557        // les css correspondantes aux plugins
    5658        $styles = array(
    57                                                 'jquery.ui.accordion',
    58                                                 'jquery.ui.autocomplete',
    59                                                 'jquery.ui.button',
    60                                                 'jquery.ui.core',
    61                                                 'jquery.ui.datepicker',
    62                                                 'jquery.ui.dialog',
    63                                                 'jquery.ui.menus',
    64                                                 'jquery.ui.progressbar',
    65                                                 'jquery.ui.resizable',
    66                                                 'jquery.ui.selectable',
    67                                                 'jquery.ui.slider',
    68                                                 'jquery.ui.spinner',
    69                                                 'jquery.ui.tabs',
    70                                                 'jquery.ui.tooltip',
    71                                                 'jquery.ui.theme'
     59                                                'accordion',
     60                                                'autocomplete',
     61                                                'button',
     62                                                'core',
     63                                                'datepicker',
     64                                                'dialog',
     65                                                'draggable',
     66                                                'menus',
     67                                                'progressbar',
     68                                                'resizable',
     69                                                'selectable',
     70                                                'selectmenu',
     71                                                'slider',
     72                                                'sortable',
     73                                                'spinner',
     74                                                'tabs',
     75                                                'tooltip',
     76                                                'theme'
    7277                                                );
    7378
     
    107112         */
    108113        $dependance_core = array(
    109                                                         'jquery.ui.mouse',
    110                                                         'jquery.ui.widget',
    111                                                         'jquery.ui.datepicker'
     114                                                        'mouse',
     115                                                        'widget',
     116                                                        'datepicker',
     117                                                        'selectmenu'
    112118                                                );
    113119
     
    117123         */
    118124        $dependance_widget = array(
    119                                                         'jquery.ui.accordion',
    120                                                         'jquery.ui.autocomplete',
    121                                                         'jquery.ui.button',
    122                                                         'jquery.ui.dialog',
    123                                                         'jquery.ui.mouse',
    124                                                         'jquery.ui.menu',
    125                                                         'jquery.ui.progressbar',
    126                                                         'jquery.ui.tabs',
    127                                                         'jquery.ui.tooltip'
     125                                                        'accordion',
     126                                                        'autocomplete',
     127                                                        'button',
     128                                                        'dialog',
     129                                                        'mouse',
     130                                                        'menu',
     131                                                        'progressbar',
     132                                                        'tabs',
     133                                                        'tooltip',
     134                                                        'selectmenu'
    128135                                                );
    129136
    130137        $dependance_mouse = array(
    131                                                         'jquery.ui.draggable',
    132                                                         'jquery.ui.droppable',
    133                                                         'jquery.ui.resizable',
    134                                                         'jquery.ui.selectable',
    135                                                         'jquery.ui.slider',
    136                                                         'jquery.ui.sortable'
     138                                                        'draggable',
     139                                                        'droppable',
     140                                                        'resizable',
     141                                                        'selectable',
     142                                                        'slider',
     143                                                        'sortable'
    137144                                                );
    138145
    139146        $dependance_position = array(
    140                                                         'jquery.ui.autocomplete',
    141                                                         'jquery.ui.dialog',
    142                                                         'jquery.ui.menu',
    143                                                         'jquery.ui.tooltip'
     147                                                        'autocomplete',
     148                                                        'dialog',
     149                                                        'menu',
     150                                                        'tooltip',
     151                                                        'selectmenu'
    144152                                                );
    145153
    146154        $dependance_button = array(
    147                                                         'jquery.ui.dialog',
    148                                                         'jquery.ui.spinner'
     155                                                        'dialog',
     156                                                        'spinner'
    149157                                                );
    150158
    151159        $dependance_menu = array(
    152                                                         'jquery.ui.autocomplete'
     160                                                        'autocomplete',
     161                                                        'selectmenu'
    153162                                                );
    154163
    155164        $dependance_draggable = array(
    156                                                         'jquery.ui.droppable'
     165                                                        'droppable'
    157166                                                );
    158167       
    159168        $dependance_resizable = array(
    160                                                         'jquery.ui.dialog'
     169                                                        'dialog'
    161170                                                );
    162171
    163172        $dependance_effects = array(
    164                                                         'jquery.ui.effect-blind',
    165                                                         'jquery.ui.effect-bounce',
    166                                                         'jquery.ui.effect-clip',
    167                                                         'jquery.ui.effect-drop',
    168                                                         'jquery.ui.effect-explode',
    169                                                         'jquery.ui.effect-fade',
    170                                                         'jquery.ui.effect-fold',
    171                                                         'jquery.ui.effect-highlight',
    172                                                         'jquery.ui.effect-pulsate',
    173                                                         'jquery.ui.effect-scale',
    174                                                         'jquery.ui.effect-shake',
    175                                                         'jquery.ui.effect-slide',
    176                                                         'jquery.ui.effect-transfer'
     173                                                        'effect-blind',
     174                                                        'effect-bounce',
     175                                                        'effect-clip',
     176                                                        'effect-drop',
     177                                                        'effect-explode',
     178                                                        'effect-fade',
     179                                                        'effect-fold',
     180                                                        'effect-highlight',
     181                                                        'effect-puff',
     182                                                        'effect-pulsate',
     183                                                        'effect-scale',
     184                                                        'effect-shake',
     185                                                        'effect-size',
     186                                                        'effect-slide',
     187                                                        'effect-transfer'
    177188                                                );
    178189
     
    194205        if(count($intersect = array_intersect($plugins,$dependance_resizable)) > 0){
    195206                $keys = array_keys($intersect);
    196                 array_splice($plugins,$keys[0], 0, "jquery.ui.resizable");
     207                array_splice($plugins,$keys[0], 0, "resizable");
    197208        }
    198209        if(count($intersect = array_intersect($plugins,$dependance_button)) > 0){
    199210                $keys = array_keys($intersect);
    200                 array_splice($plugins,$keys[0], 0, "jquery.ui.button");
     211                array_splice($plugins,$keys[0], 0, "button");
    201212        }
    202213        if(count($intersect = array_intersect($plugins,$dependance_menu)) > 0){
    203214                $keys = array_keys($intersect);
    204                 array_splice($plugins,$keys[0], 0, "jquery.ui.menu");
     215                array_splice($plugins,$keys[0], 0, "menu");
    205216        }
    206217        if(count($intersect = array_intersect($plugins,$dependance_draggable)) > 0){
    207218                $keys = array_keys($intersect);
    208                 array_splice($plugins,$keys[0], 0, "jquery.ui.draggable");
     219                array_splice($plugins,$keys[0], 0, "draggable");
    209220        }
    210221        if(count($intersect = array_intersect($plugins,$dependance_position)) > 0){
    211222                $keys = array_keys($intersect);
    212                 array_splice($plugins,$keys[0], 0, "jquery.ui.position");
     223                array_splice($plugins,$keys[0], 0, "position");
    213224        }
    214225        if(count($intersect = array_intersect($plugins,$dependance_mouse)) > 0){
    215226                $keys = array_keys($intersect);
    216                 array_splice($plugins,$keys[0], 0, "jquery.ui.mouse");
     227                array_splice($plugins,$keys[0], 0, "mouse");
    217228        }
    218229        if(count($intersect = array_intersect($plugins,$dependance_widget)) > 0){
    219230                $keys = array_keys($intersect);
    220                 array_splice($plugins,$keys[0], 0, "jquery.ui.widget");
     231                array_splice($plugins,$keys[0], 0, "widget");
    221232        }
    222233        if(count($intersect = array_intersect($plugins,$dependance_core)) > 0){
    223234                $keys = array_keys($intersect);
    224                 array_splice($plugins,$keys[0], 0, "jquery.ui.core");
     235                array_splice($plugins,$keys[0], 0, "core");
    225236        }
    226237        if(count($intersect = array_intersect($plugins,$dependance_effects)) > 0){
    227238                $keys = array_keys($intersect);
    228                 array_splice($plugins,$keys[0], 0, "jquery.ui.effect");
     239                array_splice($plugins,$keys[0], 0, "effect");
    229240        }
    230241        $plugins = array_unique($plugins);
  • _core_/plugins/jquery_ui/paquet.xml

    r80161 r83728  
    22        prefix="jqueryui"
    33        categorie="outil"
    4         version="1.10.4"
     4        version="1.11.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
  • _core_/plugins/jquery_ui/prive/javascript/ui/accordion.js

    r83719 r83728  
    11/*!
    2  * jQuery UI Accordion 1.10.4
     2 * jQuery UI Accordion 1.11.0
    33 * http://jqueryui.com
    44 *
     
    88 *
    99 * http://api.jqueryui.com/accordion/
    10  *
    11  * Depends:
    12  *      jquery.ui.core.js
    13  *      jquery.ui.widget.js
    1410 */
    15 (function( $, undefined ) {
    16 
    17 var uid = 0,
    18         hideProps = {},
    19         showProps = {};
    20 
    21 hideProps.height = hideProps.paddingTop = hideProps.paddingBottom =
    22         hideProps.borderTopWidth = hideProps.borderBottomWidth = "hide";
    23 showProps.height = showProps.paddingTop = showProps.paddingBottom =
    24         showProps.borderTopWidth = showProps.borderBottomWidth = "show";
    25 
    26 $.widget( "ui.accordion", {
    27         version: "1.10.4",
     11(function( factory ) {
     12        if ( typeof define === "function" && define.amd ) {
     13
     14                // AMD. Register as an anonymous module.
     15                define([
     16                        "jquery",
     17                        "./core",
     18                        "./widget"
     19                ], factory );
     20        } else {
     21
     22                // Browser globals
     23                factory( jQuery );
     24        }
     25}(function( $ ) {
     26
     27return $.widget( "ui.accordion", {
     28        version: "1.11.0",
    2829        options: {
    2930                active: 0,
     
    4344        },
    4445
     46        hideProps: {
     47                borderTopWidth: "hide",
     48                borderBottomWidth: "hide",
     49                paddingTop: "hide",
     50                paddingBottom: "hide",
     51                height: "hide"
     52        },
     53
     54        showProps: {
     55                borderTopWidth: "show",
     56                borderBottomWidth: "show",
     57                paddingTop: "show",
     58                paddingBottom: "show",
     59                height: "show"
     60        },
     61
    4562        _create: function() {
    4663                var options = this.options;
     
    6683                return {
    6784                        header: this.active,
    68                         panel: !this.active.length ? $() : this.active.next(),
    69                         content: !this.active.length ? $() : this.active.next()
     85                        panel: !this.active.length ? $() : this.active.next()
    7086                };
    7187        },
     
    101117                // clean up headers
    102118                this.headers
    103                         .removeClass( "ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" )
     119                        .removeClass( "ui-accordion-header ui-accordion-header-active ui-state-default " +
     120                                "ui-corner-all ui-state-active ui-state-disabled ui-corner-top" )
    104121                        .removeAttr( "role" )
    105122                        .removeAttr( "aria-expanded" )
     
    107124                        .removeAttr( "aria-controls" )
    108125                        .removeAttr( "tabIndex" )
    109                         .each(function() {
    110                                 if ( /^ui-accordion/.test( this.id ) ) {
    111                                         this.removeAttribute( "id" );
    112                                 }
    113                         });
     126                        .removeUniqueId();
     127
    114128                this._destroyIcons();
    115129
    116130                // clean up content panels
    117131                contents = this.headers.next()
     132                        .removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom " +
     133                                "ui-accordion-content ui-accordion-content-active ui-state-disabled" )
    118134                        .css( "display", "" )
    119135                        .removeAttr( "role" )
    120136                        .removeAttr( "aria-hidden" )
    121137                        .removeAttr( "aria-labelledby" )
    122                         .removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled" )
    123                         .each(function() {
    124                                 if ( /^ui-accordion/.test( this.id ) ) {
    125                                         this.removeAttribute( "id" );
    126                                 }
    127                         });
     138                        .removeUniqueId();
     139
    128140                if ( this.options.heightStyle !== "content" ) {
    129141                        contents.css( "height", "" );
     
    162174                // so we need to add the disabled class to the headers and panels
    163175                if ( key === "disabled" ) {
     176                        this.element
     177                                .toggleClass( "ui-state-disabled", !!value )
     178                                .attr( "aria-disabled", value );
    164179                        this.headers.add( this.headers.next() )
    165180                                .toggleClass( "ui-state-disabled", !!value );
     
    206221        },
    207222
    208         _panelKeyDown : function( event ) {
     223        _panelKeyDown: function( event ) {
    209224                if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {
    210225                        $( event.currentTarget ).prev().focus();
     
    246261        _processPanels: function() {
    247262                this.headers = this.element.find( this.options.header )
    248                         .addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" );
     263                        .addClass( "ui-accordion-header ui-state-default ui-corner-all" );
    249264
    250265                this.headers.next()
    251266                        .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" )
    252                         .filter(":not(.ui-accordion-content-active)")
     267                        .filter( ":not(.ui-accordion-content-active)" )
    253268                        .hide();
    254269        },
     
    258273                        options = this.options,
    259274                        heightStyle = options.heightStyle,
    260                         parent = this.element.parent(),
    261                         accordionId = this.accordionId = "ui-accordion-" +
    262                                 (this.element.attr( "id" ) || ++uid);
     275                        parent = this.element.parent();
    263276
    264277                this.active = this._findActive( options.active )
     
    271284                this.headers
    272285                        .attr( "role", "tab" )
    273                         .each(function( i ) {
     286                        .each(function() {
    274287                                var header = $( this ),
    275                                         headerId = header.attr( "id" ),
     288                                        headerId = header.uniqueId().attr( "id" ),
    276289                                        panel = header.next(),
    277                                         panelId = panel.attr( "id" );
    278                                 if ( !headerId ) {
    279                                         headerId = accordionId + "-header-" + i;
    280                                         header.attr( "id", headerId );
    281                                 }
    282                                 if ( !panelId ) {
    283                                         panelId = accordionId + "-panel-" + i;
    284                                         panel.attr( "id", panelId );
    285                                 }
     290                                        panelId = panel.uniqueId().attr( "id" );
    286291                                header.attr( "aria-controls", panelId );
    287292                                panel.attr( "aria-labelledby", headerId );
     
    381386                };
    382387                if ( event ) {
    383                         $.each( event.split(" "), function( index, eventName ) {
     388                        $.each( event.split( " " ), function( index, eventName ) {
    384389                                events[ eventName ] = "_eventHandler";
    385390                        });
     
    519524
    520525                if ( !toHide.length ) {
    521                         return toShow.animate( showProps, duration, easing, complete );
     526                        return toShow.animate( this.showProps, duration, easing, complete );
    522527                }
    523528                if ( !toShow.length ) {
    524                         return toHide.animate( hideProps, duration, easing, complete );
     529                        return toHide.animate( this.hideProps, duration, easing, complete );
    525530                }
    526531
    527532                total = toShow.show().outerHeight();
    528                 toHide.animate( hideProps, {
     533                toHide.animate( this.hideProps, {
    529534                        duration: duration,
    530535                        easing: easing,
     
    535540                toShow
    536541                        .hide()
    537                         .animate( showProps, {
     542                        .animate( this.showProps, {
    538543                                duration: duration,
    539544                                easing: easing,
     
    562567                // Work around for rendering bug in IE (#5421)
    563568                if ( toHide.length ) {
    564                         toHide.parent()[0].className = toHide.parent()[0].className;
     569                        toHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className;
    565570                }
    566571                this._trigger( "activate", null, data );
     
    568573});
    569574
    570 })( jQuery );
     575}));
  • _core_/plugins/jquery_ui/prive/javascript/ui/autocomplete.js

    r83719 r83728  
    11/*!
    2  * jQuery UI Autocomplete 1.10.4
     2 * jQuery UI Autocomplete 1.11.0
    33 * http://jqueryui.com
    44 *
     
    88 *
    99 * http://api.jqueryui.com/autocomplete/
    10  *
    11  * Depends:
    12  *      jquery.ui.core.js
    13  *      jquery.ui.widget.js
    14  *      jquery.ui.position.js
    15  *      jquery.ui.menu.js
    1610 */
    17 (function( $, undefined ) {
     11(function( factory ) {
     12        if ( typeof define === "function" && define.amd ) {
     13
     14                // AMD. Register as an anonymous module.
     15                define([
     16                        "jquery",
     17                        "./core",
     18                        "./widget",
     19                        "./position",
     20                        "./menu"
     21                ], factory );
     22        } else {
     23
     24                // Browser globals
     25                factory( jQuery );
     26        }
     27}(function( $ ) {
    1828
    1929$.widget( "ui.autocomplete", {
    20         version: "1.10.4",
     30        version: "1.11.0",
    2131        defaultElement: "<input>",
    2232        options: {
     
    5464                // search term. #7799
    5565                var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
    56                         nodeName = this.element[0].nodeName.toLowerCase(),
     66                        nodeName = this.element[ 0 ].nodeName.toLowerCase(),
    5767                        isTextarea = nodeName === "textarea",
    5868                        isInput = nodeName === "input";
     
    8797                                suppressKeyPressRepeat = false;
    8898                                var keyCode = $.ui.keyCode;
    89                                 switch( event.keyCode ) {
     99                                switch ( event.keyCode ) {
    90100                                case keyCode.PAGE_UP:
    91101                                        suppressKeyPress = true;
     
    105115                                        break;
    106116                                case keyCode.ENTER:
    107                                 case keyCode.NUMPAD_ENTER:
    108117                                        // when menu is open and has focus
    109118                                        if ( this.menu.active ) {
     
    151160                                // replicate some key handlers to allow them to repeat in Firefox and Opera
    152161                                var keyCode = $.ui.keyCode;
    153                                 switch( event.keyCode ) {
     162                                switch ( event.keyCode ) {
    154163                                case keyCode.PAGE_UP:
    155164                                        this._move( "previousPage", event );
     
    199208                        })
    200209                        .hide()
    201                         .data( "ui-menu" );
     210                        .menu( "instance" );
    202211
    203212                this._on( this.menu.element, {
     
    232241                        },
    233242                        menufocus: function( event, ui ) {
     243                                var label, item;
    234244                                // support: Firefox
    235245                                // Prevent accidental activation of menu items in Firefox (#7024 #9118)
     
    247257                                }
    248258
    249                                 var item = ui.item.data( "ui-autocomplete-item" );
     259                                item = ui.item.data( "ui-autocomplete-item" );
    250260                                if ( false !== this._trigger( "focus", event, { item: item } ) ) {
    251261                                        // use value to match what will end up in the input, if it was a key event
     
    253263                                                this._value( item.value );
    254264                                        }
    255                                 } else {
    256                                         // Normally the input is populated with the item's value as the
    257                                         // menu is navigated, causing screen readers to notice a change and
    258                                         // announce the item. Since the focus event was canceled, this doesn't
    259                                         // happen, so we update the live region so that screen readers can
    260                                         // still notice the change and announce it.
    261                                         this.liveRegion.text( item.value );
     265                                }
     266
     267                                // Announce the value in the liveRegion
     268                                label = ui.item.attr( "aria-label" ) || item.value;
     269                                if ( label && jQuery.trim( label ).length ) {
     270                                        this.liveRegion.children().hide();
     271                                        $( "<div>" ).text( label ).appendTo( this.liveRegion );
    262272                                }
    263273                        },
     
    267277
    268278                                // only trigger when focus was lost (click on menu)
    269                                 if ( this.element[0] !== this.document[0].activeElement ) {
     279                                if ( this.element[ 0 ] !== this.document[ 0 ].activeElement ) {
    270280                                        this.element.focus();
    271281                                        this.previous = previous;
     
    293303                this.liveRegion = $( "<span>", {
    294304                                role: "status",
    295                                 "aria-live": "polite"
     305                                "aria-live": "assertive",
     306                                "aria-relevant": "additions"
    296307                        })
    297308                        .addClass( "ui-helper-hidden-accessible" )
    298                         .insertBefore( this.element );
     309                        .appendTo( this.document[ 0 ].body );
    299310
    300311                // turning off autocomplete prevents the browser from remembering the
     
    339350                }
    340351
    341                 if ( !element ) {
     352                if ( !element || !element[ 0 ] ) {
    342353                        element = this.element.closest( ".ui-front" );
    343354                }
    344355
    345356                if ( !element.length ) {
    346                         element = this.document[0].body;
     357                        element = this.document[ 0 ].body;
    347358                }
    348359
     
    353364                var array, url,
    354365                        that = this;
    355                 if ( $.isArray(this.options.source) ) {
     366                if ( $.isArray( this.options.source ) ) {
    356367                        array = this.options.source;
    357368                        this.source = function( request, response ) {
     
    372383                                        },
    373384                                        error: function() {
    374                                                 response( [] );
     385                                                response([]);
    375386                                        }
    376387                                });
     
    384395                clearTimeout( this.searching );
    385396                this.searching = this._delay(function() {
    386                         // only search if the value has changed
    387                         if ( this.term !== this._value() ) {
     397
     398                        // Search if the value has changed, or if the user retypes the same value (see #7434)
     399                        var equalValues = this.term === this._value(),
     400                                menuVisible = this.menu.element.is( ":visible" ),
     401                                modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
     402
     403                        if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {
    388404                                this.selectedItem = null;
    389405                                this.search( null, event );
     
    468484        _normalize: function( items ) {
    469485                // assume all items have the right format when the first item is complete
    470                 if ( items.length && items[0].label && items[0].value ) {
     486                if ( items.length && items[ 0 ].label && items[ 0 ].value ) {
    471487                        return items;
    472488                }
     
    478494                                };
    479495                        }
    480                         return $.extend({
     496                        return $.extend( {}, item, {
    481497                                label: item.label || item.value,
    482498                                value: item.value || item.label
    483                         }, item );
     499                        });
    484500                });
    485501        },
     
    496512                ul.position( $.extend({
    497513                        of: this.element
    498                 }, this.options.position ));
     514                }, this.options.position ) );
    499515
    500516                if ( this.options.autoFocus ) {
     
    525541
    526542        _renderItem: function( ul, item ) {
    527                 return $( "<li>" )
    528                         .append( $( "<a>" ).text( item.label ) )
    529                         .appendTo( ul );
     543                return $( "<li>" ).text( item.label ).appendTo( ul );
    530544        },
    531545
     
    537551                if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
    538552                                this.menu.isLastItem() && /^next/.test( direction ) ) {
    539                         this._value( this.term );
     553
     554                        if ( !this.isMultiLine ) {
     555                                this._value( this.term );
     556                        }
     557
    540558                        this.menu.blur();
    541559                        return;
     
    564582$.extend( $.ui.autocomplete, {
    565583        escapeRegex: function( value ) {
    566                 return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
    567         },
    568         filter: function(array, term) {
    569                 var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
    570                 return $.grep( array, function(value) {
     584                return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
     585        },
     586        filter: function( array, term ) {
     587                var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
     588                return $.grep( array, function( value ) {
    571589                        return matcher.test( value.label || value.value || value );
    572590                });
    573591        }
    574592});
    575 
    576593
    577594// live region extension, adding a `messages` option
     
    600617                        message = this.options.messages.noResults;
    601618                }
    602                 this.liveRegion.text( message );
     619                this.liveRegion.children().hide();
     620                $( "<div>" ).text( message ).appendTo( this.liveRegion );
    603621        }
    604622});
    605623
    606 }( jQuery ));
     624return $.ui.autocomplete;
     625
     626}));
  • _core_/plugins/jquery_ui/prive/javascript/ui/button.js

    r83719 r83728  
    11/*!
    2  * jQuery UI Button 1.10.4
     2 * jQuery UI Button 1.11.0
    33 * http://jqueryui.com
    44 *
     
    88 *
    99 * http://api.jqueryui.com/button/
    10  *
    11  * Depends:
    12  *      jquery.ui.core.js
    13  *      jquery.ui.widget.js
    1410 */
    15 (function( $, undefined ) {
     11(function( factory ) {
     12        if ( typeof define === "function" && define.amd ) {
     13
     14                // AMD. Register as an anonymous module.
     15                define([
     16                        "jquery",
     17                        "./core",
     18                        "./widget"
     19                ], factory );
     20        } else {
     21
     22                // Browser globals
     23                factory( jQuery );
     24        }
     25}(function( $ ) {
    1626
    1727var lastActive,
     
    3141                        name = name.replace( /'/g, "\\'" );
    3242                        if ( form ) {
    33                                 radios = $( form ).find( "[name='" + name + "']" );
     43                                radios = $( form ).find( "[name='" + name + "'][type=radio]" );
    3444                        } else {
    35                                 radios = $( "[name='" + name + "']", radio.ownerDocument )
     45                                radios = $( "[name='" + name + "'][type=radio]", radio.ownerDocument )
    3646                                        .filter(function() {
    3747                                                return !this.form;
     
    4353
    4454$.widget( "ui.button", {
    45         version: "1.10.4",
     55        version: "1.11.0",
    4656        defaultElement: "<button>",
    4757        options: {
     
    185195                }
    186196
    187                 // TODO: pull out $.Widget's handling for the disabled option into
    188                 // $.Widget.prototype._setOptionDisabled so it's easy to proxy and can
    189                 // be overridden by individual plugins
    190197                this._setOption( "disabled", options.disabled );
    191198                this._resetButton();
     
    251258                this._super( key, value );
    252259                if ( key === "disabled" ) {
     260                        this.widget().toggleClass( "ui-state-disabled", !!value );
    253261                        this.element.prop( "disabled", !!value );
    254262                        if ( value ) {
    255                                 this.buttonElement.removeClass( "ui-state-focus" );
     263                                if ( this.type === "checkbox" || this.type === "radio" ) {
     264                                        this.buttonElement.removeClass( "ui-state-focus" );
     265                                } else {
     266                                        this.buttonElement.removeClass( "ui-state-focus ui-state-active" );
     267                                }
    256268                        }
    257269                        return;
     
    337349
    338350$.widget( "ui.buttonset", {
    339         version: "1.10.4",
     351        version: "1.11.0",
    340352        options: {
    341353                items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"
     
    359371
    360372        refresh: function() {
    361                 var rtl = this.element.css( "direction" ) === "rtl";
    362 
    363                 this.buttons = this.element.find( this.options.items )
    364                         .filter( ":ui-button" )
    365                                 .button( "refresh" )
    366                         .end()
    367                         .not( ":ui-button" )
    368                                 .button()
    369                         .end()
     373                var rtl = this.element.css( "direction" ) === "rtl",
     374                        allButtons = this.element.find( this.options.items ),
     375                        existingButtons = allButtons.filter( ":ui-button" );
     376
     377                // Initialize new buttons
     378                allButtons.not( ":ui-button" ).button();
     379
     380                // Refresh existing buttons
     381                existingButtons.button( "refresh" );
     382
     383                this.buttons = allButtons
    370384                        .map(function() {
    371385                                return $( this ).button( "widget" )[ 0 ];
     
    393407});
    394408
    395 }( jQuery ) );
     409return $.ui.button;
     410
     411}));
  • _core_/plugins/jquery_ui/prive/javascript/ui/core.js

    r83719 r83728  
    11/*!
    2  * jQuery UI Core 1.10.4
     2 * jQuery UI Core 1.11.0
    33 * http://jqueryui.com
    44 *
     
    99 * http://api.jqueryui.com/category/ui-core/
    1010 */
    11 (function( $, undefined ) {
    12 
    13 var uuid = 0,
    14         runiqueId = /^ui-id-\d+$/;
     11(function( factory ) {
     12        if ( typeof define === "function" && define.amd ) {
     13
     14                // AMD. Register as an anonymous module.
     15                define( [ "jquery" ], factory );
     16        } else {
     17
     18                // Browser globals
     19                factory( jQuery );
     20        }
     21}(function( $ ) {
    1522
    1623// $.ui might exist from components with no dependencies, e.g., $.ui.position
     
    1825
    1926$.extend( $.ui, {
    20         version: "1.10.4",
     27        version: "1.11.0",
    2128
    2229        keyCode: {
     
    3037                HOME: 36,
    3138                LEFT: 37,
    32                 NUMPAD_ADD: 107,
    33                 NUMPAD_DECIMAL: 110,
    34                 NUMPAD_DIVIDE: 111,
    35                 NUMPAD_ENTER: 108,
    36                 NUMPAD_MULTIPLY: 106,
    37                 NUMPAD_SUBTRACT: 109,
    3839                PAGE_DOWN: 34,
    3940                PAGE_UP: 33,
     
    4748
    4849// plugins
     50$.fn.extend({
     51        scrollParent: function() {
     52                var position = this.css( "position" ),
     53                        excludeStaticParent = position === "absolute",
     54                        scrollParent = this.parents().filter( function() {
     55                                var parent = $( this );
     56                                if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
     57                                        return false;
     58                                }
     59                                return (/(auto|scroll)/).test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) );
     60                        }).eq( 0 );
     61
     62                return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;
     63        },
     64
     65        uniqueId: (function() {
     66                var uuid = 0;
     67
     68                return function() {
     69                        return this.each(function() {
     70                                if ( !this.id ) {
     71                                        this.id = "ui-id-" + ( ++uuid );
     72                                }
     73                        });
     74                };
     75        })(),
     76
     77        removeUniqueId: function() {
     78                return this.each(function() {
     79                        if ( /^ui-id-\d+$/.test( this.id ) ) {
     80                                $( this ).removeAttr( "id" );
     81                        }
     82                });
     83        }
     84});
     85
     86// selectors
     87function focusable( element, isTabIndexNotNaN ) {
     88        var map, mapName, img,
     89                nodeName = element.nodeName.toLowerCase();
     90        if ( "area" === nodeName ) {
     91                map = element.parentNode;
     92                mapName = map.name;
     93                if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
     94                        return false;
     95                }
     96                img = $( "img[usemap=#" + mapName + "]" )[0];
     97                return !!img && visible( img );
     98        }
     99        return ( /input|select|textarea|button|object/.test( nodeName ) ?
     100                !element.disabled :
     101                "a" === nodeName ?
     102                        element.href || isTabIndexNotNaN :
     103                        isTabIndexNotNaN) &&
     104                // the element and all of its ancestors must be visible
     105                visible( element );
     106}
     107
     108function visible( element ) {
     109        return $.expr.filters.visible( element ) &&
     110                !$( element ).parents().addBack().filter(function() {
     111                        return $.css( this, "visibility" ) === "hidden";
     112                }).length;
     113}
     114
     115$.extend( $.expr[ ":" ], {
     116        data: $.expr.createPseudo ?
     117                $.expr.createPseudo(function( dataName ) {
     118                        return function( elem ) {
     119                                return !!$.data( elem, dataName );
     120                        };
     121                }) :
     122                // support: jQuery <1.8
     123                function( elem, i, match ) {
     124                        return !!$.data( elem, match[ 3 ] );
     125                },
     126
     127        focusable: function( element ) {
     128                return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
     129        },
     130
     131        tabbable: function( element ) {
     132                var tabIndex = $.attr( element, "tabindex" ),
     133                        isTabIndexNaN = isNaN( tabIndex );
     134                return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
     135        }
     136});
     137
     138// support: jQuery <1.8
     139if ( !$( "<a>" ).outerWidth( 1 ).jquery ) {
     140        $.each( [ "Width", "Height" ], function( i, name ) {
     141                var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
     142                        type = name.toLowerCase(),
     143                        orig = {
     144                                innerWidth: $.fn.innerWidth,
     145                                innerHeight: $.fn.innerHeight,
     146                                outerWidth: $.fn.outerWidth,
     147                                outerHeight: $.fn.outerHeight
     148                        };
     149
     150                function reduce( elem, size, border, margin ) {
     151                        $.each( side, function() {
     152                                size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
     153                                if ( border ) {
     154                                        size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
     155                                }
     156                                if ( margin ) {
     157                                        size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
     158                                }
     159                        });
     160                        return size;
     161                }
     162
     163                $.fn[ "inner" + name ] = function( size ) {
     164                        if ( size === undefined ) {
     165                                return orig[ "inner" + name ].call( this );
     166                        }
     167
     168                        return this.each(function() {
     169                                $( this ).css( type, reduce( this, size ) + "px" );
     170                        });
     171                };
     172
     173                $.fn[ "outer" + name] = function( size, margin ) {
     174                        if ( typeof size !== "number" ) {
     175                                return orig[ "outer" + name ].call( this, size );
     176                        }
     177
     178                        return this.each(function() {
     179                                $( this).css( type, reduce( this, size, true, margin ) + "px" );
     180                        });
     181                };
     182        });
     183}
     184
     185// support: jQuery <1.8
     186if ( !$.fn.addBack ) {
     187        $.fn.addBack = function( selector ) {
     188                return this.add( selector == null ?
     189                        this.prevObject : this.prevObject.filter( selector )
     190                );
     191        };
     192}
     193
     194// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)
     195if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) {
     196        $.fn.removeData = (function( removeData ) {
     197                return function( key ) {
     198                        if ( arguments.length ) {
     199                                return removeData.call( this, $.camelCase( key ) );
     200                        } else {
     201                                return removeData.call( this );
     202                        }
     203                };
     204        })( $.fn.removeData );
     205}
     206
     207// deprecated
     208$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
     209
    49210$.fn.extend({
    50211        focus: (function( orig ) {
     
    64225        })( $.fn.focus ),
    65226
    66         scrollParent: function() {
    67                 var scrollParent;
    68                 if (($.ui.ie && (/(static|relative)/).test(this.css("position"))) || (/absolute/).test(this.css("position"))) {
    69                         scrollParent = this.parents().filter(function() {
    70                                 return (/(relative|absolute|fixed)/).test($.css(this,"position")) && (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
    71                         }).eq(0);
    72                 } else {
    73                         scrollParent = this.parents().filter(function() {
    74                                 return (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
    75                         }).eq(0);
    76                 }
    77 
    78                 return (/fixed/).test(this.css("position")) || !scrollParent.length ? $(document) : scrollParent;
     227        disableSelection: (function() {
     228                var eventType = "onselectstart" in document.createElement( "div" ) ?
     229                        "selectstart" :
     230                        "mousedown";
     231
     232                return function() {
     233                        return this.bind( eventType + ".ui-disableSelection", function( event ) {
     234                                event.preventDefault();
     235                        });
     236                };
     237        })(),
     238
     239        enableSelection: function() {
     240                return this.unbind( ".ui-disableSelection" );
    79241        },
    80242
     
    106268
    107269                return 0;
     270        }
     271});
     272
     273// $.ui.plugin is deprecated. Use $.widget() extensions instead.
     274$.ui.plugin = {
     275        add: function( module, option, set ) {
     276                var i,
     277                        proto = $.ui[ module ].prototype;
     278                for ( i in set ) {
     279                        proto.plugins[ i ] = proto.plugins[ i ] || [];
     280                        proto.plugins[ i ].push( [ option, set[ i ] ] );
     281                }
    108282        },
    109 
    110         uniqueId: function() {
    111                 return this.each(function() {
    112                         if ( !this.id ) {
    113                                 this.id = "ui-id-" + (++uuid);
    114                         }
    115                 });
    116         },
    117 
    118         removeUniqueId: function() {
    119                 return this.each(function() {
    120                         if ( runiqueId.test( this.id ) ) {
    121                                 $( this ).removeAttr( "id" );
    122                         }
    123                 });
    124         }
    125 });
    126 
    127 // selectors
    128 function focusable( element, isTabIndexNotNaN ) {
    129         var map, mapName, img,
    130                 nodeName = element.nodeName.toLowerCase();
    131         if ( "area" === nodeName ) {
    132                 map = element.parentNode;
    133                 mapName = map.name;
    134                 if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
    135                         return false;
    136                 }
    137                 img = $( "img[usemap=#" + mapName + "]" )[0];
    138                 return !!img && visible( img );
    139         }
    140         return ( /input|select|textarea|button|object/.test( nodeName ) ?
    141                 !element.disabled :
    142                 "a" === nodeName ?
    143                         element.href || isTabIndexNotNaN :
    144                         isTabIndexNotNaN) &&
    145                 // the element and all of its ancestors must be visible
    146                 visible( element );
    147 }
    148 
    149 function visible( element ) {
    150         return $.expr.filters.visible( element ) &&
    151                 !$( element ).parents().addBack().filter(function() {
    152                         return $.css( this, "visibility" ) === "hidden";
    153                 }).length;
    154 }
    155 
    156 $.extend( $.expr[ ":" ], {
    157         data: $.expr.createPseudo ?
    158                 $.expr.createPseudo(function( dataName ) {
    159                         return function( elem ) {
    160                                 return !!$.data( elem, dataName );
    161                         };
    162                 }) :
    163                 // support: jQuery <1.8
    164                 function( elem, i, match ) {
    165                         return !!$.data( elem, match[ 3 ] );
    166                 },
    167 
    168         focusable: function( element ) {
    169                 return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
    170         },
    171 
    172         tabbable: function( element ) {
    173                 var tabIndex = $.attr( element, "tabindex" ),
    174                         isTabIndexNaN = isNaN( tabIndex );
    175                 return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
    176         }
    177 });
    178 
    179 // support: jQuery <1.8
    180 if ( !$( "<a>" ).outerWidth( 1 ).jquery ) {
    181         $.each( [ "Width", "Height" ], function( i, name ) {
    182                 var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
    183                         type = name.toLowerCase(),
    184                         orig = {
    185                                 innerWidth: $.fn.innerWidth,
    186                                 innerHeight: $.fn.innerHeight,
    187                                 outerWidth: $.fn.outerWidth,
    188                                 outerHeight: $.fn.outerHeight
    189                         };
    190 
    191                 function reduce( elem, size, border, margin ) {
    192                         $.each( side, function() {
    193                                 size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
    194                                 if ( border ) {
    195                                         size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
    196                                 }
    197                                 if ( margin ) {
    198                                         size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
    199                                 }
    200                         });
    201                         return size;
    202                 }
    203 
    204                 $.fn[ "inner" + name ] = function( size ) {
    205                         if ( size === undefined ) {
    206                                 return orig[ "inner" + name ].call( this );
    207                         }
    208 
    209                         return this.each(function() {
    210                                 $( this ).css( type, reduce( this, size ) + "px" );
    211                         });
    212                 };
    213 
    214                 $.fn[ "outer" + name] = function( size, margin ) {
    215                         if ( typeof size !== "number" ) {
    216                                 return orig[ "outer" + name ].call( this, size );
    217                         }
    218 
    219                         return this.each(function() {
    220                                 $( this).css( type, reduce( this, size, true, margin ) + "px" );
    221                         });
    222                 };
    223         });
    224 }
    225 
    226 // support: jQuery <1.8
    227 if ( !$.fn.addBack ) {
    228         $.fn.addBack = function( selector ) {
    229                 return this.add( selector == null ?
    230                         this.prevObject : this.prevObject.filter( selector )
    231                 );
    232         };
    233 }
    234 
    235 // support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)
    236 if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) {
    237         $.fn.removeData = (function( removeData ) {
    238                 return function( key ) {
    239                         if ( arguments.length ) {
    240                                 return removeData.call( this, $.camelCase( key ) );
    241                         } else {
    242                                 return removeData.call( this );
    243                         }
    244                 };
    245         })( $.fn.removeData );
    246 }
    247 
    248 
    249 
    250 
    251 
    252 // deprecated
    253 $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
    254 
    255 $.support.selectstart = "onselectstart" in document.createElement( "div" );
    256 $.fn.extend({
    257         disableSelection: function() {
    258                 return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
    259                         ".ui-disableSelection", function( event ) {
    260                                 event.preventDefault();
    261                         });
    262         },
    263 
    264         enableSelection: function() {
    265                 return this.unbind( ".ui-disableSelection" );
    266         }
    267 });
    268 
    269 $.extend( $.ui, {
    270         // $.ui.plugin is deprecated. Use $.widget() extensions instead.
    271         plugin: {
    272                 add: function( module, option, set ) {
    273                         var i,
    274                                 proto = $.ui[ module ].prototype;
    275                         for ( i in set ) {
    276                                 proto.plugins[ i ] = proto.plugins[ i ] || [];
    277                                 proto.plugins[ i ].push( [ option, set[ i ] ] );
    278                         }
    279                 },
    280                 call: function( instance, name, args ) {
    281                         var i,
    282                                 set = instance.plugins[ name ];
    283                         if ( !set || !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) {
    284                                 return;
    285                         }
    286 
    287                         for ( i = 0; i < set.length; i++ ) {
    288                                 if ( instance.options[ set[ i ][ 0 ] ] ) {
    289                                         set[ i ][ 1 ].apply( instance.element, args );
    290                                 }
    291                         }
    292                 }
    293         },
    294 
    295         // only used by resizable
    296         hasScroll: function( el, a ) {
    297 
    298                 //If overflow is hidden, the element might have extra content, but the user wants to hide it
    299                 if ( $( el ).css( "overflow" ) === "hidden") {
    300                         return false;
    301                 }
    302 
    303                 var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
    304                         has = false;
    305 
    306                 if ( el[ scroll ] > 0 ) {
    307                         return true;
    308                 }
    309 
    310                 // TODO: determine which cases actually cause this to happen
    311                 // if the element doesn't have the scroll set, see if it's possible to
    312                 // set the scroll
    313                 el[ scroll ] = 1;
    314                 has = ( el[ scroll ] > 0 );
    315                 el[ scroll ] = 0;
    316                 return has;
    317         }
    318 });
    319 
    320 })( jQuery );
     283        call: function( instance, name, args, allowDisconnected ) {
     284                var i,
     285                        set = instance.plugins[ name ];
     286
     287                if ( !set ) {
     288                        return;
     289                }
     290
     291                if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
     292                        return;
     293                }
     294
     295                for ( i = 0; i < set.length; i++ ) {
     296                        if ( instance.options[ set[ i ][ 0 ] ] ) {
     297                                set[ i ][ 1 ].apply( instance.element, args );
     298                        }
     299                }
     300        }
     301};
     302
     303}));
  • _core_/plugins/jquery_ui/prive/javascript/ui/datepicker.js

    r83719 r83728  
    11/*!
    2  * jQuery UI Datepicker 1.10.4
     2 * jQuery UI Datepicker 1.11.0
    33 * http://jqueryui.com
    44 *
     
    88 *
    99 * http://api.jqueryui.com/datepicker/
    10  *
    11  * Depends:
    12  *      jquery.ui.core.js
    1310 */
    14 (function( $, undefined ) {
    15 
    16 $.extend($.ui, { datepicker: { version: "1.10.4" } });
    17 
    18 var PROP_NAME = "datepicker",
    19         instActive;
    20 
     11(function( factory ) {
     12        if ( typeof define === "function" && define.amd ) {
     13
     14                // AMD. Register as an anonymous module.
     15                define([
     16                        "jquery",
     17                        "./core"
     18                ], factory );
     19        } else {
     20
     21                // Browser globals
     22                factory( jQuery );
     23        }
     24}(function( $ ) {
     25
     26$.extend($.ui, { datepicker: { version: "1.11.0" } });
     27
     28var datepicker_instActive;
     29
     30function datepicker_getZindex( elem ) {
     31        var position, value;
     32        while ( elem.length && elem[ 0 ] !== document ) {
     33                // Ignore z-index if position is set to a value where z-index is ignored by the browser
     34                // This makes behavior of this function consistent across browsers
     35                // WebKit always returns auto if the element is positioned
     36                position = elem.css( "position" );
     37                if ( position === "absolute" || position === "relative" || position === "fixed" ) {
     38                        // IE returns 0 when zIndex is not specified
     39                        // other browsers return a string
     40                        // we ignore the case of nested elements with an explicit value of 0
     41                        // <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
     42                        value = parseInt( elem.css( "zIndex" ), 10 );
     43                        if ( !isNaN( value ) && value !== 0 ) {
     44                                return value;
     45                        }
     46                }
     47                elem = elem.parent();
     48        }
     49
     50        return 0;
     51}
    2152/* Date picker manager.
    2253   Use the singleton instance of this class, $.datepicker, to interact with the date picker.
     
    109140        };
    110141        $.extend(this._defaults, this.regional[""]);
    111         this.dpDiv = bindHover($("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"));
     142        this.regional.en = $.extend( true, {}, this.regional[ "" ]);
     143        this.regional[ "en-US" ] = $.extend( true, {}, this.regional.en );
     144        this.dpDiv = datepicker_bindHover($("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"));
    112145}
    113146
     
    129162         */
    130163        setDefaults: function(settings) {
    131                 extendRemove(this._defaults, settings || {});
     164                datepicker_extendRemove(this._defaults, settings || {});
    132165                return this;
    133166        },
     
    162195                        inline: inline, // is datepicker inline or not
    163196                        dpDiv: (!inline ? this.dpDiv : // presentation div
    164                         bindHover($("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")))};
     197                        datepicker_bindHover($("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")))};
    165198        },
    166199
     
    177210                        keypress(this._doKeyPress).keyup(this._doKeyUp);
    178211                this._autoSize(inst);
    179                 $.data(target, PROP_NAME, inst);
     212                $.data(target, "datepicker", inst);
    180213                //If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)
    181214                if( inst.settings.disabled ) {
     
    267300                }
    268301                divSpan.addClass(this.markerClassName).append(inst.dpDiv);
    269                 $.data(target, PROP_NAME, inst);
     302                $.data(target, "datepicker", inst);
    270303                this._setDate(inst, this._getDefaultDate(inst), true);
    271304                this._updateDatepicker(inst);
     
    303336                        inst = this._dialogInst = this._newInst(this._dialogInput, false);
    304337                        inst.settings = {};
    305                         $.data(this._dialogInput[0], PROP_NAME, inst);
    306                 }
    307                 extendRemove(inst.settings, settings || {});
     338                        $.data(this._dialogInput[0], "datepicker", inst);
     339                }
     340                datepicker_extendRemove(inst.settings, settings || {});
    308341                date = (date && date.constructor === Date ? this._formatDate(inst, date) : date);
    309342                this._dialogInput.val(date);
     
    328361                        $.blockUI(this.dpDiv);
    329362                }
    330                 $.data(this._dialogInput[0], PROP_NAME, inst);
     363                $.data(this._dialogInput[0], "datepicker", inst);
    331364                return this;
    332365        },
     
    338371                var nodeName,
    339372                        $target = $(target),
    340                         inst = $.data(target, PROP_NAME);
     373                        inst = $.data(target, "datepicker");
    341374
    342375                if (!$target.hasClass(this.markerClassName)) {
     
    345378
    346379                nodeName = target.nodeName.toLowerCase();
    347                 $.removeData(target, PROP_NAME);
     380                $.removeData(target, "datepicker");
    348381                if (nodeName === "input") {
    349382                        inst.append.remove();
     
    365398                var nodeName, inline,
    366399                        $target = $(target),
    367                         inst = $.data(target, PROP_NAME);
     400                        inst = $.data(target, "datepicker");
    368401
    369402                if (!$target.hasClass(this.markerClassName)) {
     
    393426                var nodeName, inline,
    394427                        $target = $(target),
    395                         inst = $.data(target, PROP_NAME);
     428                        inst = $.data(target, "datepicker");
    396429
    397430                if (!$target.hasClass(this.markerClassName)) {
     
    439472        _getInst: function(target) {
    440473                try {
    441                         return $.data(target, PROP_NAME);
     474                        return $.data(target, "datepicker");
    442475                }
    443476                catch (err) {
     
    479512                        minDate = this._getMinMaxDate(inst, "min");
    480513                        maxDate = this._getMinMaxDate(inst, "max");
    481                         extendRemove(inst.settings, settings);
     514                        datepicker_extendRemove(inst.settings, settings);
    482515                        // reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided
    483516                        if (minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined) {
     
    707740                        return;
    708741                }
    709                 extendRemove(inst.settings, beforeShowSettings);
     742                datepicker_extendRemove(inst.settings, beforeShowSettings);
    710743
    711744                inst.lastVal = null;
     
    744777                        showAnim = $.datepicker._get(inst, "showAnim");
    745778                        duration = $.datepicker._get(inst, "duration");
    746                         inst.dpDiv.zIndex($(input).zIndex()+1);
     779                        inst.dpDiv.css( "z-index", datepicker_getZindex( $( input ) ) + 1 );
    747780                        $.datepicker._datepickerShowing = true;
    748781
     
    764797        _updateDatepicker: function(inst) {
    765798                this.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
    766                 instActive = inst; // for delegate hover events
     799                datepicker_instActive = inst; // for delegate hover events
    767800                inst.dpDiv.empty().append(this._generateHTML(inst));
    768801                this._attachHandlers(inst);
    769                 inst.dpDiv.find("." + this._dayOverClass + " a").mouseover();
     802                inst.dpDiv.find("." + this._dayOverClass + " a");
    770803
    771804                var origyearshtml,
     
    850883                        inst = this._curInst;
    851884
    852                 if (!inst || (input && inst !== $.data(input, PROP_NAME))) {
     885                if (!inst || (input && inst !== $.data(input, "datepicker"))) {
    853886                        return;
    854887                }
     
    17001733                                for (dow = 0; dow < 7; dow++) { // days of the week
    17011734                                        day = (dow + firstDay) % 7;
    1702                                         thead += "<th" + ((dow + firstDay + 6) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "") + ">" +
     1735                                        thead += "<th scope='col'" + ((dow + firstDay + 6) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "") + ">" +
    17031736                                                "<span title='" + dayNames[day] + "'>" + dayNamesMin[day] + "</span></th>";
    17041737                                }
     
    19541987 * Bind hover events for datepicker elements.
    19551988 * Done via delegate so the binding only occurs once in the lifetime of the parent div.
    1956  * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
     1989 * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
    19571990 */
    1958 function bindHover(dpDiv) {
     1991function datepicker_bindHover(dpDiv) {
    19591992        var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
    19601993        return dpDiv.delegate(selector, "mouseout", function() {
     
    19682001                })
    19692002                .delegate(selector, "mouseover", function(){
    1970                         if (!$.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0])) {
     2003                        if (!$.datepicker._isDisabledDatepicker( datepicker_instActive.inline ? dpDiv.parent()[0] : datepicker_instActive.input[0])) {
    19712004                                $(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
    19722005                                $(this).addClass("ui-state-hover");
     
    19822015
    19832016/* jQuery extend now ignores nulls! */
    1984 function extendRemove(target, props) {
     2017function datepicker_extendRemove(target, props) {
    19852018        $.extend(target, props);
    19862019        for (var name in props) {
     
    20342067$.datepicker.initialized = false;
    20352068$.datepicker.uuid = new Date().getTime();
    2036 $.datepicker.version = "1.10.4";
    2037 
    2038 })(jQuery);
     2069$.datepicker.version = "1.11.0";
     2070
     2071return $.datepicker;
     2072
     2073}));
  • _core_/plugins/jquery_ui/prive/javascript/ui/dialog.js

    r83719 r83728  
    11/*!
    2  * jQuery UI Dialog 1.10.4
     2 * jQuery UI Dialog 1.11.0
    33 * http://jqueryui.com
    44 *
     
    88 *
    99 * http://api.jqueryui.com/dialog/
    10  *
    11  * Depends:
    12  *      jquery.ui.core.js
    13  *      jquery.ui.widget.js
    14  *  jquery.ui.button.js
    15  *      jquery.ui.draggable.js
    16  *      jquery.ui.mouse.js
    17  *      jquery.ui.position.js
    18  *      jquery.ui.resizable.js
    1910 */
    20 (function( $, undefined ) {
    21 
    22 var sizeRelatedOptions = {
    23                 buttons: true,
    24                 height: true,
    25                 maxHeight: true,
    26                 maxWidth: true,
    27                 minHeight: true,
    28                 minWidth: true,
    29                 width: true
    30         },
    31         resizableRelatedOptions = {
    32                 maxHeight: true,
    33                 maxWidth: true,
    34                 minHeight: true,
    35                 minWidth: true
    36         };
    37 
    38 $.widget( "ui.dialog", {
    39         version: "1.10.4",
     11(function( factory ) {
     12        if ( typeof define === "function" && define.amd ) {
     13
     14                // AMD. Register as an anonymous module.
     15                define([
     16                        "jquery",
     17                        "./core",
     18                        "./widget",
     19                        "./button",
     20                        "./draggable",
     21                        "./mouse",
     22                        "./position",
     23                        "./resizable"
     24                ], factory );
     25        } else {
     26
     27                // Browser globals
     28                factory( jQuery );
     29        }
     30}(function( $ ) {
     31
     32return $.widget( "ui.dialog", {
     33        version: "1.11.0",
    4034        options: {
    4135                appendTo: "body",
     
    4337                buttons: [],
    4438                closeOnEscape: true,
    45                 closeText: "close",
     39                closeText: "Close",
    4640                dialogClass: "",
    4741                draggable: true,
     
    8478        },
    8579
     80        sizeRelatedOptions: {
     81                buttons: true,
     82                height: true,
     83                maxHeight: true,
     84                maxWidth: true,
     85                minHeight: true,
     86                minWidth: true,
     87                width: true
     88        },
     89
     90        resizableRelatedOptions: {
     91                maxHeight: true,
     92                maxWidth: true,
     93                minHeight: true,
     94                minWidth: true
     95        },
     96
    8697        _create: function() {
    8798                this.originalCss = {
    88                         display: this.element[0].style.display,
    89                         width: this.element[0].style.width,
    90                         minHeight: this.element[0].style.minHeight,
    91                         maxHeight: this.element[0].style.maxHeight,
    92                         height: this.element[0].style.height
     99                        display: this.element[ 0 ].style.display,
     100                        width: this.element[ 0 ].style.width,
     101                        minHeight: this.element[ 0 ].style.minHeight,
     102                        maxHeight: this.element[ 0 ].style.maxHeight,
     103                        height: this.element[ 0 ].style.height
    93104                };
    94105                this.originalPosition = {
     
    96107                        index: this.element.parent().children().index( this.element )
    97108                };
    98                 this.originalTitle = this.element.attr("title");
     109                this.originalTitle = this.element.attr( "title" );
    99110                this.options.title = this.options.title || this.originalTitle;
    100111
     
    103114                this.element
    104115                        .show()
    105                         .removeAttr("title")
    106                         .addClass("ui-dialog-content ui-widget-content")
     116                        .removeAttr( "title" )
     117                        .addClass( "ui-dialog-content ui-widget-content" )
    107118                        .appendTo( this.uiDialog );
    108119
     
    118129
    119130                this._isOpen = false;
     131
     132                this._trackFocus();
    120133        },
    121134
     
    142155                this.element
    143156                        .removeUniqueId()
    144                         .removeClass("ui-dialog-content ui-widget-content")
     157                        .removeClass( "ui-dialog-content ui-widget-content" )
    145158                        .css( this.originalCss )
    146159                        // Without detaching first, the following becomes really slow
     
    155168                next = originalPosition.parent.children().eq( originalPosition.index );
    156169                // Don't try to place the dialog next to itself (#8613)
    157                 if ( next.length && next[0] !== this.element[0] ) {
     170                if ( next.length && next[ 0 ] !== this.element[ 0 ] ) {
    158171                        next.before( this.element );
    159172                } else {
     
    178191
    179192                this._isOpen = false;
     193                this._focusedElement = null;
    180194                this._destroyOverlay();
    181 
    182                 if ( !this.opener.filter(":focusable").focus().length ) {
     195                this._untrackInstance();
     196
     197                if ( !this.opener.filter( ":focusable" ).focus().length ) {
    183198
    184199                        // support: IE9
     
    213228
    214229        _moveToTop: function( event, silent ) {
    215                 var moved = !!this.uiDialog.nextAll(":visible").insertBefore( this.uiDialog ).length;
     230                var moved = false,
     231                        zIndicies = this.uiDialog.siblings( ".ui-front:visible" ).map(function() {
     232                                return +$( this ).css( "z-index" );
     233                        }).get(),
     234                        zIndexMax = Math.max.apply( null, zIndicies );
     235
     236                if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) {
     237                        this.uiDialog.css( "z-index", zIndexMax + 1 );
     238                        moved = true;
     239                }
     240
    216241                if ( moved && !silent ) {
    217242                        this._trigger( "focus", event );
     
    230255
    231256                this._isOpen = true;
    232                 this.opener = $( this.document[0].activeElement );
     257                this.opener = $( this.document[ 0 ].activeElement );
    233258
    234259                this._size();
     
    238263                this._show( this.uiDialog, this.options.show, function() {
    239264                        that._focusTabbable();
    240                         that._trigger("focus");
    241                 });
    242 
    243                 this._trigger("open");
     265                        that._trigger( "focus" );
     266                });
     267
     268                this._trigger( "open" );
    244269        },
    245270
    246271        _focusTabbable: function() {
    247272                // Set focus to the first match:
    248                 // 1. First element inside the dialog matching [autofocus]
    249                 // 2. Tabbable element inside the content element
    250                 // 3. Tabbable element inside the buttonpane
    251                 // 4. The close button
    252                 // 5. The dialog itself
    253                 var hasFocus = this.element.find("[autofocus]");
     273                // 1. An element that was focused previously
     274                // 2. First element inside the dialog matching [autofocus]
     275                // 3. Tabbable element inside the content element
     276                // 4. Tabbable element inside the buttonpane
     277                // 5. The close button
     278                // 6. The dialog itself
     279                var hasFocus = this._focusedElement;
     280                if ( !hasFocus ) {
     281                        hasFocus = this.element.find( "[autofocus]" );
     282                }
    254283                if ( !hasFocus.length ) {
    255                         hasFocus = this.element.find(":tabbable");
     284                        hasFocus = this.element.find( ":tabbable" );
    256285                }
    257286                if ( !hasFocus.length ) {
    258                         hasFocus = this.uiDialogButtonPane.find(":tabbable");
     287                        hasFocus = this.uiDialogButtonPane.find( ":tabbable" );
    259288                }
    260289                if ( !hasFocus.length ) {
    261                         hasFocus = this.uiDialogTitlebarClose.filter(":tabbable");
     290                        hasFocus = this.uiDialogTitlebarClose.filter( ":tabbable" );
    262291                }
    263292                if ( !hasFocus.length ) {
     
    306335
    307336                                // prevent tabbing out of dialogs
    308                                 if ( event.keyCode !== $.ui.keyCode.TAB ) {
     337                                if ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) {
    309338                                        return;
    310339                                }
    311                                 var tabbables = this.uiDialog.find(":tabbable"),
    312                                         first = tabbables.filter(":first"),
    313                                         last  = tabbables.filter(":last");
     340                                var tabbables = this.uiDialog.find( ":tabbable" ),
     341                                        first = tabbables.filter( ":first" ),
     342                                        last = tabbables.filter( ":last" );
    314343
    315344                                if ( ( event.target === last[0] || event.target === this.uiDialog[0] ) && !event.shiftKey ) {
    316                                         first.focus( 1 );
     345                                        this._delay(function() {
     346                                                first.focus();
     347                                        });
    317348                                        event.preventDefault();
    318349                                } else if ( ( event.target === first[0] || event.target === this.uiDialog[0] ) && event.shiftKey ) {
    319                                         last.focus( 1 );
     350                                        this._delay(function() {
     351                                                last.focus();
     352                                        });
    320353                                        event.preventDefault();
    321354                                }
     
    331364                // that the dialog content is marked up properly
    332365                // otherwise we brute force the content as the description
    333                 if ( !this.element.find("[aria-describedby]").length ) {
     366                if ( !this.element.find( "[aria-describedby]" ).length ) {
    334367                        this.uiDialog.attr({
    335                                 "aria-describedby": this.element.uniqueId().attr("id")
     368                                "aria-describedby": this.element.uniqueId().attr( "id" )
    336369                        });
    337370                }
     
    341374                var uiDialogTitle;
    342375
    343                 this.uiDialogTitlebar = $("<div>")
    344                         .addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix")
     376                this.uiDialogTitlebar = $( "<div>" )
     377                        .addClass( "ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix" )
    345378                        .prependTo( this.uiDialog );
    346379                this._on( this.uiDialogTitlebar, {
     
    349382                                // Focusing a dialog that is partially scrolled out of view
    350383                                // causes the browser to scroll it into view, preventing the click event
    351                                 if ( !$( event.target ).closest(".ui-dialog-titlebar-close") ) {
     384                                if ( !$( event.target ).closest( ".ui-dialog-titlebar-close" ) ) {
    352385                                        // Dialog isn't getting focus when dragging (#8063)
    353386                                        this.uiDialog.focus();
     
    367400                                text: false
    368401                        })
    369                         .addClass("ui-dialog-titlebar-close")
     402                        .addClass( "ui-dialog-titlebar-close" )
    370403                        .appendTo( this.uiDialogTitlebar );
    371404                this._on( this.uiDialogTitlebarClose, {
     
    376409                });
    377410
    378                 uiDialogTitle = $("<span>")
     411                uiDialogTitle = $( "<span>" )
    379412                        .uniqueId()
    380                         .addClass("ui-dialog-title")
     413                        .addClass( "ui-dialog-title" )
    381414                        .prependTo( this.uiDialogTitlebar );
    382415                this._title( uiDialogTitle );
    383416
    384417                this.uiDialog.attr({
    385                         "aria-labelledby": uiDialogTitle.attr("id")
     418                        "aria-labelledby": uiDialogTitle.attr( "id" )
    386419                });
    387420        },
     
    389422        _title: function( title ) {
    390423                if ( !this.options.title ) {
    391                         title.html("&#160;");
     424                        title.html( "&#160;" );
    392425                }
    393426                title.text( this.options.title );
     
    395428
    396429        _createButtonPane: function() {
    397                 this.uiDialogButtonPane = $("<div>")
    398                         .addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");
    399 
    400                 this.uiButtonSet = $("<div>")
    401                         .addClass("ui-dialog-buttonset")
     430                this.uiDialogButtonPane = $( "<div>" )
     431                        .addClass( "ui-dialog-buttonpane ui-widget-content ui-helper-clearfix" );
     432
     433                this.uiButtonSet = $( "<div>" )
     434                        .addClass( "ui-dialog-buttonset" )
    402435                        .appendTo( this.uiDialogButtonPane );
    403436
     
    414447
    415448                if ( $.isEmptyObject( buttons ) || ($.isArray( buttons ) && !buttons.length) ) {
    416                         this.uiDialog.removeClass("ui-dialog-buttons");
     449                        this.uiDialog.removeClass( "ui-dialog-buttons" );
    417450                        return;
    418451                }
     
    428461                        click = props.click;
    429462                        props.click = function() {
    430                                 click.apply( that.element[0], arguments );
     463                                click.apply( that.element[ 0 ], arguments );
    431464                        };
    432465                        buttonOptions = {
     
    440473                                .appendTo( that.uiButtonSet );
    441474                });
    442                 this.uiDialog.addClass("ui-dialog-buttons");
     475                this.uiDialog.addClass( "ui-dialog-buttons" );
    443476                this.uiDialogButtonPane.appendTo( this.uiDialog );
    444477        },
     
    460493                        containment: "document",
    461494                        start: function( event, ui ) {
    462                                 $( this ).addClass("ui-dialog-dragging");
     495                                $( this ).addClass( "ui-dialog-dragging" );
    463496                                that._blockFrames();
    464497                                that._trigger( "dragStart", event, filteredUi( ui ) );
     
    468501                        },
    469502                        stop: function( event, ui ) {
    470                                 options.position = [
    471                                         ui.position.left - that.document.scrollLeft(),
    472                                         ui.position.top - that.document.scrollTop()
    473                                 ];
    474                                 $( this ).removeClass("ui-dialog-dragging");
     503                                var left = ui.offset.left - that.document.scrollLeft(),
     504                                        top = ui.offset.top - that.document.scrollTop();
     505
     506                                options.position = {
     507                                        my: "left top",
     508                                        at: "left" + (left >= 0 ? "+" : "") + left + " " +
     509                                                "top" + (top >= 0 ? "+" : "") + top,
     510                                        of: that.window
     511                                };
     512                                $( this ).removeClass( "ui-dialog-dragging" );
    475513                                that._unblockFrames();
    476514                                that._trigger( "dragStop", event, filteredUi( ui ) );
     
    509547                        handles: resizeHandles,
    510548                        start: function( event, ui ) {
    511                                 $( this ).addClass("ui-dialog-resizing");
     549                                $( this ).addClass( "ui-dialog-resizing" );
    512550                                that._blockFrames();
    513551                                that._trigger( "resizeStart", event, filteredUi( ui ) );
     
    517555                        },
    518556                        stop: function( event, ui ) {
    519                                 options.height = $( this ).height();
    520                                 options.width = $( this ).width();
    521                                 $( this ).removeClass("ui-dialog-resizing");
     557                                var offset = that.uiDialog.offset(),
     558                                        left = offset.left - that.document.scrollLeft(),
     559                                        top = offset.top - that.document.scrollTop();
     560
     561                                options.height = that.uiDialog.height();
     562                                options.width = that.uiDialog.width();
     563                                options.position = {
     564                                        my: "left top",
     565                                        at: "left" + (left >= 0 ? "+" : "") + left + " " +
     566                                                "top" + (top >= 0 ? "+" : "") + top,
     567                                        of: that.window
     568                                };
     569                                $( this ).removeClass( "ui-dialog-resizing" );
    522570                                that._unblockFrames();
    523571                                that._trigger( "resizeStop", event, filteredUi( ui ) );
     
    525573                })
    526574                .css( "position", position );
     575        },
     576
     577        _trackFocus: function() {
     578                this._on( this.widget(), {
     579                        "focusin": function( event ) {
     580                                this._untrackInstance();
     581                                this._trackingInstances().unshift( this );
     582                                this._focusedElement = $( event.target );
     583                        }
     584                });
     585        },
     586
     587        _untrackInstance: function() {
     588                var instances = this._trackingInstances(),
     589                        exists = $.inArray( this, instances );
     590                if ( exists !== -1 ) {
     591                        instances.splice( exists, 1 );
     592                }
     593        },
     594
     595        _trackingInstances: function() {
     596                var instances = this.document.data( "ui-dialog-instances" );
     597                if ( !instances ) {
     598                        instances = [];
     599                        this.document.data( "ui-dialog-instances", instances );
     600                }
     601                return instances;
    527602        },
    528603
     
    537612        _position: function() {
    538613                // Need to show the dialog to get the actual offset in the position plugin
    539                 var isVisible = this.uiDialog.is(":visible");
     614                var isVisible = this.uiDialog.is( ":visible" );
    540615                if ( !isVisible ) {
    541616                        this.uiDialog.show();
     
    555630                        that._setOption( key, value );
    556631
    557                         if ( key in sizeRelatedOptions ) {
     632                        if ( key in that.sizeRelatedOptions ) {
    558633                                resize = true;
    559634                        }
    560                         if ( key in resizableRelatedOptions ) {
     635                        if ( key in that.resizableRelatedOptions ) {
    561636                                resizableOptions[ key ] = value;
    562637                        }
     
    567642                        this._position();
    568643                }
    569                 if ( this.uiDialog.is(":data(ui-resizable)") ) {
     644                if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
    570645                        this.uiDialog.resizable( "option", resizableOptions );
    571646                }
     
    604679
    605680                if ( key === "draggable" ) {
    606                         isDraggable = uiDialog.is(":data(ui-draggable)");
     681                        isDraggable = uiDialog.is( ":data(ui-draggable)" );
    607682                        if ( isDraggable && !value ) {
    608                                 uiDialog.draggable("destroy");
     683                                uiDialog.draggable( "destroy" );
    609684                        }
    610685
     
    620695                if ( key === "resizable" ) {
    621696                        // currently resizable, becoming non-resizable
    622                         isResizable = uiDialog.is(":data(ui-resizable)");
     697                        isResizable = uiDialog.is( ":data(ui-resizable)" );
    623698                        if ( isResizable && !value ) {
    624                                 uiDialog.resizable("destroy");
     699                                uiDialog.resizable( "destroy" );
    625700                        }
    626701
     
    637712
    638713                if ( key === "title" ) {
    639                         this._title( this.uiDialogTitlebar.find(".ui-dialog-title") );
     714                        this._title( this.uiDialogTitlebar.find( ".ui-dialog-title" ) );
    640715                }
    641716        },
     
    681756                }
    682757
    683                 if (this.uiDialog.is(":data(ui-resizable)") ) {
     758                if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
    684759                        this.uiDialog.resizable( "option", "minHeight", this._minHeight() );
    685760                }
     
    709784
    710785        _allowInteraction: function( event ) {
    711                 if ( $( event.target ).closest(".ui-dialog").length ) {
     786                if ( $( event.target ).closest( ".ui-dialog" ).length ) {
    712787                        return true;
    713788                }
     
    715790                // TODO: Remove hack when datepicker implements
    716791                // the .ui-front logic (#8989)
    717                 return !!$( event.target ).closest(".ui-datepicker").length;
     792                return !!$( event.target ).closest( ".ui-datepicker" ).length;
    718793        },
    719794
     
    723798                }
    724799
    725                 var that = this,
    726                         widgetFullName = this.widgetFullName;
    727                 if ( !$.ui.dialog.overlayInstances ) {
    728                         // Prevent use of anchors and inputs.
    729                         // We use a delay in case the overlay is created from an
    730                         // event that we're going to be cancelling. (#2804)
    731                         this._delay(function() {
    732                                 // Handle .dialog().dialog("close") (#4065)
    733                                 if ( $.ui.dialog.overlayInstances ) {
    734                                         this.document.bind( "focusin.dialog", function( event ) {
    735                                                 if ( !that._allowInteraction( event ) ) {
    736                                                         event.preventDefault();
    737                                                         $(".ui-dialog:visible:last .ui-dialog-content")
    738                                                                 .data( widgetFullName )._focusTabbable();
    739                                                 }
    740                                         });
     800                // We use a delay in case the overlay is created from an
     801                // event that we're going to be cancelling (#2804)
     802                var isOpening = true;
     803                this._delay(function() {
     804                        isOpening = false;
     805                });
     806
     807                if ( !this.document.data( "ui-dialog-overlays" ) ) {
     808
     809                        // Prevent use of anchors and inputs
     810                        // Using _on() for an event handler shared across many instances is
     811                        // safe because the dialogs stack and must be closed in reverse order
     812                        this._on( this.document, {
     813                                focusin: function( event ) {
     814                                        if ( isOpening ) {
     815                                                return;
     816                                        }
     817
     818                                        if ( !this._allowInteraction( event ) ) {
     819                                                event.preventDefault();
     820                                                this._trackingInstances()[ 0 ]._focusTabbable();
     821                                        }
    741822                                }
    742823                        });
    743824                }
    744825
    745                 this.overlay = $("<div>")
    746                         .addClass("ui-widget-overlay ui-front")
     826                this.overlay = $( "<div>" )
     827                        .addClass( "ui-widget-overlay ui-front" )
    747828                        .appendTo( this._appendTo() );
    748829                this._on( this.overlay, {
    749830                        mousedown: "_keepFocus"
    750831                });
    751                 $.ui.dialog.overlayInstances++;
     832                this.document.data( "ui-dialog-overlays",
     833                        (this.document.data( "ui-dialog-overlays" ) || 0) + 1 );
    752834        },
    753835
     
    758840
    759841                if ( this.overlay ) {
    760                         $.ui.dialog.overlayInstances--;
    761 
    762                         if ( !$.ui.dialog.overlayInstances ) {
    763                                 this.document.unbind( "focusin.dialog" );
    764                         }
     842                        var overlays = this.document.data( "ui-dialog-overlays" ) - 1;
     843
     844                        if ( !overlays ) {
     845                                this.document
     846                                        .unbind( "focusin" )
     847                                        .removeData( "ui-dialog-overlays" );
     848                        } else {
     849                                this.document.data( "ui-dialog-overlays", overlays );
     850                        }
     851
    765852                        this.overlay.remove();
    766853                        this.overlay = null;
     
    769856});
    770857
    771 $.ui.dialog.overlayInstances = 0;
    772 
    773 // DEPRECATED
    774 if ( $.uiBackCompat !== false ) {
    775         // position option with array notation
    776         // just override with old implementation
    777         $.widget( "ui.dialog", $.ui.dialog, {
    778                 _position: function() {
    779                         var position = this.options.position,
    780                                 myAt = [],
    781                                 offset = [ 0, 0 ],
    782                                 isVisible;
    783 
    784                         if ( position ) {
    785                                 if ( typeof position === "string" || (typeof position === "object" && "0" in position ) ) {
    786                                         myAt = position.split ? position.split(" ") : [ position[0], position[1] ];
    787                                         if ( myAt.length === 1 ) {
    788                                                 myAt[1] = myAt[0];
    789                                         }
    790 
    791                                         $.each( [ "left", "top" ], function( i, offsetPosition ) {
    792                                                 if ( +myAt[ i ] === myAt[ i ] ) {
    793                                                         offset[ i ] = myAt[ i ];
    794                                                         myAt[ i ] = offsetPosition;
    795                                                 }
    796                                         });
    797 
    798                                         position = {
    799                                                 my: myAt[0] + (offset[0] < 0 ? offset[0] : "+" + offset[0]) + " " +
    800                                                         myAt[1] + (offset[1] < 0 ? offset[1] : "+" + offset[1]),
    801                                                 at: myAt.join(" ")
    802                                         };
    803                                 }
    804 
    805                                 position = $.extend( {}, $.ui.dialog.prototype.options.position, position );
    806                         } else {
    807                                 position = $.ui.dialog.prototype.options.position;
    808                         }
    809 
    810                         // need to show the dialog to get the actual offset in the position plugin
    811                         isVisible = this.uiDialog.is(":visible");
    812                         if ( !isVisible ) {
    813                                 this.uiDialog.show();
    814                         }
    815                         this.uiDialog.position( position );
    816                         if ( !isVisible ) {
    817                                 this.uiDialog.hide();
    818                         }
    819                 }
    820         });
    821 }
    822 
    823 }( jQuery ) );
     858}));
  • _core_/plugins/jquery_ui/prive/javascript/ui/draggable.js

    r83719 r83728  
    11/*!
    2  * jQuery UI Draggable 1.10.4
     2 * jQuery UI Draggable 1.11.0
    33 * http://jqueryui.com
    44 *
     
    88 *
    99 * http://api.jqueryui.com/draggable/
    10  *
    11  * Depends:
    12  *      jquery.ui.core.js
    13  *      jquery.ui.mouse.js
    14  *      jquery.ui.widget.js
    1510 */
    16 (function( $, undefined ) {
     11(function( factory ) {
     12        if ( typeof define === "function" && define.amd ) {
     13
     14                // AMD. Register as an anonymous module.
     15                define([
     16                        "jquery",
     17                        "./core",
     18                        "./mouse",
     19                        "./widget"
     20                ], factory );
     21        } else {
     22
     23                // Browser globals
     24                factory( jQuery );
     25        }
     26}(function( $ ) {
    1727
    1828$.widget("ui.draggable", $.ui.mouse, {
    19         version: "1.10.4",
     29        version: "1.11.0",
    2030        widgetEventPrefix: "drag",
    2131        options: {
     
    6171                        this.element.addClass("ui-draggable-disabled");
    6272                }
     73                this._setHandleClassName();
    6374
    6475                this._mouseInit();
    65 
     76        },
     77
     78        _setOption: function( key, value ) {
     79                this._super( key, value );
     80                if ( key === "handle" ) {
     81                        this._setHandleClassName();
     82                }
    6683        },
    6784
    6885        _destroy: function() {
     86                if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) {
     87                        this.destroyOnClear = true;
     88                        return;
     89                }
    6990                this.element.removeClass( "ui-draggable ui-draggable-dragging ui-draggable-disabled" );
     91                this._removeHandleClassName();
    7092                this._mouseDestroy();
    7193        },
     
    7395        _mouseCapture: function(event) {
    7496
    75                 var o = this.options;
     97                var document = this.document[ 0 ],
     98                        o = this.options;
     99
     100                // support: IE9
     101                // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
     102                try {
     103                        // Support: IE9+
     104                        // If the <body> is blurred, IE will switch windows, see #9520
     105                        if ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== "body" ) {
     106                                // Blur any element that currently has focus, see #4261
     107                                $( document.activeElement ).blur();
     108                        }
     109                } catch ( error ) {}
    76110
    77111                // among others, prevent a drag on a resizable-handle
     
    89123                        $("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>")
    90124                        .css({
    91                                 width: this.offsetWidth+"px", height: this.offsetHeight+"px",
     125                                width: this.offsetWidth + "px", height: this.offsetHeight + "px",
    92126                                position: "absolute", opacity: "0.001", zIndex: 1000
    93127                        })
     
    113147
    114148                //If ddmanager is used for droppables, set the global draggable
    115                 if($.ui.ddmanager) {
     149                if ($.ui.ddmanager) {
    116150                        $.ui.ddmanager.current = this;
    117151                }
     
    151185
    152186                //Generate the original position
    153                 this.originalPosition = this.position = this._generatePosition(event);
     187                this.originalPosition = this.position = this._generatePosition( event, false );
    154188                this.originalPageX = event.pageX;
    155189                this.originalPageY = event.pageY;
     
    162196
    163197                //Trigger event + callbacks
    164                 if(this._trigger("start", event) === false) {
     198                if (this._trigger("start", event) === false) {
    165199                        this._clear();
    166200                        return false;
     
    174208                        $.ui.ddmanager.prepareOffsets(this, event);
    175209                }
    176 
    177210
    178211                this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
     
    193226
    194227                //Compute the helpers position
    195                 this.position = this._generatePosition(event);
     228                this.position = this._generatePosition( event, true );
    196229                this.positionAbs = this._convertPositionTo("absolute");
    197230
     
    199232                if (!noPropagation) {
    200233                        var ui = this._uiHash();
    201                         if(this._trigger("drag", event, ui) === false) {
     234                        if (this._trigger("drag", event, ui) === false) {
    202235                                this._mouseUp({});
    203236                                return false;
     
    206239                }
    207240
    208                 if(!this.options.axis || this.options.axis !== "y") {
    209                         this.helper[0].style.left = this.position.left+"px";
    210                 }
    211                 if(!this.options.axis || this.options.axis !== "x") {
    212                         this.helper[0].style.top = this.position.top+"px";
    213                 }
    214                 if($.ui.ddmanager) {
     241                this.helper[ 0 ].style.left = this.position.left + "px";
     242                this.helper[ 0 ].style.top = this.position.top + "px";
     243
     244                if ($.ui.ddmanager) {
    215245                        $.ui.ddmanager.drag(this, event);
    216246                }
     
    229259
    230260                //if a drop comes from outside (a sortable)
    231                 if(this.dropped) {
     261                if (this.dropped) {
    232262                        dropped = this.dropped;
    233263                        this.dropped = false;
    234264                }
    235265
    236                 //if the original element is no longer in the DOM don't bother to continue (see #8269)
    237                 if ( this.options.helper === "original" && !$.contains( this.element[ 0 ].ownerDocument, this.element[ 0 ] ) ) {
    238                         return false;
    239                 }
    240 
    241                 if((this.options.revert === "invalid" && !dropped) || (this.options.revert === "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {
     266                if ((this.options.revert === "invalid" && !dropped) || (this.options.revert === "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {
    242267                        $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
    243                                 if(that._trigger("stop", event) !== false) {
     268                                if (that._trigger("stop", event) !== false) {
    244269                                        that._clear();
    245270                                }
    246271                        });
    247272                } else {
    248                         if(this._trigger("stop", event) !== false) {
     273                        if (this._trigger("stop", event) !== false) {
    249274                                this._clear();
    250275                        }
     
    261286
    262287                //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
    263                 if( $.ui.ddmanager ) {
     288                if ( $.ui.ddmanager ) {
    264289                        $.ui.ddmanager.dragStop(this, event);
    265290                }
    266291
     292                // The interaction is over; whether or not the click resulted in a drag, focus the element
     293                this.element.focus();
     294
    267295                return $.ui.mouse.prototype._mouseUp.call(this, event);
    268296        },
     
    270298        cancel: function() {
    271299
    272                 if(this.helper.is(".ui-draggable-dragging")) {
     300                if (this.helper.is(".ui-draggable-dragging")) {
    273301                        this._mouseUp({});
    274302                } else {
     
    286314        },
    287315
     316        _setHandleClassName: function() {
     317                this._removeHandleClassName();
     318                $( this.options.handle || this.element ).addClass( "ui-draggable-handle" );
     319        },
     320
     321        _removeHandleClassName: function() {
     322                this.element.find( ".ui-draggable-handle" )
     323                        .addBack()
     324                        .removeClass( "ui-draggable-handle" );
     325        },
     326
    288327        _createHelper: function(event) {
    289328
    290329                var o = this.options,
    291                         helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper === "clone" ? this.element.clone().removeAttr("id") : this.element);
    292 
    293                 if(!helper.parents("body").length) {
     330                        helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[ 0 ], [ event ])) : (o.helper === "clone" ? this.element.clone().removeAttr("id") : this.element);
     331
     332                if (!helper.parents("body").length) {
    294333                        helper.appendTo((o.appendTo === "parent" ? this.element[0].parentNode : o.appendTo));
    295334                }
    296335
    297                 if(helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) {
     336                if (helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) {
    298337                        helper.css("position", "absolute");
    299338                }
     
    308347                }
    309348                if ($.isArray(obj)) {
    310                         obj = {left: +obj[0], top: +obj[1] || 0};
     349                        obj = { left: +obj[0], top: +obj[1] || 0 };
    311350                }
    312351                if ("left" in obj) {
     
    324363        },
    325364
     365        _isRootNode: function( element ) {
     366                return ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ];
     367        },
     368
    326369        _getParentOffset: function() {
    327370
    328371                //Get the offsetParent and cache its position
    329                 var po = this.offsetParent.offset();
     372                var po = this.offsetParent.offset(),
     373                        document = this.document[ 0 ];
    330374
    331375                // This is a special case where we need to modify a offset calculated on start, since the following happened:
     
    333377                // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
    334378                //    the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
    335                 if(this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) {
     379                if (this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) {
    336380                        po.left += this.scrollParent.scrollLeft();
    337381                        po.top += this.scrollParent.scrollTop();
    338382                }
    339383
    340                 //This needs to be actually done for all browsers, since pageX/pageY includes this information
    341                 //Ugly IE fix
    342                 if((this.offsetParent[0] === document.body) ||
    343                         (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) {
     384                if ( this._isRootNode( this.offsetParent[ 0 ] ) ) {
    344385                        po = { top: 0, left: 0 };
    345386                }
     
    353394
    354395        _getRelativeOffset: function() {
    355 
    356                 if(this.cssPosition === "relative") {
    357                         var p = this.element.position();
    358                         return {
    359                                 top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
    360                                 left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
    361                         };
    362                 } else {
     396                if ( this.cssPosition !== "relative" ) {
    363397                        return { top: 0, left: 0 };
    364398                }
     399
     400                var p = this.element.position(),
     401                        scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
     402
     403                return {
     404                        top: p.top - ( parseInt(this.helper.css( "top" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ),
     405                        left: p.left - ( parseInt(this.helper.css( "left" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 )
     406                };
    365407
    366408        },
     
    385427
    386428                var over, c, ce,
    387                         o = this.options;
     429                        o = this.options,
     430                        document = this.document[ 0 ];
     431
     432                this.relative_container = null;
    388433
    389434                if ( !o.containment ) {
     
    424469                ce = c[ 0 ];
    425470
    426                 if( !ce ) {
     471                if ( !ce ) {
    427472                        return;
    428473                }
     
    432477                this.containment = [
    433478                        ( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ),
    434                         ( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ) ,
     479                        ( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ),
    435480                        ( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) - ( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) - ( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) - this.helperProportions.width - this.margins.left - this.margins.right,
    436481                        ( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) - ( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) - ( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) - this.helperProportions.height - this.margins.top  - this.margins.bottom
     
    441486        _convertPositionTo: function(d, pos) {
    442487
    443                 if(!pos) {
     488                if (!pos) {
    444489                        pos = this.position;
    445490                }
    446491
    447492                var mod = d === "absolute" ? 1 : -1,
    448                         scroll = this.cssPosition === "absolute" && !( this.scrollParent[ 0 ] !== document && $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ? this.offsetParent : this.scrollParent;
    449 
    450                 //Cache the scroll
    451                 if (!this.offset.scroll) {
    452                         this.offset.scroll = {top : scroll.scrollTop(), left : scroll.scrollLeft()};
    453                 }
     493                        scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
    454494
    455495                return {
     
    458498                                this.offset.relative.top * mod +                                                                                // Only for relative positioned nodes: Relative offset from element to offset parent
    459499                                this.offset.parent.top * mod -                                                                          // The offsetParent's offset without borders (offset + border)
    460                                 ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : this.offset.scroll.top ) * mod )
     500                                ( ( this.cssPosition === "fixed" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod)
    461501                        ),
    462502                        left: (
     
    464504                                this.offset.relative.left * mod +                                                                               // Only for relative positioned nodes: Relative offset from element to offset parent
    465505                                this.offset.parent.left * mod   -                                                                               // The offsetParent's offset without borders (offset + border)
    466                                 ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : this.offset.scroll.left ) * mod )
     506                                ( ( this.cssPosition === "fixed" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod)
    467507                        )
    468508                };
     
    470510        },
    471511
    472         _generatePosition: function(event) {
     512        _generatePosition: function( event, constrainPosition ) {
    473513
    474514                var containment, co, top, left,
    475515                        o = this.options,
    476                         scroll = this.cssPosition === "absolute" && !( this.scrollParent[ 0 ] !== document && $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ? this.offsetParent : this.scrollParent,
     516                        scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ),
    477517                        pageX = event.pageX,
    478518                        pageY = event.pageY;
    479519
    480                 //Cache the scroll
    481                 if (!this.offset.scroll) {
    482                         this.offset.scroll = {top : scroll.scrollTop(), left : scroll.scrollLeft()};
     520                // Cache the scroll
     521                if ( !scrollIsRootNode || !this.offset.scroll ) {
     522                        this.offset.scroll = {
     523                                top: this.scrollParent.scrollTop(),
     524                                left: this.scrollParent.scrollLeft()
     525                        };
    483526                }
    484527
     
    489532
    490533                // If we are not dragging yet, we won't check for options
    491                 if ( this.originalPosition ) {
     534                if ( constrainPosition ) {
    492535                        if ( this.containment ) {
    493536                                if ( this.relative_container ){
     
    499542                                                this.containment[ 3 ] + co.top
    500543                                        ];
    501                                 }
    502                                 else {
     544                                } else {
    503545                                        containment = this.containment;
    504546                                }
    505547
    506                                 if(event.pageX - this.offset.click.left < containment[0]) {
     548                                if (event.pageX - this.offset.click.left < containment[0]) {
    507549                                        pageX = containment[0] + this.offset.click.left;
    508550                                }
    509                                 if(event.pageY - this.offset.click.top < containment[1]) {
     551                                if (event.pageY - this.offset.click.top < containment[1]) {
    510552                                        pageY = containment[1] + this.offset.click.top;
    511553                                }
    512                                 if(event.pageX - this.offset.click.left > containment[2]) {
     554                                if (event.pageX - this.offset.click.left > containment[2]) {
    513555                                        pageX = containment[2] + this.offset.click.left;
    514556                                }
    515                                 if(event.pageY - this.offset.click.top > containment[3]) {
     557                                if (event.pageY - this.offset.click.top > containment[3]) {
    516558                                        pageY = containment[3] + this.offset.click.top;
    517559                                }
    518560                        }
    519561
    520                         if(o.grid) {
     562                        if (o.grid) {
    521563                                //Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950)
    522564                                top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;
     
    527569                        }
    528570
     571                        if ( o.axis === "y" ) {
     572                                pageX = this.originalPageX;
     573                        }
     574
     575                        if ( o.axis === "x" ) {
     576                                pageY = this.originalPageY;
     577                        }
    529578                }
    530579
     
    535584                                this.offset.relative.top -                                                                                              // Only for relative positioned nodes: Relative offset from element to offset parent
    536585                                this.offset.parent.top +                                                                                                // The offsetParent's offset without borders (offset + border)
    537                                 ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : this.offset.scroll.top )
     586                                ( this.cssPosition === "fixed" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) )
    538587                        ),
    539588                        left: (
     
    542591                                this.offset.relative.left -                                                                                             // Only for relative positioned nodes: Relative offset from element to offset parent
    543592                                this.offset.parent.left +                                                                                               // The offsetParent's offset without borders (offset + border)
    544                                 ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : this.offset.scroll.left )
     593                                ( this.cssPosition === "fixed" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) )
    545594                        )
    546595                };
     
    550599        _clear: function() {
    551600                this.helper.removeClass("ui-draggable-dragging");
    552                 if(this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) {
     601                if (this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) {
    553602                        this.helper.remove();
    554603                }
    555604                this.helper = null;
    556605                this.cancelHelperRemoval = false;
     606                if ( this.destroyOnClear ) {
     607                        this.destroy();
     608                }
    557609        },
    558610
     
    561613        _trigger: function(type, event, ui) {
    562614                ui = ui || this._uiHash();
    563                 $.ui.plugin.call(this, type, [event, ui]);
     615                $.ui.plugin.call( this, type, [ event, ui, this ], true );
    564616                //The absolute position has to be recalculated after plugins
    565                 if(type === "drag") {
     617                if (type === "drag") {
    566618                        this.positionAbs = this._convertPositionTo("absolute");
    567619                }
     
    583635
    584636$.ui.plugin.add("draggable", "connectToSortable", {
    585         start: function(event, ui) {
    586 
    587                 var inst = $(this).data("ui-draggable"), o = inst.options,
     637        start: function( event, ui, inst ) {
     638
     639                var o = inst.options,
    588640                        uiSortable = $.extend({}, ui, { item: inst.element });
    589641                inst.sortables = [];
    590642                $(o.connectToSortable).each(function() {
    591                         var sortable = $.data(this, "ui-sortable");
     643                        var sortable = $( this ).sortable( "instance" );
    592644                        if (sortable && !sortable.options.disabled) {
    593645                                inst.sortables.push({
     
    601653
    602654        },
    603         stop: function(event, ui) {
     655        stop: function( event, ui, inst ) {
    604656
    605657                //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper
    606                 var inst = $(this).data("ui-draggable"),
    607                         uiSortable = $.extend({}, ui, { item: inst.element });
     658                var uiSortable = $.extend( {}, ui, {
     659                        item: inst.element
     660                });
    608661
    609662                $.each(inst.sortables, function() {
    610                         if(this.instance.isOver) {
     663                        if (this.instance.isOver) {
    611664
    612665                                this.instance.isOver = 0;
     
    616669
    617670                                //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: "valid/invalid"
    618                                 if(this.shouldRevert) {
     671                                if (this.shouldRevert) {
    619672                                        this.instance.options.revert = this.shouldRevert;
    620673                                }
     
    626679
    627680                                //If the helper has been the original item, restore properties in the sortable
    628                                 if(inst.options.helper === "original") {
     681                                if (inst.options.helper === "original") {
    629682                                        this.instance.currentItem.css({ top: "auto", left: "auto" });
    630683                                }
     
    638691
    639692        },
    640         drag: function(event, ui) {
    641 
    642                 var inst = $(this).data("ui-draggable"), that = this;
     693        drag: function( event, ui, inst ) {
     694
     695                var that = this;
    643696
    644697                $.each(inst.sortables, function() {
     
    652705                        this.instance.offset.click = inst.offset.click;
    653706
    654                         if(this.instance._intersectsWith(this.instance.containerCache)) {
     707                        if (this.instance._intersectsWith(this.instance.containerCache)) {
    655708                                innermostIntersecting = true;
    656                                 $.each(inst.sortables, function () {
     709                                $.each(inst.sortables, function() {
    657710                                        this.instance.positionAbs = inst.positionAbs;
    658711                                        this.instance.helperProportions = inst.helperProportions;
     
    668721                        }
    669722
    670 
    671                         if(innermostIntersecting) {
     723                        if (innermostIntersecting) {
    672724                                //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
    673                                 if(!this.instance.isOver) {
     725                                if (!this.instance.isOver) {
    674726
    675727                                        this.instance.isOver = 1;
     
    700752
    701753                                //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable
    702                                 if(this.instance.currentItem) {
     754                                if (this.instance.currentItem) {
    703755                                        this.instance._mouseDrag(event);
    704756                                }
     
    708760                                //If it doesn't intersect with the sortable, and it intersected before,
    709761                                //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval
    710                                 if(this.instance.isOver) {
     762                                if (this.instance.isOver) {
    711763
    712764                                        this.instance.isOver = 0;
     
    724776                                        //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size
    725777                                        this.instance.currentItem.remove();
    726                                         if(this.instance.placeholder) {
     778                                        if (this.instance.placeholder) {
    727779                                                this.instance.placeholder.remove();
    728780                                        }
     
    740792
    741793$.ui.plugin.add("draggable", "cursor", {
    742         start: function() {
    743                 var t = $("body"), o = $(this).data("ui-draggable").options;
     794        start: function( event, ui, instance ) {
     795                var t = $( "body" ),
     796                        o = instance.options;
     797
    744798                if (t.css("cursor")) {
    745799                        o._cursor = t.css("cursor");
     
    747801                t.css("cursor", o.cursor);
    748802        },
    749         stop: function() {
    750                 var o = $(this).data("ui-draggable").options;
     803        stop: function( event, ui, instance ) {
     804                var o = instance.options;
    751805                if (o._cursor) {
    752806                        $("body").css("cursor", o._cursor);
     
    756810
    757811$.ui.plugin.add("draggable", "opacity", {
    758         start: function(event, ui) {
    759                 var t = $(ui.helper), o = $(this).data("ui-draggable").options;
    760                 if(t.css("opacity")) {
     812        start: function( event, ui, instance ) {
     813                var t = $( ui.helper ),
     814                        o = instance.options;
     815                if (t.css("opacity")) {
    761816                        o._opacity = t.css("opacity");
    762817                }
    763818                t.css("opacity", o.opacity);
    764819        },
    765         stop: function(event, ui) {
    766                 var o = $(this).data("ui-draggable").options;
    767                 if(o._opacity) {
     820        stop: function( event, ui, instance ) {
     821                var o = instance.options;
     822                if (o._opacity) {
    768823                        $(ui.helper).css("opacity", o._opacity);
    769824                }
     
    772827
    773828$.ui.plugin.add("draggable", "scroll", {
    774         start: function() {
    775                 var i = $(this).data("ui-draggable");
    776                 if(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== "HTML") {
     829        start: function( event, ui, i ) {
     830                if ( i.scrollParent[ 0 ] !== i.document[ 0 ] && i.scrollParent[ 0 ].tagName !== "HTML" ) {
    777831                        i.overflowOffset = i.scrollParent.offset();
    778832                }
    779833        },
    780         drag: function( event ) {
    781 
    782                 var i = $(this).data("ui-draggable"), o = i.options, scrolled = false;
    783 
    784                 if(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== "HTML") {
    785 
    786                         if(!o.axis || o.axis !== "x") {
    787                                 if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) {
     834        drag: function( event, ui, i  ) {
     835
     836                var o = i.options,
     837                        scrolled = false,
     838                        document = i.document[ 0 ];
     839
     840                if ( i.scrollParent[ 0 ] !== document && i.scrollParent[ 0 ].tagName !== "HTML" ) {
     841                        if (!o.axis || o.axis !== "x") {
     842                                if ((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) {
    788843                                        i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;
    789                                 } else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity) {
     844                                } else if (event.pageY - i.overflowOffset.top < o.scrollSensitivity) {
    790845                                        i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;
    791846                                }
    792847                        }
    793848
    794                         if(!o.axis || o.axis !== "y") {
    795                                 if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) {
     849                        if (!o.axis || o.axis !== "y") {
     850                                if ((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) {
    796851                                        i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;
    797                                 } else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity) {
     852                                } else if (event.pageX - i.overflowOffset.left < o.scrollSensitivity) {
    798853                                        i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;
    799854                                }
     
    802857                } else {
    803858
    804                         if(!o.axis || o.axis !== "x") {
    805                                 if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) {
     859                        if (!o.axis || o.axis !== "x") {
     860                                if (event.pageY - $(document).scrollTop() < o.scrollSensitivity) {
    806861                                        scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
    807                                 } else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) {
     862                                } else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) {
    808863                                        scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
    809864                                }
    810865                        }
    811866
    812                         if(!o.axis || o.axis !== "y") {
    813                                 if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) {
     867                        if (!o.axis || o.axis !== "y") {
     868                                if (event.pageX - $(document).scrollLeft() < o.scrollSensitivity) {
    814869                                        scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
    815                                 } else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) {
     870                                } else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) {
    816871                                        scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
    817872                                }
     
    820875                }
    821876
    822                 if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {
     877                if (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {
    823878                        $.ui.ddmanager.prepareOffsets(i, event);
    824879                }
     
    828883
    829884$.ui.plugin.add("draggable", "snap", {
    830         start: function() {
    831 
    832                 var i = $(this).data("ui-draggable"),
    833                         o = i.options;
     885        start: function( event, ui, i ) {
     886
     887                var o = i.options;
    834888
    835889                i.snapElements = [];
     
    838892                        var $t = $(this),
    839893                                $o = $t.offset();
    840                         if(this !== i.element[0]) {
     894                        if (this !== i.element[0]) {
    841895                                i.snapElements.push({
    842896                                        item: this,
     
    848902
    849903        },
    850         drag: function(event, ui) {
     904        drag: function( event, ui, inst ) {
    851905
    852906                var ts, bs, ls, rs, l, r, t, b, i, first,
    853                         inst = $(this).data("ui-draggable"),
    854907                        o = inst.options,
    855908                        d = o.snapTolerance,
     
    865918
    866919                        if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || !$.contains( inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item ) ) {
    867                                 if(inst.snapElements[i].snapping) {
     920                                if (inst.snapElements[i].snapping) {
    868921                                        (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
    869922                                }
     
    872925                        }
    873926
    874                         if(o.snapMode !== "inner") {
     927                        if (o.snapMode !== "inner") {
    875928                                ts = Math.abs(t - y2) <= d;
    876929                                bs = Math.abs(b - y1) <= d;
    877930                                ls = Math.abs(l - x2) <= d;
    878931                                rs = Math.abs(r - x1) <= d;
    879                                 if(ts) {
     932                                if (ts) {
    880933                                        ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
    881934                                }
    882                                 if(bs) {
     935                                if (bs) {
    883936                                        ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;
    884937                                }
    885                                 if(ls) {
     938                                if (ls) {
    886939                                        ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;
    887940                                }
    888                                 if(rs) {
     941                                if (rs) {
    889942                                        ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;
    890943                                }
     
    893946                        first = (ts || bs || ls || rs);
    894947
    895                         if(o.snapMode !== "outer") {
     948                        if (o.snapMode !== "outer") {
    896949                                ts = Math.abs(t - y1) <= d;
    897950                                bs = Math.abs(b - y2) <= d;
    898951                                ls = Math.abs(l - x1) <= d;
    899952                                rs = Math.abs(r - x2) <= d;
    900                                 if(ts) {
     953                                if (ts) {
    901954                                        ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;
    902955                                }
    903                                 if(bs) {
     956                                if (bs) {
    904957                                        ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
    905958                                }
    906                                 if(ls) {
     959                                if (ls) {
    907960                                        ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;
    908961                                }
    909                                 if(rs) {
     962                                if (rs) {
    910963                                        ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;
    911964                                }
    912965                        }
    913966
    914                         if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) {
     967                        if (!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) {
    915968                                (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
    916969                        }
     
    923976
    924977$.ui.plugin.add("draggable", "stack", {
    925         start: function() {
     978        start: function( event, ui, instance ) {
    926979                var min,
    927                         o = this.data("ui-draggable").options,
     980                        o = instance.options,
    928981                        group = $.makeArray($(o.stack)).sort(function(a,b) {
    929982                                return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
     
    941994
    942995$.ui.plugin.add("draggable", "zIndex", {
    943         start: function(event, ui) {
    944                 var t = $(ui.helper), o = $(this).data("ui-draggable").options;
    945                 if(t.css("zIndex")) {
     996        start: function( event, ui, instance ) {
     997                var t = $( ui.helper ),
     998                        o = instance.options;
     999
     1000                if (t.css("zIndex")) {
    9461001                        o._zIndex = t.css("zIndex");
    9471002                }
    9481003                t.css("zIndex", o.zIndex);
    9491004        },
    950         stop: function(event, ui) {
    951                 var o = $(this).data("ui-draggable").options;
    952                 if(o._zIndex) {
     1005        stop: function( event, ui, instance ) {
     1006                var o = instance.options;
     1007
     1008                if (o._zIndex) {
    9531009                        $(ui.helper).css("zIndex", o._zIndex);
    9541010                }
     
    9561012});
    9571013
    958 })(jQuery);
     1014return $.ui.draggable;
     1015
     1016}));
  • _core_/plugins/jquery_ui/prive/javascript/ui/droppable.js

    r83719 r83728  
    11/*!
    2  * jQuery UI Droppable 1.10.4
     2 * jQuery UI Droppable 1.11.0
    33 * http://jqueryui.com
    44 *
     
    88 *
    99 * http://api.jqueryui.com/droppable/
    10  *
    11  * Depends:
    12  *      jquery.ui.core.js
    13  *      jquery.ui.widget.js
    14  *      jquery.ui.mouse.js
    15  *      jquery.ui.draggable.js
    1610 */
    17 (function( $, undefined ) {
    18 
    19 function isOverAxis( x, reference, size ) {
    20         return ( x > reference ) && ( x < ( reference + size ) );
    21 }
    22 
    23 $.widget("ui.droppable", {
    24         version: "1.10.4",
     11(function( factory ) {
     12        if ( typeof define === "function" && define.amd ) {
     13
     14                // AMD. Register as an anonymous module.
     15                define([
     16                        "jquery",
     17                        "./core",
     18                        "./widget",
     19                        "./mouse",
     20                        "./draggable"
     21                ], factory );
     22        } else {
     23
     24                // Browser globals
     25                factory( jQuery );
     26        }
     27}(function( $ ) {
     28
     29$.widget( "ui.droppable", {
     30        version: "1.11.0",
    2531        widgetEventPrefix: "drop",
    2632        options: {
     
    4955                this.isout = true;
    5056
    51                 this.accept = $.isFunction(accept) ? accept : function(d) {
    52                         return d.is(accept);
     57                this.accept = $.isFunction( accept ) ? accept : function( d ) {
     58                        return d.is( accept );
    5359                };
    5460
     
    6874                };
    6975
     76                this._addToManager( o.scope );
     77
     78                o.addClasses && this.element.addClass( "ui-droppable" );
     79
     80        },
     81
     82        _addToManager: function( scope ) {
    7083                // Add the reference and positions to the manager
    71                 $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];
    72                 $.ui.ddmanager.droppables[o.scope].push(this);
    73 
    74                 (o.addClasses && this.element.addClass("ui-droppable"));
    75 
     84                $.ui.ddmanager.droppables[ scope ] = $.ui.ddmanager.droppables[ scope ] || [];
     85                $.ui.ddmanager.droppables[ scope ].push( this );
     86        },
     87
     88        _splice: function( drop ) {
     89                var i = 0;
     90                for ( ; i < drop.length; i++ ) {
     91                        if ( drop[ i ] === this ) {
     92                                drop.splice( i, 1 );
     93                        }
     94                }
    7695        },
    7796
    7897        _destroy: function() {
    79                 var i = 0,
    80                         drop = $.ui.ddmanager.droppables[this.options.scope];
    81 
    82                 for ( ; i < drop.length; i++ ) {
    83                         if ( drop[i] === this ) {
    84                                 drop.splice(i, 1);
    85                         }
    86                 }
    87 
    88                 this.element.removeClass("ui-droppable ui-droppable-disabled");
    89         },
    90 
    91         _setOption: function(key, value) {
    92 
    93                 if(key === "accept") {
    94                         this.accept = $.isFunction(value) ? value : function(d) {
    95                                 return d.is(value);
     98                var drop = $.ui.ddmanager.droppables[ this.options.scope ];
     99
     100                this._splice( drop );
     101
     102                this.element.removeClass( "ui-droppable ui-droppable-disabled" );
     103        },
     104
     105        _setOption: function( key, value ) {
     106
     107                if ( key === "accept" ) {
     108                        this.accept = $.isFunction( value ) ? value : function( d ) {
     109                                return d.is( value );
    96110                        };
    97                 }
    98                 $.Widget.prototype._setOption.apply(this, arguments);
    99         },
    100 
    101         _activate: function(event) {
     111                } else if ( key === "scope" ) {
     112                        var drop = $.ui.ddmanager.droppables[ this.options.scope ];
     113
     114                        this._splice( drop );
     115                        this._addToManager( value );
     116                }
     117
     118                this._super( key, value );
     119        },
     120
     121        _activate: function( event ) {
    102122                var draggable = $.ui.ddmanager.current;
    103                 if(this.options.activeClass) {
    104                         this.element.addClass(this.options.activeClass);
    105                 }
    106                 if(draggable){
    107                         this._trigger("activate", event, this.ui(draggable));
    108                 }
    109         },
    110 
    111         _deactivate: function(event) {
     123                if ( this.options.activeClass ) {
     124                        this.element.addClass( this.options.activeClass );
     125                }
     126                if ( draggable ){
     127                        this._trigger( "activate", event, this.ui( draggable ) );
     128                }
     129        },
     130
     131        _deactivate: function( event ) {
    112132                var draggable = $.ui.ddmanager.current;
    113                 if(this.options.activeClass) {
    114                         this.element.removeClass(this.options.activeClass);
    115                 }
    116                 if(draggable){
    117                         this._trigger("deactivate", event, this.ui(draggable));
    118                 }
    119         },
    120 
    121         _over: function(event) {
     133                if ( this.options.activeClass ) {
     134                        this.element.removeClass( this.options.activeClass );
     135                }
     136                if ( draggable ){
     137                        this._trigger( "deactivate", event, this.ui( draggable ) );
     138                }
     139        },
     140
     141        _over: function( event ) {
    122142
    123143                var draggable = $.ui.ddmanager.current;
    124144
    125145                // Bail if draggable and droppable are same element
    126                 if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) {
     146                if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) {
    127147                        return;
    128148                }
    129149
    130                 if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
    131                         if(this.options.hoverClass) {
    132                                 this.element.addClass(this.options.hoverClass);
    133                         }
    134                         this._trigger("over", event, this.ui(draggable));
    135                 }
    136 
    137         },
    138 
    139         _out: function(event) {
     150                if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {
     151                        if ( this.options.hoverClass ) {
     152                                this.element.addClass( this.options.hoverClass );
     153                        }
     154                        this._trigger( "over", event, this.ui( draggable ) );
     155                }
     156
     157        },
     158
     159        _out: function( event ) {
    140160
    141161                var draggable = $.ui.ddmanager.current;
    142162
    143163                // Bail if draggable and droppable are same element
    144                 if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) {
     164                if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) {
    145165                        return;
    146166                }
    147167
    148                 if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
    149                         if(this.options.hoverClass) {
    150                                 this.element.removeClass(this.options.hoverClass);
    151                         }
    152                         this._trigger("out", event, this.ui(draggable));
    153                 }
    154 
    155         },
    156 
    157         _drop: function(event,custom) {
     168                if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {
     169                        if ( this.options.hoverClass ) {
     170                                this.element.removeClass( this.options.hoverClass );
     171                        }
     172                        this._trigger( "out", event, this.ui( draggable ) );
     173                }
     174
     175        },
     176
     177        _drop: function( event, custom ) {
    158178
    159179                var draggable = custom || $.ui.ddmanager.current,
     
    161181
    162182                // Bail if draggable and droppable are same element
    163                 if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) {
     183                if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) {
    164184                        return false;
    165185