From 767363ed5584beea4b303484aaba21ba43936dff Mon Sep 17 00:00:00 2001 From: Peter Pfeufer Date: Wed, 2 Sep 2026 08:23:32 +0200 Subject: [PATCH] [CHANGE] Update jQuery-UI ### Changed - jQuery-UI updated and moved to where it belongs - `libs` instead of `js` --- .../css/images/ui-icons_444444_256x240.png | Bin 7090 -> 0 bytes .../css/images/ui-icons_555555_256x240.png | Bin 7074 -> 0 bytes .../css/images/ui-icons_777620_256x240.png | Bin 4618 -> 0 bytes .../css/images/ui-icons_777777_256x240.png | Bin 7111 -> 0 bytes .../css/images/ui-icons_cc0000_256x240.png | Bin 4618 -> 0 bytes .../css/images/ui-icons_ffffff_256x240.png | Bin 6487 -> 0 bytes .../js/jquery-ui/1.12.1/css/jquery-ui.min.css | 6 - .../css/images/ui-icons_444444_256x240.png | Bin 7142 -> 0 bytes .../css/images/ui-icons_555555_256x240.png | Bin 7126 -> 0 bytes .../css/images/ui-icons_777620_256x240.png | Bin 4670 -> 0 bytes .../css/images/ui-icons_777777_256x240.png | Bin 7163 -> 0 bytes .../css/images/ui-icons_cc0000_256x240.png | Bin 4670 -> 0 bytes .../css/images/ui-icons_ffffff_256x240.png | Bin 6539 -> 0 bytes .../js/jquery-ui/1.13.2/css/jquery-ui.min.css | 6 - .../js/jquery-ui/1.14.0/css/jquery-ui.min.css | 6 - .../libs/jquery-ui/1.14.2/LICENSE.txt | 43 + .../1.14.2/images/ui-icons_444444_256x240.png | Bin 0 -> 7107 bytes .../1.14.2/images/ui-icons_555555_256x240.png | Bin 0 -> 7105 bytes .../1.14.2/images/ui-icons_777620_256x240.png | Bin 0 -> 4615 bytes .../1.14.2/images/ui-icons_777777_256x240.png | Bin 0 -> 7115 bytes .../1.14.2/images/ui-icons_cc0000_256x240.png | Bin 0 -> 4615 bytes .../1.14.2/images/ui-icons_ffffff_256x240.png | Bin 0 -> 6395 bytes .../libs/jquery-ui/1.14.2/jquery-ui.css | 1285 ++ .../libs/jquery-ui/1.14.2/jquery-ui.js | 18842 ++++++++++++++++ .../libs/jquery-ui/1.14.2/jquery-ui.min.css | 5 + .../jquery-ui/1.14.2/jquery-ui.min.css.map | 1 + .../libs/jquery-ui/1.14.2/jquery-ui.min.js | 209 + .../jquery-ui/1.14.2/jquery-ui.min.js.map | 1 + .../templates/bundles/jquery-ui-css.html | 7 +- .../templates/bundles/jquery-ui-js.html | 8 +- 30 files changed, 20394 insertions(+), 25 deletions(-) delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.12.1/css/images/ui-icons_444444_256x240.png delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.12.1/css/images/ui-icons_555555_256x240.png delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.12.1/css/images/ui-icons_777620_256x240.png delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.12.1/css/images/ui-icons_777777_256x240.png delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.12.1/css/images/ui-icons_cc0000_256x240.png delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.12.1/css/images/ui-icons_ffffff_256x240.png delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.12.1/css/jquery-ui.min.css delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.13.2/css/images/ui-icons_444444_256x240.png delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.13.2/css/images/ui-icons_555555_256x240.png delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.13.2/css/images/ui-icons_777620_256x240.png delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.13.2/css/images/ui-icons_777777_256x240.png delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.13.2/css/images/ui-icons_cc0000_256x240.png delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.13.2/css/images/ui-icons_ffffff_256x240.png delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.13.2/css/jquery-ui.min.css delete mode 100644 allianceauth/static/allianceauth/js/jquery-ui/1.14.0/css/jquery-ui.min.css create mode 100644 allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/LICENSE.txt create mode 100644 allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_444444_256x240.png create mode 100644 allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_555555_256x240.png create mode 100644 allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_777620_256x240.png create mode 100644 allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_777777_256x240.png create mode 100644 allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_cc0000_256x240.png create mode 100644 allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_ffffff_256x240.png create mode 100644 allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/jquery-ui.css create mode 100644 allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/jquery-ui.js create mode 100644 allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/jquery-ui.min.css create mode 100644 allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/jquery-ui.min.css.map create mode 100644 allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/jquery-ui.min.js create mode 100644 allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/jquery-ui.min.js.map diff --git a/allianceauth/static/allianceauth/js/jquery-ui/1.12.1/css/images/ui-icons_444444_256x240.png b/allianceauth/static/allianceauth/js/jquery-ui/1.12.1/css/images/ui-icons_444444_256x240.png deleted file mode 100644 index 1508deaee57ae45e878e1c4a1ef90d323337da96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7090 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 diff --git a/allianceauth/static/allianceauth/js/jquery-ui/1.12.1/css/images/ui-icons_777620_256x240.png b/allianceauth/static/allianceauth/js/jquery-ui/1.12.1/css/images/ui-icons_777620_256x240.png deleted file mode 100644 index 40aa9c6c0b84a53477582ff82f28f9395dd0db2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4618 zcmeHL_cz>K(EomS^<(Futz z+9Cvth%RBh@;tx1@Bi?A&YU|l_sraT&di*-CF!P#E0HC9xt~QWJ&Z~E>PzLH7>rgIJP_T(HU*=7$ z1^`AceQgbk&~KY|v`*8t%oM$PC2Lt}+zo~~iayP-0C}lid%KAs@6iIUCFNq=J7W0R zSppq_HbLcjhgpF;_p5uox)@+<32cHQ?j)XrSs=!F+IX^x1ox*1SC9f*Nz|?g7rsm; z#~3V%1u^aPu5^@)A4FZm6hi!?kAGlc8WO3jsb3B_*7j&*AggOlkW3}cRB${RN0S#g zh!to!&7YRJI%mX9{t-2&9UjwgKePf~2be-1)B!3YWl3s~$tk>1hqxx%#QYyVsO|-v#J%^ZJeiBp9fDw_3N;gEny0(# zpp_Kl2GBF+_k8*kd7amJZ9NWXn&>Ov{U+9B5QGx*KelI4G${)t5%lhHxGXq|r5&Onc zrm8lfQD7r@ZPUe2I5e9g&Y)4I%c{A{z_kEz~do39ec3!B*mr=!(im;SYRasO86U7DM6IfM=5aY2d@9}&>?hkMRs7{bKD;3_a&G1{fL4Ig4L&y zN>6+N?%Q}ZZ*i@5%tN4U|u>_(D_Eq#4&sre9lkKCmEg9bKPPREvsx z$=F_I4;|hePC^k6vY5I|F{w-orw)Uwm8)5{$ z-s$ViRtJsjw;bgr$^B085WzPNIEEuV{N$L-%!;foI9fasyhp4;{Ca36cmD#pmTTm5 zO&3tPwNf%h7ScWJjnS0~jA$O6PaLF!U@x^Lx)mqx8>4K=tTX48G(?_?fJf%mjtYU| z9=J*CMm!fAekVsoUNn}64RI)TEimNeX2GcGBQPX;sTW!_4oXJK0H{K(>n5R|n=48xRFpJf7;YA+m1AC8dsN&5Zd+kzMh zO2tI_n)dWfR9r@^q5qKn_&`|v5q$b-r)2lxexaeOd{7ipMqt02EL~j!Toy>A3dIga zZ)27GEa+o(wRr;}S23z@1gSv&#p9&o#o9Pn4*gcR;RoMSwLQ5cvZv;##y6|s4&#$bb(g)@ZwZaJ1#>$Md4bO#M|3R2Wd?0!7}!>S;6JY-aJY#U;|`p5R&<%H8^pVuB9 zSp1{XJ+UW^cY4$6pUzN2>QnH2i)>WMRdR(yOCclbHL{xqIs1Ie=!YjYPc(8LsxKbN zKiBl>X-{W_QR>~^M2g$e$A6ouSneXEcJ_8jnr$lImSyt}?4&MorDOt4`L0I=pMfvr z``$&l)vMY=NMz{DidGbP2GP`+C$eWUG|hazF2l=Bt!Cn|lKHD5Jg)ivcPvZr3(g!~ zc5q)9BaUJu(J%(Zy(78zN!|m|tgjMVi6Z$* zfwZ{x-2W&CeO!G7ad0*opk^L8NO3D5EyH++RUKmz!8&z74_6D**e|TpxaGY*+`Ie` zzxhU$-ZK%5k}vuMk{vUJF0oUBH{-pPuaMonGth!x#7^iet1ZhVnMmRpOr2;@L}rK7M9K zND%&*`M557p4P-3mvp=iYlP7aGcqtR&_UM4?ndz#L`tH29wcN0&?%~z^8$>qQUxPZ z6qFh=6p_djP!4Kv)=s7Sv*>_teZ(rlFP7sbIqz$SitHwjy+21wzY{nT1L(3`-Q3*# z9&lpo+KlJP`AU=S%<^$Hmahb;I$Y6396$4`*(36gGVOjMdMkJ$YysQq_LR>>f0k-<yo%d<-pC#2=u68H%p^{a4R_VlXA5=;74mw>`ab$LBHaQ?`{0%5`S3hDpR0}Cr`F^%PENJ#U6J;k4NOE;RRC< z|K92o6Af>GYQL&L*~Ol+{djHujg6b9Z9?{HAVL^UB|Ku5`#LLs{c{gibLB>!Rrbt+ zw?^cT*ehBMn(_i5j2s49+DxzP?C9;gQ^WzegVflzORwnQ3QG){z#N?swQ!;O`i)F} z*_jn(C=BKLRix~LpwG@3Wtk2h!&b=#Lhs@$oq*2qZcNNiNMwsse@F~73Kxy|_n`Rv z;7qBCn7r2ti6-%E&ZgV<_0s>&v)$(rIkCn5;M`fvUj`p`DZHLXf3f7_y}hljk3ry` zT@;h;0-~xceop*^rO=Dy()EW0m`Yg}jxo+C&Qm?{j5M1G&e7I(V_K4@)tpodq?WF z$@Itfo7C8?c8ZVx4gDN;h%(-}F{z|%^?hJLO439FmB9q+R=NbpwVO{urJryMOmN5)U_2@a0iBB6Um6_b;gA0<_ zmZ;K4NePWq@l<=kA{sm9cVzs=R~Tc}_)(mrFEnm4ItHdfL~)dsL;-zbVO&}E-1btM zCBOT!z=M`2`^`^+Gd^*Ad%8x{3;HW$Y!VGZGKBuN|4Wyy7x5+-KGS8~IfH)Mk-H3> zkflqNVYgWYR@GH`6iO;Clcg9@#jbq5@(hhu2-c>p|K)@?Zl(QOIp?^?)jRf!EEXpq zNNo8kCwRv1KA@+KE%#zVR2*6kqgmMy`^{#*bJ%YB_(~xeAm3^f%#m?gK?gOw&?<@o z($Pb!-$-8WRWHzzR9cEg($??%K5V8{+-t3MLI5^rrA|-{+Eqw?$SyatwEqcz@}q(% zw%G*J^OyLQKppEqXNN!+WhZ}^a|X!3WuztG^5OY`F96%U)R782Y(kp!`au-ML^%% c!Og|Y#lbo3pI(>q4;lc_*D=w4uZfENAF=FGng9R* diff --git a/allianceauth/static/allianceauth/js/jquery-ui/1.12.1/css/images/ui-icons_777777_256x240.png b/allianceauth/static/allianceauth/js/jquery-ui/1.12.1/css/images/ui-icons_777777_256x240.png deleted file mode 100644 index 9faedc7166403d48c43b7ee584b10d3f633de11b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7111 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 .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px} \ No newline at end of file diff --git a/allianceauth/static/allianceauth/js/jquery-ui/1.13.2/css/images/ui-icons_444444_256x240.png b/allianceauth/static/allianceauth/js/jquery-ui/1.13.2/css/images/ui-icons_444444_256x240.png deleted file mode 100644 index 56d546beb39061e9a9f21d61e63fde3d5bcd6267..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7142 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%0AZGyUy!((0He7MIsZEYx3qKKf|mxuLH!WY!>T3 z=aG0(jC%)r{zuw9b^tcB)!Zd;RsxvaeUJ;cFnLwRcXme_8iNSc{`O2ee?H~zPn`}W z#ay5c-_m7{M|W0q)7D)fM{pn4PQ|J%20sKGA5{tJqn8|DCua(cPABEkg0v#$@;X0p zyisZoe)(i|Y8|>Q*CqiDc^`eeyvH}-!Uq`pg|98Hx5~L)zj%y6A#sk0L_k_{ z?X5L#$!)$I>4KKL%vUSVe#9k{{*lN8A5IWJpZG?-_6s>&)?3|`+q4B7nT;1 z{3oW^2hwqiq5lWQ(979B$j;XZc;x71?*vo#v~zJXaI$j@@%irbk7gU7uA-w{rf3`a F{{Wt|fMoyx diff --git a/allianceauth/static/allianceauth/js/jquery-ui/1.13.2/css/images/ui-icons_777620_256x240.png b/allianceauth/static/allianceauth/js/jquery-ui/1.13.2/css/images/ui-icons_777620_256x240.png deleted file mode 100644 index b0482f86955307acc964be916150cbd973428c8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4670 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 diff --git a/allianceauth/static/allianceauth/js/jquery-ui/1.13.2/css/images/ui-icons_cc0000_256x240.png b/allianceauth/static/allianceauth/js/jquery-ui/1.13.2/css/images/ui-icons_cc0000_256x240.png deleted file mode 100644 index 1f96135a16f41c9eda7474c9e177c353ac2fe6fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4670 zcmeHLhcn#W*Z+QZ^H;u&cKyVbx$)iISoPAw)J!Pl)KNEYS&x zE;=DtM05%3mFJmx=Y4;F!|yY9?m6eq{oFHi&Y9a1ubb%7({RxM06?#=r)35J;F$_+ zQ9;l8aeafMGePF2ZmbRfAChU09mvmY0Vh2(V*m()0RT1@0DhkhVOIbk5DoxqC;(8( z0swZu-1-~W&K6_7Ze*d|2LS(V|2G0`H8v$@QL{mtnV19Cy5Se3v*sIngI#kg5{uv3 zn1ua6xZF2?sFRxR&ch#vaQc43FY|ClEsHTXXybzM?+mLAc34$@64b?>lkj`lcAJk zg9rftqnEyxx<$yh4Le$=$!cbbZoT5wtTgUA!yE;lMp(dA$!>eQu|V(Pe6K~NBK#X- z*y(9J-5hPa^0hXze0S~_ce-`4z~&;@07cwNI0Lgll=GzVcm)aWPZ1_B2{x0cT@fyP znM{sRI1~$F(&~J>~pN{(nv#ARvRFhikvCnXe6E{ z58aOws5^N(DSdgyh@1Q)YDOz8s_uSB8N3ECg~rtY$|9wSs*v#sf>E2fl2prlCsyvT zb{G$AXndL_uTIL@q|(;<2ahZy!C4SfP?2%L((|Jn7iyZ7TG zY@68UvDek!;LVG9YzHqG=Tw|aoDdviClXA||KfwnZoqNOdyn$tnJC=>2v)K{BYvuJ zva<$SPC;$}J!O8+r%#dBevQ}GW1pshzWmK^Vok=JP{P}ftyvTeN&<; z8MQhm*KFgMz;FoFF;}eVfwR>4(tsz5S7emMzx2M4iyw<^;ME%!i-r3rPW!%^=c+Gc zUti2r(V8=5OxKg3B$L#`L6}CBri&(>R9Q#;^fq$=#f zUpNlePT>`TExKM;WXfD6TE{+&@tIIwV?3rxB9*$KMn`QVFLMp`&7GU*Ny5yRC}TI+ zoHR5GDCh65RZO@4Yy103BbJ>D%)hwMY7W$)$ZiByWOX z^{J=Q6Pt(o)?dzBSgjuM5Ga}(pyPfc@S!s0J|1g)t|4OFjO#hmugzN@SP=NOj!()e zg+<+DY|pa?4sH)7qKNxhOdY1!6sGwThyIoFmGo;;ED83SIarMyM$*x1uLR~9=;`Pokm#>!e^avHDrg?5Q5{LT&6;>yv&u)5 zTR!Kve*^2*6so{K!&cN)R&i(NuHko}u2!1{;kIsY*Gj?pnXu28z-3v{7W*4UsUNLK z-b`lo+5t^}>X_N9;%GHztJ^JHuiVB5h7GOhGd!XG&iWdRCTB&Ly|XN2=<}AVR=2rv z&VyW|t4{!s0(!JA*LU#70JnCVw1@_pPT>2!&0+<+IWpMKrhAlduy<+jlq`-wmH>cw ziYT0gF6Bi*YS`{bT0%&v!ZEfn+#&P+$#@p*G>?uTbuXr%~Djg_YNc``F>`0 zg9g~a(+DH1hnc{hyf>Yy-UzK_h*gUR_{ShHYm*p?Ev-Dw1T0mbIhH&aBJYv#`^mQn zF%*=H3imbb>KQA$h*-t^A^q`zu=peR^wUnr?!)~;LRR>oD5SK&UME?)nmD*5kU$lJ z>yO;RDf(H^N9$_wq9K>DDz5~oK>mfJ#G{4ka7kOTFEsP7SqfVh7oEPqdc*`KUzjZA zY(n0y!{%x=A_ThU8?QA(6(e=10tG|oYL;k;$}h=`s6do8!It<_5GTI5$kO&5CJqim zDo$8FUviW#lnSEJdC|ACFOed@_rrvCjx4qwFe&RGy!t%Fl9Ihw)ovLHGzjqsurbxs z-`vQ~34mue1wyS9;49*Od&j^foHLFoM>A900KK)x5uZ1Sxn&j^w)#{5&>UB9+o zs;Q9wY`BW`CJL$Nf11`^@?N_kG};ox?KI#OI+J(14u<#Y)i_S7EZCYEbFK_TFmz8| z9aZa6k?oe@TV_hy3m!92{h%q77=s` zKD*lUCc>>&#U4T;!(^5T6eEd-F)-#0$-PJ74v1lWkJySdvZ=1~) zWbArO5~Q;_KR^qm5JYy^Tz3qkTAC!DR8^2ft@koF(DOTn;I_SITItlfviLSUzDu}q zy_tnyk;?rQe%PJq1Aml5(l$K%fu@lCMKb4DhgTT9Q0qmY`vt~7IOqV09NvyJpV|!D zZfyvQ4veztSXk_|xmi8iA8bR-MCO@%U3BV68Uj|wKSDnm3|6)4)z-(ZZN5=x7E2&q z!Cx%^Wn^W>|1DieI}6lSpTXooCXKmW3qrTp=MSELz=FsS1||MA!X~=A&RfigNWZ) zm2?@Tt1E#Ea!dE^^afr}2QB7A78Rq!QL3GPMs_~RoVWLcydgo1qi%F~l%v=a6Kghn z?*OYvyB1fvL%N_#b1peAg&*zA6HE!I$2)o_vfVv|e7^)StXA1T-iDfT%#&&YdvV~$ z&&&w%xj$w;u1lULRnbSqZ7)OXVRVCx3=9l(khLqfBX|tLB`{ra@fiVh3d-iZ0AsXd z{?G&krMfglI5HWOgBqN+QtAFI+~->xvbyIN&2gQa_oYKwc7w<6pTou9@f-;ObXl%$ zZf<^YoVc16<5_aPlEhond|dVKmIG8AF6knUo_JCa4&6yp-V9$RQ69{fc$@&E^Kh`* zYdju^u58#(=2jzA=zigGcw5z=H==jcps#{S%R&+_^xSxz3Cn&q*!zs0d-?>svA8l) zB6Lw=|D4t8PNvj1RCR##S>?Q9&kqUSCGrn5?R+A7%X=bh0o%&fg*OFe(RMCq$B$^&3w`ViwOompA9U=E6-R*1(fwfm`GwzU?O2vdp)Q%91G4<^* z9AzP$VW258thZTfs^nZ#ylBCDN-t9b#&h38sA$3fepw$EKg==HHYpaoTggN0AE zLlS$3=*ix;qr;l-WIbMw-MYDEd*fZIL!CC{!EzY84}@lL2{bX!joYhXPT_)?`^diF zn6FevQ1mYOE0|hcS%+a?#Oyw;=Z5~Ih3x#thhXTavp_gEa#5>^{Ku@0~0 zlvY$m7R+-KbG10&hpQ3nOpXLWzoPT+ZTw~uepu@&QJ{*(k2iPTQ4rONJZ^;?4PBjt z=TAKNd#g`KFw_B6e^r1o3tgpqv0D7=>(@_OgzQy8gfN^+c*rdGW!BrZ&s{i;Wt}{$ z?5TNg_3$6jmo)1%t_pxKau{f7Gr7FIt+(e+5d-A*Q{!4Lyr6^2FEVHVGjvAO!Ubw; zI+^@3Q_D(F7|QjlNa+VbpY2o1Qf&g3t(*;n-X@eg0qvum*r=b7@Fu6;;3#GkJ`(ZI zLGd~6RI!4XwA&1cB=Kxar`z{*)Bn!1-Qy8Cw#EJ6++KLQ1U~4He>sc!V#&vQb4yJh zi@-lQe?_JPh^VmmIrbBlOfQm4^D98mi6-aQX9HuN+AvDiqamN!IB0+xKCLDF z@|qlH(Y>6JKg*`O=X=<3L6bifsf3%k#3y{4kc=#PEP=SxgAqf_X`aDT-L#Wbmg_dy zHj$ z4%KXv=#TCW3~Az zI4^-~iYR%Q7++5nOSKy$qP}f@OWJRAnK4?GAH_NRO#M2eBRT~lil?+B3g{CHVoI}T zwieSY`Q4WU;+h`sH9ii?_{8xob(N?W_*co;AQ}W`2>spuFI>1*$Qy6?M3-^<6#8jf z?jmqZmM&R}+hP@1QB&cOFD|=CmTW{7z5Myo6AVT^NQ<`imlMIbnf7nxoZ${v_sB1@ zXuNa*pPm-(ofi|L?7(sm!^(!(Yc%_v!*<=rR}#qp`Bo)wj*QU^+^^z= zR#4=V4j)+kM)Gp6c!8Frk`fG(ws!mXK_jigZgaI008{Yg?n89ndaHPW~=u0+5DFON+zh#ie8|q~S`kib}FFSKx3ZI9$l( z3g-V2ynUTLTtfjVMFlx=DY&@wRSUR+l9b%p)PD&V`phZM2*UsC0qx=K5`cE__WKVf za#Big`F}YDcPU%WIGleu=Dx1zUiZnr*fOL@Fdl3Yp^dcP* z1QMyC_uejk-@W(w?(ez(?Ah7fcjla(_nC9%ozO?xs@F*wNdW-3uCAt}2LPa}TVRU> za&=WsbCJ6;5F2?dc>t)0Bs()BylS&qsOf0|fEOnKpaTKm5 zZ2Bwc(b*y-qGZJyjp=ggWsM#u>*os4Zj=(_i08bTtWm66)UmyY;`o!mx@0Fab1c3z z)p)qkFP%00cGJ^lv9IqmMZ#vr-CA2AgoL3{1%VD3;-F@8QUZ73(Sr9-9+hv#QoRD7J^E7rP=L6UGZ#*V&@86Jg$a<7>Ty!tO7 z_h|Rn%G1TQ!hb=M?@{)zj^_~<_!6G(0S4t z$OknvhH8l*-&PfIQ4(amhV&fivbC>cdiW#Pn8Ev60#$9dH;}+D$bb4lkkHT(5Ccs~ z)VtIj)7VE~w|Ni3R*g$)L+Rn_tj0 zo>E|sfm?PHD>E73P0*QQo;A(sU@yy6XZU4T0_XvQDW%z7#0XLbli%CY&fX9}pehU@ z{Fir7N^uSl_&;2q+t8&mU6WH&@z`MA?|oEp<}Rio^HGJ~3flG5Utis=2d^#RpVV6i z_;)Fkk|u&Cp8j|hQ<(pj-0=AE7}w9|Q}g-BlVwCQ6+GF~ca@zCWViFt5L9>RCPm?@Ob`N9pUSQ z44s(`(ZP9xAU`X*C7SmM6OD3W0qdUi4Mr_|lWv4x`ZsndpVB#mH7@8u_1&HDS?G12 z3&z$ian>txYMB0ivv~ENl)y+i`u&}k2_;VTTecw9$d^sXS+9tO{In;=H|MH6DmQlc zT5g~u#-E+e)fM;E5gzS%hJSD`EOf&gJ;OA^wfU@iXiGe&+L7(HdOqn!4uqqyIvui4 z<{?GY64b}lCD<41S2P>^sr}RbVueZNR5wHBeCk>KX+DOZLK`Hxx9B)b&@B-wM5F`2 zKCF?k)%*AWn@Ii52kP&tQFrexaeO-4F5Ue-+}OYQumt<|M-I~S?9WG+yUPVKW)uGz>YsqZqVs`A#!>(v+01dPTDm8Yn` zPDT{v6eG#I zpXB&n+QwN>B&;j~K9QC`8Y$xgdApQ;R865^`vN*dnVuBv zf}WRq_W2afbYFjD5w@69Rie$<*}(e--Z( zWc?p8`YTx{y*3l|jjITNVk~U2iLlOk0*2`ABl#kOc2~BLoG@wKNCGE*d=oEJe@wZ`4vs_fCQ`9 zmHs^Z+w=A*hWQx_%~5_VIR3qY^DU3bZ#1uIs9(p@eh|d&sesqU%WkRbf>96OH7)lh zM|rwOOIz#d@^s`&Wm=2pZ>88L7qfR(H3?)-pw48P9SXU3J!QB$@0n8y5!DJSxtE7m zEGN~G{#|>L{QtQWg|mVtudn-2#br=q1`_ODC!!KYZ)8P`!5Bg#y;uV)_nuI@Nykf33WC<2ylSkGYAO6}WW^n2vI}j?3B5a9dZ|WbF%~6r z`NZ+DTgBm1g}`e0z!R(`tnP=qEsbvS(f+PWe_PK8v!)fB9du%UQyKqq$KJYzwUi&@ z=+>C3zWhA-cD-p_viCtLwl=FlDT1s2P1h>ZD5D%r8@Cx0DN+E}vD!+eG)vRZrS1~G z8^E7wcM3_wLGKmHDj$C*sp!@u<>OL0{`$r*V8G!()d`gSKy|(<^aydhuygcPlmjeR zqYFT@08~eWJ%Ep4<<2ewsMl3uNNko^o~-YNwxtSu-XT0{fh(lle1>8b?$e?AG5AeS zzv+W>G6nqpzA8Q30TS}dJUpGB&0OO@sQODCf~SoS+IX}hi+(~&9^Oz$0P&N1pXh2C zKx@}{lTQR$Nr{MM7MTuPZtNeOPLjy`1Nh~JhP;$Kwc-W&ekjnCv=R?~y73SySp+#{ zAcZYN_@;S{@`hv-R!BQ=s(m@}X>X|PQi^H*{JmMZ$&03O-UW)#Y87#NpBtL54C6@3 zjn5%Ga>bX|M71b|SIieBjg#|Z>76?2G=i-= zt38SLo67_?lFD#Pf!MNHZgtW-;!nCp-8urF_CZ^01ZWp4!d+jT6A-J#u`fYs~9#z2+%Lhqz(2l=}sDN;FEtkz&B0rBJ2oYD710in6C+ z*dCd5;g0%&m=lAkD3XlXYf6SY41QtU+8{zgYv+fb1Ad_wgT7Lf(P4cEGI&SWh*@!P4rY>+((ptdq%pT^l z-x7Y&)n}U}F-Z22~e(->|Fq((f&S3__ zfm=2TWPJ7JXXJ`#8gT-gdP;9v7A-uL^bDGzuyokeFPz>l!^MzTM64E+QEQPE2Y7;~DQw?C1m1N4B4`WdUsYtnKjfb$XRA z!SIAT$2mQ7ugA#YzsyW!)OcjIa`2T|_T*zhUmQHKMsL&U&95Jy?aG_#NK49W;P}w# zv?y%;ScDiMNSyuoa=^fY_LsT2nt#HP`?vdvNm!)1=_qvx{!itT`fi-iH;B#>TrKYe z>k|ziRaF_uRHmEC{_xc7NU}(sF3xQ8Glz-pJa3<89^`nGavs>at9rUOSTyYrTxF`t z>a+LWL?O94G+zVpaQv{xEWkLC;SYz_2!|cfmv{z_C-@|ey0?{MgI03`q-n1?K0p0Q z8AJS_>339YM`G^s>)B4+f@jKTe%3>;ck-nrNp^zklqHmvlQoH79jT~>V0NpE9oaIs zxI)T4*xNjTn{&&3@8$4bGdHT*`XeEkwT1P*(5_!&?`K%Z^d}HP<_Ey$t`kv++9da_t2MhfyCGM`*Z&v$L1vcxV zJ>z=BbtEe4bSv4Y)%_PeqR&h=?VFThIRT37a4z}Rd&gOj_iuXMnw$Zng(#mD>Y4V2 zA;ieQbAe8yWvYTP&C}woDi~^bjs!R(MNc2u19D7skM@A^Y6-V-ogC}L3b6@yClV5A zrL{ZvtBUgQ)=GoPzLXG;G#SmZL7@qgoBO?0vzidKLoQpJLk)uq5ss6(wap;TfmNG^ z;Dnu6a*6cjuZOvR62l;mrrl12&{|R)=h<_wh-UNd+YNDK;vPkYnsK2w%8EXtYP{Zn zw|4TDnfBNxGbo092f1z>3zQ%q6T~H~1PgTWI6Pb6TrOFYe-wAf-E!zSdKX}3$KK9g zXGk|J_v|?+9>z@F%RuO-a)l(Kxi1EF8#rCWM>pqO2DmX1z>5s2i2y9=bS51=I3=$+ z?dRd1!@Hh=%rl{U`{7E&IS-+=NP(Sk9YWjEH%|GnC$<1J4lmD^`yJKroXqKohW(nK z_w=`s>wPp-27?5ak>}{BBvhInMd$HVLOlWhXMucM8l3H5;h;If+o8g`+hrs6_G9^U zTH!l^KS%+Uv^U{Kh>q}vg5*F^suCOQctqC1d*xeW(L3o>LkyCNteKINLtND#ZC6tU zQ0ue`Uh{W+fHAF~RFG67N-C1#}YAKEgHq6mvlZn=7 zYP};T%R4S?r>|a-R*=rG>_9HjpVWYACXrQ4fgw|AtEl%FNWZLkd`bAM^_8Iym904~ zIv+d9*qA65{5t}nsViR8M#9uSwwtCKnsrCcp?7v5x~S=F)V2PlF4fSBNu5SpvGu&B zVg*{L(kQR@N$u);F0>~F)#vI+Jgt2(4KRG4G!?Kd<$b3We;eaCRB_+ZWt#!F2^7y! zmd?dZ9#WsbU69hH($AJTvH0#z1$#~mFoS{THr_k-(hjiJOWY}d-kb{v-y_vV14yT9 zD+f2ZIp1L{`nMjyE}791)$maDH!AW>I)D+xDdop>^R&CaL7%BC=N21FTfniIr}N9g zi+Is=a>@jevESTA1~2!aTo0K0MlX3zDaXGz7@QXkH=GeFUx<8tcAw-y0I%_hi5vx{ z%7f(ViQnm#!-8a-N5+vf1z+F1g9n8hne`KM> z(rpn;#fnT5vAC?&Q{+AOWtF?h?H**?M~AhcCp{x0r^RBqCCKFrWb-h#XSrLe{M(fa zYs}wLF0UYd>qPr@D{I16 zid>*`_&uJD+`lD*(}|7~?gs_9;(ohrTjCjsKAhge(Jr`Jd{NC#o4dAJt-!m6hNC9?|M9+MqNTV5RC=znSg&>W3XjDkEch2Q5n8Y%Ca* z((_3SSqsQuUq8CAztL01uTF~Ue&n1`(K;<{ZximFn62q&efn~7hps@GpV4)zXqx;k z=9!W*MaBWhrQQBVxk9d$+2<26diAoS`O(cMzh4&ec^JPw_jW{ z#uERExoY&yelID@^gXr+A(x!%X+UzZe>9!|TxYhpN?P6&;~7fI&>29g{15NM(^^Whm$_F=gd~R;9OcPr--A+9kN? zp|su-41OW1QHBvqSAQo84q4u_-neP2xA4UUPJ{V46AXwJOb=ygxQD3!(pN_r2fqgj zNPDrBHv$zrOPMtx@H}^#jKZ)VdJfwQqSwz9aa#9rVy~uj9Lzy9YII!uB%-?zvWX$+ zeO#_8IcNQ_Hi_2DBcC2{IroIz+KSfku+e+pQe%=k!(!P$Cyp^n_2=iX#}ff^`S2+j~6Nbg9JlnP2b31robmuEjKu$_rWjku`-nZvEJ4 zO7cZ7)PaU%PkDt3FPb=`-K5>g?bcHpk+>r@R*Q$%R9*(x5KbxuhgQcU!n zYFABA@Mdq4dECGlf`FE5z!48iXI6a%l2%AO#6q0Rl(gt5pR;a`3OFPH4$SBdY7b0bD)6}Q&D{=^ePRk z-pG8N=jBs(A{&Leyej!$k^PMc@r@|%eeP+S<7`ZW0$nIx9L8ufy;TPsPtTrsXPNa{ zzyr@TPD;_gkT!FHS^qrO8XRRv^XzTIc~bl zo`ieu4E)?K+c}T#{-l?XSjdmQ;7Lv^N-w%FKQ78maO59bIM$L&5Mv>H9(@!wN4l#O z$g|0YRV=p9)QR6KJsV>Vik>m>H9WRohPvn&7?8`YoE;k*Dt82?I)pIPu)q4XGnsiN zspEJfu|+JDcFP#cup@3t4gKUIsXC53#5AzSK}Rd}QHXCg~S zoaMHCM8vc{i@=+~tI+i87W*N~*KM+OssW|$5%4C{i)#|u%Mo1WCs(cnI zEHVpC#rD^u|6eBkodBf1q-2Cxf`#j+M`e5yw6|}mdJ$5Be zn{Pn6AVxhGDrDnhx5i}Ujt+pp4+ngQBe# z${4Mi%okQq_c!bPO`F=X`HPZBk|5{XJ#K;T`uSuORi^k(D0E| zeX=n5nGtzyRD5Bqr7d2*`D9KAV~U#~I3jYTz{S?~j5&tUDduDpW-J%6BvE2$#rHdt zF&OCJS7Q1nU1KGvjzM@EgS?-`=?R#F$p4aR{n6QrQS;X@<0tv~aPy zGJqgl@M;ev1``n07lca+OGpX}@xtMfaQJO2Uf=%%uy?eywe|!AB*aBv0&tk1s6Jd= zQb6SD(|-dv`W_Qs0q*_p2uNFdD_5kMz0*Gi5fPAti~Spu=S=+V3d8Uh^VrcE>2Bs? l1;|@Enp?4{+nd=~=~ .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;-ms-filter:"alpha(opacity=25)";opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:pointer;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px} \ No newline at end of file diff --git a/allianceauth/static/allianceauth/js/jquery-ui/1.14.0/css/jquery-ui.min.css b/allianceauth/static/allianceauth/js/jquery-ui/1.14.0/css/jquery-ui.min.css deleted file mode 100644 index 46642fe0..00000000 --- a/allianceauth/static/allianceauth/js/jquery-ui/1.14.0/css/jquery-ui.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! jQuery UI - v1.14.0 - 2024-09-13 -* https://jqueryui.com -* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css -* Copyright OpenJS Foundation and other contributors; Licensed MIT */ - -.ui-draggable-handle{touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;user-select:none}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:pointer;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px} \ No newline at end of file diff --git a/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/LICENSE.txt b/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/LICENSE.txt new file mode 100644 index 00000000..78108290 --- /dev/null +++ b/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/LICENSE.txt @@ -0,0 +1,43 @@ +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. diff --git a/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_444444_256x240.png b/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_444444_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..acb971b6eeef3be57e382a25c0f9a191378c9093 GIT binary patch literal 7107 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 aVDo9S^jfVe<+~#*Ktts*q(aF$@;?A@U_sje literal 0 HcmV?d00001 diff --git a/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_555555_256x240.png b/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_555555_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..156d7e0f379a6fb8dd63980e6d06311b3f4f010f GIT binary patch literal 7105 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 b1O7XtWzcyBLGI(#6`&}qCQ~Y97V>`p`SC%D literal 0 HcmV?d00001 diff --git a/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_cc0000_256x240.png b/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_cc0000_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..343f5c7e0dad59094eee7184ee259af3b450e28b GIT binary patch literal 4615 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 literal 0 HcmV?d00001 diff --git a/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_ffffff_256x240.png b/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/images/ui-icons_ffffff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..da5f85c3cc631986d647171ded1cd983c277116b GIT binary patch literal 6395 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 literal 0 HcmV?d00001 diff --git a/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/jquery-ui.css b/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/jquery-ui.css new file mode 100644 index 00000000..eafcc23e --- /dev/null +++ b/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/jquery-ui.css @@ -0,0 +1,1285 @@ +/*! jQuery UI - v1.14.2 - 2026-01-29 +* https://jqueryui.com +* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit https://jqueryui.com/themeroller/?bgColorDefault=%23f6f6f6&borderColorDefault=%23c5c5c5&fcDefault=%23454545&bgColorHover=%23ededed&borderColorHover=%23cccccc&fcHover=%232b2b2b&bgColorActive=%23007fff&borderColorActive=%23003eff&fcActive=%23ffffff&bgColorHeader=%23e9e9e9&borderColorHeader=%23dddddd&fcHeader=%23333333&bgColorContent=%23ffffff&borderColorContent=%23dddddd&fcContent=%23333333&bgColorHighlight=%23fffa90&borderColorHighlight=%23dad55e&fcHighlight=%23777620&bgColorError=%23fddfdf&borderColorError=%23f1a899&fcError=%235f3f3f&bgColorOverlay=%23aaaaaa&opacityOverlay=.3&bgColorShadow=%23666666&opacityShadow=.3&offsetTopShadow=0px&offsetLeftShadow=0px&thicknessShadow=5px&cornerRadiusShadow=8px&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif&fwDefault=normal&cornerRadius=3px&bgTextureDefault=flat&bgTextureHover=flat&bgTextureActive=flat&bgTextureHeader=flat&bgTextureContent=flat&bgTextureHighlight=flat&bgTextureError=flat&bgTextureOverlay=flat&bgTextureShadow=flat&bgImgOpacityDefault=75&bgImgOpacityHover=75&bgImgOpacityActive=65&bgImgOpacityHeader=75&bgImgOpacityContent=75&bgImgOpacityHighlight=55&bgImgOpacityError=95&bgImgOpacityOverlay=0&bgImgOpacityShadow=0&iconColorActive=%23ffffff&iconColorContent=%23444444&iconColorDefault=%23777777&iconColorError=%23cc0000&iconColorHeader=%23444444&iconColorHighlight=%23777620&iconColorHover=%23555555&opacityOverlayPerc=30&opacityShadowPerc=30&bgImgUrlActive=&bgImgUrlContent=&bgImgUrlDefault=&bgImgUrlError=&bgImgUrlHeader=&bgImgUrlHighlight=&bgImgUrlHover=&bgImgUrlOverlay=&bgImgUrlShadow=&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&bgDefaultRepeat=&bgHoverRepeat=&bgActiveRepeat=&bgHeaderRepeat=&bgContentRepeat=&bgHighlightRepeat=&bgErrorRepeat=&bgOverlayRepeat=&bgShadowRepeat=&bgDefaultYPos=&bgHoverYPos=&bgActiveYPos=&bgHeaderYPos=&bgContentYPos=&bgHighlightYPos=&bgErrorYPos=&bgOverlayYPos=&bgShadowYPos=&bgDefaultXPos=&bgHoverXPos=&bgActiveXPos=&bgHeaderXPos=&bgContentXPos=&bgHighlightXPos=&bgErrorXPos=&bgOverlayXPos=&bgShadowXPos= +* Copyright OpenJS Foundation and other contributors; Licensed MIT */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; + pointer-events: none; +} + + +/* Icons +----------------------------------*/ +.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + +.ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; +} + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ui-accordion .ui-accordion-header { + display: block; + cursor: pointer; + position: relative; + margin: 2px 0 0 0; + padding: .5em .5em .5em .7em; + font-size: 100%; +} +.ui-accordion .ui-accordion-content { + padding: 1em 2.2em; + border-top: 0; + overflow: auto; +} +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} +.ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: 0; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + margin: 0; + cursor: pointer; +} +.ui-menu .ui-menu-item-wrapper { + position: relative; + padding: 3px 1em 3px .4em; +} +.ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-state-focus, +.ui-menu .ui-state-active { + margin: -1px; +} + +/* icon support */ +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item-wrapper { + padding-left: 2em; +} + +/* left-aligned */ +.ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: .2em; + margin: auto 0; +} + +/* right-aligned */ +.ui-menu .ui-menu-icon { + left: auto; + right: 0; +} +.ui-button { + padding: .4em 1em; + display: inline-block; + position: relative; + line-height: normal; + margin-right: .1em; + cursor: pointer; + vertical-align: middle; + text-align: center; + -webkit-user-select: none; + user-select: none; +} + +.ui-button, +.ui-button:link, +.ui-button:visited, +.ui-button:hover, +.ui-button:active { + text-decoration: none; +} + +/* to make room for the icon, a width needs to be set here */ +.ui-button-icon-only { + width: 2em; + box-sizing: border-box; + text-indent: -9999px; + white-space: nowrap; +} + +/* no icon support for input elements */ +input.ui-button.ui-button-icon-only { + text-indent: 0; +} + +/* button icon element(s) */ +.ui-button-icon-only .ui-icon { + position: absolute; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; +} + +.ui-button.ui-icon-notext .ui-icon { + padding: 0; + width: 2.1em; + height: 2.1em; + text-indent: -9999px; + white-space: nowrap; + +} + +input.ui-button.ui-icon-notext .ui-icon { + width: auto; + height: auto; + text-indent: 0; + white-space: normal; + padding: .4em 1em; +} + +/* workarounds */ +/* Support: Firefox 5 - 125+ */ +input.ui-button::-moz-focus-inner, +button.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} +.ui-controlgroup { + vertical-align: middle; + display: inline-block; +} +.ui-controlgroup > .ui-controlgroup-item { + float: left; + margin-left: 0; + margin-right: 0; +} +.ui-controlgroup > .ui-controlgroup-item:focus, +.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus { + z-index: 9999; +} +.ui-controlgroup-vertical > .ui-controlgroup-item { + display: block; + float: none; + width: 100%; + margin-top: 0; + margin-bottom: 0; + text-align: left; +} +.ui-controlgroup-vertical .ui-controlgroup-item { + box-sizing: border-box; +} +.ui-controlgroup .ui-controlgroup-label { + padding: .4em 1em; +} +.ui-controlgroup .ui-controlgroup-label span { + font-size: 80%; +} +.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item { + border-left: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item { + border-top: none; +} +.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content { + border-right: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content { + border-bottom: none; +} + +/* Spinner specific style fixes */ +.ui-controlgroup-vertical .ui-spinner-input { + width: calc( 100% - 2.4em ); +} +.ui-controlgroup-vertical .ui-spinner .ui-spinner-up { + border-top-style: solid; +} + +.ui-checkboxradio-label .ui-icon-background { + box-shadow: inset 1px 1px 1px #ccc; + border-radius: .12em; + border: none; +} +.ui-checkboxradio-radio-label .ui-icon-background { + width: 16px; + height: 16px; + border-radius: 1em; + overflow: visible; + border: none; +} +.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon, +.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon { + background-image: none; + width: 8px; + height: 8px; + border-width: 4px; + border-style: solid; +} +.ui-checkboxradio-disabled { + pointer-events: none; +} +.ui-datepicker { + width: 17em; + padding: .2em .2em 0; + display: none; +} +.ui-datepicker .ui-datepicker-header { + position: relative; + padding: .2em 0; +} +.ui-datepicker .ui-datepicker-prev, +.ui-datepicker .ui-datepicker-next { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; +} +.ui-datepicker .ui-datepicker-prev-hover, +.ui-datepicker .ui-datepicker-next-hover { + top: 1px; +} +.ui-datepicker .ui-datepicker-prev { + left: 2px; +} +.ui-datepicker .ui-datepicker-next { + right: 2px; +} +.ui-datepicker .ui-datepicker-prev-hover { + left: 1px; +} +.ui-datepicker .ui-datepicker-next-hover { + right: 1px; +} +.ui-datepicker .ui-datepicker-prev span, +.ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + font-size: 1em; + margin: 1px 0; +} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { + width: 45%; +} +.ui-datepicker table { + width: 100%; + font-size: .9em; + border-collapse: collapse; + margin: 0 0 .4em; +} +.ui-datepicker th { + padding: .7em .3em; + text-align: center; + font-weight: bold; + border: 0; +} +.ui-datepicker td { + border: 0; + padding: 1px; +} +.ui-datepicker td span, +.ui-datepicker td a { + display: block; + padding: .2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: left; +} + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { + width: auto; +} +.ui-datepicker-multi .ui-datepicker-group { + float: left; +} +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto .4em; +} +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; +} +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; +} +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; +} +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + clear: left; +} +.ui-datepicker-row-break { + clear: both; + width: 100%; + font-size: 0; +} + +/* RTL support */ +.ui-datepicker-rtl { + direction: rtl; +} +.ui-datepicker-rtl .ui-datepicker-prev { + right: 2px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next { + left: 2px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-prev:hover { + right: 1px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next:hover { + left: 1px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: right; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: left; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, +.ui-datepicker-rtl .ui-datepicker-group { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} + +/* Icons */ +.ui-datepicker .ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + left: .5em; + top: .3em; +} +.ui-dialog { + position: absolute; + top: 0; + left: 0; + padding: .2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: .4em 1em; + position: relative; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: .1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: .3em; + top: 50%; + width: 20px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; +} +.ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: .5em 1em; + background: none; + overflow: auto; +} +.ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + margin-top: .5em; + padding: .3em 1em .5em .4em; +} +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; +} +.ui-dialog .ui-dialog-buttonpane button { + margin: .5em .4em .5em 0; + cursor: pointer; +} +.ui-dialog .ui-resizable-n { + height: 2px; + top: 0; +} +.ui-dialog .ui-resizable-e { + width: 2px; + right: 0; +} +.ui-dialog .ui-resizable-s { + height: 2px; + bottom: 0; +} +.ui-dialog .ui-resizable-w { + width: 2px; + left: 0; +} +.ui-dialog .ui-resizable-se, +.ui-dialog .ui-resizable-sw, +.ui-dialog .ui-resizable-ne, +.ui-dialog .ui-resizable-nw { + width: 7px; + height: 7px; +} +.ui-dialog .ui-resizable-se { + right: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-sw { + left: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-ne { + right: 0; + top: 0; +} +.ui-dialog .ui-resizable-nw { + left: 0; + top: 0; +} +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} +.ui-draggable-handle { + touch-action: none; +} +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; + touch-action: none; +} +.ui-resizable-disabled .ui-resizable-handle, +.ui-resizable-autohide .ui-resizable-handle { + display: none; +} +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; +} +.ui-progressbar { + height: 2em; + text-align: left; + overflow: hidden; +} +.ui-progressbar .ui-progressbar-value { + margin: -1px; + height: 100%; +} +.ui-progressbar .ui-progressbar-overlay { + background: url("data:image/gif;base64,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"); + height: 100%; + opacity: 0.25; +} +.ui-progressbar-indeterminate .ui-progressbar-value { + background-image: none; +} +.ui-selectable { + touch-action: none; +} +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted black; +} +.ui-selectmenu-menu { + padding: 0; + margin: 0; + position: absolute; + top: 0; + left: 0; + display: none; +} +.ui-selectmenu-menu .ui-menu { + overflow: auto; + overflow-x: hidden; + padding-bottom: 1px; +} +.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { + font-size: 1em; + font-weight: bold; + line-height: 1.5; + padding: 2px 0.4em; + margin: 0.5em 0 0 0; + height: auto; + border: 0; +} +.ui-selectmenu-open { + display: block; +} +.ui-selectmenu-text { + display: block; + margin-right: 20px; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-selectmenu-button.ui-button { + text-align: left; + white-space: nowrap; + width: 14em; +} +.ui-selectmenu-icon.ui-icon { + float: right; + margin-top: 0; +} +.ui-slider { + position: relative; + text-align: left; +} +.ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 1.2em; + height: 1.2em; + cursor: pointer; + touch-action: none; +} +.ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: .7em; + display: block; + border: 0; + background-position: 0 0; +} + +.ui-slider-horizontal { + height: .8em; +} +.ui-slider-horizontal .ui-slider-handle { + top: -.3em; + margin-left: -.6em; +} +.ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; +} +.ui-slider-horizontal .ui-slider-range-min { + left: 0; +} +.ui-slider-horizontal .ui-slider-range-max { + right: 0; +} + +.ui-slider-vertical { + width: .8em; + height: 100px; +} +.ui-slider-vertical .ui-slider-handle { + left: -.3em; + margin-left: 0; + margin-bottom: -.6em; +} +.ui-slider-vertical .ui-slider-range { + left: 0; + width: 100%; +} +.ui-slider-vertical .ui-slider-range-min { + bottom: 0; +} +.ui-slider-vertical .ui-slider-range-max { + top: 0; +} +.ui-sortable-handle { + touch-action: none; +} +.ui-spinner { + position: relative; + display: inline-block; + overflow: hidden; + padding: 0; + vertical-align: middle; +} +.ui-spinner-input { + border: none; + background: none; + color: inherit; + padding: .222em 0; + margin: .2em 0; + vertical-align: middle; + margin-left: .4em; + margin-right: 2em; +} +.ui-spinner-button { + width: 1.6em; + height: 50%; + font-size: .5em; + padding: 0; + margin: 0; + text-align: center; + position: absolute; + cursor: default; + display: block; + overflow: hidden; + right: 0; +} +/* more specificity required here to override default borders */ +.ui-spinner a.ui-spinner-button { + border-top-style: none; + border-bottom-style: none; + border-right-style: none; +} +.ui-spinner-up { + top: 0; +} +.ui-spinner-down { + bottom: 0; +} +.ui-tabs { + position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ + padding: .2em; +} +.ui-tabs .ui-tabs-nav { + margin: 0; + padding: .2em .2em 0; +} +.ui-tabs .ui-tabs-nav li { + list-style: none; + float: left; + position: relative; + top: 0; + margin: 1px .2em 0 0; + border-bottom-width: 0; + padding: 0; + white-space: nowrap; +} +.ui-tabs .ui-tabs-nav .ui-tabs-anchor { + float: left; + padding: .5em 1em; + text-decoration: none; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active { + margin-bottom: -1px; + padding-bottom: 1px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { + cursor: text; +} +.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { + cursor: pointer; +} +.ui-tabs .ui-tabs-panel { + display: block; + border-width: 0; + padding: 1em 1.4em; + background: none; +} +.ui-tooltip { + padding: 8px; + position: absolute; + z-index: 9999; + max-width: 300px; +} +body .ui-tooltip { + border-width: 2px; +} + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget.ui-widget-content { + border: 1px solid #c5c5c5; +} +.ui-widget-content { + border: 1px solid #dddddd; + background: #ffffff; + color: #333333; +} +.ui-widget-content a { + color: #333333; +} +.ui-widget-header { + border: 1px solid #dddddd; + background: #e9e9e9; + color: #333333; + font-weight: bold; +} +.ui-widget-header a { + color: #333333; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default, +.ui-button, + +/* We use html here because we need a greater specificity to make sure disabled +works properly when clicked or hovered */ +html .ui-button.ui-state-disabled:hover, +html .ui-button.ui-state-disabled:active { + border: 1px solid #c5c5c5; + background: #f6f6f6; + font-weight: normal; + color: #454545; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited, +a.ui-button, +a:link.ui-button, +a:visited.ui-button, +.ui-button { + color: #454545; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus, +.ui-button:hover, +.ui-button:focus { + border: 1px solid #cccccc; + background: #ededed; + font-weight: normal; + color: #2b2b2b; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited, +a.ui-button:hover, +a.ui-button:focus { + color: #2b2b2b; + text-decoration: none; +} + +.ui-visual-focus { + box-shadow: 0 0 3px 1px rgb(94, 158, 214); +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + border: 1px solid #003eff; + background: #007fff; + font-weight: normal; + color: #ffffff; +} +.ui-icon-background, +.ui-state-active .ui-icon-background { + border: #003eff; + background-color: #ffffff; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #ffffff; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #dad55e; + background: #fffa90; + color: #777620; +} +.ui-state-checked { + border: 1px solid #dad55e; + background: #fffa90; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #777620; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #f1a899; + background: #fddfdf; + color: #5f3f3f; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #5f3f3f; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #5f3f3f; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + background-image: none; +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-widget-header .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon, +.ui-button:hover .ui-icon, +.ui-button:focus .ui-icon { + background-image: url("images/ui-icons_555555_256x240.png"); +} +.ui-state-active .ui-icon, +.ui-button:active .ui-icon { + background-image: url("images/ui-icons_ffffff_256x240.png"); +} +.ui-state-highlight .ui-icon, +.ui-button .ui-state-highlight.ui-icon { + background-image: url("images/ui-icons_777620_256x240.png"); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("images/ui-icons_cc0000_256x240.png"); +} +.ui-button .ui-icon { + background-image: url("images/ui-icons_777777_256x240.png"); +} + +/* positioning */ +/* Three classes needed to override `.ui-button:hover .ui-icon` */ +.ui-icon-blank.ui-icon-blank.ui-icon-blank { + background-image: none; +} +.ui-icon-caret-1-n { background-position: 0 0; } +.ui-icon-caret-1-ne { background-position: -16px 0; } +.ui-icon-caret-1-e { background-position: -32px 0; } +.ui-icon-caret-1-se { background-position: -48px 0; } +.ui-icon-caret-1-s { background-position: -65px 0; } +.ui-icon-caret-1-sw { background-position: -80px 0; } +.ui-icon-caret-1-w { background-position: -96px 0; } +.ui-icon-caret-1-nw { background-position: -112px 0; } +.ui-icon-caret-2-n-s { background-position: -128px 0; } +.ui-icon-caret-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -65px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -65px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 1px -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 3px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #aaaaaa; + opacity: .3; +} +.ui-widget-shadow { + box-shadow: 0px 0px 5px #666666; +} diff --git a/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/jquery-ui.js b/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/jquery-ui.js new file mode 100644 index 00000000..ccb9c433 --- /dev/null +++ b/allianceauth/static/allianceauth/libs/jquery-ui/1.14.2/jquery-ui.js @@ -0,0 +1,18842 @@ +/*! jQuery UI - v1.14.2 - 2026-01-29 +* https://jqueryui.com +* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js +* Copyright OpenJS Foundation and other contributors; Licensed MIT */ + +( function( factory ) { + "use strict"; + + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "jquery" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +} )( function( $ ) { +"use strict"; + +$.ui = $.ui || {}; + +var version = $.ui.version = "1.14.2"; + + +/*! + * jQuery UI Widget 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Widget +//>>group: Core +//>>description: Provides a factory for creating stateful widgets with a common API. +//>>docs: https://api.jqueryui.com/jQuery.widget/ +//>>demos: https://jqueryui.com/widget/ + + +var widgetUuid = 0; +var widgetHasOwnProperty = Array.prototype.hasOwnProperty; +var widgetSlice = Array.prototype.slice; + +$.cleanData = ( function( orig ) { + return function( elems ) { + var events, elem, i; + for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) { + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + } + orig( elems ); + }; +} )( $.cleanData ); + +$.widget = function( name, base, prototype ) { + var existingConstructor, constructor, basePrototype; + + // ProxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + var proxiedPrototype = {}; + + var namespace = name.split( "." )[ 0 ]; + name = name.split( "." )[ 1 ]; + if ( name === "__proto__" || name === "constructor" ) { + return $.error( "Invalid widget name: " + name ); + } + var fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + if ( Array.isArray( prototype ) ) { + prototype = $.extend.apply( null, [ {} ].concat( prototype ) ); + } + + // Create selector for plugin + $.expr.pseudos[ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + + // Allow instantiation without "new" keyword + if ( !this || !this._createWidget ) { + return new constructor( options, element ); + } + + // Allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + + // Extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + + // Copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + + // Track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + } ); + + basePrototype = new base(); + + // We need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( typeof value !== "function" ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = ( function() { + function _super() { + return base.prototype[ prop ].apply( this, arguments ); + } + + function _superApply( args ) { + return base.prototype[ prop ].apply( this, args ); + } + + return function() { + var __super = this._super; + var __superApply = this._superApply; + var returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + } )(); + } ); + constructor.prototype = $.widget.extend( basePrototype, { + + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + } ); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // Redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, + child._proto ); + } ); + + // Remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); + + return constructor; +}; + +$.widget.extend = function( target ) { + var input = widgetSlice.call( arguments, 1 ); + var inputIndex = 0; + var inputLength = input.length; + var key; + var value; + + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( widgetHasOwnProperty.call( input[ inputIndex ], key ) && value !== undefined ) { + + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string"; + var args = widgetSlice.call( arguments, 1 ); + var returnValue = this; + + if ( isMethodCall ) { + + // If this is an empty collection, we need to have the instance method + // return undefined instead of the jQuery instance + if ( !this.length && options === "instance" ) { + returnValue = undefined; + } else { + this.each( function() { + var methodValue; + var instance = $.data( this, fullName ); + + if ( options === "instance" ) { + returnValue = instance; + return false; + } + + if ( !instance ) { + return $.error( "cannot call methods on " + name + + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + + if ( typeof instance[ options ] !== "function" || + options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + + " widget instance" ); + } + + methodValue = instance[ options ].apply( instance, args ); + + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + } ); + } + } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat( args ) ); + } + + this.each( function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} ); + if ( instance._init ) { + instance._init(); + } + } else { + $.data( this, fullName, new object( options, this ) ); + } + } ); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "
", + + options: { + classes: {}, + disabled: false, + + // Callbacks + create: null + }, + + _createWidget: function( options, element ) { + element = $( element || this.defaultElement || this )[ 0 ]; + this.element = $( element ); + this.uuid = widgetUuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; + + this.bindings = $(); + this.hoverable = $(); + this.focusable = $(); + this.classesElementLookup = {}; + + if ( element !== this ) { + $.data( element, this.widgetFullName, this ); + this._on( true, this.element, { + remove: function( event ) { + if ( event.target === element ) { + this.destroy(); + } + } + } ); + this.document = $( element.style ? + + // Element within the document + element.ownerDocument : + + // Element is window or document + element.document || element ); + this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow ); + } + + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + + this._create(); + + if ( this.options.disabled ) { + this._setOptionDisabled( this.options.disabled ); + } + + this._trigger( "create", null, this._getCreateEventData() ); + this._init(); + }, + + _getCreateOptions: function() { + return {}; + }, + + _getCreateEventData: $.noop, + + _create: $.noop, + + _init: $.noop, + + destroy: function() { + var that = this; + + this._destroy(); + $.each( this.classesElementLookup, function( key, value ) { + that._removeClass( value, key ); + } ); + + // We can probably remove the unbind calls in 2.0 + // all event bindings should go through this._on() + this.element + .off( this.eventNamespace ) + .removeData( this.widgetFullName ); + this.widget() + .off( this.eventNamespace ) + .removeAttr( "aria-disabled" ); + + // Clean up events and states + this.bindings.off( this.eventNamespace ); + }, + + _destroy: $.noop, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key; + var parts; + var curOption; + var i; + + if ( arguments.length === 0 ) { + + // Don't return a reference to the internal hash + return $.widget.extend( {}, this.options ); + } + + if ( typeof key === "string" ) { + + // Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } + options = {}; + parts = key.split( "." ); + key = parts.shift(); + if ( parts.length ) { + curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); + for ( i = 0; i < parts.length - 1; i++ ) { + curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; + curOption = curOption[ parts[ i ] ]; + } + key = parts.pop(); + if ( arguments.length === 1 ) { + return curOption[ key ] === undefined ? null : curOption[ key ]; + } + curOption[ key ] = value; + } else { + if ( arguments.length === 1 ) { + return this.options[ key ] === undefined ? null : this.options[ key ]; + } + options[ key ] = value; + } + } + + this._setOptions( options ); + + return this; + }, + + _setOptions: function( options ) { + var key; + + for ( key in options ) { + this._setOption( key, options[ key ] ); + } + + return this; + }, + + _setOption: function( key, value ) { + if ( key === "classes" ) { + this._setOptionClasses( value ); + } + + this.options[ key ] = value; + + if ( key === "disabled" ) { + this._setOptionDisabled( value ); + } + + return this; + }, + + _setOptionClasses: function( value ) { + var classKey, elements, currentElements; + + for ( classKey in value ) { + currentElements = this.classesElementLookup[ classKey ]; + if ( value[ classKey ] === this.options.classes[ classKey ] || + !currentElements || + !currentElements.length ) { + continue; + } + + // We are doing this to create a new jQuery object because the _removeClass() call + // on the next line is going to destroy the reference to the current elements being + // tracked. We need to save a copy of this collection so that we can add the new classes + // below. + elements = $( currentElements.get() ); + this._removeClass( currentElements, classKey ); + + // We don't use _addClass() here, because that uses this.options.classes + // for generating the string of classes. We want to use the value passed in from + // _setOption(), this is the new value of the classes option which was passed to + // _setOption(). We pass this value directly to _classes(). + elements.addClass( this._classes( { + element: elements, + keys: classKey, + classes: value, + add: true + } ) ); + } + }, + + _setOptionDisabled: function( value ) { + this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value ); + + // If the widget is becoming disabled, then nothing is interactive + if ( value ) { + this._removeClass( this.hoverable, null, "ui-state-hover" ); + this._removeClass( this.focusable, null, "ui-state-focus" ); + } + }, + + enable: function() { + return this._setOptions( { disabled: false } ); + }, + + disable: function() { + return this._setOptions( { disabled: true } ); + }, + + _classes: function( options ) { + var full = []; + var that = this; + + options = $.extend( { + element: this.element, + classes: this.options.classes || {} + }, options ); + + function bindRemoveEvent() { + var nodesToBind = []; + + options.element.each( function( _, element ) { + var isTracked = $.map( that.classesElementLookup, function( elements ) { + return elements; + } ) + .some( function( elements ) { + return elements.is( element ); + } ); + + if ( !isTracked ) { + nodesToBind.push( element ); + } + } ); + + that._on( $( nodesToBind ), { + remove: "_untrackClassesElement" + } ); + } + + function processClassString( classes, checkOption ) { + var current, i; + for ( i = 0; i < classes.length; i++ ) { + current = that.classesElementLookup[ classes[ i ] ] || $(); + if ( options.add ) { + bindRemoveEvent(); + current = $( $.uniqueSort( current.get().concat( options.element.get() ) ) ); + } else { + current = $( current.not( options.element ).get() ); + } + that.classesElementLookup[ classes[ i ] ] = current; + full.push( classes[ i ] ); + if ( checkOption && options.classes[ classes[ i ] ] ) { + full.push( options.classes[ classes[ i ] ] ); + } + } + } + + if ( options.keys ) { + processClassString( options.keys.match( /\S+/g ) || [], true ); + } + if ( options.extra ) { + processClassString( options.extra.match( /\S+/g ) || [] ); + } + + return full.join( " " ); + }, + + _untrackClassesElement: function( event ) { + var that = this; + $.each( that.classesElementLookup, function( key, value ) { + if ( $.inArray( event.target, value ) !== -1 ) { + that.classesElementLookup[ key ] = $( value.not( event.target ).get() ); + } + } ); + + this._off( $( event.target ) ); + }, + + _removeClass: function( element, keys, extra ) { + return this._toggleClass( element, keys, extra, false ); + }, + + _addClass: function( element, keys, extra ) { + return this._toggleClass( element, keys, extra, true ); + }, + + _toggleClass: function( element, keys, extra, add ) { + add = ( typeof add === "boolean" ) ? add : extra; + var shift = ( typeof element === "string" || element === null ), + options = { + extra: shift ? keys : extra, + keys: shift ? element : keys, + element: shift ? this.element : element, + add: add + }; + options.element.toggleClass( this._classes( options ), add ); + return this; + }, + + _on: function( suppressDisabledCheck, element, handlers ) { + var delegateElement; + var instance = this; + + // No suppressDisabledCheck flag, shuffle arguments + if ( typeof suppressDisabledCheck !== "boolean" ) { + handlers = element; + element = suppressDisabledCheck; + suppressDisabledCheck = false; + } + + // No element argument, shuffle and use this.element + if ( !handlers ) { + handlers = element; + element = this.element; + delegateElement = this.widget(); + } else { + element = delegateElement = $( element ); + this.bindings = this.bindings.add( element ); + } + + $.each( handlers, function( event, handler ) { + function handlerProxy() { + + // Allow widgets to customize the disabled handling + // - disabled as an array instead of boolean + // - disabled class as method for disabling individual parts + if ( !suppressDisabledCheck && + ( instance.options.disabled === true || + $( this ).hasClass( "ui-state-disabled" ) ) ) { + return; + } + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + + // Copy the guid so direct unbinding works + if ( typeof handler !== "string" ) { + handlerProxy.guid = handler.guid = + handler.guid || handlerProxy.guid || $.guid++; + } + + var match = event.match( /^([\w:-]*)\s*(.*)$/ ); + var eventName = match[ 1 ] + instance.eventNamespace; + var selector = match[ 2 ]; + + if ( selector ) { + delegateElement.on( eventName, selector, handlerProxy ); + } else { + element.on( eventName, handlerProxy ); + } + } ); + }, + + _off: function( element, eventName ) { + eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; + element.off( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); + }, + + _delay: function( handler, delay ) { + function handlerProxy() { + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + var instance = this; + return setTimeout( handlerProxy, delay || 0 ); + }, + + _hoverable: function( element ) { + this.hoverable = this.hoverable.add( element ); + this._on( element, { + mouseenter: function( event ) { + this._addClass( $( event.currentTarget ), null, "ui-state-hover" ); + }, + mouseleave: function( event ) { + this._removeClass( $( event.currentTarget ), null, "ui-state-hover" ); + } + } ); + }, + + _focusable: function( element ) { + this.focusable = this.focusable.add( element ); + this._on( element, { + focusin: function( event ) { + this._addClass( $( event.currentTarget ), null, "ui-state-focus" ); + }, + focusout: function( event ) { + this._removeClass( $( event.currentTarget ), null, "ui-state-focus" ); + } + } ); + }, + + _trigger: function( type, event, data ) { + var prop, orig; + var callback = this.options[ type ]; + + data = data || {}; + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + + // The original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; + + // Copy original event properties over to the new event + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } + } + } + + this.element.trigger( event, data ); + return !( typeof callback === "function" && + callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false || + event.isDefaultPrevented() ); + } +}; + +$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { + $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { + if ( typeof options === "string" ) { + options = { effect: options }; + } + + var hasOptions; + var effectName = !options ? + method : + options === true || typeof options === "number" ? + defaultEffect : + options.effect || defaultEffect; + + options = options || {}; + if ( typeof options === "number" ) { + options = { duration: options }; + } else if ( options === true ) { + options = {}; + } + + hasOptions = !$.isEmptyObject( options ); + options.complete = callback; + + if ( options.delay ) { + element.delay( options.delay ); + } + + if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { + element[ method ]( options ); + } else if ( effectName !== method && element[ effectName ] ) { + element[ effectName ]( options.duration, options.easing, callback ); + } else { + element.queue( function( next ) { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + next(); + } ); + } + }; +} ); + +var widget = $.widget; + + +/*! + * jQuery UI Position 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * https://api.jqueryui.com/position/ + */ + +//>>label: Position +//>>group: Core +//>>description: Positions elements relative to other elements. +//>>docs: https://api.jqueryui.com/position/ +//>>demos: https://jqueryui.com/position/ + + +( function() { +var cachedScrollbarWidth, + max = Math.max, + abs = Math.abs, + rhorizontal = /left|center|right/, + rvertical = /top|center|bottom/, + roffset = /[\+\-]\d+(\.[\d]+)?%?/, + rposition = /^\w+/, + rpercent = /%$/, + _position = $.fn.position; + +function getOffsets( offsets, width, height ) { + return [ + parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ), + parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 ) + ]; +} + +function parseCss( element, property ) { + return parseInt( $.css( element, property ), 10 ) || 0; +} + +function isWindow( obj ) { + return obj != null && obj === obj.window; +} + +function getDimensions( elem ) { + var raw = elem[ 0 ]; + if ( raw.nodeType === 9 ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: 0, left: 0 } + }; + } + if ( isWindow( raw ) ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: elem.scrollTop(), left: elem.scrollLeft() } + }; + } + if ( raw.preventDefault ) { + return { + width: 0, + height: 0, + offset: { top: raw.pageY, left: raw.pageX } + }; + } + return { + width: elem.outerWidth(), + height: elem.outerHeight(), + offset: elem.offset() + }; +} + +$.position = { + scrollbarWidth: function() { + if ( cachedScrollbarWidth !== undefined ) { + return cachedScrollbarWidth; + } + var w1, w2, + div = $( "
" + + "
" ), + innerDiv = div.children()[ 0 ]; + + $( "body" ).append( div ); + w1 = innerDiv.offsetWidth; + div.css( "overflow", "scroll" ); + + w2 = innerDiv.offsetWidth; + + if ( w1 === w2 ) { + w2 = div[ 0 ].clientWidth; + } + + div.remove(); + + return ( cachedScrollbarWidth = w1 - w2 ); + }, + getScrollInfo: function( within ) { + var overflowX = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-x" ), + overflowY = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-y" ), + hasOverflowX = overflowX === "scroll" || + ( overflowX === "auto" && within.width < within.element[ 0 ].scrollWidth ), + hasOverflowY = overflowY === "scroll" || + ( overflowY === "auto" && within.height < within.element[ 0 ].scrollHeight ); + return { + width: hasOverflowY ? $.position.scrollbarWidth() : 0, + height: hasOverflowX ? $.position.scrollbarWidth() : 0 + }; + }, + getWithinInfo: function( element ) { + var withinElement = $( element || window ), + isElemWindow = isWindow( withinElement[ 0 ] ), + isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9, + hasOffset = !isElemWindow && !isDocument; + return { + element: withinElement, + isWindow: isElemWindow, + isDocument: isDocument, + offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 }, + scrollLeft: withinElement.scrollLeft(), + scrollTop: withinElement.scrollTop(), + width: withinElement.outerWidth(), + height: withinElement.outerHeight() + }; + } +}; + +$.fn.position = function( options ) { + if ( !options || !options.of ) { + return _position.apply( this, arguments ); + } + + // Make a copy, we don't want to modify arguments + options = $.extend( {}, options ); + + var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, + + // Make sure string options are treated as CSS selectors + target = typeof options.of === "string" ? + $( document ).find( options.of ) : + $( options.of ), + + within = $.position.getWithinInfo( options.within ), + scrollInfo = $.position.getScrollInfo( within ), + collision = ( options.collision || "flip" ).split( " " ), + offsets = {}; + + dimensions = getDimensions( target ); + if ( target[ 0 ].preventDefault ) { + + // Force left top to allow flipping + options.at = "left top"; + } + targetWidth = dimensions.width; + targetHeight = dimensions.height; + targetOffset = dimensions.offset; + + // Clone to reuse original targetOffset later + basePosition = $.extend( {}, targetOffset ); + + // Force my and at to have valid horizontal and vertical positions + // if a value is missing or invalid, it will be converted to center + $.each( [ "my", "at" ], function() { + var pos = ( options[ this ] || "" ).split( " " ), + horizontalOffset, + verticalOffset; + + if ( pos.length === 1 ) { + pos = rhorizontal.test( pos[ 0 ] ) ? + pos.concat( [ "center" ] ) : + rvertical.test( pos[ 0 ] ) ? + [ "center" ].concat( pos ) : + [ "center", "center" ]; + } + pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center"; + pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center"; + + // Calculate offsets + horizontalOffset = roffset.exec( pos[ 0 ] ); + verticalOffset = roffset.exec( pos[ 1 ] ); + offsets[ this ] = [ + horizontalOffset ? horizontalOffset[ 0 ] : 0, + verticalOffset ? verticalOffset[ 0 ] : 0 + ]; + + // Reduce to just the positions without the offsets + options[ this ] = [ + rposition.exec( pos[ 0 ] )[ 0 ], + rposition.exec( pos[ 1 ] )[ 0 ] + ]; + } ); + + // Normalize collision option + if ( collision.length === 1 ) { + collision[ 1 ] = collision[ 0 ]; + } + + if ( options.at[ 0 ] === "right" ) { + basePosition.left += targetWidth; + } else if ( options.at[ 0 ] === "center" ) { + basePosition.left += targetWidth / 2; + } + + if ( options.at[ 1 ] === "bottom" ) { + basePosition.top += targetHeight; + } else if ( options.at[ 1 ] === "center" ) { + basePosition.top += targetHeight / 2; + } + + atOffset = getOffsets( offsets.at, targetWidth, targetHeight ); + basePosition.left += atOffset[ 0 ]; + basePosition.top += atOffset[ 1 ]; + + return this.each( function() { + var collisionPosition, using, + elem = $( this ), + elemWidth = elem.outerWidth(), + elemHeight = elem.outerHeight(), + marginLeft = parseCss( this, "marginLeft" ), + marginTop = parseCss( this, "marginTop" ), + collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + + scrollInfo.width, + collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + + scrollInfo.height, + position = $.extend( {}, basePosition ), + myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() ); + + if ( options.my[ 0 ] === "right" ) { + position.left -= elemWidth; + } else if ( options.my[ 0 ] === "center" ) { + position.left -= elemWidth / 2; + } + + if ( options.my[ 1 ] === "bottom" ) { + position.top -= elemHeight; + } else if ( options.my[ 1 ] === "center" ) { + position.top -= elemHeight / 2; + } + + position.left += myOffset[ 0 ]; + position.top += myOffset[ 1 ]; + + collisionPosition = { + marginLeft: marginLeft, + marginTop: marginTop + }; + + $.each( [ "left", "top" ], function( i, dir ) { + if ( $.ui.position[ collision[ i ] ] ) { + $.ui.position[ collision[ i ] ][ dir ]( position, { + targetWidth: targetWidth, + targetHeight: targetHeight, + elemWidth: elemWidth, + elemHeight: elemHeight, + collisionPosition: collisionPosition, + collisionWidth: collisionWidth, + collisionHeight: collisionHeight, + offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ], + my: options.my, + at: options.at, + within: within, + elem: elem + } ); + } + } ); + + if ( options.using ) { + + // Adds feedback as second argument to using callback, if present + using = function( props ) { + var left = targetOffset.left - position.left, + right = left + targetWidth - elemWidth, + top = targetOffset.top - position.top, + bottom = top + targetHeight - elemHeight, + feedback = { + target: { + element: target, + left: targetOffset.left, + top: targetOffset.top, + width: targetWidth, + height: targetHeight + }, + element: { + element: elem, + left: position.left, + top: position.top, + width: elemWidth, + height: elemHeight + }, + horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", + vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" + }; + if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) { + feedback.horizontal = "center"; + } + if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) { + feedback.vertical = "middle"; + } + if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) { + feedback.important = "horizontal"; + } else { + feedback.important = "vertical"; + } + options.using.call( this, props, feedback ); + }; + } + + elem.offset( $.extend( position, { using: using } ) ); + } ); +}; + +$.ui.position = { + fit: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, + outerWidth = within.width, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = withinOffset - collisionPosLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, + newOverRight; + + // Element is wider than within + if ( data.collisionWidth > outerWidth ) { + + // Element is initially over the left side of within + if ( overLeft > 0 && overRight <= 0 ) { + newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - + withinOffset; + position.left += overLeft - newOverRight; + + // Element is initially over right side of within + } else if ( overRight > 0 && overLeft <= 0 ) { + position.left = withinOffset; + + // Element is initially over both left and right sides of within + } else { + if ( overLeft > overRight ) { + position.left = withinOffset + outerWidth - data.collisionWidth; + } else { + position.left = withinOffset; + } + } + + // Too far left -> align with left edge + } else if ( overLeft > 0 ) { + position.left += overLeft; + + // Too far right -> align with right edge + } else if ( overRight > 0 ) { + position.left -= overRight; + + // Adjust based on position and margin + } else { + position.left = max( position.left - collisionPosLeft, position.left ); + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollTop : within.offset.top, + outerHeight = data.within.height, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = withinOffset - collisionPosTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, + newOverBottom; + + // Element is taller than within + if ( data.collisionHeight > outerHeight ) { + + // Element is initially over the top of within + if ( overTop > 0 && overBottom <= 0 ) { + newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - + withinOffset; + position.top += overTop - newOverBottom; + + // Element is initially over bottom of within + } else if ( overBottom > 0 && overTop <= 0 ) { + position.top = withinOffset; + + // Element is initially over both top and bottom of within + } else { + if ( overTop > overBottom ) { + position.top = withinOffset + outerHeight - data.collisionHeight; + } else { + position.top = withinOffset; + } + } + + // Too far up -> align with top + } else if ( overTop > 0 ) { + position.top += overTop; + + // Too far down -> align with bottom edge + } else if ( overBottom > 0 ) { + position.top -= overBottom; + + // Adjust based on position and margin + } else { + position.top = max( position.top - collisionPosTop, position.top ); + } + } + }, + flip: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.offset.left + within.scrollLeft, + outerWidth = within.width, + offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = collisionPosLeft - offsetLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, + myOffset = data.my[ 0 ] === "left" ? + -data.elemWidth : + data.my[ 0 ] === "right" ? + data.elemWidth : + 0, + atOffset = data.at[ 0 ] === "left" ? + data.targetWidth : + data.at[ 0 ] === "right" ? + -data.targetWidth : + 0, + offset = -2 * data.offset[ 0 ], + newOverRight, + newOverLeft; + + if ( overLeft < 0 ) { + newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - + outerWidth - withinOffset; + if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) { + position.left += myOffset + atOffset + offset; + } + } else if ( overRight > 0 ) { + newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + + atOffset + offset - offsetLeft; + if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) { + position.left += myOffset + atOffset + offset; + } + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.offset.top + within.scrollTop, + outerHeight = within.height, + offsetTop = within.isWindow ? within.scrollTop : within.offset.top, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = collisionPosTop - offsetTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, + top = data.my[ 1 ] === "top", + myOffset = top ? + -data.elemHeight : + data.my[ 1 ] === "bottom" ? + data.elemHeight : + 0, + atOffset = data.at[ 1 ] === "top" ? + data.targetHeight : + data.at[ 1 ] === "bottom" ? + -data.targetHeight : + 0, + offset = -2 * data.offset[ 1 ], + newOverTop, + newOverBottom; + if ( overTop < 0 ) { + newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - + outerHeight - withinOffset; + if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) { + position.top += myOffset + atOffset + offset; + } + } else if ( overBottom > 0 ) { + newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + + offset - offsetTop; + if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) { + position.top += myOffset + atOffset + offset; + } + } + } + }, + flipfit: { + left: function() { + $.ui.position.flip.left.apply( this, arguments ); + $.ui.position.fit.left.apply( this, arguments ); + }, + top: function() { + $.ui.position.flip.top.apply( this, arguments ); + $.ui.position.fit.top.apply( this, arguments ); + } + } +}; + +} )(); + +var position = $.ui.position; + + +/*! + * jQuery UI :data 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: :data Selector +//>>group: Core +//>>description: Selects elements which have data stored under the specified key. +//>>docs: https://api.jqueryui.com/data-selector/ + + +var data = $.extend( $.expr.pseudos, { + data: $.expr.createPseudo( function( dataName ) { + return function( elem ) { + return !!$.data( elem, dataName ); + }; + } ) +} ); + +/*! + * jQuery UI Disable Selection 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: disableSelection +//>>group: Core +//>>description: Disable selection of text content within the set of matched elements. +//>>docs: https://api.jqueryui.com/disableSelection/ + +// This file is deprecated + +var disableSelection = $.fn.extend( { + disableSelection: ( function() { + var eventType = "onselectstart" in document.createElement( "div" ) ? + "selectstart" : + "mousedown"; + + return function() { + return this.on( eventType + ".ui-disableSelection", function( event ) { + event.preventDefault(); + } ); + }; + } )(), + + enableSelection: function() { + return this.off( ".ui-disableSelection" ); + } +} ); + + + +// Create a local jQuery because jQuery Color relies on it and the +// global may not exist with AMD and a custom build (#10199). +// This module is a noop if used as a regular AMD module. +// eslint-disable-next-line no-unused-vars +var jQuery = $; + + +/*! + * jQuery Color Animations v3.0.0 + * https://github.com/jquery/jquery-color + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * Date: Wed May 15 16:49:44 2024 +0200 + */ + + + var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor " + + "borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", + + class2type = {}, + toString = class2type.toString, + + // plusequals test for += 100 -= 100 + rplusequals = /^([\-+])=\s*(\d+\.?\d*)/, + + // a set of RE's that can match strings and generate color tuples. + stringParsers = [ { + re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, + parse: function( execResult ) { + return [ + execResult[ 1 ], + execResult[ 2 ], + execResult[ 3 ], + execResult[ 4 ] + ]; + } + }, { + re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, + parse: function( execResult ) { + return [ + execResult[ 1 ] * 2.55, + execResult[ 2 ] * 2.55, + execResult[ 3 ] * 2.55, + execResult[ 4 ] + ]; + } + }, { + + // this regex ignores A-F because it's compared against an already lowercased string + re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?/, + parse: function( execResult ) { + return [ + parseInt( execResult[ 1 ], 16 ), + parseInt( execResult[ 2 ], 16 ), + parseInt( execResult[ 3 ], 16 ), + execResult[ 4 ] ? + ( parseInt( execResult[ 4 ], 16 ) / 255 ).toFixed( 2 ) : + 1 + ]; + } + }, { + + // this regex ignores A-F because it's compared against an already lowercased string + re: /#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?/, + parse: function( execResult ) { + return [ + parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ), + parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ), + parseInt( execResult[ 3 ] + execResult[ 3 ], 16 ), + execResult[ 4 ] ? + ( parseInt( execResult[ 4 ] + execResult[ 4 ], 16 ) / 255 ) + .toFixed( 2 ) : + 1 + ]; + } + }, { + re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, + space: "hsla", + parse: function( execResult ) { + return [ + execResult[ 1 ], + execResult[ 2 ] / 100, + execResult[ 3 ] / 100, + execResult[ 4 ] + ]; + } + } ], + + // jQuery.Color( ) + color = jQuery.Color = function( color, green, blue, alpha ) { + return new jQuery.Color.fn.parse( color, green, blue, alpha ); + }, + spaces = { + rgba: { + props: { + red: { + idx: 0, + type: "byte" + }, + green: { + idx: 1, + type: "byte" + }, + blue: { + idx: 2, + type: "byte" + } + } + }, + + hsla: { + props: { + hue: { + idx: 0, + type: "degrees" + }, + saturation: { + idx: 1, + type: "percent" + }, + lightness: { + idx: 2, + type: "percent" + } + } + } + }, + propTypes = { + "byte": { + floor: true, + max: 255 + }, + "percent": { + max: 1 + }, + "degrees": { + mod: 360, + floor: true + } + }, + + // colors = jQuery.Color.names + colors, + + // local aliases of functions called often + each = jQuery.each; + +// define cache name and alpha properties +// for rgba and hsla spaces +each( spaces, function( spaceName, space ) { + space.cache = "_" + spaceName; + space.props.alpha = { + idx: 3, + type: "percent", + def: 1 + }; +} ); + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); + +function getType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + return typeof obj === "object" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} + +function clamp( value, prop, allowEmpty ) { + var type = propTypes[ prop.type ] || {}; + + if ( value == null ) { + return ( allowEmpty || !prop.def ) ? null : prop.def; + } + + // ~~ is an short way of doing floor for positive numbers + value = type.floor ? ~~value : parseFloat( value ); + + if ( type.mod ) { + + // we add mod before modding to make sure that negatives values + // get converted properly: -10 -> 350 + return ( value + type.mod ) % type.mod; + } + + // for now all property types without mod have min and max + return Math.min( type.max, Math.max( 0, value ) ); +} + +function stringParse( string ) { + var inst = color(), + rgba = inst._rgba = []; + + string = string.toLowerCase(); + + each( stringParsers, function( _i, parser ) { + var parsed, + match = parser.re.exec( string ), + values = match && parser.parse( match ), + spaceName = parser.space || "rgba"; + + if ( values ) { + parsed = inst[ spaceName ]( values ); + + // if this was an rgba parse the assignment might happen twice + // oh well.... + inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ]; + rgba = inst._rgba = parsed._rgba; + + // exit each( stringParsers ) here because we matched + return false; + } + } ); + + // Found a stringParser that handled it + if ( rgba.length ) { + + // if this came from a parsed string, force "transparent" when alpha is 0 + // chrome, (and maybe others) return "transparent" as rgba(0,0,0,0) + if ( rgba.join() === "0,0,0,0" ) { + jQuery.extend( rgba, colors.transparent ); + } + return inst; + } + + // named colors + return colors[ string ]; +} + +color.fn = jQuery.extend( color.prototype, { + parse: function( red, green, blue, alpha ) { + if ( red === undefined ) { + this._rgba = [ null, null, null, null ]; + return this; + } + if ( red.jquery || red.nodeType ) { + red = jQuery( red ).css( green ); + green = undefined; + } + + var inst = this, + type = getType( red ), + rgba = this._rgba = []; + + // more than 1 argument specified - assume ( red, green, blue, alpha ) + if ( green !== undefined ) { + red = [ red, green, blue, alpha ]; + type = "array"; + } + + if ( type === "string" ) { + return this.parse( stringParse( red ) || colors._default ); + } + + if ( type === "array" ) { + each( spaces.rgba.props, function( _key, prop ) { + rgba[ prop.idx ] = clamp( red[ prop.idx ], prop ); + } ); + return this; + } + + if ( type === "object" ) { + if ( red instanceof color ) { + each( spaces, function( _spaceName, space ) { + if ( red[ space.cache ] ) { + inst[ space.cache ] = red[ space.cache ].slice(); + } + } ); + } else { + each( spaces, function( _spaceName, space ) { + var cache = space.cache; + each( space.props, function( key, prop ) { + + // if the cache doesn't exist, and we know how to convert + if ( !inst[ cache ] && space.to ) { + + // if the value was null, we don't need to copy it + // if the key was alpha, we don't need to copy it either + if ( key === "alpha" || red[ key ] == null ) { + return; + } + inst[ cache ] = space.to( inst._rgba ); + } + + // this is the only case where we allow nulls for ALL properties. + // call clamp with alwaysAllowEmpty + inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true ); + } ); + + // everything defined but alpha? + if ( inst[ cache ] && jQuery.inArray( + null, + inst[ cache ].slice( 0, 3 ) + ) < 0 ) { + + // use the default of 1 + if ( inst[ cache ][ 3 ] == null ) { + inst[ cache ][ 3 ] = 1; + } + + if ( space.from ) { + inst._rgba = space.from( inst[ cache ] ); + } + } + } ); + } + return this; + } + }, + is: function( compare ) { + var is = color( compare ), + same = true, + inst = this; + + each( spaces, function( _, space ) { + var localCache, + isCache = is[ space.cache ]; + if ( isCache ) { + localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || []; + each( space.props, function( _, prop ) { + if ( isCache[ prop.idx ] != null ) { + same = ( isCache[ prop.idx ] === localCache[ prop.idx ] ); + return same; + } + } ); + } + return same; + } ); + return same; + }, + _space: function() { + var used = [], + inst = this; + each( spaces, function( spaceName, space ) { + if ( inst[ space.cache ] ) { + used.push( spaceName ); + } + } ); + return used.pop(); + }, + transition: function( other, distance ) { + var end = color( other ), + spaceName = end._space(), + space = spaces[ spaceName ], + startColor = this.alpha() === 0 ? color( "transparent" ) : this, + start = startColor[ space.cache ] || space.to( startColor._rgba ), + result = start.slice(); + + end = end[ space.cache ]; + each( space.props, function( _key, prop ) { + var index = prop.idx, + startValue = start[ index ], + endValue = end[ index ], + type = propTypes[ prop.type ] || {}; + + // if null, don't override start value + if ( endValue === null ) { + return; + } + + // if null - use end + if ( startValue === null ) { + result[ index ] = endValue; + } else { + if ( type.mod ) { + if ( endValue - startValue > type.mod / 2 ) { + startValue += type.mod; + } else if ( startValue - endValue > type.mod / 2 ) { + startValue -= type.mod; + } + } + result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop ); + } + } ); + return this[ spaceName ]( result ); + }, + blend: function( opaque ) { + + // if we are already opaque - return ourself + if ( this._rgba[ 3 ] === 1 ) { + return this; + } + + var rgb = this._rgba.slice(), + a = rgb.pop(), + blend = color( opaque )._rgba; + + return color( jQuery.map( rgb, function( v, i ) { + return ( 1 - a ) * blend[ i ] + a * v; + } ) ); + }, + toRgbaString: function() { + var prefix = "rgba(", + rgba = jQuery.map( this._rgba, function( v, i ) { + if ( v != null ) { + return v; + } + return i > 2 ? 1 : 0; + } ); + + if ( rgba[ 3 ] === 1 ) { + rgba.pop(); + prefix = "rgb("; + } + + return prefix + rgba.join( ", " ) + ")"; + }, + toHslaString: function() { + var prefix = "hsla(", + hsla = jQuery.map( this.hsla(), function( v, i ) { + if ( v == null ) { + v = i > 2 ? 1 : 0; + } + + // catch 1 and 2 + if ( i && i < 3 ) { + v = Math.round( v * 100 ) + "%"; + } + return v; + } ); + + if ( hsla[ 3 ] === 1 ) { + hsla.pop(); + prefix = "hsl("; + } + return prefix + hsla.join( ", " ) + ")"; + }, + toHexString: function( includeAlpha ) { + var rgba = this._rgba.slice(), + alpha = rgba.pop(); + + if ( includeAlpha ) { + rgba.push( ~~( alpha * 255 ) ); + } + + return "#" + jQuery.map( rgba, function( v ) { + + // default to 0 when nulls exist + return ( "0" + ( v || 0 ).toString( 16 ) ).substr( -2 ); + } ).join( "" ); + }, + toString: function() { + return this.toRgbaString(); + } +} ); +color.fn.parse.prototype = color.fn; + +// hsla conversions adapted from: +// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021 + +function hue2rgb( p, q, h ) { + h = ( h + 1 ) % 1; + if ( h * 6 < 1 ) { + return p + ( q - p ) * h * 6; + } + if ( h * 2 < 1 ) { + return q; + } + if ( h * 3 < 2 ) { + return p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6; + } + return p; +} + +spaces.hsla.to = function( rgba ) { + if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) { + return [ null, null, null, rgba[ 3 ] ]; + } + var r = rgba[ 0 ] / 255, + g = rgba[ 1 ] / 255, + b = rgba[ 2 ] / 255, + a = rgba[ 3 ], + max = Math.max( r, g, b ), + min = Math.min( r, g, b ), + diff = max - min, + add = max + min, + l = add * 0.5, + h, s; + + if ( min === max ) { + h = 0; + } else if ( r === max ) { + h = ( 60 * ( g - b ) / diff ) + 360; + } else if ( g === max ) { + h = ( 60 * ( b - r ) / diff ) + 120; + } else { + h = ( 60 * ( r - g ) / diff ) + 240; + } + + // chroma (diff) == 0 means greyscale which, by definition, saturation = 0% + // otherwise, saturation is based on the ratio of chroma (diff) to lightness (add) + if ( diff === 0 ) { + s = 0; + } else if ( l <= 0.5 ) { + s = diff / add; + } else { + s = diff / ( 2 - add ); + } + return [ Math.round( h ) % 360, s, l, a == null ? 1 : a ]; +}; + +spaces.hsla.from = function( hsla ) { + if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) { + return [ null, null, null, hsla[ 3 ] ]; + } + var h = hsla[ 0 ] / 360, + s = hsla[ 1 ], + l = hsla[ 2 ], + a = hsla[ 3 ], + q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s, + p = 2 * l - q; + + return [ + Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ), + Math.round( hue2rgb( p, q, h ) * 255 ), + Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ), + a + ]; +}; + + +each( spaces, function( spaceName, space ) { + var props = space.props, + cache = space.cache, + to = space.to, + from = space.from; + + // makes rgba() and hsla() + color.fn[ spaceName ] = function( value ) { + + // generate a cache for this space if it doesn't exist + if ( to && !this[ cache ] ) { + this[ cache ] = to( this._rgba ); + } + if ( value === undefined ) { + return this[ cache ].slice(); + } + + var ret, + type = getType( value ), + arr = ( type === "array" || type === "object" ) ? value : arguments, + local = this[ cache ].slice(); + + each( props, function( key, prop ) { + var val = arr[ type === "object" ? key : prop.idx ]; + if ( val == null ) { + val = local[ prop.idx ]; + } + local[ prop.idx ] = clamp( val, prop ); + } ); + + if ( from ) { + ret = color( from( local ) ); + ret[ cache ] = local; + return ret; + } else { + return color( local ); + } + }; + + // makes red() green() blue() alpha() hue() saturation() lightness() + each( props, function( key, prop ) { + + // alpha is included in more than one space + if ( color.fn[ key ] ) { + return; + } + color.fn[ key ] = function( value ) { + var local, cur, match, fn, + vtype = getType( value ); + + if ( key === "alpha" ) { + fn = this._hsla ? "hsla" : "rgba"; + } else { + fn = spaceName; + } + local = this[ fn ](); + cur = local[ prop.idx ]; + + if ( vtype === "undefined" ) { + return cur; + } + + if ( vtype === "function" ) { + value = value.call( this, cur ); + vtype = getType( value ); + } + if ( value == null && prop.empty ) { + return this; + } + if ( vtype === "string" ) { + match = rplusequals.exec( value ); + if ( match ) { + value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 ); + } + } + local[ prop.idx ] = value; + return this[ fn ]( local ); + }; + } ); +} ); + +// add cssHook and .fx.step function for each named hook. +// accept a space separated string of properties +color.hook = function( hook ) { + var hooks = hook.split( " " ); + each( hooks, function( _i, hook ) { + jQuery.cssHooks[ hook ] = { + set: function( elem, value ) { + var parsed; + + if ( value !== "transparent" && + ( getType( value ) !== "string" || + ( parsed = stringParse( value ) ) ) ) { + value = color( parsed || value ); + value = value.toRgbaString(); + } + elem.style[ hook ] = value; + } + }; + jQuery.fx.step[ hook ] = function( fx ) { + if ( !fx.colorInit ) { + fx.start = color( fx.elem, hook ); + fx.end = color( fx.end ); + fx.colorInit = true; + } + jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) ); + }; + } ); + +}; + +color.hook( stepHooks ); + +jQuery.cssHooks.borderColor = { + expand: function( value ) { + var expanded = {}; + + each( [ "Top", "Right", "Bottom", "Left" ], function( _i, part ) { + expanded[ "border" + part + "Color" ] = value; + } ); + return expanded; + } +}; + +// Basic color names only. +// Usage of any of the other color names requires adding yourself or including +// jquery.color.svg-names.js. +colors = jQuery.Color.names = { + + // 4.1. Basic color keywords + aqua: "#00ffff", + black: "#000000", + blue: "#0000ff", + fuchsia: "#ff00ff", + gray: "#808080", + green: "#008000", + lime: "#00ff00", + maroon: "#800000", + navy: "#000080", + olive: "#808000", + purple: "#800080", + red: "#ff0000", + silver: "#c0c0c0", + teal: "#008080", + white: "#ffffff", + yellow: "#ffff00", + + // 4.2.3. "transparent" color keyword + transparent: [ null, null, null, 0 ], + + _default: "#ffffff" +}; + + +/*! + * jQuery UI Effects 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Effects Core +//>>group: Effects +//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects. +//>>docs: https://api.jqueryui.com/category/effects-core/ +//>>demos: https://jqueryui.com/effect/ + + +var dataSpace = "ui-effects-", + dataSpaceStyle = "ui-effects-style", + dataSpaceAnimated = "ui-effects-animated"; + +$.effects = { + effect: {} +}; + +/******************************************************************************/ +/****************************** CLASS ANIMATIONS ******************************/ +/******************************************************************************/ +( function() { + +var classAnimationActions = [ "add", "remove", "toggle" ], + shorthandStyles = { + border: 1, + borderBottom: 1, + borderColor: 1, + borderLeft: 1, + borderRight: 1, + borderTop: 1, + borderWidth: 1, + margin: 1, + padding: 1 + }; + +$.each( + [ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], + function( _, prop ) { + $.fx.step[ prop ] = function( fx ) { + if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) { + jQuery.style( fx.elem, prop, fx.end ); + fx.setAttr = true; + } + }; + } +); + +function camelCase( string ) { + return string.replace( /-([\da-z])/gi, function( all, letter ) { + return letter.toUpperCase(); + } ); +} + +function getElementStyles( elem ) { + var key, len, + style = elem.ownerDocument.defaultView.getComputedStyle( elem ), + styles = {}; + + len = style.length; + while ( len-- ) { + key = style[ len ]; + if ( typeof style[ key ] === "string" ) { + styles[ camelCase( key ) ] = style[ key ]; + } + } + + return styles; +} + +function styleDifference( oldStyle, newStyle ) { + var diff = {}, + name, value; + + for ( name in newStyle ) { + value = newStyle[ name ]; + if ( oldStyle[ name ] !== value ) { + if ( !shorthandStyles[ name ] ) { + if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) { + diff[ name ] = value; + } + } + } + } + + return diff; +} + +$.effects.animateClass = function( value, duration, easing, callback ) { + var o = $.speed( duration, easing, callback ); + + return this.queue( function() { + var animated = $( this ), + baseClass = animated.attr( "class" ) || "", + applyClassChange, + allAnimations = o.children ? animated.find( "*" ).addBack() : animated; + + // Map the animated objects to store the original styles. + allAnimations = allAnimations.map( function() { + var el = $( this ); + return { + el: el, + start: getElementStyles( this ) + }; + } ); + + // Apply class change + applyClassChange = function() { + $.each( classAnimationActions, function( i, action ) { + if ( value[ action ] ) { + animated[ action + "Class" ]( value[ action ] ); + } + } ); + }; + applyClassChange(); + + // Map all animated objects again - calculate new styles and diff + allAnimations = allAnimations.map( function() { + this.end = getElementStyles( this.el[ 0 ] ); + this.diff = styleDifference( this.start, this.end ); + return this; + } ); + + // Apply original class + animated.attr( "class", baseClass ); + + // Map all animated objects again - this time collecting a promise + allAnimations = allAnimations.map( function() { + var styleInfo = this, + dfd = $.Deferred(), + opts = $.extend( {}, o, { + queue: false, + complete: function() { + dfd.resolve( styleInfo ); + } + } ); + + this.el.animate( this.diff, opts ); + return dfd.promise(); + } ); + + // Once all animations have completed: + $.when.apply( $, allAnimations.get() ).done( function() { + + // Set the final class + applyClassChange(); + + // For each animated element, + // clear all css properties that were animated + $.each( arguments, function() { + var el = this.el; + $.each( this.diff, function( key ) { + el.css( key, "" ); + } ); + } ); + + // This is guarnteed to be there if you use jQuery.speed() + // it also handles dequeuing the next anim... + o.complete.call( animated[ 0 ] ); + } ); + } ); +}; + +$.fn.extend( { + addClass: ( function( orig ) { + return function( classNames, speed, easing, callback ) { + return speed ? + $.effects.animateClass.call( this, + { add: classNames }, speed, easing, callback ) : + orig.apply( this, arguments ); + }; + } )( $.fn.addClass ), + + removeClass: ( function( orig ) { + return function( classNames, speed, easing, callback ) { + return arguments.length > 1 ? + $.effects.animateClass.call( this, + { remove: classNames }, speed, easing, callback ) : + orig.apply( this, arguments ); + }; + } )( $.fn.removeClass ), + + toggleClass: ( function( orig ) { + return function( classNames, force, speed, easing, callback ) { + if ( typeof force === "boolean" || force === undefined ) { + if ( !speed ) { + + // Without speed parameter + return orig.apply( this, arguments ); + } else { + return $.effects.animateClass.call( this, + ( force ? { add: classNames } : { remove: classNames } ), + speed, easing, callback ); + } + } else { + + // Without force parameter + return $.effects.animateClass.call( this, + { toggle: classNames }, force, speed, easing ); + } + }; + } )( $.fn.toggleClass ), + + switchClass: function( remove, add, speed, easing, callback ) { + return $.effects.animateClass.call( this, { + add: add, + remove: remove + }, speed, easing, callback ); + } +} ); + +} )(); + +/******************************************************************************/ +/*********************************** EFFECTS **********************************/ +/******************************************************************************/ + +( function() { + +if ( $.expr && $.expr.pseudos && $.expr.pseudos.animated ) { + $.expr.pseudos.animated = ( function( orig ) { + return function( elem ) { + return !!$( elem ).data( dataSpaceAnimated ) || orig( elem ); + }; + } )( $.expr.pseudos.animated ); +} + +if ( $.uiBackCompat === true ) { + $.extend( $.effects, { + + // Saves a set of properties in a data storage + save: function( element, set ) { + var i = 0, length = set.length; + for ( ; i < length; i++ ) { + if ( set[ i ] !== null ) { + element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] ); + } + } + }, + + // Restores a set of previously saved properties from a data storage + restore: function( element, set ) { + var val, i = 0, length = set.length; + for ( ; i < length; i++ ) { + if ( set[ i ] !== null ) { + val = element.data( dataSpace + set[ i ] ); + element.css( set[ i ], val ); + } + } + }, + + setMode: function( el, mode ) { + if ( mode === "toggle" ) { + mode = el.is( ":hidden" ) ? "show" : "hide"; + } + return mode; + }, + + // Wraps the element around a wrapper that copies position properties + createWrapper: function( element ) { + + // If the element is already wrapped, return it + if ( element.parent().is( ".ui-effects-wrapper" ) ) { + return element.parent(); + } + + // Wrap the element + var props = { + width: element.outerWidth( true ), + height: element.outerHeight( true ), + "float": element.css( "float" ) + }, + wrapper = $( "
" ) + .addClass( "ui-effects-wrapper" ) + .css( { + fontSize: "100%", + background: "transparent", + border: "none", + margin: 0, + padding: 0 + } ), + + // Store the size in case width/height are defined in % - Fixes #5245 + size = { + width: element.width(), + height: element.height() + }, + active = document.activeElement; + + // Support: Firefox + // Firefox incorrectly exposes anonymous content + // https://bugzilla.mozilla.org/show_bug.cgi?id=561664 + try { + // eslint-disable-next-line no-unused-expressions + active.id; + } catch ( _e ) { + active = document.body; + } + + element.wrap( wrapper ); + + // Fixes #7595 - Elements lose focus when wrapped. + if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { + $( active ).trigger( "focus" ); + } + + // Hotfix for jQuery 1.4 since some change in wrap() seems to actually + // lose the reference to the wrapped element + wrapper = element.parent(); + + // Transfer positioning properties to the wrapper + if ( element.css( "position" ) === "static" ) { + wrapper.css( { position: "relative" } ); + element.css( { position: "relative" } ); + } else { + $.extend( props, { + position: element.css( "position" ), + zIndex: element.css( "z-index" ) + } ); + $.each( [ "top", "left", "bottom", "right" ], function( i, pos ) { + props[ pos ] = element.css( pos ); + if ( isNaN( parseInt( props[ pos ], 10 ) ) ) { + props[ pos ] = "auto"; + } + } ); + element.css( { + position: "relative", + top: 0, + left: 0, + right: "auto", + bottom: "auto" + } ); + } + element.css( size ); + + return wrapper.css( props ).show(); + }, + + removeWrapper: function( element ) { + var active = document.activeElement; + + if ( element.parent().is( ".ui-effects-wrapper" ) ) { + element.parent().replaceWith( element ); + + // Fixes #7595 - Elements lose focus when wrapped. + if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { + $( active ).trigger( "focus" ); + } + } + + return element; + } + } ); +} + +$.extend( $.effects, { + version: "1.14.2", + + define: function( name, mode, effect ) { + if ( !effect ) { + effect = mode; + mode = "effect"; + } + + $.effects.effect[ name ] = effect; + $.effects.effect[ name ].mode = mode; + + return effect; + }, + + scaledDimensions: function( element, percent, direction ) { + if ( percent === 0 ) { + return { + height: 0, + width: 0, + outerHeight: 0, + outerWidth: 0 + }; + } + + var x = direction !== "horizontal" ? ( ( percent || 100 ) / 100 ) : 1, + y = direction !== "vertical" ? ( ( percent || 100 ) / 100 ) : 1; + + return { + height: element.height() * y, + width: element.width() * x, + outerHeight: element.outerHeight() * y, + outerWidth: element.outerWidth() * x + }; + + }, + + clipToBox: function( animation ) { + return { + width: animation.clip.right - animation.clip.left, + height: animation.clip.bottom - animation.clip.top, + left: animation.clip.left, + top: animation.clip.top + }; + }, + + // Injects recently queued functions to be first in line (after "inprogress") + unshift: function( element, queueLength, count ) { + var queue = element.queue(); + + if ( queueLength > 1 ) { + queue.splice.apply( queue, + [ 1, 0 ].concat( queue.splice( queueLength, count ) ) ); + } + element.dequeue(); + }, + + saveStyle: function( element ) { + element.data( dataSpaceStyle, element[ 0 ].style.cssText ); + }, + + restoreStyle: function( element ) { + element[ 0 ].style.cssText = element.data( dataSpaceStyle ) || ""; + element.removeData( dataSpaceStyle ); + }, + + mode: function( element, mode ) { + var hidden = element.is( ":hidden" ); + + if ( mode === "toggle" ) { + mode = hidden ? "show" : "hide"; + } + if ( hidden ? mode === "hide" : mode === "show" ) { + mode = "none"; + } + return mode; + }, + + // Translates a [top,left] array into a baseline value + getBaseline: function( origin, original ) { + var y, x; + + switch ( origin[ 0 ] ) { + case "top": + y = 0; + break; + case "middle": + y = 0.5; + break; + case "bottom": + y = 1; + break; + default: + y = origin[ 0 ] / original.height; + } + + switch ( origin[ 1 ] ) { + case "left": + x = 0; + break; + case "center": + x = 0.5; + break; + case "right": + x = 1; + break; + default: + x = origin[ 1 ] / original.width; + } + + return { + x: x, + y: y + }; + }, + + // Creates a placeholder element so that the original element can be made absolute + createPlaceholder: function( element ) { + var placeholder, + cssPosition = element.css( "position" ), + position = element.position(); + + // Lock in margins first to account for form elements, which + // will change margin if you explicitly set height + // see: https://jsfiddle.net/JZSMt/3/ https://bugs.webkit.org/show_bug.cgi?id=107380 + // Support: Safari + element.css( { + marginTop: element.css( "marginTop" ), + marginBottom: element.css( "marginBottom" ), + marginLeft: element.css( "marginLeft" ), + marginRight: element.css( "marginRight" ) + } ) + .outerWidth( element.outerWidth() ) + .outerHeight( element.outerHeight() ); + + if ( /^(static|relative)/.test( cssPosition ) ) { + cssPosition = "absolute"; + + placeholder = $( "<" + element[ 0 ].nodeName + ">" ).insertAfter( element ).css( { + + // Convert inline to inline block to account for inline elements + // that turn to inline block based on content (like img) + display: /^(inline|ruby)/.test( element.css( "display" ) ) ? + "inline-block" : + "block", + visibility: "hidden", + + // Margins need to be set to account for margin collapse + marginTop: element.css( "marginTop" ), + marginBottom: element.css( "marginBottom" ), + marginLeft: element.css( "marginLeft" ), + marginRight: element.css( "marginRight" ), + "float": element.css( "float" ) + } ) + .outerWidth( element.outerWidth() ) + .outerHeight( element.outerHeight() ) + .addClass( "ui-effects-placeholder" ); + + element.data( dataSpace + "placeholder", placeholder ); + } + + element.css( { + position: cssPosition, + left: position.left, + top: position.top + } ); + + return placeholder; + }, + + removePlaceholder: function( element ) { + var dataKey = dataSpace + "placeholder", + placeholder = element.data( dataKey ); + + if ( placeholder ) { + placeholder.remove(); + element.removeData( dataKey ); + } + }, + + // Removes a placeholder if it exists and restores + // properties that were modified during placeholder creation + cleanUp: function( element ) { + $.effects.restoreStyle( element ); + $.effects.removePlaceholder( element ); + }, + + setTransition: function( element, list, factor, value ) { + value = value || {}; + $.each( list, function( i, x ) { + var unit = element.cssUnit( x ); + if ( unit[ 0 ] > 0 ) { + value[ x ] = unit[ 0 ] * factor + unit[ 1 ]; + } + } ); + return value; + } +} ); + +// Return an effect options object for the given parameters: +function _normalizeArguments( effect, options, speed, callback ) { + + // Allow passing all options as the first parameter + if ( $.isPlainObject( effect ) ) { + options = effect; + effect = effect.effect; + } + + // Convert to an object + effect = { effect: effect }; + + // Catch (effect, null, ...) + if ( options == null ) { + options = {}; + } + + // Catch (effect, callback) + if ( typeof options === "function" ) { + callback = options; + speed = null; + options = {}; + } + + // Catch (effect, speed, ?) + if ( typeof options === "number" || $.fx.speeds[ options ] ) { + callback = speed; + speed = options; + options = {}; + } + + // Catch (effect, options, callback) + if ( typeof speed === "function" ) { + callback = speed; + speed = null; + } + + // Add options to effect + if ( options ) { + $.extend( effect, options ); + } + + speed = speed || options.duration; + effect.duration = $.fx.off ? 0 : + typeof speed === "number" ? speed : + speed in $.fx.speeds ? $.fx.speeds[ speed ] : + $.fx.speeds._default; + + effect.complete = callback || options.complete; + + return effect; +} + +function standardAnimationOption( option ) { + + // Valid standard speeds (nothing, number, named speed) + if ( !option || typeof option === "number" || $.fx.speeds[ option ] ) { + return true; + } + + // Invalid strings - treat as "normal" speed + if ( typeof option === "string" && !$.effects.effect[ option ] ) { + return true; + } + + // Complete callback + if ( typeof option === "function" ) { + return true; + } + + // Options hash (but not naming an effect) + if ( typeof option === "object" && !option.effect ) { + return true; + } + + // Didn't match any standard API + return false; +} + +$.fn.extend( { + effect: function( /* effect, options, speed, callback */ ) { + var args = _normalizeArguments.apply( this, arguments ), + effectMethod = $.effects.effect[ args.effect ], + defaultMode = effectMethod.mode, + queue = args.queue, + queueName = queue || "fx", + complete = args.complete, + mode = args.mode, + modes = [], + prefilter = function( next ) { + var el = $( this ), + normalizedMode = $.effects.mode( el, mode ) || defaultMode; + + // Sentinel for duck-punching the :animated pseudo-selector + el.data( dataSpaceAnimated, true ); + + // Save effect mode for later use, + // we can't just call $.effects.mode again later, + // as the .show() below destroys the initial state + modes.push( normalizedMode ); + + // See $.uiBackCompat inside of run() for removal of defaultMode in 1.14 + if ( defaultMode && ( normalizedMode === "show" || + ( normalizedMode === defaultMode && normalizedMode === "hide" ) ) ) { + el.show(); + } + + if ( !defaultMode || normalizedMode !== "none" ) { + $.effects.saveStyle( el ); + } + + if ( typeof next === "function" ) { + next(); + } + }; + + if ( $.fx.off || !effectMethod ) { + + // Delegate to the original method (e.g., .show()) if possible + if ( mode ) { + return this[ mode ]( args.duration, complete ); + } else { + return this.each( function() { + if ( complete ) { + complete.call( this ); + } + } ); + } + } + + function run( next ) { + var elem = $( this ); + + function cleanup() { + elem.removeData( dataSpaceAnimated ); + + $.effects.cleanUp( elem ); + + if ( args.mode === "hide" ) { + elem.hide(); + } + + done(); + } + + function done() { + if ( typeof complete === "function" ) { + complete.call( elem[ 0 ] ); + } + + if ( typeof next === "function" ) { + next(); + } + } + + // Override mode option on a per element basis, + // as toggle can be either show or hide depending on element state + args.mode = modes.shift(); + + if ( $.uiBackCompat === true && !defaultMode ) { + if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) { + + // Call the core method to track "olddisplay" properly + elem[ mode ](); + done(); + } else { + effectMethod.call( elem[ 0 ], args, done ); + } + } else { + if ( args.mode === "none" ) { + + // Call the core method to track "olddisplay" properly + elem[ mode ](); + done(); + } else { + effectMethod.call( elem[ 0 ], args, cleanup ); + } + } + } + + // Run prefilter on all elements first to ensure that + // any showing or hiding happens before placeholder creation, + // which ensures that any layout changes are correctly captured. + return queue === false ? + this.each( prefilter ).each( run ) : + this.queue( queueName, prefilter ).queue( queueName, run ); + }, + + show: ( function( orig ) { + return function( option ) { + if ( standardAnimationOption( option ) ) { + return orig.apply( this, arguments ); + } else { + var args = _normalizeArguments.apply( this, arguments ); + args.mode = "show"; + return this.effect.call( this, args ); + } + }; + } )( $.fn.show ), + + hide: ( function( orig ) { + return function( option ) { + if ( standardAnimationOption( option ) ) { + return orig.apply( this, arguments ); + } else { + var args = _normalizeArguments.apply( this, arguments ); + args.mode = "hide"; + return this.effect.call( this, args ); + } + }; + } )( $.fn.hide ), + + toggle: ( function( orig ) { + return function( option ) { + if ( standardAnimationOption( option ) || typeof option === "boolean" ) { + return orig.apply( this, arguments ); + } else { + var args = _normalizeArguments.apply( this, arguments ); + args.mode = "toggle"; + return this.effect.call( this, args ); + } + }; + } )( $.fn.toggle ), + + cssUnit: function( key ) { + var style = this.css( key ), + val = []; + + $.each( [ "em", "px", "%", "pt" ], function( i, unit ) { + if ( style.indexOf( unit ) > 0 ) { + val = [ parseFloat( style ), unit ]; + } + } ); + return val; + }, + + cssClip: function( clipObj ) { + if ( clipObj ) { + return this.css( "clip", "rect(" + clipObj.top + "px " + clipObj.right + "px " + + clipObj.bottom + "px " + clipObj.left + "px)" ); + } + return parseClip( this.css( "clip" ), this ); + }, + + transfer: function( options, done ) { + var element = $( this ), + target = $( options.to ), + targetFixed = target.css( "position" ) === "fixed", + body = $( "body" ), + fixTop = targetFixed ? body.scrollTop() : 0, + fixLeft = targetFixed ? body.scrollLeft() : 0, + endPosition = target.offset(), + animation = { + top: endPosition.top - fixTop, + left: endPosition.left - fixLeft, + height: target.innerHeight(), + width: target.innerWidth() + }, + startPosition = element.offset(), + transfer = $( "
" ); + + transfer + .appendTo( "body" ) + .addClass( options.className ) + .css( { + top: startPosition.top - fixTop, + left: startPosition.left - fixLeft, + height: element.innerHeight(), + width: element.innerWidth(), + position: targetFixed ? "fixed" : "absolute" + } ) + .animate( animation, options.duration, options.easing, function() { + transfer.remove(); + if ( typeof done === "function" ) { + done(); + } + } ); + } +} ); + +function parseClip( str, element ) { + var outerWidth = element.outerWidth(), + outerHeight = element.outerHeight(), + clipRegex = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/, + values = clipRegex.exec( str ) || [ "", 0, outerWidth, outerHeight, 0 ]; + + return { + top: parseFloat( values[ 1 ] ) || 0, + right: values[ 2 ] === "auto" ? outerWidth : parseFloat( values[ 2 ] ), + bottom: values[ 3 ] === "auto" ? outerHeight : parseFloat( values[ 3 ] ), + left: parseFloat( values[ 4 ] ) || 0 + }; +} + +$.fx.step.clip = function( fx ) { + if ( !fx.clipInit ) { + fx.start = $( fx.elem ).cssClip(); + if ( typeof fx.end === "string" ) { + fx.end = parseClip( fx.end, fx.elem ); + } + fx.clipInit = true; + } + + $( fx.elem ).cssClip( { + top: fx.pos * ( fx.end.top - fx.start.top ) + fx.start.top, + right: fx.pos * ( fx.end.right - fx.start.right ) + fx.start.right, + bottom: fx.pos * ( fx.end.bottom - fx.start.bottom ) + fx.start.bottom, + left: fx.pos * ( fx.end.left - fx.start.left ) + fx.start.left + } ); +}; + +} )(); + +/******************************************************************************/ +/*********************************** EASING ***********************************/ +/******************************************************************************/ + +( function() { + +// Based on easing equations from Robert Penner (http://robertpenner.com/easing) + +var baseEasings = {}; + +$.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) { + baseEasings[ name ] = function( p ) { + return Math.pow( p, i + 2 ); + }; +} ); + +$.extend( baseEasings, { + Sine: function( p ) { + return 1 - Math.cos( p * Math.PI / 2 ); + }, + Circ: function( p ) { + return 1 - Math.sqrt( 1 - p * p ); + }, + Elastic: function( p ) { + return p === 0 || p === 1 ? p : + -Math.pow( 2, 8 * ( p - 1 ) ) * Math.sin( ( ( p - 1 ) * 80 - 7.5 ) * Math.PI / 15 ); + }, + Back: function( p ) { + return p * p * ( 3 * p - 2 ); + }, + Bounce: function( p ) { + var pow2, + bounce = 4; + + while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {} + return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 ); + } +} ); + +$.each( baseEasings, function( name, easeIn ) { + $.easing[ "easeIn" + name ] = easeIn; + $.easing[ "easeOut" + name ] = function( p ) { + return 1 - easeIn( 1 - p ); + }; + $.easing[ "easeInOut" + name ] = function( p ) { + return p < 0.5 ? + easeIn( p * 2 ) / 2 : + 1 - easeIn( p * -2 + 2 ) / 2; + }; +} ); + +} )(); + +var effect = $.effects; + + +/*! + * jQuery UI Effects Blind 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Blind Effect +//>>group: Effects +//>>description: Blinds the element. +//>>docs: https://api.jqueryui.com/blind-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectBlind = $.effects.define( "blind", "hide", function( options, done ) { + var map = { + up: [ "bottom", "top" ], + vertical: [ "bottom", "top" ], + down: [ "top", "bottom" ], + left: [ "right", "left" ], + horizontal: [ "right", "left" ], + right: [ "left", "right" ] + }, + element = $( this ), + direction = options.direction || "up", + start = element.cssClip(), + animate = { clip: $.extend( {}, start ) }, + placeholder = $.effects.createPlaceholder( element ); + + animate.clip[ map[ direction ][ 0 ] ] = animate.clip[ map[ direction ][ 1 ] ]; + + if ( options.mode === "show" ) { + element.cssClip( animate.clip ); + if ( placeholder ) { + placeholder.css( $.effects.clipToBox( animate ) ); + } + + animate.clip = start; + } + + if ( placeholder ) { + placeholder.animate( $.effects.clipToBox( animate ), options.duration, options.easing ); + } + + element.animate( animate, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + + +/*! + * jQuery UI Effects Bounce 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Bounce Effect +//>>group: Effects +//>>description: Bounces an element horizontally or vertically n times. +//>>docs: https://api.jqueryui.com/bounce-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectBounce = $.effects.define( "bounce", function( options, done ) { + var upAnim, downAnim, refValue, + element = $( this ), + + // Defaults: + mode = options.mode, + hide = mode === "hide", + show = mode === "show", + direction = options.direction || "up", + distance = options.distance, + times = options.times || 5, + + // Number of internal animations + anims = times * 2 + ( show || hide ? 1 : 0 ), + speed = options.duration / anims, + easing = options.easing, + + // Utility: + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + motion = ( direction === "up" || direction === "left" ), + i = 0, + + queuelen = element.queue().length; + + $.effects.createPlaceholder( element ); + + refValue = element.css( ref ); + + // Default distance for the BIGGEST bounce is the outer Distance / 3 + if ( !distance ) { + distance = element[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3; + } + + if ( show ) { + downAnim = { opacity: 1 }; + downAnim[ ref ] = refValue; + + // If we are showing, force opacity 0 and set the initial position + // then do the "first" animation + element + .css( "opacity", 0 ) + .css( ref, motion ? -distance * 2 : distance * 2 ) + .animate( downAnim, speed, easing ); + } + + // Start at the smallest distance if we are hiding + if ( hide ) { + distance = distance / Math.pow( 2, times - 1 ); + } + + downAnim = {}; + downAnim[ ref ] = refValue; + + // Bounces up/down/left/right then back to 0 -- times * 2 animations happen here + for ( ; i < times; i++ ) { + upAnim = {}; + upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; + + element + .animate( upAnim, speed, easing ) + .animate( downAnim, speed, easing ); + + distance = hide ? distance * 2 : distance / 2; + } + + // Last Bounce when Hiding + if ( hide ) { + upAnim = { opacity: 0 }; + upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; + + element.animate( upAnim, speed, easing ); + } + + element.queue( done ); + + $.effects.unshift( element, queuelen, anims + 1 ); +} ); + + +/*! + * jQuery UI Effects Clip 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Clip Effect +//>>group: Effects +//>>description: Clips the element on and off like an old TV. +//>>docs: https://api.jqueryui.com/clip-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectClip = $.effects.define( "clip", "hide", function( options, done ) { + var start, + animate = {}, + element = $( this ), + direction = options.direction || "vertical", + both = direction === "both", + horizontal = both || direction === "horizontal", + vertical = both || direction === "vertical"; + + start = element.cssClip(); + animate.clip = { + top: vertical ? ( start.bottom - start.top ) / 2 : start.top, + right: horizontal ? ( start.right - start.left ) / 2 : start.right, + bottom: vertical ? ( start.bottom - start.top ) / 2 : start.bottom, + left: horizontal ? ( start.right - start.left ) / 2 : start.left + }; + + $.effects.createPlaceholder( element ); + + if ( options.mode === "show" ) { + element.cssClip( animate.clip ); + animate.clip = start; + } + + element.animate( animate, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); + +} ); + + +/*! + * jQuery UI Effects Drop 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Drop Effect +//>>group: Effects +//>>description: Moves an element in one direction and hides it at the same time. +//>>docs: https://api.jqueryui.com/drop-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectDrop = $.effects.define( "drop", "hide", function( options, done ) { + + var distance, + element = $( this ), + mode = options.mode, + show = mode === "show", + direction = options.direction || "left", + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + motion = ( direction === "up" || direction === "left" ) ? "-=" : "+=", + oppositeMotion = ( motion === "+=" ) ? "-=" : "+=", + animation = { + opacity: 0 + }; + + $.effects.createPlaceholder( element ); + + distance = options.distance || + element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2; + + animation[ ref ] = motion + distance; + + if ( show ) { + element.css( animation ); + + animation[ ref ] = oppositeMotion + distance; + animation.opacity = 1; + } + + // Animate + element.animate( animation, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + + +/*! + * jQuery UI Effects Explode 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Explode Effect +//>>group: Effects +//>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness. +//>>docs: https://api.jqueryui.com/explode-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectExplode = $.effects.define( "explode", "hide", function( options, done ) { + + var i, j, left, top, mx, my, + rows = options.pieces ? Math.round( Math.sqrt( options.pieces ) ) : 3, + cells = rows, + element = $( this ), + mode = options.mode, + show = mode === "show", + + // Show and then visibility:hidden the element before calculating offset + offset = element.show().css( "visibility", "hidden" ).offset(), + + // Width and height of a piece + width = Math.ceil( element.outerWidth() / cells ), + height = Math.ceil( element.outerHeight() / rows ), + pieces = []; + + // Children animate complete: + function childComplete() { + pieces.push( this ); + if ( pieces.length === rows * cells ) { + animComplete(); + } + } + + // Clone the element for each row and cell. + for ( i = 0; i < rows; i++ ) { // ===> + top = offset.top + i * height; + my = i - ( rows - 1 ) / 2; + + for ( j = 0; j < cells; j++ ) { // ||| + left = offset.left + j * width; + mx = j - ( cells - 1 ) / 2; + + // Create a clone of the now hidden main element that will be absolute positioned + // within a wrapper div off the -left and -top equal to size of our pieces + element + .clone() + .appendTo( "body" ) + .wrap( "
" ) + .css( { + position: "absolute", + visibility: "visible", + left: -j * width, + top: -i * height + } ) + + // Select the wrapper - make it overflow: hidden and absolute positioned based on + // where the original was located +left and +top equal to the size of pieces + .parent() + .addClass( "ui-effects-explode" ) + .css( { + position: "absolute", + overflow: "hidden", + width: width, + height: height, + left: left + ( show ? mx * width : 0 ), + top: top + ( show ? my * height : 0 ), + opacity: show ? 0 : 1 + } ) + .animate( { + left: left + ( show ? 0 : mx * width ), + top: top + ( show ? 0 : my * height ), + opacity: show ? 1 : 0 + }, options.duration || 500, options.easing, childComplete ); + } + } + + function animComplete() { + element.css( { + visibility: "visible" + } ); + $( pieces ).remove(); + done(); + } +} ); + + +/*! + * jQuery UI Effects Fade 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Fade Effect +//>>group: Effects +//>>description: Fades the element. +//>>docs: https://api.jqueryui.com/fade-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectFade = $.effects.define( "fade", "toggle", function( options, done ) { + var show = options.mode === "show"; + + $( this ) + .css( "opacity", show ? 0 : 1 ) + .animate( { + opacity: show ? 1 : 0 + }, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + + +/*! + * jQuery UI Effects Fold 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Fold Effect +//>>group: Effects +//>>description: Folds an element first horizontally and then vertically. +//>>docs: https://api.jqueryui.com/fold-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectFold = $.effects.define( "fold", "hide", function( options, done ) { + + // Create element + var element = $( this ), + mode = options.mode, + show = mode === "show", + hide = mode === "hide", + size = options.size || 15, + percent = /([0-9]+)%/.exec( size ), + horizFirst = !!options.horizFirst, + ref = horizFirst ? [ "right", "bottom" ] : [ "bottom", "right" ], + duration = options.duration / 2, + + placeholder = $.effects.createPlaceholder( element ), + + start = element.cssClip(), + animation1 = { clip: $.extend( {}, start ) }, + animation2 = { clip: $.extend( {}, start ) }, + + distance = [ start[ ref[ 0 ] ], start[ ref[ 1 ] ] ], + + queuelen = element.queue().length; + + if ( percent ) { + size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ]; + } + animation1.clip[ ref[ 0 ] ] = size; + animation2.clip[ ref[ 0 ] ] = size; + animation2.clip[ ref[ 1 ] ] = 0; + + if ( show ) { + element.cssClip( animation2.clip ); + if ( placeholder ) { + placeholder.css( $.effects.clipToBox( animation2 ) ); + } + + animation2.clip = start; + } + + // Animate + element + .queue( function( next ) { + if ( placeholder ) { + placeholder + .animate( $.effects.clipToBox( animation1 ), duration, options.easing ) + .animate( $.effects.clipToBox( animation2 ), duration, options.easing ); + } + + next(); + } ) + .animate( animation1, duration, options.easing ) + .animate( animation2, duration, options.easing ) + .queue( done ); + + $.effects.unshift( element, queuelen, 4 ); +} ); + + +/*! + * jQuery UI Effects Highlight 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Highlight Effect +//>>group: Effects +//>>description: Highlights the background of an element in a defined color for a custom duration. +//>>docs: https://api.jqueryui.com/highlight-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectHighlight = $.effects.define( "highlight", "show", function( options, done ) { + var element = $( this ), + animation = { + backgroundColor: element.css( "backgroundColor" ) + }; + + if ( options.mode === "hide" ) { + animation.opacity = 0; + } + + $.effects.saveStyle( element ); + + element + .css( { + backgroundImage: "none", + backgroundColor: options.color || "#ffff99" + } ) + .animate( animation, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + + +/*! + * jQuery UI Effects Size 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Size Effect +//>>group: Effects +//>>description: Resize an element to a specified width and height. +//>>docs: https://api.jqueryui.com/size-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectSize = $.effects.define( "size", function( options, done ) { + + // Create element + var baseline, factor, temp, + element = $( this ), + + // Copy for children + cProps = [ "fontSize" ], + vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ], + hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ], + + // Set options + mode = options.mode, + restore = mode !== "effect", + scale = options.scale || "both", + origin = options.origin || [ "middle", "center" ], + position = element.css( "position" ), + pos = element.position(), + original = $.effects.scaledDimensions( element ), + from = options.from || original, + to = options.to || $.effects.scaledDimensions( element, 0 ); + + $.effects.createPlaceholder( element ); + + if ( mode === "show" ) { + temp = from; + from = to; + to = temp; + } + + // Set scaling factor + factor = { + from: { + y: from.height / original.height, + x: from.width / original.width + }, + to: { + y: to.height / original.height, + x: to.width / original.width + } + }; + + // Scale the css box + if ( scale === "box" || scale === "both" ) { + + // Vertical props scaling + if ( factor.from.y !== factor.to.y ) { + from = $.effects.setTransition( element, vProps, factor.from.y, from ); + to = $.effects.setTransition( element, vProps, factor.to.y, to ); + } + + // Horizontal props scaling + if ( factor.from.x !== factor.to.x ) { + from = $.effects.setTransition( element, hProps, factor.from.x, from ); + to = $.effects.setTransition( element, hProps, factor.to.x, to ); + } + } + + // Scale the content + if ( scale === "content" || scale === "both" ) { + + // Vertical props scaling + if ( factor.from.y !== factor.to.y ) { + from = $.effects.setTransition( element, cProps, factor.from.y, from ); + to = $.effects.setTransition( element, cProps, factor.to.y, to ); + } + } + + // Adjust the position properties based on the provided origin points + if ( origin ) { + baseline = $.effects.getBaseline( origin, original ); + from.top = ( original.outerHeight - from.outerHeight ) * baseline.y + pos.top; + from.left = ( original.outerWidth - from.outerWidth ) * baseline.x + pos.left; + to.top = ( original.outerHeight - to.outerHeight ) * baseline.y + pos.top; + to.left = ( original.outerWidth - to.outerWidth ) * baseline.x + pos.left; + } + delete from.outerHeight; + delete from.outerWidth; + element.css( from ); + + // Animate the children if desired + if ( scale === "content" || scale === "both" ) { + + vProps = vProps.concat( [ "marginTop", "marginBottom" ] ).concat( cProps ); + hProps = hProps.concat( [ "marginLeft", "marginRight" ] ); + + // Only animate children with width attributes specified + // TODO: is this right? should we include anything with css width specified as well + element.find( "*[width]" ).each( function() { + var child = $( this ), + childOriginal = $.effects.scaledDimensions( child ), + childFrom = { + height: childOriginal.height * factor.from.y, + width: childOriginal.width * factor.from.x, + outerHeight: childOriginal.outerHeight * factor.from.y, + outerWidth: childOriginal.outerWidth * factor.from.x + }, + childTo = { + height: childOriginal.height * factor.to.y, + width: childOriginal.width * factor.to.x, + outerHeight: childOriginal.height * factor.to.y, + outerWidth: childOriginal.width * factor.to.x + }; + + // Vertical props scaling + if ( factor.from.y !== factor.to.y ) { + childFrom = $.effects.setTransition( child, vProps, factor.from.y, childFrom ); + childTo = $.effects.setTransition( child, vProps, factor.to.y, childTo ); + } + + // Horizontal props scaling + if ( factor.from.x !== factor.to.x ) { + childFrom = $.effects.setTransition( child, hProps, factor.from.x, childFrom ); + childTo = $.effects.setTransition( child, hProps, factor.to.x, childTo ); + } + + if ( restore ) { + $.effects.saveStyle( child ); + } + + // Animate children + child.css( childFrom ); + child.animate( childTo, options.duration, options.easing, function() { + + // Restore children + if ( restore ) { + $.effects.restoreStyle( child ); + } + } ); + } ); + } + + // Animate + element.animate( to, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: function() { + + var offset = element.offset(); + + if ( to.opacity === 0 ) { + element.css( "opacity", from.opacity ); + } + + if ( !restore ) { + element + .css( "position", position === "static" ? "relative" : position ) + .offset( offset ); + + // Need to save style here so that automatic style restoration + // doesn't restore to the original styles from before the animation. + $.effects.saveStyle( element ); + } + + done(); + } + } ); + +} ); + + +/*! + * jQuery UI Effects Scale 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Scale Effect +//>>group: Effects +//>>description: Grows or shrinks an element and its content. +//>>docs: https://api.jqueryui.com/scale-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectScale = $.effects.define( "scale", function( options, done ) { + + // Create element + var el = $( this ), + mode = options.mode, + percent = parseInt( options.percent, 10 ) || + ( parseInt( options.percent, 10 ) === 0 ? 0 : ( mode !== "effect" ? 0 : 100 ) ), + + newOptions = $.extend( true, { + from: $.effects.scaledDimensions( el ), + to: $.effects.scaledDimensions( el, percent, options.direction || "both" ), + origin: options.origin || [ "middle", "center" ] + }, options ); + + // Fade option to support puff + if ( options.fade ) { + newOptions.from.opacity = 1; + newOptions.to.opacity = 0; + } + + $.effects.effect.size.call( this, newOptions, done ); +} ); + + +/*! + * jQuery UI Effects Puff 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Puff Effect +//>>group: Effects +//>>description: Creates a puff effect by scaling the element up and hiding it at the same time. +//>>docs: https://api.jqueryui.com/puff-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectPuff = $.effects.define( "puff", "hide", function( options, done ) { + var newOptions = $.extend( true, {}, options, { + fade: true, + percent: parseInt( options.percent, 10 ) || 150 + } ); + + $.effects.effect.scale.call( this, newOptions, done ); +} ); + + +/*! + * jQuery UI Effects Pulsate 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Pulsate Effect +//>>group: Effects +//>>description: Pulsates an element n times by changing the opacity to zero and back. +//>>docs: https://api.jqueryui.com/pulsate-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectPulsate = $.effects.define( "pulsate", "show", function( options, done ) { + var element = $( this ), + mode = options.mode, + show = mode === "show", + hide = mode === "hide", + showhide = show || hide, + + // Showing or hiding leaves off the "last" animation + anims = ( ( options.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ), + duration = options.duration / anims, + animateTo = 0, + i = 1, + queuelen = element.queue().length; + + if ( show || !element.is( ":visible" ) ) { + element.css( "opacity", 0 ).show(); + animateTo = 1; + } + + // Anims - 1 opacity "toggles" + for ( ; i < anims; i++ ) { + element.animate( { opacity: animateTo }, duration, options.easing ); + animateTo = 1 - animateTo; + } + + element.animate( { opacity: animateTo }, duration, options.easing ); + + element.queue( done ); + + $.effects.unshift( element, queuelen, anims + 1 ); +} ); + + +/*! + * jQuery UI Effects Shake 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Shake Effect +//>>group: Effects +//>>description: Shakes an element horizontally or vertically n times. +//>>docs: https://api.jqueryui.com/shake-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectShake = $.effects.define( "shake", function( options, done ) { + + var i = 1, + element = $( this ), + direction = options.direction || "left", + distance = options.distance || 20, + times = options.times || 3, + anims = times * 2 + 1, + speed = Math.round( options.duration / anims ), + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + positiveMotion = ( direction === "up" || direction === "left" ), + animation = {}, + animation1 = {}, + animation2 = {}, + + queuelen = element.queue().length; + + $.effects.createPlaceholder( element ); + + // Animation + animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance; + animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2; + animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2; + + // Animate + element.animate( animation, speed, options.easing ); + + // Shakes + for ( ; i < times; i++ ) { + element + .animate( animation1, speed, options.easing ) + .animate( animation2, speed, options.easing ); + } + + element + .animate( animation1, speed, options.easing ) + .animate( animation, speed / 2, options.easing ) + .queue( done ); + + $.effects.unshift( element, queuelen, anims + 1 ); +} ); + + +/*! + * jQuery UI Effects Slide 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Slide Effect +//>>group: Effects +//>>description: Slides an element in and out of the viewport. +//>>docs: https://api.jqueryui.com/slide-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effectsEffectSlide = $.effects.define( "slide", "show", function( options, done ) { + var startClip, startRef, + element = $( this ), + map = { + up: [ "bottom", "top" ], + down: [ "top", "bottom" ], + left: [ "right", "left" ], + right: [ "left", "right" ] + }, + mode = options.mode, + direction = options.direction || "left", + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + positiveMotion = ( direction === "up" || direction === "left" ), + distance = options.distance || + element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ), + animation = {}; + + $.effects.createPlaceholder( element ); + + startClip = element.cssClip(); + startRef = element.position()[ ref ]; + + // Define hide animation + animation[ ref ] = ( positiveMotion ? -1 : 1 ) * distance + startRef; + animation.clip = element.cssClip(); + animation.clip[ map[ direction ][ 1 ] ] = animation.clip[ map[ direction ][ 0 ] ]; + + // Reverse the animation if we're showing + if ( mode === "show" ) { + element.cssClip( animation.clip ); + element.css( ref, animation[ ref ] ); + animation.clip = startClip; + animation[ ref ] = startRef; + } + + // Actually animate + element.animate( animation, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + + +/*! + * jQuery UI Effects Transfer 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Transfer Effect +//>>group: Effects +//>>description: Displays a transfer effect from one element to another. +//>>docs: https://api.jqueryui.com/transfer-effect/ +//>>demos: https://jqueryui.com/effect/ + + +var effect; +if ( $.uiBackCompat === true ) { + effect = $.effects.define( "transfer", function( options, done ) { + $( this ).transfer( options, done ); + } ); +} +var effectsEffectTransfer = effect; + + +/*! + * jQuery UI Focusable 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: :focusable Selector +//>>group: Core +//>>description: Selects elements which can be focused. +//>>docs: https://api.jqueryui.com/focusable-selector/ + + +// Selectors +$.ui.focusable = function( element, hasTabindex ) { + var map, mapName, img, focusableIfVisible, fieldset, + nodeName = element.nodeName.toLowerCase(); + + if ( "area" === nodeName ) { + map = element.parentNode; + mapName = map.name; + if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { + return false; + } + img = $( "img[usemap='#" + mapName + "']" ); + return img.length > 0 && img.is( ":visible" ); + } + + if ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) { + focusableIfVisible = !element.disabled; + + if ( focusableIfVisible ) { + + // Form controls within a disabled fieldset are disabled. + // However, controls within the fieldset's legend do not get disabled. + // Since controls generally aren't placed inside legends, we skip + // this portion of the check. + fieldset = $( element ).closest( "fieldset" )[ 0 ]; + if ( fieldset ) { + focusableIfVisible = !fieldset.disabled; + } + } + } else if ( "a" === nodeName ) { + focusableIfVisible = element.href || hasTabindex; + } else { + focusableIfVisible = hasTabindex; + } + + return focusableIfVisible && $( element ).is( ":visible" ) && + $( element ).css( "visibility" ) === "visible"; +}; + +$.extend( $.expr.pseudos, { + focusable: function( element ) { + return $.ui.focusable( element, $.attr( element, "tabindex" ) != null ); + } +} ); + +var focusable = $.ui.focusable; + + +/*! + * jQuery UI Form Reset Mixin 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Form Reset Mixin +//>>group: Core +//>>description: Refresh input widgets when their form is reset +//>>docs: https://api.jqueryui.com/form-reset-mixin/ + + +var formResetMixin = $.ui.formResetMixin = { + _formResetHandler: function() { + var form = $( this ); + + // Wait for the form reset to actually happen before refreshing + setTimeout( function() { + var instances = form.data( "ui-form-reset-instances" ); + $.each( instances, function() { + this.refresh(); + } ); + } ); + }, + + _bindFormResetHandler: function() { + this.form = $( this.element.prop( "form" ) ); + if ( !this.form.length ) { + return; + } + + var instances = this.form.data( "ui-form-reset-instances" ) || []; + if ( !instances.length ) { + + // We don't use _on() here because we use a single event handler per form + this.form.on( "reset.ui-form-reset", this._formResetHandler ); + } + instances.push( this ); + this.form.data( "ui-form-reset-instances", instances ); + }, + + _unbindFormResetHandler: function() { + if ( !this.form.length ) { + return; + } + + var instances = this.form.data( "ui-form-reset-instances" ); + instances.splice( $.inArray( this, instances ), 1 ); + if ( instances.length ) { + this.form.data( "ui-form-reset-instances", instances ); + } else { + this.form + .removeData( "ui-form-reset-instances" ) + .off( "reset.ui-form-reset" ); + } + } +}; + + +/*! + * jQuery UI Legacy jQuery Core patches 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + */ + +//>>label: Legacy jQuery Core patches +//>>group: Core +//>>description: Backport `.even()`, `.odd()` and `$.escapeSelector` to older jQuery Core versions (deprecated) + + +// Support: jQuery 2.2.x or older. +// This method has been defined in jQuery 3.0.0. +// Code from https://github.com/jquery/jquery/blob/e539bac79e666bba95bba86d690b4e609dca2286/src/selector/escapeSelector.js +if ( !$.escapeSelector ) { + $.escapeSelector = function( id ) { + return CSS.escape( id + "" ); + }; +} + +// Support: jQuery 3.4.x or older +// These methods have been defined in jQuery 3.5.0. +if ( !$.fn.even || !$.fn.odd ) { + $.fn.extend( { + even: function() { + return this.filter( function( i ) { + return i % 2 === 0; + } ); + }, + odd: function() { + return this.filter( function( i ) { + return i % 2 === 1; + } ); + } + } ); +} + +; +/*! + * jQuery UI Keycode 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Keycode +//>>group: Core +//>>description: Provide keycodes as keynames +//>>docs: https://api.jqueryui.com/jQuery.ui.keyCode/ + + +var keycode = $.ui.keyCode = { + BACKSPACE: 8, + COMMA: 188, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + LEFT: 37, + PAGE_DOWN: 34, + PAGE_UP: 33, + PERIOD: 190, + RIGHT: 39, + SPACE: 32, + TAB: 9, + UP: 38 +}; + + +/*! + * jQuery UI Labels 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: labels +//>>group: Core +//>>description: Find all the labels associated with a given input +//>>docs: https://api.jqueryui.com/labels/ + + +var labels = $.fn.labels = function() { + var ancestor, selector, id, labels, ancestors; + + if ( !this.length ) { + return this.pushStack( [] ); + } + + // Check control.labels first + if ( this[ 0 ].labels && this[ 0 ].labels.length ) { + return this.pushStack( this[ 0 ].labels ); + } + + // If `control.labels` is empty - e.g. inside of document fragments - find + // the labels manually + labels = this.eq( 0 ).parents( "label" ); + + // Look for the label based on the id + id = this.attr( "id" ); + if ( id ) { + + // We don't search against the document in case the element + // is disconnected from the DOM + ancestor = this.eq( 0 ).parents().last(); + + // Get a full set of top level ancestors + ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() ); + + // Create a selector for the label based on the id + selector = "label[for='" + CSS.escape( id ) + "']"; + + labels = labels.add( ancestors.find( selector ).addBack( selector ) ); + + } + + // Return whatever we have found for labels + return this.pushStack( labels ); +}; + + +/*! + * jQuery UI Scroll Parent 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: scrollParent +//>>group: Core +//>>description: Get the closest ancestor element that is scrollable. +//>>docs: https://api.jqueryui.com/scrollParent/ + + +var scrollParent = $.fn.scrollParent = function( includeHidden ) { + var position = this.css( "position" ), + excludeStaticParent = position === "absolute", + overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/, + scrollParent = this.parents().filter( function() { + var parent = $( this ); + if ( excludeStaticParent && parent.css( "position" ) === "static" ) { + return false; + } + return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + + parent.css( "overflow-x" ) ); + } ).eq( 0 ); + + return position === "fixed" || !scrollParent.length ? + $( this[ 0 ].ownerDocument || document ) : + scrollParent; +}; + + +/*! + * jQuery UI Tabbable 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: :tabbable Selector +//>>group: Core +//>>description: Selects elements which can be tabbed to. +//>>docs: https://api.jqueryui.com/tabbable-selector/ + + +var tabbable = $.extend( $.expr.pseudos, { + tabbable: function( element ) { + var tabIndex = $.attr( element, "tabindex" ), + hasTabindex = tabIndex != null; + return ( !hasTabindex || tabIndex >= 0 ) && $.ui.focusable( element, hasTabindex ); + } +} ); + + +/*! + * jQuery UI Unique ID 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: uniqueId +//>>group: Core +//>>description: Functions to generate and remove uniqueId's +//>>docs: https://api.jqueryui.com/uniqueId/ + + +var uniqueId = $.fn.extend( { + uniqueId: ( function() { + var uuid = 0; + + return function() { + return this.each( function() { + if ( !this.id ) { + this.id = "ui-id-" + ( ++uuid ); + } + } ); + }; + } )(), + + removeUniqueId: function() { + return this.each( function() { + if ( /^ui-id-\d+$/.test( this.id ) ) { + $( this ).removeAttr( "id" ); + } + } ); + } +} ); + + +/*! + * jQuery UI Accordion 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Accordion +//>>group: Widgets +//>>description: Displays collapsible content panels for presenting information in a limited amount of space. +//>>docs: https://api.jqueryui.com/accordion/ +//>>demos: https://jqueryui.com/accordion/ +//>>css.structure: ../../themes/base/core.css +//>>css.structure: ../../themes/base/accordion.css +//>>css.theme: ../../themes/base/theme.css + + +var widgetsAccordion = $.widget( "ui.accordion", { + version: "1.14.2", + options: { + active: 0, + animate: {}, + classes: { + "ui-accordion-header": "ui-corner-top", + "ui-accordion-header-collapsed": "ui-corner-all", + "ui-accordion-content": "ui-corner-bottom" + }, + collapsible: false, + event: "click", + header: function( elem ) { + return elem + .find( "> li > :first-child" ) + .add( + elem.find( "> :not(li)" ) + + // Support: jQuery <3.5 only + // We could use `.even()` but that's unavailable in older jQuery. + .filter( function( i ) { + return i % 2 === 0; + } ) + ); + }, + heightStyle: "auto", + icons: { + activeHeader: "ui-icon-triangle-1-s", + header: "ui-icon-triangle-1-e" + }, + + // Callbacks + activate: null, + beforeActivate: null + }, + + hideProps: { + borderTopWidth: "hide", + borderBottomWidth: "hide", + paddingTop: "hide", + paddingBottom: "hide", + height: "hide" + }, + + showProps: { + borderTopWidth: "show", + borderBottomWidth: "show", + paddingTop: "show", + paddingBottom: "show", + height: "show" + }, + + _create: function() { + var options = this.options; + + this.prevShow = this.prevHide = $(); + this._addClass( "ui-accordion", "ui-widget ui-helper-reset" ); + this.element.attr( "role", "tablist" ); + + // Don't allow collapsible: false and active: false / null + if ( !options.collapsible && ( options.active === false || options.active == null ) ) { + options.active = 0; + } + + this._processPanels(); + + // handle negative values + if ( options.active < 0 ) { + options.active += this.headers.length; + } + this._refresh(); + }, + + _getCreateEventData: function() { + return { + header: this.active, + panel: !this.active.length ? $() : this.active.next() + }; + }, + + _createIcons: function() { + var icon, children, + icons = this.options.icons; + + if ( icons ) { + icon = $( "" ); + this._addClass( icon, "ui-accordion-header-icon", "ui-icon " + icons.header ); + icon.prependTo( this.headers ); + children = this.active.children( ".ui-accordion-header-icon" ); + this._removeClass( children, icons.header ) + ._addClass( children, null, icons.activeHeader ) + ._addClass( this.headers, "ui-accordion-icons" ); + } + }, + + _destroyIcons: function() { + this._removeClass( this.headers, "ui-accordion-icons" ); + this.headers.children( ".ui-accordion-header-icon" ).remove(); + }, + + _destroy: function() { + var contents; + + // Clean up main element + this.element.removeAttr( "role" ); + + // Clean up headers + this.headers + .removeAttr( "role aria-expanded aria-selected aria-controls tabIndex" ) + .removeUniqueId(); + + this._destroyIcons(); + + // Clean up content panels + contents = this.headers.next() + .css( "display", "" ) + .removeAttr( "role aria-hidden aria-labelledby" ) + .removeUniqueId(); + + if ( this.options.heightStyle !== "content" ) { + contents.css( "height", "" ); + } + }, + + _setOption: function( key, value ) { + if ( key === "active" ) { + + // _activate() will handle invalid values and update this.options + this._activate( value ); + return; + } + + if ( key === "event" ) { + if ( this.options.event ) { + this._off( this.headers, this.options.event ); + } + this._setupEvents( value ); + } + + this._super( key, value ); + + // Setting collapsible: false while collapsed; open first panel + if ( key === "collapsible" && !value && this.options.active === false ) { + this._activate( 0 ); + } + + if ( key === "icons" ) { + this._destroyIcons(); + if ( value ) { + this._createIcons(); + } + } + }, + + _setOptionDisabled: function( value ) { + this._super( value ); + + this.element.attr( "aria-disabled", value ); + this._toggleClass( null, "ui-state-disabled", !!value ); + }, + + _keydown: function( event ) { + if ( event.altKey || event.ctrlKey ) { + return; + } + + var keyCode = $.ui.keyCode, + length = this.headers.length, + currentIndex = this.headers.index( event.target ), + toFocus = false; + + switch ( event.keyCode ) { + case keyCode.RIGHT: + case keyCode.DOWN: + toFocus = this.headers[ ( currentIndex + 1 ) % length ]; + break; + case keyCode.LEFT: + case keyCode.UP: + toFocus = this.headers[ ( currentIndex - 1 + length ) % length ]; + break; + case keyCode.SPACE: + case keyCode.ENTER: + this._eventHandler( event ); + break; + case keyCode.HOME: + toFocus = this.headers[ 0 ]; + break; + case keyCode.END: + toFocus = this.headers[ length - 1 ]; + break; + } + + if ( toFocus ) { + $( event.target ).attr( "tabIndex", -1 ); + $( toFocus ).attr( "tabIndex", 0 ); + $( toFocus ).trigger( "focus" ); + event.preventDefault(); + } + }, + + _panelKeyDown: function( event ) { + if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) { + $( event.currentTarget ).prev().trigger( "focus" ); + } + }, + + refresh: function() { + var options = this.options; + this._processPanels(); + + // Was collapsed or no panel + if ( ( options.active === false && options.collapsible === true ) || + !this.headers.length ) { + options.active = false; + this.active = $(); + + // active false only when collapsible is true + } else if ( options.active === false ) { + this._activate( 0 ); + + // was active, but active panel is gone + } else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) { + + // all remaining panel are disabled + if ( this.headers.length === this.headers.find( ".ui-state-disabled" ).length ) { + options.active = false; + this.active = $(); + + // activate previous panel + } else { + this._activate( Math.max( 0, options.active - 1 ) ); + } + + // was active, active panel still exists + } else { + + // make sure active index is correct + options.active = this.headers.index( this.active ); + } + + this._destroyIcons(); + + this._refresh(); + }, + + _processPanels: function() { + var prevHeaders = this.headers, + prevPanels = this.panels; + + if ( typeof this.options.header === "function" ) { + this.headers = this.options.header( this.element ); + } else { + this.headers = this.element.find( this.options.header ); + } + this._addClass( this.headers, "ui-accordion-header ui-accordion-header-collapsed", + "ui-state-default" ); + + this.panels = this.headers.next().filter( ":not(.ui-accordion-content-active)" ).hide(); + this._addClass( this.panels, "ui-accordion-content", "ui-helper-reset ui-widget-content" ); + + // Avoid memory leaks (#10056) + if ( prevPanels ) { + this._off( prevHeaders.not( this.headers ) ); + this._off( prevPanels.not( this.panels ) ); + } + }, + + _refresh: function() { + var maxHeight, + options = this.options, + heightStyle = options.heightStyle, + parent = this.element.parent(); + + this.active = this._findActive( options.active ); + this._addClass( this.active, "ui-accordion-header-active", "ui-state-active" ) + ._removeClass( this.active, "ui-accordion-header-collapsed" ); + this._addClass( this.active.next(), "ui-accordion-content-active" ); + this.active.next().show(); + + this.headers + .attr( "role", "tab" ) + .each( function() { + var header = $( this ), + headerId = header.uniqueId().attr( "id" ), + panel = header.next(), + panelId = panel.uniqueId().attr( "id" ); + header.attr( "aria-controls", panelId ); + panel.attr( "aria-labelledby", headerId ); + } ) + .next() + .attr( "role", "tabpanel" ); + + this.headers + .not( this.active ) + .attr( { + "aria-selected": "false", + "aria-expanded": "false", + tabIndex: -1 + } ) + .next() + .attr( { + "aria-hidden": "true" + } ) + .hide(); + + // Make sure at least one header is in the tab order + if ( !this.active.length ) { + this.headers.eq( 0 ).attr( "tabIndex", 0 ); + } else { + this.active.attr( { + "aria-selected": "true", + "aria-expanded": "true", + tabIndex: 0 + } ) + .next() + .attr( { + "aria-hidden": "false" + } ); + } + + this._createIcons(); + + this._setupEvents( options.event ); + + if ( heightStyle === "fill" ) { + maxHeight = parent.height(); + this.element.siblings( ":visible" ).each( function() { + var elem = $( this ), + position = elem.css( "position" ); + + if ( position === "absolute" || position === "fixed" ) { + return; + } + maxHeight -= elem.outerHeight( true ); + } ); + + this.headers.each( function() { + maxHeight -= $( this ).outerHeight( true ); + } ); + + this.headers.next() + .each( function() { + $( this ).height( Math.max( 0, maxHeight - + $( this ).innerHeight() + $( this ).height() ) ); + } ) + .css( "overflow", "auto" ); + } else if ( heightStyle === "auto" ) { + maxHeight = 0; + this.headers.next() + .each( function() { + var isVisible = $( this ).is( ":visible" ); + if ( !isVisible ) { + $( this ).show(); + } + maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() ); + if ( !isVisible ) { + $( this ).hide(); + } + } ) + .height( maxHeight ); + } + }, + + _activate: function( index ) { + var active = this._findActive( index )[ 0 ]; + + // Trying to activate the already active panel + if ( active === this.active[ 0 ] ) { + return; + } + + // Trying to collapse, simulate a click on the currently active header + active = active || this.active[ 0 ]; + + this._eventHandler( { + target: active, + currentTarget: active, + preventDefault: $.noop + } ); + }, + + _findActive: function( selector ) { + return typeof selector === "number" ? this.headers.eq( selector ) : $(); + }, + + _setupEvents: function( event ) { + var events = { + keydown: "_keydown" + }; + if ( event ) { + $.each( event.split( " " ), function( index, eventName ) { + events[ eventName ] = "_eventHandler"; + } ); + } + + this._off( this.headers.add( this.headers.next() ) ); + this._on( this.headers, events ); + this._on( this.headers.next(), { keydown: "_panelKeyDown" } ); + this._hoverable( this.headers ); + this._focusable( this.headers ); + }, + + _eventHandler: function( event ) { + var activeChildren, clickedChildren, + options = this.options, + active = this.active, + clicked = $( event.currentTarget ), + clickedIsActive = clicked[ 0 ] === active[ 0 ], + collapsing = clickedIsActive && options.collapsible, + toShow = collapsing ? $() : clicked.next(), + toHide = active.next(), + eventData = { + oldHeader: active, + oldPanel: toHide, + newHeader: collapsing ? $() : clicked, + newPanel: toShow + }; + + event.preventDefault(); + + if ( + + // click on active header, but not collapsible + ( clickedIsActive && !options.collapsible ) || + + // allow canceling activation + ( this._trigger( "beforeActivate", event, eventData ) === false ) ) { + return; + } + + options.active = collapsing ? false : this.headers.index( clicked ); + + // When the call to ._toggle() comes after the class changes + // it causes a very odd bug in IE 8 (see #6720) + this.active = clickedIsActive ? $() : clicked; + this._toggle( eventData ); + + // Switch classes + // corner classes on the previously active header stay after the animation + this._removeClass( active, "ui-accordion-header-active", "ui-state-active" ); + if ( options.icons ) { + activeChildren = active.children( ".ui-accordion-header-icon" ); + this._removeClass( activeChildren, null, options.icons.activeHeader ) + ._addClass( activeChildren, null, options.icons.header ); + } + + if ( !clickedIsActive ) { + this._removeClass( clicked, "ui-accordion-header-collapsed" ) + ._addClass( clicked, "ui-accordion-header-active", "ui-state-active" ); + if ( options.icons ) { + clickedChildren = clicked.children( ".ui-accordion-header-icon" ); + this._removeClass( clickedChildren, null, options.icons.header ) + ._addClass( clickedChildren, null, options.icons.activeHeader ); + } + + this._addClass( clicked.next(), "ui-accordion-content-active" ); + } + }, + + _toggle: function( data ) { + var toShow = data.newPanel, + toHide = this.prevShow.length ? this.prevShow : data.oldPanel; + + // Handle activating a panel during the animation for another activation + this.prevShow.add( this.prevHide ).stop( true, true ); + this.prevShow = toShow; + this.prevHide = toHide; + + if ( this.options.animate ) { + this._animate( toShow, toHide, data ); + } else { + toHide.hide(); + toShow.show(); + this._toggleComplete( data ); + } + + toHide.attr( { + "aria-hidden": "true" + } ); + toHide.prev().attr( { + "aria-selected": "false", + "aria-expanded": "false" + } ); + + // if we're switching panels, remove the old header from the tab order + // if we're opening from collapsed state, remove the previous header from the tab order + // if we're collapsing, then keep the collapsing header in the tab order + if ( toShow.length && toHide.length ) { + toHide.prev().attr( { + "tabIndex": -1, + "aria-expanded": "false" + } ); + } else if ( toShow.length ) { + this.headers.filter( function() { + return parseInt( $( this ).attr( "tabIndex" ), 10 ) === 0; + } ) + .attr( "tabIndex", -1 ); + } + + toShow + .attr( "aria-hidden", "false" ) + .prev() + .attr( { + "aria-selected": "true", + "aria-expanded": "true", + tabIndex: 0 + } ); + }, + + _animate: function( toShow, toHide, data ) { + var total, easing, duration, + that = this, + adjust = 0, + boxSizing = toShow.css( "box-sizing" ), + down = toShow.length && + ( !toHide.length || ( toShow.index() < toHide.index() ) ), + animate = this.options.animate || {}, + options = down && animate.down || animate, + complete = function() { + that._toggleComplete( data ); + }; + + if ( typeof options === "number" ) { + duration = options; + } + if ( typeof options === "string" ) { + easing = options; + } + + // fall back from options to animation in case of partial down settings + easing = easing || options.easing || animate.easing; + duration = duration || options.duration || animate.duration; + + if ( !toHide.length ) { + return toShow.animate( this.showProps, duration, easing, complete ); + } + if ( !toShow.length ) { + return toHide.animate( this.hideProps, duration, easing, complete ); + } + + total = toShow.show().outerHeight(); + toHide.animate( this.hideProps, { + duration: duration, + easing: easing, + step: function( now, fx ) { + fx.now = Math.round( now ); + } + } ); + toShow + .hide() + .animate( this.showProps, { + duration: duration, + easing: easing, + complete: complete, + step: function( now, fx ) { + fx.now = Math.round( now ); + if ( fx.prop !== "height" ) { + if ( boxSizing === "content-box" ) { + adjust += fx.now; + } + } else if ( that.options.heightStyle !== "content" ) { + fx.now = Math.round( total - toHide.outerHeight() - adjust ); + adjust = 0; + } + } + } ); + }, + + _toggleComplete: function( data ) { + var toHide = data.oldPanel, + prev = toHide.prev(); + + this._removeClass( toHide, "ui-accordion-content-active" ); + this._removeClass( prev, "ui-accordion-header-active" ) + ._addClass( prev, "ui-accordion-header-collapsed" ); + + this._trigger( "activate", null, data ); + } +} ); + + +/*! + * jQuery UI Menu 1.14.2 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ + +//>>label: Menu +//>>group: Widgets +//>>description: Creates nestable menus. +//>>docs: https://api.jqueryui.com/menu/ +//>>demos: https://jqueryui.com/menu/ +//>>css.structure: ../../themes/base/core.css +//>>css.structure: ../../themes/base/menu.css +//>>css.theme: ../../themes/base/theme.css + + +var widgetsMenu = $.widget( "ui.menu", { + version: "1.14.2", + defaultElement: "