From a762e511557b59238970fc3d143ffb6596af8a2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Sun, 3 Apr 2022 11:09:47 +0200 Subject: [PATCH] update to 1.13.0.1 --- PKG-INFO | 6 +- xstatic/pkg/jquery_ui/__init__.py | 4 +- .../ui-bg_diagonals-thick_18_b81900_40x40.png | Bin 0 -> 476 bytes .../ui-bg_diagonals-thick_20_666666_40x40.png | Bin 0 -> 384 bytes .../images/ui-bg_glass_100_f6f6f6_1x400.png | Bin 0 -> 324 bytes .../images/ui-bg_glass_100_fdf5ce_1x400.png | Bin 0 -> 406 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 265 bytes .../ui-bg_gloss-wave_35_f6a828_500x100.png | Bin 0 -> 5873 bytes .../ui-bg_highlight-soft_100_eeeeee_1x100.png | Bin 0 -> 342 bytes .../ui-bg_highlight-soft_75_ffe45c_1x100.png | Bin 0 -> 386 bytes .../data/images/ui-icons_222222_256x240.png | Bin 0 -> 7025 bytes .../data/images/ui-icons_228ef1_256x240.png | Bin 0 -> 4618 bytes .../data/images/ui-icons_444444_256x240.png | Bin 6992 -> 7090 bytes .../data/images/ui-icons_555555_256x240.png | Bin 6988 -> 7074 bytes .../data/images/ui-icons_777620_256x240.png | Bin 4549 -> 4618 bytes .../data/images/ui-icons_777777_256x240.png | Bin 6999 -> 7111 bytes .../data/images/ui-icons_cc0000_256x240.png | Bin 4549 -> 4618 bytes .../data/images/ui-icons_ef8c08_256x240.png | Bin 0 -> 4618 bytes .../data/images/ui-icons_ffd27a_256x240.png | Bin 0 -> 4618 bytes .../data/images/ui-icons_ffffff_256x240.png | Bin 6299 -> 6487 bytes xstatic/pkg/jquery_ui/data/jquery-ui.css | 201 +- xstatic/pkg/jquery_ui/data/jquery-ui.js | 20554 ++++++++-------- xstatic/pkg/jquery_ui/data/jquery-ui.min.css | 8 +- xstatic/pkg/jquery_ui/data/jquery-ui.min.js | 13 +- .../jquery_ui/data/jquery-ui.structure.css | 182 +- .../data/jquery-ui.structure.min.css | 4 +- .../pkg/jquery_ui/data/jquery-ui.theme.css | 19 +- .../jquery_ui/data/jquery-ui.theme.min.css | 4 +- .../base/images/ui-icons_444444_256x240.png | Bin 7090 -> 7090 bytes .../base/images/ui-icons_555555_256x240.png | Bin 7074 -> 7074 bytes .../base/images/ui-icons_777620_256x240.png | Bin 4676 -> 4618 bytes .../base/images/ui-icons_777777_256x240.png | Bin 7111 -> 7111 bytes .../base/images/ui-icons_cc0000_256x240.png | Bin 4676 -> 4618 bytes .../base/images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../jquery_ui/data/themes/base/jquery-ui.css | 21 +- .../data/themes/base/jquery-ui.min.css | 4 +- .../pkg/jquery_ui/data/themes/base/theme.css | 15 +- .../ui-bg_diagonals-thick_8_333333_40x40.png | Bin 383 -> 383 bytes .../images/ui-bg_glass_40_111111_1x400.png | Bin 323 -> 323 bytes .../images/ui-bg_glass_55_1c1c1c_1x400.png | Bin 323 -> 323 bytes .../ui-bg_highlight-hard_100_f9f9f9_1x100.png | Bin 315 -> 315 bytes .../ui-bg_highlight-hard_40_aaaaaa_1x100.png | Bin 316 -> 316 bytes .../ui-bg_highlight-soft_50_aaaaaa_1x100.png | Bin 327 -> 327 bytes .../ui-bg_inset-hard_45_cd0a0a_1x100.png | Bin 382 -> 382 bytes .../ui-bg_inset-hard_55_ffeb80_1x100.png | Bin 367 -> 367 bytes .../images/ui-icons_222222_256x240.png | Bin 7025 -> 7025 bytes .../images/ui-icons_4ca300_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_bbbbbb_256x240.png | Bin 7092 -> 7092 bytes .../images/ui-icons_ededed_256x240.png | Bin 7011 -> 7011 bytes .../images/ui-icons_ffcf29_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/black-tie/jquery-ui.css | 21 +- .../data/themes/black-tie/jquery-ui.min.css | 4 +- .../jquery_ui/data/themes/black-tie/theme.css | 15 +- .../ui-bg_diagonals-thick_75_f3d8d8_40x40.png | Bin 471 -> 471 bytes .../images/ui-bg_dots-small_65_a6a6a6_2x2.png | Bin 266 -> 266 bytes .../images/ui-bg_glass_55_fbf8ee_1x400.png | Bin 398 -> 398 bytes .../ui-bg_highlight-hard_100_eeeeee_1x100.png | Bin 316 -> 316 bytes .../ui-bg_highlight-hard_100_f6f6f6_1x100.png | Bin 316 -> 316 bytes .../ui-bg_highlight-soft_15_cc0000_1x100.png | Bin 385 -> 385 bytes .../images/ui-icons_004276_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_cc0000_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/blitzer/jquery-ui.css | 21 +- .../data/themes/blitzer/jquery-ui.min.css | 4 +- .../jquery_ui/data/themes/blitzer/theme.css | 15 +- .../ui-bg_diagonals-thick_90_eeeeee_40x40.png | Bin 380 -> 380 bytes .../images/ui-bg_glass_100_e4f1fb_1x400.png | Bin 408 -> 408 bytes .../images/ui-bg_glass_50_3baae3_1x400.png | Bin 394 -> 394 bytes .../images/ui-bg_glass_80_d7ebf9_1x400.png | Bin 404 -> 404 bytes .../ui-bg_highlight-hard_100_f2f5f7_1x100.png | Bin 390 -> 390 bytes .../ui-bg_highlight-hard_70_000000_1x100.png | Bin 310 -> 310 bytes .../ui-bg_highlight-soft_100_deedf7_1x100.png | Bin 445 -> 445 bytes .../ui-bg_highlight-soft_25_ffef8f_1x100.png | Bin 367 -> 367 bytes .../images/ui-icons_2694e8_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_3d80b3_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_72a7cf_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/cupertino/jquery-ui.css | 21 +- .../data/themes/cupertino/jquery-ui.min.css | 4 +- .../jquery_ui/data/themes/cupertino/theme.css | 15 +- .../images/ui-bg_glass_40_ffc73d_1x400.png | Bin 374 -> 374 bytes .../ui-bg_highlight-hard_20_0972a5_1x100.png | Bin 381 -> 381 bytes .../ui-bg_highlight-soft_33_003147_1x100.png | Bin 401 -> 401 bytes .../ui-bg_highlight-soft_35_222222_1x100.png | Bin 342 -> 342 bytes .../ui-bg_highlight-soft_44_444444_1x100.png | Bin 328 -> 328 bytes .../ui-bg_highlight-soft_80_eeeeee_1x100.png | Bin 335 -> 335 bytes .../images/ui-bg_loop_25_000000_21x21.png | Bin 378 -> 378 bytes .../images/ui-icons_222222_256x240.png | Bin 7025 -> 7025 bytes .../images/ui-icons_4b8e0b_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_a83300_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_cccccc_256x240.png | Bin 7034 -> 7034 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/dark-hive/jquery-ui.css | 21 +- .../data/themes/dark-hive/jquery-ui.min.css | 4 +- .../jquery_ui/data/themes/dark-hive/theme.css | 15 +- .../ui-bg_diagonals-thick_15_0b3e6f_40x40.png | Bin 482 -> 482 bytes .../ui-bg_dots-medium_30_0b58a2_4x4.png | Bin 295 -> 295 bytes .../images/ui-bg_dots-small_20_333333_2x2.png | Bin 266 -> 266 bytes .../images/ui-bg_dots-small_30_a32d00_2x2.png | Bin 276 -> 276 bytes .../images/ui-bg_dots-small_40_00498f_2x2.png | Bin 282 -> 282 bytes .../ui-bg_gloss-wave_20_111111_500x100.png | Bin 3990 -> 3990 bytes .../images/ui-icons_00498f_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_98d2fb_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_9ccdfc_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/dot-luv/jquery-ui.css | 21 +- .../data/themes/dot-luv/jquery-ui.min.css | 4 +- .../jquery_ui/data/themes/dot-luv/theme.css | 15 +- .../ui-bg_gloss-wave_30_3d3644_500x100.png | Bin 5999 -> 5999 bytes .../ui-bg_highlight-soft_100_dcd9de_1x100.png | Bin 400 -> 400 bytes .../ui-bg_highlight-soft_100_eae6ea_1x100.png | Bin 431 -> 431 bytes .../ui-bg_highlight-soft_25_30273a_1x100.png | Bin 420 -> 420 bytes .../ui-bg_highlight-soft_45_5f5964_1x100.png | Bin 405 -> 405 bytes .../images/ui-icons_454545_256x240.png | Bin 7090 -> 7090 bytes .../images/ui-icons_734d99_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_8d78a5_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_a8a3ae_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ebccce_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/eggplant/jquery-ui.css | 21 +- .../data/themes/eggplant/jquery-ui.min.css | 4 +- .../jquery_ui/data/themes/eggplant/theme.css | 15 +- .../ui-bg_diagonals-small_25_c5ddfc_40x40.png | Bin 400 -> 400 bytes .../ui-bg_diagonals-thick_20_e69700_40x40.png | Bin 475 -> 475 bytes .../ui-bg_diagonals-thick_22_1484e6_40x40.png | Bin 467 -> 467 bytes .../ui-bg_diagonals-thick_26_2293f7_40x40.png | Bin 464 -> 464 bytes .../ui-bg_highlight-soft_100_f9f9f9_1x100.png | Bin 325 -> 325 bytes .../ui-bg_inset-hard_100_eeeeee_1x100.png | Bin 314 -> 314 bytes .../images/ui-icons_0a82eb_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_0b54d5_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_5fa5e3_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_fcdd4a_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/excite-bike/jquery-ui.css | 21 +- .../data/themes/excite-bike/jquery-ui.min.css | 4 +- .../data/themes/excite-bike/theme.css | 15 +- .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 265 -> 265 bytes .../ui-bg_highlight-soft_100_f6f6f6_1x100.png | Bin 330 -> 330 bytes .../ui-bg_highlight-soft_25_0073ea_1x100.png | Bin 393 -> 393 bytes .../ui-bg_highlight-soft_50_dddddd_1x100.png | Bin 339 -> 339 bytes .../flick/images/ui-icons_0073ea_256x240.png | Bin 4676 -> 4618 bytes .../flick/images/ui-icons_454545_256x240.png | Bin 7090 -> 7090 bytes .../flick/images/ui-icons_666666_256x240.png | Bin 7111 -> 7111 bytes .../flick/images/ui-icons_ff0084_256x240.png | Bin 4676 -> 4618 bytes .../flick/images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../jquery_ui/data/themes/flick/jquery-ui.css | 21 +- .../data/themes/flick/jquery-ui.min.css | 4 +- .../pkg/jquery_ui/data/themes/flick/theme.css | 15 +- .../ui-bg_diagonals-small_40_db4865_40x40.png | Bin 390 -> 390 bytes .../ui-bg_diagonals-small_50_93c3cd_40x40.png | Bin 391 -> 391 bytes .../ui-bg_diagonals-small_50_ff3853_40x40.png | Bin 388 -> 388 bytes .../ui-bg_diagonals-small_75_ccd232_40x40.png | Bin 391 -> 391 bytes .../ui-bg_dots-medium_80_ffff38_4x4.png | Bin 283 -> 283 bytes .../images/ui-bg_dots-small_35_35414f_2x2.png | Bin 281 -> 281 bytes .../ui-bg_white-lines_85_f7f7ba_40x100.png | Bin 422 -> 422 bytes .../images/ui-icons_454545_256x240.png | Bin 7090 -> 7090 bytes .../images/ui-icons_88a206_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_c02669_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_e1e463_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffeb33_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/hot-sneaks/jquery-ui.css | 21 +- .../data/themes/hot-sneaks/jquery-ui.min.css | 4 +- .../data/themes/hot-sneaks/theme.css | 15 +- .../images/ui-bg_glass_100_f5f0e5_1x400.png | Bin 412 -> 412 bytes .../images/ui-bg_glass_25_cb842e_1x400.png | Bin 393 -> 393 bytes .../images/ui-bg_glass_70_ede4d4_1x400.png | Bin 409 -> 412 bytes .../ui-bg_highlight-hard_100_f4f0ec_1x100.png | Bin 385 -> 385 bytes .../ui-bg_highlight-hard_65_fee4bd_1x100.png | Bin 372 -> 372 bytes .../ui-bg_highlight-hard_75_f5f5b5_1x100.png | Bin 381 -> 381 bytes .../ui-bg_inset-soft_100_f4f0ec_1x100.png | Bin 461 -> 461 bytes .../images/ui-icons_c47a23_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_cb672b_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_f08000_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_f35f07_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ff7519_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/humanity/jquery-ui.css | 21 +- .../data/themes/humanity/jquery-ui.min.css | 4 +- .../jquery_ui/data/themes/humanity/theme.css | 15 +- .../ui-bg_diagonals-small_0_aaaaaa_40x40.png | Bin 265 -> 265 bytes .../ui-bg_diagonals-thick_15_444444_40x40.png | Bin 383 -> 383 bytes .../ui-bg_diagonals-thick_95_ffdc2e_40x40.png | Bin 469 -> 469 bytes .../images/ui-bg_glass_55_fbf5d0_1x400.png | Bin 394 -> 394 bytes .../ui-bg_highlight-hard_30_285c00_1x100.png | Bin 382 -> 382 bytes .../ui-bg_highlight-soft_33_3a8104_1x100.png | Bin 403 -> 403 bytes .../ui-bg_highlight-soft_50_4eb305_1x100.png | Bin 409 -> 409 bytes .../ui-bg_highlight-soft_60_4ca20b_1x100.png | Bin 417 -> 417 bytes .../ui-bg_inset-soft_10_285c00_1x100.png | Bin 424 -> 424 bytes .../images/ui-icons_4eb305_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_72b42d_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/le-frog/jquery-ui.css | 21 +- .../data/themes/le-frog/jquery-ui.min.css | 4 +- .../jquery_ui/data/themes/le-frog/theme.css | 15 +- .../images/ui-bg_glass_15_5f391b_1x400.png | Bin 393 -> 393 bytes .../ui-bg_gloss-wave_20_1c160d_500x100.png | Bin 5851 -> 5851 bytes .../ui-bg_gloss-wave_25_453326_500x100.png | Bin 5910 -> 5910 bytes .../ui-bg_gloss-wave_30_44372c_500x100.png | Bin 5972 -> 5972 bytes .../ui-bg_highlight-soft_20_201913_1x100.png | Bin 433 -> 433 bytes .../ui-bg_highlight-soft_20_619226_1x100.png | Bin 401 -> 401 bytes .../ui-bg_inset-soft_10_201913_1x100.png | Bin 438 -> 438 bytes .../images/ui-icons_222222_256x240.png | Bin 7025 -> 7025 bytes .../images/ui-icons_9bcc60_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_add978_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_e3ddc9_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_f1fd86_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/mint-choc/jquery-ui.css | 21 +- .../data/themes/mint-choc/jquery-ui.min.css | 4 +- .../jquery_ui/data/themes/mint-choc/theme.css | 15 +- .../images/ui-bg_glass_100_f8f8f8_1x400.png | Bin 324 -> 324 bytes .../images/ui-bg_glass_35_dddddd_1x400.png | Bin 323 -> 323 bytes .../images/ui-bg_glass_60_eeeeee_1x400.png | Bin 323 -> 323 bytes .../ui-bg_inset-hard_75_999999_1x100.png | Bin 310 -> 310 bytes .../ui-bg_inset-soft_50_c9c9c9_1x100.png | Bin 329 -> 329 bytes .../images/ui-icons_3383bb_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_454545_256x240.png | Bin 7090 -> 7090 bytes .../images/ui-icons_70b2e1_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_999999_256x240.png | Bin 7111 -> 7111 bytes .../images/ui-icons_fbc856_256x240.png | Bin 4676 -> 4618 bytes .../data/themes/overcast/jquery-ui.css | 21 +- .../data/themes/overcast/jquery-ui.min.css | 4 +- .../jquery_ui/data/themes/overcast/theme.css | 15 +- .../ui-bg_diagonal-maze_20_6e4f1c_10x10.png | Bin 354 -> 354 bytes .../ui-bg_diagonal-maze_40_000000_10x10.png | Bin 301 -> 301 bytes .../ui-bg_fine-grain_10_eceadf_60x60.png | Bin 10817 -> 10817 bytes .../ui-bg_fine-grain_10_f8f7f6_60x60.png | Bin 9962 -> 9962 bytes .../ui-bg_fine-grain_15_eceadf_60x60.png | Bin 10587 -> 10587 bytes .../ui-bg_fine-grain_15_f7f3de_60x60.png | Bin 10949 -> 10949 bytes .../ui-bg_fine-grain_15_ffffff_60x60.png | Bin 4262 -> 4262 bytes .../ui-bg_fine-grain_65_654b24_60x60.png | Bin 14498 -> 14503 bytes .../ui-bg_fine-grain_68_b83400_60x60.png | Bin 11935 -> 11935 bytes .../images/ui-icons_222222_256x240.png | Bin 7025 -> 7025 bytes .../images/ui-icons_3572ac_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_8c291d_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_b83400_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_fbdb93_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/pepper-grinder/jquery-ui.css | 21 +- .../themes/pepper-grinder/jquery-ui.min.css | 4 +- .../data/themes/pepper-grinder/theme.css | 15 +- .../images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 394 -> 394 bytes .../images/ui-bg_glass_85_dfeffc_1x400.png | Bin 399 -> 399 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 390 -> 390 bytes .../ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 5882 -> 5882 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 391 -> 391 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 350 -> 350 bytes .../images/ui-icons_217bc0_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_469bdd_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_6da8d5_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_d8e7f3_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_f9bd01_256x240.png | Bin 4676 -> 4618 bytes .../data/themes/redmond/jquery-ui.css | 21 +- .../data/themes/redmond/jquery-ui.min.css | 4 +- .../jquery_ui/data/themes/redmond/theme.css | 15 +- .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 393 -> 393 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 265 -> 265 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 323 -> 323 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 324 -> 324 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 390 -> 390 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 325 -> 325 bytes .../images/ui-icons_222222_256x240.png | Bin 7025 -> 7025 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_454545_256x240.png | Bin 7090 -> 7090 bytes .../images/ui-icons_888888_256x240.png | Bin 7111 -> 7111 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 4676 -> 4618 bytes .../data/themes/smoothness/jquery-ui.css | 21 +- .../data/themes/smoothness/jquery-ui.min.css | 4 +- .../data/themes/smoothness/theme.css | 15 +- .../images/ui-bg_glass_55_fcf0ba_1x400.png | Bin 391 -> 391 bytes .../ui-bg_gloss-wave_100_ece8da_500x100.png | Bin 5817 -> 5817 bytes .../ui-bg_highlight-hard_100_f5f3e5_1x100.png | Bin 394 -> 394 bytes .../ui-bg_highlight-hard_100_fafaf4_1x100.png | Bin 379 -> 379 bytes .../ui-bg_highlight-hard_15_459e00_1x100.png | Bin 380 -> 380 bytes .../ui-bg_highlight-hard_95_cccccc_1x100.png | Bin 317 -> 317 bytes .../ui-bg_highlight-soft_25_67b021_1x100.png | Bin 411 -> 411 bytes .../ui-bg_highlight-soft_95_ffedad_1x100.png | Bin 409 -> 409 bytes .../ui-bg_inset-soft_15_2b2922_1x100.png | Bin 380 -> 380 bytes .../images/ui-icons_808080_256x240.png | Bin 7117 -> 7117 bytes .../images/ui-icons_847e71_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_8DC262_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_eeeeee_256x240.png | Bin 7010 -> 7010 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/south-street/jquery-ui.css | 21 +- .../themes/south-street/jquery-ui.min.css | 4 +- .../data/themes/south-street/theme.css | 15 +- .../images/ui-bg_glass_45_0078ae_1x400.png | Bin 403 -> 403 bytes .../images/ui-bg_glass_55_f8da4e_1x400.png | Bin 403 -> 403 bytes .../images/ui-bg_glass_75_79c9ec_1x400.png | Bin 406 -> 406 bytes .../ui-bg_gloss-wave_45_e14f1c_500x100.png | Bin 5922 -> 5922 bytes .../ui-bg_gloss-wave_50_6eac2c_500x100.png | Bin 5964 -> 5964 bytes .../ui-bg_gloss-wave_75_2191c0_500x100.png | Bin 6035 -> 6035 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 350 -> 350 bytes .../start/images/ui-icons_0078ae_256x240.png | Bin 4676 -> 4618 bytes .../start/images/ui-icons_056b93_256x240.png | Bin 4676 -> 4618 bytes .../start/images/ui-icons_d8e7f3_256x240.png | Bin 4676 -> 4618 bytes .../start/images/ui-icons_e0fdff_256x240.png | Bin 4676 -> 4618 bytes .../start/images/ui-icons_f5e175_256x240.png | Bin 4676 -> 4618 bytes .../start/images/ui-icons_f7a50d_256x240.png | Bin 4676 -> 4618 bytes .../start/images/ui-icons_fcd113_256x240.png | Bin 4676 -> 4618 bytes .../jquery_ui/data/themes/start/jquery-ui.css | 21 +- .../data/themes/start/jquery-ui.min.css | 4 +- .../pkg/jquery_ui/data/themes/start/theme.css | 15 +- ...ui-bg_diagonals-medium_20_d34d17_40x40.png | Bin 440 -> 440 bytes .../ui-bg_gloss-wave_45_817865_500x100.png | Bin 5939 -> 5948 bytes .../ui-bg_gloss-wave_60_fece2f_500x100.png | Bin 5908 -> 5908 bytes .../ui-bg_gloss-wave_70_ffdd57_500x100.png | Bin 5601 -> 5601 bytes .../ui-bg_gloss-wave_90_fff9e5_500x100.png | Bin 5447 -> 5447 bytes .../ui-bg_highlight-soft_100_feeebd_1x100.png | Bin 401 -> 401 bytes .../ui-bg_inset-soft_30_ffffff_1x100.png | Bin 261 -> 261 bytes .../sunny/images/ui-icons_3d3d3d_256x240.png | Bin 7074 -> 7074 bytes .../sunny/images/ui-icons_bd7b00_256x240.png | Bin 4676 -> 4618 bytes .../sunny/images/ui-icons_d19405_256x240.png | Bin 4676 -> 4618 bytes .../sunny/images/ui-icons_eb990f_256x240.png | Bin 4676 -> 4618 bytes .../sunny/images/ui-icons_ed9f26_256x240.png | Bin 4676 -> 4618 bytes .../sunny/images/ui-icons_fadc7a_256x240.png | Bin 4676 -> 4618 bytes .../sunny/images/ui-icons_ffe180_256x240.png | Bin 4676 -> 4618 bytes .../jquery_ui/data/themes/sunny/jquery-ui.css | 21 +- .../data/themes/sunny/jquery-ui.min.css | 4 +- .../pkg/jquery_ui/data/themes/sunny/theme.css | 15 +- .../images/ui-bg_diamond_10_4f4221_10x8.png | Bin 365 -> 365 bytes .../images/ui-bg_diamond_20_372806_10x8.png | Bin 368 -> 368 bytes .../images/ui-bg_diamond_25_675423_10x8.png | Bin 370 -> 370 bytes .../images/ui-bg_diamond_25_d5ac5d_10x8.png | Bin 371 -> 371 bytes .../images/ui-bg_diamond_8_261803_10x8.png | Bin 368 -> 368 bytes .../images/ui-bg_diamond_8_443113_10x8.png | Bin 368 -> 368 bytes .../ui-bg_highlight-hard_65_fee4bd_1x100.png | Bin 372 -> 372 bytes .../images/ui-icons_070603_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_e8e2b5_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_e9cd86_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_efec9f_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_f2ec64_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_f9f2bd_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ff7519_256x240.png | Bin 4676 -> 4618 bytes .../data/themes/swanky-purse/jquery-ui.css | 21 +- .../themes/swanky-purse/jquery-ui.min.css | 4 +- .../data/themes/swanky-purse/theme.css | 15 +- .../ui-bg_diagonals-small_50_262626_40x40.png | Bin 321 -> 321 bytes .../images/ui-bg_glass_40_0a0a0a_1x400.png | Bin 322 -> 322 bytes .../images/ui-bg_glass_55_f1fbe5_1x400.png | Bin 406 -> 406 bytes .../images/ui-bg_glass_60_000000_1x400.png | Bin 323 -> 323 bytes .../ui-bg_gloss-wave_55_000000_500x100.png | Bin 4360 -> 4360 bytes .../ui-bg_gloss-wave_85_9fda58_500x100.png | Bin 5998 -> 5998 bytes .../ui-bg_gloss-wave_95_f6ecd5_500x100.png | Bin 5856 -> 5856 bytes .../images/ui-icons_000000_256x240.png | Bin 5582 -> 5582 bytes .../images/ui-icons_1f1f1f_256x240.png | Bin 7025 -> 7025 bytes .../images/ui-icons_9fda58_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_b8ec79_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/trontastic/jquery-ui.css | 21 +- .../data/themes/trontastic/jquery-ui.min.css | 4 +- .../data/themes/trontastic/theme.css | 15 +- .../images/ui-bg_glass_20_555555_1x400.png | Bin 318 -> 318 bytes .../images/ui-bg_glass_40_0078a3_1x400.png | Bin 400 -> 400 bytes .../images/ui-bg_glass_40_ffc73d_1x400.png | Bin 374 -> 374 bytes .../ui-bg_gloss-wave_25_333333_500x100.png | Bin 3976 -> 3976 bytes .../ui-bg_highlight-soft_80_eeeeee_1x100.png | Bin 335 -> 335 bytes .../ui-bg_inset-soft_25_000000_1x100.png | Bin 312 -> 312 bytes .../ui-bg_inset-soft_30_f58400_1x100.png | Bin 398 -> 398 bytes .../images/ui-icons_222222_256x240.png | Bin 7025 -> 7025 bytes .../images/ui-icons_4b8e0b_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_a83300_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_cccccc_256x240.png | Bin 7034 -> 7034 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/ui-darkness/jquery-ui.css | 21 +- .../data/themes/ui-darkness/jquery-ui.min.css | 4 +- .../data/themes/ui-darkness/theme.css | 15 +- .../ui-bg_diagonals-thick_18_b81900_40x40.png | Bin 476 -> 476 bytes .../ui-bg_diagonals-thick_20_666666_40x40.png | Bin 384 -> 384 bytes .../images/ui-bg_glass_100_f6f6f6_1x400.png | Bin 324 -> 324 bytes .../images/ui-bg_glass_100_fdf5ce_1x400.png | Bin 406 -> 406 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 265 -> 265 bytes .../ui-bg_gloss-wave_35_f6a828_500x100.png | Bin 5873 -> 5873 bytes .../ui-bg_highlight-soft_100_eeeeee_1x100.png | Bin 342 -> 342 bytes .../ui-bg_highlight-soft_75_ffe45c_1x100.png | Bin 386 -> 386 bytes .../images/ui-icons_222222_256x240.png | Bin 7025 -> 7025 bytes .../images/ui-icons_228ef1_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ef8c08_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffd27a_256x240.png | Bin 4676 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6487 -> 6487 bytes .../data/themes/ui-lightness/jquery-ui.css | 21 +- .../themes/ui-lightness/jquery-ui.min.css | 4 +- .../data/themes/ui-lightness/theme.css | 15 +- .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 390 -> 390 bytes .../ui-bg_gloss-wave_16_121212_500x100.png | Bin 4031 -> 4031 bytes .../ui-bg_highlight-hard_15_888888_1x100.png | Bin 311 -> 311 bytes .../ui-bg_highlight-hard_55_555555_1x100.png | Bin 311 -> 311 bytes .../ui-bg_highlight-soft_35_adadad_1x100.png | Bin 326 -> 326 bytes .../ui-bg_highlight-soft_60_dddddd_1x100.png | Bin 342 -> 342 bytes .../ui-bg_inset-soft_15_121212_1x100.png | Bin 322 -> 322 bytes .../vader/images/ui-icons_666666_256x240.png | Bin 7111 -> 7111 bytes .../vader/images/ui-icons_777777_256x240.png | Bin 0 -> 7111 bytes .../vader/images/ui-icons_aaaaaa_256x240.png | Bin 7075 -> 7075 bytes .../vader/images/ui-icons_bbbbbb_256x240.png | Bin 7092 -> 0 bytes .../vader/images/ui-icons_c98000_256x240.png | Bin 4676 -> 4618 bytes .../vader/images/ui-icons_cccccc_256x240.png | Bin 7034 -> 7034 bytes .../vader/images/ui-icons_cd0a0a_256x240.png | Bin 4676 -> 4618 bytes .../vader/images/ui-icons_f29a00_256x240.png | Bin 4676 -> 4618 bytes .../jquery_ui/data/themes/vader/jquery-ui.css | 29 +- .../data/themes/vader/jquery-ui.min.css | 6 +- .../pkg/jquery_ui/data/themes/vader/theme.css | 23 +- 409 files changed, 11251 insertions(+), 10762 deletions(-) create mode 100644 xstatic/pkg/jquery_ui/data/images/ui-bg_diagonals-thick_18_b81900_40x40.png create mode 100644 xstatic/pkg/jquery_ui/data/images/ui-bg_diagonals-thick_20_666666_40x40.png create mode 100644 xstatic/pkg/jquery_ui/data/images/ui-bg_glass_100_f6f6f6_1x400.png create mode 100644 xstatic/pkg/jquery_ui/data/images/ui-bg_glass_100_fdf5ce_1x400.png create mode 100644 xstatic/pkg/jquery_ui/data/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 xstatic/pkg/jquery_ui/data/images/ui-bg_gloss-wave_35_f6a828_500x100.png create mode 100644 xstatic/pkg/jquery_ui/data/images/ui-bg_highlight-soft_100_eeeeee_1x100.png create mode 100644 xstatic/pkg/jquery_ui/data/images/ui-bg_highlight-soft_75_ffe45c_1x100.png create mode 100644 xstatic/pkg/jquery_ui/data/images/ui-icons_222222_256x240.png create mode 100644 xstatic/pkg/jquery_ui/data/images/ui-icons_228ef1_256x240.png create mode 100644 xstatic/pkg/jquery_ui/data/images/ui-icons_ef8c08_256x240.png create mode 100644 xstatic/pkg/jquery_ui/data/images/ui-icons_ffd27a_256x240.png create mode 100644 xstatic/pkg/jquery_ui/data/themes/vader/images/ui-icons_777777_256x240.png delete mode 100644 xstatic/pkg/jquery_ui/data/themes/vader/images/ui-icons_bbbbbb_256x240.png diff --git a/PKG-INFO b/PKG-INFO index d66ea45..1b4a81a 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,8 +1,8 @@ Metadata-Version: 1.2 Name: XStatic-jquery-ui -Version: 1.12.1.1 -Summary: jquery-ui 1.12.1 (XStatic packaging standard) -Home-page: https://jqueryui.com/ +Version: 1.13.0.1 +Summary: jquery-ui 1.13.0 (XStatic packaging standard) +Home-page: http://jqueryui.com/ Maintainer: Thomas Waldmann Maintainer-email: tw@waldmann-edv.de License: (same as jquery-ui) diff --git a/xstatic/pkg/jquery_ui/__init__.py b/xstatic/pkg/jquery_ui/__init__.py index 208262b..ddb997c 100644 --- a/xstatic/pkg/jquery_ui/__init__.py +++ b/xstatic/pkg/jquery_ui/__init__.py @@ -11,7 +11,7 @@ NAME = __name__.split('.')[-1] # package name (e.g. 'foo' or 'foo_bar') # please use a all-lowercase valid python # package name -VERSION = '1.12.1' # version of the packaged files, please use the upstream +VERSION = '1.13.0' # version of the packaged files, please use the upstream # version number BUILD = '1' # our package build number, so we can release new builds # with fixes for xstatic stuff. @@ -28,7 +28,7 @@ MAINTAINER = 'Thomas Waldmann' MAINTAINER_EMAIL = 'tw@waldmann-edv.de' # this refers to the project homepage of the stuff we packaged: -HOMEPAGE = 'https://jqueryui.com/' +HOMEPAGE = 'http://jqueryui.com/' # this refers to all files: LICENSE = '(same as %s)' % DISPLAY_NAME diff --git a/xstatic/pkg/jquery_ui/data/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/xstatic/pkg/jquery_ui/data/images/ui-bg_diagonals-thick_18_b81900_40x40.png new file mode 100644 index 0000000000000000000000000000000000000000..1018c16ee18e96c682079b5dd863d13ad8cdffb6 GIT binary patch literal 476 zcmeAS@N?(olHy`uVBq!ia0vp^8Xzpd1SErbK34)MmUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweEpc6a#?2AmP!?*K*E zOFVsD*`IQ;^C>G_O0LoZ3O(?2aSX}0_x6S%7n7lY+rzVFaSju7kDfYoxKe2S=DF&E z*$1OGZ2qy@;aCbwcjd{|mr~l--}c!h=fD1Lol#Z%y!PX@McXX%^S_x#|GIx?r~E3; zWkK8tW~R*F9YQl>rys4?RSG?OkGpW?tk(?g%U|7LNeh^LKqZUy%;H%IT3Z>?f{hFK zL#FQAKg}cL>A#O1-dFF)9~4|^wfkV<%DjS-Rm^7=m^FG{;hN!YdN3r5@yxQc2XZU2 z-fY=%W#i>V!I&nQmPN(9x{-Mirg;_rruussTMGK;0sX34;u=wsl30>zm0Xkxq!^40 zj0|-R4Rj66Lkvx!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e6mbzsPFCvp^nu ziKnkC`%^AZ?7KYY%t(yeV8t@pxa_rxcSSJyi1HM`b)0_ zxtyr~Frl1JzH!=~rxu~Xo7$GdPTq4~^0euMM_MNeCvBXwB~SchY5$=DRq4~b(!X}H zdlbl?DBxYPgR5vxijKPEX(^b literal 0 HcmV?d00001 diff --git a/xstatic/pkg/jquery_ui/data/images/ui-bg_glass_100_f6f6f6_1x400.png b/xstatic/pkg/jquery_ui/data/images/ui-bg_glass_100_f6f6f6_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..3fc523a0f8e0d3221fedb368ff8549efb1a67654 GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&0LWmFTHNUZq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=luK|9_FyhG&61 z_7YEDSN5k|?0m`!my)ZrfI>c=E{-7Gquf6;;~9D-28e6d%+d0Pa4;oTJ91J^(Lzz`*b-fq}tl1_Oh5!JJ)zHb4osByV?@|6srw@%;`^ zguTSm*OmP#7dxM_!lmRYEuhdWPZ!4!kK=F8+jBEAO0Yk;|9i8CTI`f{8mG^e#UBVy zFpZDQJtH>%soQ3uxfhqLUMzC7WT*Yz)5`@8TibqSzMC3pqs+k2mMC#-yJMu9r$o@I zMnr!1_o9J20Pq8=AmfF%}>cptHiD0q?G3+paup{S3j3^ HP6325JM9yV^b?*BW(i%D+7Za?jQ3|H00)|WTsW()^JkF R^Ab=4gQu&X%Q~loCIG-vLYx2q literal 0 HcmV?d00001 diff --git a/xstatic/pkg/jquery_ui/data/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/xstatic/pkg/jquery_ui/data/images/ui-bg_gloss-wave_35_f6a828_500x100.png new file mode 100644 index 0000000000000000000000000000000000000000..1b92e933b0f68d3373231ad898c2ed605f0ba3be GIT binary patch literal 5873 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 literal 0 HcmV?d00001 diff --git a/xstatic/pkg/jquery_ui/data/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/xstatic/pkg/jquery_ui/data/images/ui-bg_highlight-soft_100_eeeeee_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..fd66377171a8c2d4784d7aa1bdfbfdf52068ade4 GIT binary patch literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^j6j?s03;ZUuHXC*q*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=luK|9_FyhG&61 z_7YEDSN5k|?0m`!my)ZrfI@MeE{-7*my>_2JbUDTgZP(u503|`wT1H7t4Qw4Px_H} z_QP9)!{+&I>)R#vMH$sZp8w$5`|xv2+j%9Q|Cc4~3=RM4r~f!{;!C~SVRqHF@98ro z(v0?mr&N6Ji(7ZJiGk;Z!i#mC3xLjJP%UwdC`m~yNwrEYN(E93Mg~TPx`qb22Ie7# vCRWC#R>nr!1_o9J20Pq8=AmfF%}>cptHiD0q?G3+paup{S3j3^P6467ShD5c z67K_EAB4o@+yvH~P1CV+%wLf3wZeL{j?TB_;w=mh`U@6|?wCKh!R}IfX<)+r^_i** zX0kQTmSDXStofmC70bD8Jg-+2g>l`m^?$#2>CGbw1=6>379aR&6)VDY?sL?GZvOlK zFZn-aefHG8vv5<56wpPgC9V-ADTyViR>?)FK#IZ0z{pV7&_LI~JjBq%%GlJ(*ht&J mz{sR1tE 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 bYolvpVeRYQZ}ZPN7@(q{DPJLL{_Z~j8M!;< literal 0 HcmV?d00001 diff --git a/xstatic/pkg/jquery_ui/data/images/ui-icons_228ef1_256x240.png b/xstatic/pkg/jquery_ui/data/images/ui-icons_228ef1_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..25a1da07634561fea113d1ea14d7f3e5e5adf0dc GIT binary patch literal 4618 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
`A6pHt6IR6lNF6^&(ovlbP|R$VC3 z#Kj`X&Lyxos$n5C#2uMfZZsvbj)i z+$1(n=6q63)^IOf+^1x0R%Jn?&*qGX`{G5;8i!QR3oXJfw~DcSI#S?P@6TZI#^)nO zwBfhXH&dU8oVeLDqb6r-R>&#mCM;g!tPBL&yUn8|aGk2Z;+<@plmQtZfs}+*Cs>)w zJK)hUcu#Axe^!n8SWqhu2KsCjRL7fdv|8+ohg@hb&_b}-xyXe1kWcrO41<^<<7&ZQ zz`{1CCxUin(^K(w@eEMT(^}Rul1#tbP)zHUXQs;T&4gaG6=ckgoPc(7n z*nP2UyM#N~U!%DWT-%~=m$RLWZ{BbaHA2Pw2Jkcvd9BQ+`pcKWLIsiFyNfBO1oInH zC%Gdn^(k@+F)a~?>K~};Kc#WB z^{nk2D~t~niv&TrKOd+v`FXMR=DN+SgIjGD%g1Ye+s=6>ipoV8mP1RD?mg8&DMU=q zO^zcP7!_*&@^Np)=&5r*;QialnPQcsta!aRkF70#VabT)k?5u-;YzptvmB<#WuY3R zCHt}suyr7}=u<>SA!(YcV$8U;juwU8^~d)`Oo#4yDH(yMUn7ajXIk654oRQH1d5R5 zWQl6N4<$AfH86-?|I)&>?_Yvz75C_;;V8U9u;+dh-hiJfqm(Gh|2>&!^|uw8Sf!N& z9WrD?bX<1ttD2$v^8DeVAp2*9cB(6Un`IlxfzXmt;l3tj(F!-4ZXJajoUOha-mse| zA!`x7DG7-qhC}*iY;B^j1mbc$3RLMO^k4L=lXULiXz#zsf{Fz|)4^5x2{aQ>Z*5#E z?vdX&8)WO?ucP>9E?pIzt1RwC{5rPs{h+hGPYV7P+>A3xJe?O)$@6T{rX>PzP+?q> z;;#q;(=T~?W`h>R_;Ks-_~}fi2}AdrFMFIdE1o0}W}xGQU9x@`PQY7H{;8Qo?e<{~ zpKwEX7LjJY8@J`OP0iy!ifw(LLS^?8cYRZLaU*tLUX+^zUp#OYztQ*IJJVtGpa=vt z5kUQuI#p2*!|A_c$k4oQv63yk2dbsn%h^HtD>s48SH&Fx^p!EU%dtP`gZW_eQ~lD% z=1H@F2j8g~?=|<`-+VUSqGzqu`pWji0Wn_*0&TTAnpzFDp}&mJKU@JgOf_ zb;2;7x~$&YR>MwuN4Y+=+#p^M4MJWZpFdmo<}A=FxP1T!{_NcOYnv;lm?Pr55-@Rp z_Zw(#Yp@9w*S~`|Bbq3EEti?agR{4d!p#l31aBX|JVE(dSOq@?uUcKRg4>v`Ea^WP zvScvPt5m&LU<@#dVu1HHWDd&M<}MA}MO{nFS4ALwSEZ&SkQdw*mL1lF(*{jkf#MMB zDV>%pS4?g14ZS1Mk<_u3q$@5+yn5KrVLW`$+I=o&gd}Nxq`=Yx|=X%|V^yMSA#&uGDocw=YDx0(zS#)KM1H zcoDN9KqHH7E90e0OzF(xVRN5$N2dQJSx(Pi?9tyoYdK*!kX=m5UqNr4#V%tnAXyf7 zh@#7GW^T>=a7yJ|->AUNYkTaF&Z3y^_JZa&v|Chg2WGnNI7g+Br+G{N_$LYQcblb3(QrR$@sbar5n*kBIjSafWl~O) z!}!-exeo$ZFhbe1GXl>SNQJ|K(@!Nl$wETs7nUKenZX|bynIKP@Sc+xXhW`-WP{Q# znGJRZ{n8~pVjUN|nJx6cPp1T|E}cOX`x_uF310qRZ&nkGYt=14@CQ^2_-^Syl*w#c zhTX`qiW%(KoCFMjV2^Gg)Q!t@HNpPl-)M0MK-J{85Q@g-{rMHerkBXXsBTNiu<+oQ zN_*2Wi0&X+{H=SoHscgP)2!BpnBWcAJ{dRSwjilve-qFi$_rqJz%pyu&v}Z&W{I9g zD~K=^RFMj1UI#(9fbZ0Bd`?LKmDIU1dz2C>Hn(By*(zLjIogqGttE5VO@Opqm8e|j zn|*e5+1qX1hqVBw{@|Vnx#PR}5cHP1IXLDTH7(IIU^kG^z0C}zV3r|Qg==OHDzt3N(HOX{{aG= BEO!6^ diff --git a/xstatic/pkg/jquery_ui/data/images/ui-icons_555555_256x240.png b/xstatic/pkg/jquery_ui/data/images/ui-icons_555555_256x240.png index e965f6d97c6e39e711dbba68889a7d1f3d95eb45..f04370b66d755421404338a99bfdfe5e60c3ba95 100644 GIT binary patch literal 7074 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 Z_{82R#OM2ye+p-ShN`YgnUY=P{{u)ubP50f literal 6988 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 TS5o|sV2f112>_&1xa9s1vOw4} diff --git a/xstatic/pkg/jquery_ui/data/images/ui-icons_777777_256x240.png b/xstatic/pkg/jquery_ui/data/images/ui-icons_777777_256x240.png index 323c4564a74caa26eca81548d184610bcaedfb1d..3fbb4f702ee4e69f118b4f52a46f80a1eabcdb77 100644 GIT binary patch literal 7111 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 KDOAZ>M*JT|;6S_p literal 6999 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 V$|(E^{U@MAp6j=yev-~A^MA(}>Vp6P delta 4241 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 Hng{+LNSp}D literal 6299 zcmZu#XEQFF_{V1MIvK^OF~bls-Q9bK`Xv`yGy%b5otPGTUS6i;Q`USo z-*o35Lc(ij%hYFmE%@FKtCBJ~F14s=~XJ)gRXxQuvPKgU; z1CaJU_z=bq>K+AE`i>ZV5t^~_@{Yf9L(2nL1faCaUYX)w*-}4<(W?v2gi{iamuadO z^FC#0ceJZNuzG6R(|YFQ`vRG4bO?Ata97?^Hj8jPTu+7C3H_KU_J*2B`fWJaQ)n;C z^E5GNyH@Lzxy~Y;(X+*`{FyoBs-SNy~aMj+l(?IS|fG%juy8CQjB0>-hUiFd(sAyB|8}D9+L0t`RoCGDf#X z)XUd6G-jt1Hhb+gHsp=gHy5Qa3`DO|r6v5n&_ak$%izwpHuvC}I*~z_u+!i$ilfop z>**`*H3L@fLsp5jn$k@DdNP%pwwJuP@`fRcZ5uMX>m(vpsdFxlJD5Lb^iR zPkdd|rDGzlj!>QnEG*61Z!`+0?%u zmJ^;mK5?Zk4RC<0MI785WE-JC7SB8VrKdp<_D$giPTzwIkEG(V+N-8O&lh$Yqn zqm^y{-Nwc10q>!xK6DWQ(vECI$)d|gcteh7P(i1a)574!4Y*WZ4j>*bNbGn-Z*&jN znsP56w^)~U#8|?DCJSg@;4-!mM8*XnuHm z`11r22Lt~6LRF#cpcy6yur#QMmW`QJi|zL0BBZYsf^~K$c*YlJ0(TISvJG+QstBvc zXZJ)9RPD|l$9%4-ua89PkPAfBar>aV2d~`q%w_)iV`S*rE>Yt@d++arThC?H^zeHr zgMB^dc_{MheONoB zT3-(R=iWroo1wz!3T$JE{`X^1&Xd#AR8of~@1}zv0yz$}t7qUcewR~Hw|&~w+i@0J ze=^`LOzsT}Dk|ay<*~a{f?F_;!O}or!g!j;xl$V1nETGEDmngJRq~}VDF_Bc8 zg-X(ab|`N+L$;R%>wXX?fBwEM?fiZ#sd!lb1^`iZ=x$Vs+qS+YF(%2u^j8|$$f^Dd zkHmtAwHyX4>T#mb#kGM9OR1Hcbk5Yh;AnO+n=!dOVw^ECe34Y2Ftvi9hJ~EqdW*l$3c- zB0hrKu9Pupl-{#nu>SIA^2)-L&h!ckNvSV~u}lQs3V%pAX_dMT1{&^!E%YBYBj!J< zCfyivW5?1o*MHft1RYbUgm+#URh_m%BeBo37K45w5 z3oYt(sQiEy$CsArju3#=pNabC1x1tWmA6~srhb|`~qCDqSNCk=js6v7~YhtOv6X9Aqs{U@#PPoV+tuS!&+UuYmgJNub?7Wns; z0|;sd_z8(rbvPa8D_BXo+rwv}2KX8qsBoi7aH4GH^K(+Am>mERUNqowyil_cS^6OH zl{y+-$(|QW#OZzp(K|erl+_Gh5LFuD?>Fxw{UCq+BgUWk7(^%}gmAESKFb%rMlkN7 zAw+%0tY8PWhjsP~f+_T_r5JB(W@Sp^2PS(M&Ylb=L6t}uskJ9cgqT8BVd$VZFGZYW z2nA_UMbRR4)p~O ze0uUc7z7id`J3zg8?_$@wnms`tB*j@5sT(ou88;Df3QPv`K+v0YXs$ij=vwvSI9mye(oZ*@*j@D1RuQPb#f3=2R_xk`(6ql#fHB zQDft_ZLG4}3K4A9`!jmrwaY%P=4S)Fp%iSCQJ%(x?eJtf{FUIK+`F;Us1@}r7o(nZ zic)5@?$FQdIXSi2s8(;jf-_+l><5E$1GC=MQCYCEVIC&s&BO%V;nk!_q$kZN1{-Sj zj$ypS1+24>&yhiINy-EMBOksE!!5*N#FcAb>rRr$s^OoS=Z`T482{nEDp~mnJX;am z!WfjJAF8FstyBJ7ZQ`1x4Bv6}gi`^dPbIJ;8w@@>5krMxmK75Xt5Xy$J6Z2%x-k*x zP)rM-N!wz1cSR|s07SFp z&&?A(tDSq985W+pK@q8eJuBlm<2Q|5!&xf&NW`NIq5=<7A_2^sg~H)cJfSKcfA|n7 z1uj%eH_1kb=;Qt3aI^S@g^3k)yvx+C&UvHi*Pg1%kKd7PTp&F^EBOb=Vr#`W0G1SR3) z2rwUaP=eB+JE8uUYG49a$Gxi)%cnd$Ql%)4{)I@Lv<$ob9Qx@pZL6_nJ6V|Vu+1ys z-_OSgl|3B^;I}uAys*b>PVe6-qO0WnukD_>+S~c&Qvv9&swAZH5)Z5=D z%<_!Qs-G1gFJFVw+Ctc>c1;R1Y((*T4DxljzV54MP0|oO{5bPQm!BkDN~cv-E%rXQ zK^oBYfDxl%bF^Ml`7>K)G9W@p1$y%UCim&8trlm#@~^QqPhL9sVQiK_rntLSd&ROG zC~qjgl#X+(*($lulUPQz9RG>NI?HUCN`ARV9q_y#KHKO?@KNtRG?GtvB@xQM&a2b^ zBuV>EAiHxWhe?skF?wkcYHf(=XEAFfZ9Fu-rEiwK@)tX>pZyYZJ#L!C~~$dw2q)_B@iqps6;e(W1Yo`qB22)OVxO zd-?<<{?FNoqJ9Ry#OpADLosB=AH!CVMWH^?<(Mg2H4fLk7VggkQ(j}{?x@i z6VN$K(WHdH@wB-N&h*#s4)Y9bi_PNc*debeSA zO{|MWix^;SMA)AwjdKjAcZYP7`5FfW3VJ*@Zq!r@np{Dx%W@K>(Da0E@*OPX1iJCS z!)EWEyc$$ml*|CC#K^JXc{8F>69hKxxq)&^E=$k+kDiT=DKE~jp~=bX8xq;!he{nW z#l%3kRpUeH(2p3Ssmb4@-qFmk(Xm=JLkr217jDW>wAICxs+xHSjwG|pCdXx<^X~qR zc&akK55Z&Et?YJkn-|O*DtB>In`dLF^&}iB%1KuSB0xL*=9`Oyo@rLbIY_jNfJ{Cd zi``AGp89jhut|)g8)e@bWyhZ|tgeU(bP(p#fyx3=lOKea-(6QR(d^dY?%?tx3_ohE zp90|k-SyFUQx2)V=0yFa2Xn3%mJ{LS@1b7K^qcSgDSg4nJz3wk>wg z&NjY0p~JZYiHQEUl>d)3k;NQluDeFV4~qLPr3|sLtcuEFbR*l5f`oy5Ep*rDx^G<@ ztrWdl5=f+{4HKzzVjgkZCc8RPnFopr4oDMTn7mzwoT6fj93o1YR;Qe<8=UxLh8c>Y z1&#Y3IPguq{soYQuy^XSwP2G?{hE z4iDUvZnlU(O5qi-D;@6V0a|cGDmF!4X$*78og=XuR51Sfh{mr|==SttLa4%n8}9HV zY+^9=q8zvtVw9^KCGW58f=I7vKY1lmYA9Sk=WvYQD)frSQQj8osI-3kP%ic_;*Pu_ z`dfGEmP<&-8W6S* z%o78x#DG5?s|;ec-FLwk6_wf>4C13gA_7K76D2+;4rA4@bat%*dq%-7sr}C9#uVv2L8*@R z=LOl69w6(ve5VaWwPbB#V*j<)WM_QjB5NZff{}xKDfm+M3IY971v7?q94duX{^mt~ zOh@#j^$26U@x?;!iIycBA%GRO(sh+b=wGiwY&n?XRsZVjIi-=7mSNZ&JeJ`n^Fg-* z`$1JJ9o9N9D9unzh*ofmV4}d+B%nkcFxYX6745{6%5#&yYLz^%p_(6DA8*Kxv~v4!hru>w`L+G|d+WK(Fj$y{ zV<;3i-!;2$HZ@XtCG+6ykh7A#KjVD4vE*eag(BRS?u1_;=mnmq4+HU_liqhPBlz58 z6mvkB6$;C$$v$X$9a@$faxblM#dV|P7Dru1d%;VLVI5zDKSj>b6I>xSw+F-+%4t7C zWSo}a#{=NBn;-GF8yHST_`X0CS`-l&CE~=M;tL0)T>}QV4alHuqpZyTBs~8{i_))o z&11$r6$9Mn@MBWp%!TCX5i2ZABKGuVUe2%NS67?s<_c?K$S8S0mZS=u&u<~RpMRqs z|0$j)cQb*g?%+`KfiS&5$uEk{ZiO&2d4shSJDi?oFI7F{Z8eiOgTcBhjlbz0&cP?o+=rjt=PBoI#_w~hZ zg9XAR(Ujr7MCz35iMz ziAmfQ6O|JelarJc5EYdZ6=em*C;lG?S9jZ|_5uHN5S5h^my(mb{V#|8p*)&P2bRA^ tFm<>0_OtP{1C(vuAKP(iyV^L|nb_Ib1|a+F6fQdf+Uf>sl`7T|{{zsr!pr~w diff --git a/xstatic/pkg/jquery_ui/data/jquery-ui.css b/xstatic/pkg/jquery_ui/data/jquery-ui.css index e48bccf..db84bc0 100644 --- a/xstatic/pkg/jquery_ui/data/jquery-ui.css +++ b/xstatic/pkg/jquery_ui/data/jquery-ui.css @@ -1,13 +1,9 @@ -/*! jQuery UI - v1.12.1 - 2018-09-16 +/*! jQuery UI - v1.13.0 - 2021-10-07 * http://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, theme.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif +* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6 * Copyright jQuery Foundation and other contributors; Licensed MIT */ -.ui-draggable-handle { - -ms-touch-action: none; - touch-action: none; -} /* Layout helpers ----------------------------------*/ .ui-helper-hidden { @@ -49,7 +45,7 @@ left: 0; position: absolute; opacity: 0; - filter:Alpha(Opacity=0); /* support: IE8 */ + -ms-filter: "alpha(opacity=0)"; /* support: IE8 */ } .ui-front { @@ -94,89 +90,6 @@ width: 100%; height: 100%; } -.ui-resizable { - position: relative; -} -.ui-resizable-handle { - position: absolute; - font-size: 0.1px; - display: block; - -ms-touch-action: none; - touch-action: none; -} -.ui-resizable-disabled .ui-resizable-handle, -.ui-resizable-autohide .ui-resizable-handle { - display: none; -} -.ui-resizable-n { - cursor: n-resize; - height: 7px; - width: 100%; - top: -5px; - left: 0; -} -.ui-resizable-s { - cursor: s-resize; - height: 7px; - width: 100%; - bottom: -5px; - left: 0; -} -.ui-resizable-e { - cursor: e-resize; - width: 7px; - right: -5px; - top: 0; - height: 100%; -} -.ui-resizable-w { - cursor: w-resize; - width: 7px; - left: -5px; - top: 0; - height: 100%; -} -.ui-resizable-se { - cursor: se-resize; - width: 12px; - height: 12px; - right: 1px; - bottom: 1px; -} -.ui-resizable-sw { - cursor: sw-resize; - width: 9px; - height: 9px; - left: -5px; - bottom: -5px; -} -.ui-resizable-nw { - cursor: nw-resize; - width: 9px; - height: 9px; - left: -5px; - top: -5px; -} -.ui-resizable-ne { - cursor: ne-resize; - width: 9px; - height: 9px; - right: -5px; - top: -5px; -} -.ui-selectable { - -ms-touch-action: none; - touch-action: none; -} -.ui-selectable-helper { - position: absolute; - z-index: 100; - border: 1px dotted black; -} -.ui-sortable-handle { - -ms-touch-action: none; - touch-action: none; -} .ui-accordion .ui-accordion-header { display: block; cursor: pointer; @@ -665,6 +578,80 @@ button.ui-button::-moz-focus-inner { .ui-draggable .ui-dialog-titlebar { cursor: move; } +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable-disabled .ui-resizable-handle, +.ui-resizable-autohide .ui-resizable-handle { + display: none; +} +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; +} .ui-progressbar { height: 2em; text-align: left; @@ -677,12 +664,21 @@ button.ui-button::-moz-focus-inner { .ui-progressbar .ui-progressbar-overlay { background: url("data:image/gif;base64,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"); height: 100%; - filter: alpha(opacity=25); /* support: IE8 */ + -ms-filter: "alpha(opacity=25)"; /* support: IE8 */ opacity: 0.25; } .ui-progressbar-indeterminate .ui-progressbar-value { background-image: none; } +.ui-selectable { + -ms-touch-action: none; + touch-action: none; +} +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted black; +} .ui-selectmenu-menu { padding: 0; margin: 0; @@ -732,7 +728,7 @@ button.ui-button::-moz-focus-inner { z-index: 2; width: 1.2em; height: 1.2em; - cursor: default; + cursor: pointer; -ms-touch-action: none; touch-action: none; } @@ -788,6 +784,10 @@ button.ui-button::-moz-focus-inner { .ui-slider-vertical .ui-slider-range-max { top: 0; } +.ui-sortable-handle { + -ms-touch-action: none; + touch-action: none; +} .ui-spinner { position: relative; display: inline-block; @@ -1041,18 +1041,18 @@ a.ui-button:active, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; - filter:Alpha(Opacity=70); /* support: IE8 */ + -ms-filter: "alpha(opacity=70)"; /* support: IE8 */ font-weight: normal; } .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; - filter:Alpha(Opacity=35); /* support: IE8 */ + -ms-filter: "alpha(opacity=35)"; /* support: IE8 */ background-image: none; } .ui-state-disabled .ui-icon { - filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ + -ms-filter: "alpha(opacity=35)"; /* support: IE8 - See #6059 */ } /* Icons @@ -1093,7 +1093,10 @@ a.ui-button:active, } /* positioning */ -.ui-icon-blank { background-position: 16px 16px; } +/* Three classes needed to override `.ui-button:hover .ui-icon` */ +.ui-icon-blank.ui-icon-blank.ui-icon-blank { + background-image: none; +} .ui-icon-caret-1-n { background-position: 0 0; } .ui-icon-caret-1-ne { background-position: -16px 0; } .ui-icon-caret-1-e { background-position: -32px 0; } @@ -1303,8 +1306,8 @@ a.ui-button:active, /* Overlays */ .ui-widget-overlay { background: #aaaaaa; - opacity: .3; - filter: Alpha(Opacity=30); /* support: IE8 */ + opacity: .003; + -ms-filter: Alpha(Opacity=.3); /* support: IE8 */ } .ui-widget-shadow { -webkit-box-shadow: 0px 0px 5px #666666; diff --git a/xstatic/pkg/jquery_ui/data/jquery-ui.js b/xstatic/pkg/jquery_ui/data/jquery-ui.js index 264329f..4157565 100644 --- a/xstatic/pkg/jquery_ui/data/jquery-ui.js +++ b/xstatic/pkg/jquery_ui/data/jquery-ui.js @@ -1,27 +1,30 @@ -/*! jQuery UI - v1.12.1 - 2018-09-16 +/*! jQuery UI - v1.13.0 - 2021-10-07 * http://jqueryui.com -* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/draggable.js, widgets/droppable.js, widgets/resizable.js, widgets/selectable.js, widgets/sortable.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/selectmenu.js, widgets/slider.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.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 +* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js * Copyright jQuery Foundation and other contributors; Licensed MIT */ -(function( factory ) { +( function( factory ) { + "use strict"; + if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "jquery" ], factory ); + define( [ "jquery" ], factory ); } else { // Browser globals factory( jQuery ); } -}(function( $ ) { +} )( function( $ ) { +"use strict"; $.ui = $.ui || {}; -var version = $.ui.version = "1.12.1"; +var version = $.ui.version = "1.13.0"; /*! - * jQuery UI Widget 1.12.1 + * jQuery UI Widget 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -36,24 +39,20 @@ var version = $.ui.version = "1.12.1"; //>>demos: http://jqueryui.com/widget/ - var widgetUuid = 0; +var widgetHasOwnProperty = Array.prototype.hasOwnProperty; var widgetSlice = Array.prototype.slice; $.cleanData = ( function( orig ) { return function( elems ) { var events, elem, i; for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) { - try { - // Only trigger remove when necessary to save time - events = $._data( elem, "events" ); - if ( events && events.remove ) { - $( elem ).triggerHandler( "remove" ); - } - - // Http://bugs.jquery.com/ticket/8235 - } catch ( e ) {} + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } } orig( elems ); }; @@ -75,12 +74,12 @@ $.widget = function( name, base, prototype ) { base = $.Widget; } - if ( $.isArray( prototype ) ) { + if ( Array.isArray( prototype ) ) { prototype = $.extend.apply( null, [ {} ].concat( prototype ) ); } // Create selector for plugin - $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + $.expr.pseudos[ fullName.toLowerCase() ] = function( elem ) { return !!$.data( elem, fullName ); }; @@ -120,7 +119,7 @@ $.widget = function( name, base, prototype ) { // inheriting from basePrototype.options = $.widget.extend( {}, basePrototype.options ); $.each( prototype, function( prop, value ) { - if ( !$.isFunction( value ) ) { + if ( typeof value !== "function" ) { proxiedPrototype[ prop ] = value; return; } @@ -199,7 +198,7 @@ $.widget.extend = function( target ) { for ( ; inputIndex < inputLength; inputIndex++ ) { for ( key in input[ inputIndex ] ) { value = input[ inputIndex ][ key ]; - if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + if ( widgetHasOwnProperty.call( input[ inputIndex ], key ) && value !== undefined ) { // Clone objects if ( $.isPlainObject( value ) ) { @@ -248,7 +247,8 @@ $.widget.bridge = function( name, object ) { "attempted to call method '" + options + "'" ); } - if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) { + if ( typeof instance[ options ] !== "function" || + options.charAt( 0 ) === "_" ) { return $.error( "no such method '" + options + "' for " + name + " widget instance" ); } @@ -509,12 +509,30 @@ $.Widget.prototype = { classes: this.options.classes || {} }, options ); + function bindRemoveEvent() { + options.element.each( function( _, element ) { + var isTracked = $.map( that.classesElementLookup, function( elements ) { + return elements; + } ) + .some( function( elements ) { + return elements.is( element ); + } ); + + if ( !isTracked ) { + that._on( $( element ), { + remove: "_untrackClassesElement" + } ); + } + } ); + } + function processClassString( classes, checkOption ) { var current, i; for ( i = 0; i < classes.length; i++ ) { current = that.classesElementLookup[ classes[ i ] ] || $(); if ( options.add ) { - current = $( $.unique( current.get().concat( options.element.get() ) ) ); + bindRemoveEvent(); + current = $( $.uniqueSort( current.get().concat( options.element.get() ) ) ); } else { current = $( current.not( options.element ).get() ); } @@ -526,10 +544,6 @@ $.Widget.prototype = { } } - this._on( options.element, { - "remove": "_untrackClassesElement" - } ); - if ( options.keys ) { processClassString( options.keys.match( /\S+/g ) || [], true ); } @@ -547,6 +561,8 @@ $.Widget.prototype = { that.classesElementLookup[ key ] = $( value.not( event.target ).get() ); } } ); + + this._off( $( event.target ) ); }, _removeClass: function( element, keys, extra ) { @@ -627,7 +643,7 @@ $.Widget.prototype = { _off: function( element, eventName ) { eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace; - element.off( eventName ).off( eventName ); + element.off( eventName ); // Clear the stack to avoid memory leaks (#10056) this.bindings = $( this.bindings.not( element ).get() ); @@ -693,7 +709,7 @@ $.Widget.prototype = { } this.element.trigger( event, data ); - return !( $.isFunction( callback ) && + return !( typeof callback === "function" && callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false || event.isDefaultPrevented() ); } @@ -715,6 +731,8 @@ $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { options = options || {}; if ( typeof options === "number" ) { options = { duration: options }; + } else if ( options === true ) { + options = {}; } hasOptions = !$.isEmptyObject( options ); @@ -744,7 +762,7 @@ var widget = $.widget; /*! - * jQuery UI Position 1.12.1 + * jQuery UI Position 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -783,6 +801,10 @@ function parseCss( element, property ) { return parseInt( $.css( element, property ), 10 ) || 0; } +function isWindow( obj ) { + return obj != null && obj === obj.window; +} + function getDimensions( elem ) { var raw = elem[ 0 ]; if ( raw.nodeType === 9 ) { @@ -792,7 +814,7 @@ function getDimensions( elem ) { offset: { top: 0, left: 0 } }; } - if ( $.isWindow( raw ) ) { + if ( isWindow( raw ) ) { return { width: elem.width(), height: elem.height(), @@ -819,9 +841,9 @@ $.position = { return cachedScrollbarWidth; } var w1, w2, - div = $( "
" + - "
" ), + div = $( "
" + + "
" ), innerDiv = div.children()[ 0 ]; $( "body" ).append( div ); @@ -854,12 +876,12 @@ $.position = { }, getWithinInfo: function( element ) { var withinElement = $( element || window ), - isWindow = $.isWindow( withinElement[ 0 ] ), + isElemWindow = isWindow( withinElement[ 0 ] ), isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9, - hasOffset = !isWindow && !isDocument; + hasOffset = !isElemWindow && !isDocument; return { element: withinElement, - isWindow: isWindow, + isWindow: isElemWindow, isDocument: isDocument, offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 }, scrollLeft: withinElement.scrollLeft(), @@ -879,7 +901,12 @@ $.fn.position = function( options ) { options = $.extend( {}, options ); var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, - target = $( options.of ), + + // Make sure string options are treated as CSS selectors + target = typeof options.of === "string" ? + $( document ).find( options.of ) : + $( options.of ), + within = $.position.getWithinInfo( options.within ), scrollInfo = $.position.getScrollInfo( within ), collision = ( options.collision || "flip" ).split( " " ), @@ -1232,7 +1259,7 @@ var position = $.ui.position; /*! - * jQuery UI :data 1.12.1 + * jQuery UI :data 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1246,7 +1273,7 @@ var position = $.ui.position; //>>docs: http://api.jqueryui.com/data-selector/ -var data = $.extend( $.expr[ ":" ], { +var data = $.extend( $.expr.pseudos, { data: $.expr.createPseudo ? $.expr.createPseudo( function( dataName ) { return function( elem ) { @@ -1261,7 +1288,7 @@ var data = $.extend( $.expr[ ":" ], { } ); /*! - * jQuery UI Disable Selection 1.12.1 + * jQuery UI Disable Selection 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1276,7 +1303,6 @@ var data = $.extend( $.expr[ ":" ], { // This file is deprecated - var disableSelection = $.fn.extend( { disableSelection: ( function() { var eventType = "onselectstart" in document.createElement( "div" ) ? @@ -1296,8 +1322,2616 @@ var disableSelection = $.fn.extend( { } ); + +// 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 UI Focusable 1.12.1 + * jQuery Color Animations v2.2.0 + * https://github.com/jquery/jquery-color + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * Date: Sun May 10 09:02:36 2020 +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 + } + }, + support = color.support = {}, + + // element for support tests + supportElem = jQuery( "

" )[ 0 ], + + // colors = jQuery.Color.names + colors, + + // local aliases of functions called often + each = jQuery.each; + +// determine rgba support immediately +supportElem.style.cssText = "background-color:rgba(1,1,1,.5)"; +support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1; + +// define cache name and alpha properties +// 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 ); + + // IE will pass in empty strings as value for alpha, + // which will hit this case + if ( isNaN( value ) ) { + return prop.def; + } + + 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 + v = ( v || 0 ).toString( 16 ); + return v.length === 1 ? "0" + v : v; + } ).join( "" ); + }, + toString: function() { + return this._rgba[ 3 ] === 0 ? "transparent" : 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, curElem, + backgroundColor = ""; + + if ( value !== "transparent" && ( getType( value ) !== "string" || ( parsed = stringParse( value ) ) ) ) { + value = color( parsed || value ); + if ( !support.rgba && value._rgba[ 3 ] !== 1 ) { + curElem = hook === "backgroundColor" ? elem.parentNode : elem; + while ( + ( backgroundColor === "" || backgroundColor === "transparent" ) && + curElem && curElem.style + ) { + try { + backgroundColor = jQuery.css( curElem, "backgroundColor" ); + curElem = curElem.parentNode; + } catch ( e ) { + } + } + + value = value.blend( backgroundColor && backgroundColor !== "transparent" ? + backgroundColor : + "_default" ); + } + + value = value.toRgbaString(); + } + try { + elem.style[ hook ] = value; + } catch ( e ) { + + // wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit' + } + } + }; + 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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Effects Core +//>>group: Effects +/* eslint-disable max-len */ +//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects. +/* eslint-enable max-len */ +//>>docs: http://api.jqueryui.com/category/effects-core/ +//>>demos: http://jqueryui.com/effect/ + + +var dataSpace = "ui-effects-", + dataSpaceStyle = "ui-effects-style", + dataSpaceAnimated = "ui-effects-animated"; + +$.effects = { + effect: {} +}; + +/******************************************************************************/ +/****************************** CLASS ANIMATIONS ******************************/ +/******************************************************************************/ +( 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 ? + elem.ownerDocument.defaultView.getComputedStyle( elem, null ) : + elem.currentStyle, + styles = {}; + + if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) { + len = style.length; + while ( len-- ) { + key = style[ len ]; + if ( typeof style[ key ] === "string" ) { + styles[ camelCase( key ) ] = style[ key ]; + } + } + + // Support: Opera, IE <9 + } else { + for ( key in style ) { + if ( typeof style[ key ] === "string" ) { + styles[ 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; +} + +// Support: jQuery <1.8 +if ( !$.fn.addBack ) { + $.fn.addBack = function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + }; +} + +$.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 !== false ) { + $.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.13.0", + + 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: http://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 !== false && !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://www.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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Blind Effect +//>>group: Effects +//>>description: Blinds the element. +//>>docs: http://api.jqueryui.com/blind-effect/ +//>>demos: http://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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Bounce Effect +//>>group: Effects +//>>description: Bounces an element horizontally or vertically n times. +//>>docs: http://api.jqueryui.com/bounce-effect/ +//>>demos: http://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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Clip Effect +//>>group: Effects +//>>description: Clips the element on and off like an old TV. +//>>docs: http://api.jqueryui.com/clip-effect/ +//>>demos: http://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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Drop Effect +//>>group: Effects +//>>description: Moves an element in one direction and hides it at the same time. +//>>docs: http://api.jqueryui.com/drop-effect/ +//>>demos: http://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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Explode Effect +//>>group: Effects +/* eslint-disable max-len */ +//>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness. +/* eslint-enable max-len */ +//>>docs: http://api.jqueryui.com/explode-effect/ +//>>demos: http://jqueryui.com/effect/ + + +var effectsEffectExplode = $.effects.define( "explode", "hide", function( options, done ) { + + var i, j, left, top, mx, my, + 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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Fade Effect +//>>group: Effects +//>>description: Fades the element. +//>>docs: http://api.jqueryui.com/fade-effect/ +//>>demos: http://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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Fold Effect +//>>group: Effects +//>>description: Folds an element first horizontally and then vertically. +//>>docs: http://api.jqueryui.com/fold-effect/ +//>>demos: http://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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Highlight Effect +//>>group: Effects +//>>description: Highlights the background of an element in a defined color for a custom duration. +//>>docs: http://api.jqueryui.com/highlight-effect/ +//>>demos: http://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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Size Effect +//>>group: Effects +//>>description: Resize an element to a specified width and height. +//>>docs: http://api.jqueryui.com/size-effect/ +//>>demos: http://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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Scale Effect +//>>group: Effects +//>>description: Grows or shrinks an element and its content. +//>>docs: http://api.jqueryui.com/scale-effect/ +//>>demos: http://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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://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: http://api.jqueryui.com/puff-effect/ +//>>demos: http://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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Pulsate Effect +//>>group: Effects +//>>description: Pulsates an element n times by changing the opacity to zero and back. +//>>docs: http://api.jqueryui.com/pulsate-effect/ +//>>demos: http://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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Shake Effect +//>>group: Effects +//>>description: Shakes an element horizontally or vertically n times. +//>>docs: http://api.jqueryui.com/shake-effect/ +//>>demos: http://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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Slide Effect +//>>group: Effects +//>>description: Slides an element in and out of the viewport. +//>>docs: http://api.jqueryui.com/slide-effect/ +//>>demos: http://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.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Transfer Effect +//>>group: Effects +//>>description: Displays a transfer effect from one element to another. +//>>docs: http://api.jqueryui.com/transfer-effect/ +//>>demos: http://jqueryui.com/effect/ + + +var effect; +if ( $.uiBackCompat !== false ) { + effect = $.effects.define( "transfer", function( options, done ) { + $( this ).transfer( options, done ); + } ); +} +var effectsEffectTransfer = effect; + + +/*! + * jQuery UI Focusable 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1311,7 +3945,6 @@ var disableSelection = $.fn.extend( { //>>docs: http://api.jqueryui.com/focusable-selector/ - // Selectors $.ui.focusable = function( element, hasTabindex ) { var map, mapName, img, focusableIfVisible, fieldset, @@ -1358,10 +3991,10 @@ function visible( element ) { element = element.parent(); visibility = element.css( "visibility" ); } - return visibility !== "hidden"; + return visibility === "visible"; } -$.extend( $.expr[ ":" ], { +$.extend( $.expr.pseudos, { focusable: function( element ) { return $.ui.focusable( element, $.attr( element, "tabindex" ) != null ); } @@ -1371,17 +4004,16 @@ var focusable = $.ui.focusable; - // Support: IE8 Only // IE8 does not support the form attribute and when it is supplied. It overwrites the form prop // with a string, so we need to find the proper form. -var form = $.fn.form = function() { +var form = $.fn._form = function() { return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form ); }; /*! - * jQuery UI Form Reset Mixin 1.12.1 + * jQuery UI Form Reset Mixin 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1395,7 +4027,6 @@ var form = $.fn.form = function() { //>>docs: http://api.jqueryui.com/form-reset-mixin/ - var formResetMixin = $.ui.formResetMixin = { _formResetHandler: function() { var form = $( this ); @@ -1410,7 +4041,7 @@ var formResetMixin = $.ui.formResetMixin = { }, _bindFormResetHandler: function() { - this.form = this.element.form(); + this.form = this.element._form(); if ( !this.form.length ) { return; } @@ -1444,7 +4075,7 @@ var formResetMixin = $.ui.formResetMixin = { /*! - * jQuery UI Support for jQuery core 1.7.x 1.12.1 + * jQuery UI Support for jQuery core 1.8.x and newer 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1453,77 +4084,73 @@ var formResetMixin = $.ui.formResetMixin = { * */ -//>>label: jQuery 1.7 Support +//>>label: jQuery 1.8+ Support //>>group: Core -//>>description: Support version 1.7.x of jQuery core +//>>description: Support version 1.8.x and newer of jQuery core +// Support: jQuery 1.9.x or older +// $.expr[ ":" ] is deprecated. +if ( !$.expr.pseudos ) { + $.expr.pseudos = $.expr[ ":" ]; +} -// Support: jQuery 1.7 only -// Not a great way to check versions, but since we only support 1.7+ and only -// need to detect <1.8, this is a simple check that should suffice. Checking -// for "1.7." would be a bit safer, but the version string is 1.7, not 1.7.0 -// and we'll never reach 1.70.0 (if we do, we certainly won't be supporting -// 1.7 anymore). See #11197 for why we're not using feature detection. -if ( $.fn.jquery.substring( 0, 3 ) === "1.7" ) { +// Support: jQuery 1.11.x or older +// $.unique has been renamed to $.uniqueSort +if ( !$.uniqueSort ) { + $.uniqueSort = $.unique; +} - // Setters for .innerWidth(), .innerHeight(), .outerWidth(), .outerHeight() - // Unlike jQuery Core 1.8+, these only support numeric values to set the - // dimensions in pixels - $.each( [ "Width", "Height" ], function( i, name ) { - var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], - type = name.toLowerCase(), - orig = { - innerWidth: $.fn.innerWidth, - innerHeight: $.fn.innerHeight, - outerWidth: $.fn.outerWidth, - outerHeight: $.fn.outerHeight - }; +// Support: jQuery 2.2.x or older. +// This method has been defined in jQuery 3.0.0. +// Code from https://github.com/jquery/jquery/blob/e539bac79e666bba95bba86d690b4e609dca2286/src/selector/escapeSelector.js +if ( !$.escapeSelector ) { - function reduce( elem, size, border, margin ) { - $.each( side, function() { - size -= parseFloat( $.css( elem, "padding" + this ) ) || 0; - if ( border ) { - size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0; - } - if ( margin ) { - size -= parseFloat( $.css( elem, "margin" + this ) ) || 0; - } - } ); - return size; + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; + + var fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; } - $.fn[ "inner" + name ] = function( size ) { - if ( size === undefined ) { - return orig[ "inner" + name ].call( this ); - } - - return this.each( function() { - $( this ).css( type, reduce( this, size ) + "px" ); - } ); - }; - - $.fn[ "outer" + name ] = function( size, margin ) { - if ( typeof size !== "number" ) { - return orig[ "outer" + name ].call( this, size ); - } - - return this.each( function() { - $( this ).css( type, reduce( this, size, true, margin ) + "px" ); - } ); - }; - } ); - - $.fn.addBack = function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; }; + + $.escapeSelector = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); + }; +} + +// Support: jQuery 3.4.x or older +// These methods have been defined in jQuery 3.5.0. +if ( !$.fn.even || !$.fn.odd ) { + $.fn.extend( { + even: function() { + return this.filter( function( i ) { + return i % 2 === 0; + } ); + }, + odd: function() { + return this.filter( function( i ) { + return i % 2 === 1; + } ); + } + } ); } ; /*! - * jQuery UI Keycode 1.12.1 + * jQuery UI Keycode 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1557,19 +4184,8 @@ var keycode = $.ui.keyCode = { }; - - -// Internal use only -var escapeSelector = $.ui.escapeSelector = ( function() { - var selectorEscape = /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g; - return function( selector ) { - return selector.replace( selectorEscape, "\\$1" ); - }; -} )(); - - /*! - * jQuery UI Labels 1.12.1 + * jQuery UI Labels 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1583,10 +4199,13 @@ var escapeSelector = $.ui.escapeSelector = ( function() { //>>docs: http://api.jqueryui.com/labels/ - var labels = $.fn.labels = function() { var ancestor, selector, id, labels, ancestors; + if ( !this.length ) { + return this.pushStack( [] ); + } + // Check control.labels first if ( this[ 0 ].labels && this[ 0 ].labels.length ) { return this.pushStack( this[ 0 ].labels ); @@ -1609,7 +4228,7 @@ var labels = $.fn.labels = function() { ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() ); // Create a selector for the label based on the id - selector = "label[for='" + $.ui.escapeSelector( id ) + "']"; + selector = "label[for='" + $.escapeSelector( id ) + "']"; labels = labels.add( ancestors.find( selector ).addBack( selector ) ); @@ -1621,7 +4240,7 @@ var labels = $.fn.labels = function() { /*! - * jQuery UI Scroll Parent 1.12.1 + * jQuery UI Scroll Parent 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1635,7 +4254,6 @@ var labels = $.fn.labels = function() { //>>docs: http://api.jqueryui.com/scrollParent/ - var scrollParent = $.fn.scrollParent = function( includeHidden ) { var position = this.css( "position" ), excludeStaticParent = position === "absolute", @@ -1656,7 +4274,7 @@ var scrollParent = $.fn.scrollParent = function( includeHidden ) { /*! - * jQuery UI Tabbable 1.12.1 + * jQuery UI Tabbable 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1670,8 +4288,7 @@ var scrollParent = $.fn.scrollParent = function( includeHidden ) { //>>docs: http://api.jqueryui.com/tabbable-selector/ - -var tabbable = $.extend( $.expr[ ":" ], { +var tabbable = $.extend( $.expr.pseudos, { tabbable: function( element ) { var tabIndex = $.attr( element, "tabindex" ), hasTabindex = tabIndex != null; @@ -1681,7 +4298,7 @@ var tabbable = $.extend( $.expr[ ":" ], { /*! - * jQuery UI Unique ID 1.12.1 + * jQuery UI Unique ID 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1695,7 +4312,6 @@ var tabbable = $.extend( $.expr[ ":" ], { //>>docs: http://api.jqueryui.com/uniqueId/ - var uniqueId = $.fn.extend( { uniqueId: ( function() { var uuid = 0; @@ -1719,13 +4335,5184 @@ var uniqueId = $.fn.extend( { } ); +/*! + * jQuery UI Accordion 1.13.0 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Accordion +//>>group: Widgets +/* eslint-disable max-len */ +//>>description: Displays collapsible content panels for presenting information in a limited amount of space. +/* eslint-enable max-len */ +//>>docs: http://api.jqueryui.com/accordion/ +//>>demos: http://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.13.0", + 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)" ).even() ); + }, + 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 ); + + // Support: IE8 Only + // #5332 / #6059 - opacity doesn't cascade to positioned elements in IE + // so we need to add the disabled class to the headers and panels + this._toggleClass( null, "ui-state-disabled", !!value ); + this._toggleClass( this.headers.add( this.headers.next() ), 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" ); + + // Work around for rendering bug in IE (#5421) + if ( toHide.length ) { + toHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className; + } + this._trigger( "activate", null, data ); + } +} ); + + + +var safeActiveElement = $.ui.safeActiveElement = function( document ) { + var activeElement; + + // Support: IE 9 only + // IE9 throws an "Unspecified error" accessing document.activeElement from an