j1-template 2023.2.7 → 2023.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +2 -1
- data/_includes/themes/j1/layouts/content_generator_post.html +2 -2
- data/_includes/themes/j1/layouts/layout_metadata_generator.html +38 -38
- data/_includes/themes/j1/procedures/blocks/footer/boxes/about_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/contacts_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/issue.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/links_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/news_box.proc +1 -1
- data/_includes/themes/j1/procedures/layouts/default_writer.proc +1 -3
- data/_includes/themes/j1/procedures/layouts/module_writer.proc +7 -23
- data/_includes/themes/j1/procedures/layouts/resource_writer.proc +8 -8
- data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -1
- data/_layouts/compress.html +26 -21
- data/_layouts/default.html +36 -30
- data/assets/data/banner.html +5 -2
- data/assets/data/footer.html +15 -3
- data/assets/data/masonry.html +1 -1
- data/assets/data/masterslider.html +1 -0
- data/assets/data/menu.html +4 -4
- data/assets/data/panel.html +6 -3
- data/assets/data/quicklinks.html +138 -149
- data/assets/error_pages/HTTP204.html +3 -3
- data/assets/error_pages/HTTP400.html +3 -3
- data/assets/error_pages/HTTP401.html +3 -3
- data/assets/error_pages/HTTP403.html +3 -3
- data/assets/error_pages/HTTP404.html +3 -3
- data/assets/error_pages/HTTP444.html +3 -3
- data/assets/error_pages/HTTP445.html +3 -3
- data/assets/error_pages/HTTP446.html +5 -5
- data/assets/error_pages/HTTP447.html +7 -7
- data/assets/error_pages/HTTP448.html +7 -7
- data/assets/error_pages/HTTP500.html +3 -3
- data/assets/error_pages/HTTP501.html +3 -3
- data/assets/error_pages/HTTP502.html +3 -3
- data/assets/error_pages/HTTP503.html +3 -3
- data/assets/themes/j1/adapter/js/advertising.js +355 -156
- data/assets/themes/j1/adapter/js/analytics.js +1 -1
- data/assets/themes/j1/adapter/js/asciidoctor.js +1 -1
- data/assets/themes/j1/adapter/js/attic.js +22 -14
- data/assets/themes/j1/adapter/js/bmd.js +1 -1
- data/assets/themes/j1/adapter/js/carousel.js +5 -4
- data/assets/themes/j1/adapter/js/clipboard.js +1 -1
- data/assets/themes/j1/adapter/js/comments.js +5 -5
- data/assets/themes/j1/adapter/js/cookieConsent.js +1 -1
- data/assets/themes/j1/adapter/js/customFunctions.js +1 -1
- data/assets/themes/j1/adapter/js/customModule.js +1 -1
- data/assets/themes/j1/adapter/js/dropdowns.js +4 -2
- data/assets/themes/j1/adapter/js/fab.js +9 -6
- data/assets/themes/j1/adapter/js/framer.js +1 -1
- data/assets/themes/j1/adapter/js/iconPicker.js +227 -0
- data/assets/themes/j1/adapter/js/j1.js +402 -76
- data/assets/themes/j1/adapter/js/justifiedGallery.js +9 -3
- data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +2 -2
- data/assets/themes/j1/adapter/js/lightbox.js +4 -3
- data/assets/themes/j1/adapter/js/logger.js +1 -1
- data/assets/themes/j1/adapter/js/lunr.js +1 -1
- data/assets/themes/j1/adapter/js/masonry.js +4 -3
- data/assets/themes/j1/adapter/js/masterslider.js +30 -57
- data/assets/themes/j1/adapter/js/mmenu.js +2 -2
- data/assets/themes/j1/adapter/js/navigator.js +7 -5
- data/assets/themes/j1/adapter/js/nbinteract.js +9 -9
- data/assets/themes/j1/adapter/js/particles.js +2 -2
- data/assets/themes/j1/adapter/js/rangeSlider.js +2 -2
- data/assets/themes/j1/adapter/js/rouge.js +2 -2
- data/assets/themes/j1/adapter/js/rtable.js +1 -1
- data/assets/themes/j1/adapter/js/rtextResizer.js +1 -1
- data/assets/themes/j1/adapter/js/scroller.js +97 -109
- data/assets/themes/j1/adapter/js/slick.js +28 -18
- data/assets/themes/j1/adapter/js/themeToggler.js +259 -0
- data/assets/themes/j1/adapter/js/themer.js +63 -23
- data/assets/themes/j1/adapter/js/toccer.js +9 -6
- data/assets/themes/j1/adapter/js/translator.js +4 -2
- data/assets/themes/j1/adapter/js/waves.js +6 -4
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +1322 -417
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +3 -3
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +2064 -1273
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +3 -3
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +10280 -9399
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +10 -10
- data/assets/themes/j1/core/css/vendor.css +0 -14
- data/assets/themes/j1/core/css/vendor.min.css +1 -1
- data/assets/themes/j1/modules/backstretch/js/backstretch.js +6 -4
- data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +1 -1
- data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.js +1 -1
- data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.min.js +1 -1
- data/assets/themes/j1/modules/iconPicker/README.md +266 -0
- data/assets/themes/j1/modules/iconPicker/css/universal-icon-picker.css +419 -0
- data/assets/themes/j1/modules/iconPicker/css/universal-icon-picker.min.css +17 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-brands.json +467 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-brands.min.json +1 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-regular.json +169 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-regular.min.json +1 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-solid.json +1136 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-solid.min.json +1 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome.json +1772 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome.min.json +1 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-light.json +292 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-light.min.json +1 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-regular.json +7312 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-regular.min.json +1 -0
- data/assets/themes/j1/modules/iconPicker/images/magnifying-glass-solid.svg +1 -0
- data/assets/themes/j1/modules/iconPicker/images/star-of-life-solid.svg +3 -0
- data/assets/themes/j1/modules/iconPicker/images/xmark-solid.svg +3 -0
- data/assets/themes/j1/modules/iconPicker/js/universal-icon-picker.js +493 -0
- data/assets/themes/j1/modules/iconPicker/js/universal-icon-picker.min.js +17 -0
- data/assets/themes/j1/modules/jquery/AUTHORS.txt +372 -0
- data/assets/themes/j1/modules/jquery/LICENSE.txt +43 -0
- data/assets/themes/j1/modules/jquery/css/images/ui-icons_444444_256x240.png +0 -0
- data/assets/themes/j1/modules/jquery/css/images/ui-icons_555555_256x240.png +0 -0
- data/assets/themes/j1/modules/jquery/css/images/ui-icons_777620_256x240.png +0 -0
- data/assets/themes/j1/modules/jquery/css/images/ui-icons_777777_256x240.png +0 -0
- data/assets/themes/j1/modules/jquery/css/images/ui-icons_cc0000_256x240.png +0 -0
- data/assets/themes/j1/modules/jquery/css/images/ui-icons_ffffff_256x240.png +0 -0
- data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.css +92 -92
- data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.min.css +4 -4
- data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.structure.css +88 -88
- data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.structure.min.css +2 -2
- data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.theme.css +4 -4
- data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.theme.min.css +2 -2
- data/assets/themes/j1/modules/jquery/js/jquery-ui.js +13683 -13678
- data/assets/themes/j1/modules/jquery/js/jquery-ui.min.js +3 -3
- data/assets/themes/j1/modules/jquery/js/jquery.js +1029 -1203
- data/assets/themes/j1/modules/jquery/js/jquery.min.js +2 -2
- data/assets/themes/j1/modules/jquery/js/jquery.min.map +1 -1
- data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.css +1315 -0
- data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.min.css +7 -0
- data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.structure.css +886 -0
- data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.structure.min.css +5 -0
- data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.theme.css +446 -0
- data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.theme.min.css +5 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/hasClass.js +37 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/hasClass.min.js +17 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/removeClass.js +42 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/removeClass.min.js +17 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/jquery-ui.js +19057 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/jquery-ui.min.js +6 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.js +10872 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.min.js +2 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.min.map +1 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/require.js +2145 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/require.min.js +5 -0
- data/assets/themes/j1/modules/lightGallery/js/modules/j1/j1-video.js +2 -2
- data/assets/themes/j1/modules/lightGallery/js/modules/j1/j1-video.min.js +1 -1
- data/assets/themes/j1/modules/masterslider/css/theme/uno.css +9 -9
- data/assets/themes/j1/modules/masterslider/css/theme/uno.min.css +1 -1
- data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.css +2 -2
- data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.min.css +1 -1
- data/assets/themes/j1/modules/rouge/css/uno.dark/theme.css +136 -47
- data/assets/themes/j1/modules/rouge/css/uno.light/theme.css +9 -9
- data/assets/themes/j1/modules/scroller/js/scroller.js +76 -69
- data/assets/themes/j1/modules/scroller/js/scroller.min.js +1 -1
- data/assets/themes/j1/modules/translator/js/translator.js +1 -1
- data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +2 -2
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +5 -2
- data/lib/starter_web/_data/blocks/banner.yml +8 -5
- data/lib/starter_web/_data/blocks/defaults/footer.yml +4 -4
- data/lib/starter_web/_data/blocks/footer.yml +12 -5
- data/lib/starter_web/_data/blocks/panel.yml +41 -38
- data/lib/starter_web/_data/j1_config.yml +68 -58
- data/lib/starter_web/_data/layouts/collection.yml +1 -0
- data/lib/starter_web/_data/layouts/default.yml +1 -1
- data/lib/starter_web/_data/layouts/home.yml +38 -9
- data/lib/starter_web/_data/layouts/news_panel_posts.yml +1 -0
- data/lib/starter_web/_data/layouts/page.yml +2 -1
- data/lib/starter_web/_data/layouts/post.yml +1 -0
- data/lib/starter_web/_data/layouts/raw.yml +1 -0
- data/lib/starter_web/_data/modules/advertising.yml +209 -58
- data/lib/starter_web/_data/modules/analytics.yml +2 -2
- data/lib/starter_web/_data/modules/attics.yml +4 -7
- data/lib/starter_web/_data/modules/defaults/advertising.yml +3 -2
- data/lib/starter_web/_data/modules/defaults/attics.yml +3 -3
- data/lib/starter_web/_data/modules/defaults/iconPicker.yml +42 -0
- data/lib/starter_web/_data/modules/defaults/navigator.yml +15 -13
- data/lib/starter_web/_data/modules/defaults/theme_toggler.yml +42 -0
- data/lib/starter_web/_data/modules/iconPicker.yml +64 -0
- data/lib/starter_web/_data/modules/masonry.yml +3 -3
- data/lib/starter_web/_data/modules/masterslider.yml +5 -5
- data/lib/starter_web/_data/modules/navigator_menu.yml +311 -160
- data/lib/starter_web/_data/modules/scroller.yml +8 -8
- data/lib/starter_web/_data/modules/slick.yml +47 -86
- data/lib/starter_web/_data/modules/theme_toggler.yml +29 -0
- data/lib/starter_web/_data/modules/themer.yml +0 -6
- data/lib/starter_web/_data/resources.yml +54 -53
- data/lib/starter_web/_data/templates/feed.xml +1 -1
- data/lib/starter_web/_includes/attributes.0.asciidoc +626 -0
- data/lib/starter_web/_includes/attributes.asciidoc +81 -72
- data/lib/starter_web/_includes/google/static/google_ad_5128488466.html +19 -0
- data/lib/starter_web/_includes/google/static/google_ad_7284712660.html +19 -0
- data/lib/starter_web/_includes/google/templates/google_ads.html +55 -0
- data/lib/starter_web/_plugins/asciidoctor/google-ad-block.rb +47 -0
- data/lib/starter_web/_plugins/index/lunr.rb +1 -1
- data/lib/starter_web/assets/images/badges/configBinder.jpg +0 -0
- data/lib/starter_web/assets/images/badges/docsBinder.jpg +0 -0
- data/lib/starter_web/assets/images/badges/notebookBinder.jpg +0 -0
- data/lib/starter_web/assets/images/badges/scaleable/configBinder.svg +1 -1
- data/lib/starter_web/assets/images/badges/scaleable/docsBinder.svg +1 -1
- data/lib/starter_web/assets/images/badges/scaleable/myBinder.svg +1 -1
- data/lib/starter_web/assets/images/badges/scaleable/notebookBinder.svg +1 -1
- data/lib/starter_web/assets/images/icons/hyvor-talk/jpg/hyvor-logo.512x512.jpg +0 -0
- data/lib/starter_web/assets/images/icons/hyvor-talk/png/hyvor-logo.24x24.jpg +0 -0
- data/lib/starter_web/assets/images/icons/hyvor-talk/scalable/hyvor-logo.svg +1 -1
- data/lib/starter_web/assets/images/icons/j1/jpg/j1-256x256.jpg +0 -0
- data/lib/starter_web/assets/images/icons/j1/jpg/j1-512x512.jpg +0 -0
- data/lib/starter_web/assets/images/icons/j1/jpg/j1-64x64.jpg +0 -0
- data/lib/starter_web/assets/images/icons/j1/png/j1-256x256.png +0 -0
- data/lib/starter_web/assets/images/icons/j1/png/j1-512x512.jpg +0 -0
- data/lib/starter_web/assets/images/icons/j1/png/j1-512x512.jpg.png +0 -0
- data/lib/starter_web/assets/images/icons/j1/png/j1-512x512.png +0 -0
- data/lib/starter_web/assets/images/icons/j1/png/j1-64x64.png +0 -0
- data/lib/starter_web/assets/images/icons/j1/scalable/j1.svg +1 -1
- data/lib/starter_web/assets/images/icons/mdi/mdi.svg +1 -0
- data/lib/starter_web/assets/images/icons/mdi/mdil.svg +1 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/alexander-redl.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/alina-grubnyak.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/andrea-badino.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/brad-neathery.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/brigitta-schneiter.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/bruno-figueiredo.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/clem-onojeghuo.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/core_web_vitals_best.png +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/crawford-jolly.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/eleni-afiontzi.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/fly-d.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/guillaume-bolduc.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/harpal-singh.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/hayden-mills-2.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/j1-content-mockup-1.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/j1-content-mockup-2.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/j1-content-mockup-3.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/j1-starter-mockup-1.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/john-schnobrich-2.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/josep-martins.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/josh-liu.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/kelly-sikkemal.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/kira-auf-der-heide.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/kristopher-roller.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/kristopher-roller.webp +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/matthaeus.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/melanie-deziel.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/milad-fakurian.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/mohammad-rahmani.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/nasa.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/quino-al-2.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/recha-oktaviani.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/building-blocks-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/christina-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/cookies-1920x1200.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/katie-moum-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/icons/j1/scalable/j1.svg +1 -1
- data/lib/starter_web/assets/images/pages/asciidoc_skeletons/example-pdf-screenshot.jpg +0 -0
- data/lib/starter_web/assets/images/pages/core_web_vitals/200-create-a-link-1.jpg +0 -0
- data/lib/starter_web/assets/images/pages/core_web_vitals/core_web_vitals_best.jpg +0 -0
- data/lib/starter_web/assets/images/pages/core_web_vitals/core_web_vitals_best_full.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/bootswatch-themes-1280x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/global-mobile-traffic-1920x1080.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/google-lighthouse-1080x300.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/mobile-navigation-600x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/native-speakers-by-language.jpg +0 -0
- data/lib/starter_web/assets/images/pages/html_validator/appdevtools-html-validator.jpg +0 -0
- data/lib/starter_web/assets/images/pages/html_validator/freeformatter-html-validator.jpg +0 -0
- data/lib/starter_web/assets/images/pages/html_validator/w3c-nu-checker.jpg +0 -0
- data/lib/starter_web/assets/images/pages/html_validator/w3c-validator.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/dynamic-web-access.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/jamstack-generators.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/jekyll.1200x400.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/jekyll.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/static-web-access.jpg +0 -0
- data/lib/starter_web/assets/images/promo/home/screenshot.jpg +0 -0
- data/lib/starter_web/assets/images/quotes/promo/home/screenshot.jpg +0 -0
- data/lib/starter_web/assets/images/quotes/promo/jekyll/jekyll-faq.jpg +0 -0
- data/lib/starter_web/assets/images/quotes/promo/jekyll/jekyll-generator.jpg +0 -0
- data/lib/starter_web/assets/images/quotes/promo/jekyll/jekyll-generator.png +0 -0
- data/lib/starter_web/assets/images/quotes/promo/jekyll/jekyll-og.png +0 -0
- data/lib/starter_web/assets/images/quotes/promo/jekyll/scalable/jekyll-faq.psd +0 -0
- data/lib/starter_web/collections/_biography/a-life-in-questions.adoc +8 -9
- data/lib/starter_web/collections/_biography/becoming.adoc +23 -10
- data/lib/starter_web/collections/_biography/born-to-run.adoc +28 -10
- data/lib/starter_web/collections/_biography/forty-autumns.adoc +20 -13
- data/lib/starter_web/collections/_biography/not-dead-yet.adoc +25 -15
- data/lib/starter_web/collections/_biography/princess-diarist-the.adoc +24 -15
- data/lib/starter_web/collections/_biography/when-breath-becomes-air.adoc +25 -12
- data/lib/starter_web/collections/_fantasy/harry-potter-deathly-hallows.adoc +14 -10
- data/lib/starter_web/collections/_fantasy/harry-potter-philosophers-stone.adoc +11 -8
- data/lib/starter_web/collections/_fantasy/mistborn-trilogy.adoc +32 -8
- data/lib/starter_web/collections/_fantasy/ready-player-one.adoc +17 -14
- data/lib/starter_web/collections/_fantasy/sword-of-destiny.adoc +27 -13
- data/lib/starter_web/collections/_fantasy/terry-pratchet-diary.adoc +38 -15
- data/lib/starter_web/collections/_people/diana-petersen.adoc +2 -0
- data/lib/starter_web/collections/_people/larry-parker.adoc +2 -0
- data/lib/starter_web/collections/_people/parveen-anand.adoc +2 -0
- data/lib/starter_web/collections/_portfolio/branding.adoc +5 -0
- data/lib/starter_web/collections/_portfolio/graphic_design.adoc +5 -0
- data/lib/starter_web/collections/_portfolio/identity.adoc +5 -0
- data/lib/starter_web/collections/_portfolio/illustration.adoc +5 -0
- data/lib/starter_web/collections/_portfolio/photography.adoc +5 -0
- data/lib/starter_web/collections/_portfolio/web_design.adoc +5 -0
- data/lib/starter_web/collections/_romance/{breath-of-snow-and-ashes-a.adoc → breath-of-snow-and-ashes.adoc} +20 -5
- data/lib/starter_web/collections/_romance/dressmaker-the.adoc +26 -14
- data/lib/starter_web/collections/_romance/fiery-cross-the.adoc +12 -9
- data/lib/starter_web/collections/_romance/it-ends-with-us.adoc +14 -11
- data/lib/starter_web/collections/_romance/outlander-novel.adoc +48 -25
- data/lib/starter_web/collections/_romance/virgins-outlander-short-story.adoc +30 -15
- data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +4 -2
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +4 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-static-site-generators.adoc +5 -3
- data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +4 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/_includes/attributes.asciidoc +2 -2
- data/lib/starter_web/index.html +1 -18
- data/lib/starter_web/package.json +3 -3
- data/lib/starter_web/pages/public/about/features.adoc +1 -1
- data/lib/starter_web/pages/public/about/reporting_issues.adoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/attributes.asciidoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/112_getting_started.asciidoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/212_values.asciidoc +4 -4
- data/lib/starter_web/pages/public/blog/navigator/index.html +2 -2
- data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_all_books.adoc +1 -1
- data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_biography.adoc +1 -1
- data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_fantasy.adoc +1 -1
- data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_romance.adoc +1 -1
- data/lib/starter_web/pages/public/learn/bookshelf/jekyll_collections.adoc +75 -65
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/attributes.asciidoc +58 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/accordion.asciidoc +34 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/alerts.asciidoc +15 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/badges.asciidoc +9 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/body.asciidoc +14 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/breadcrumbs.asciidoc +14 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/buttons.asciidoc +75 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/cards.asciidoc +22 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/carousel.asciidoc +37 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/close.asciidoc +15 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/code.asciidoc +14 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/color_system.asciidoc +353 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/components.asciidoc +69 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/dropdowns.asciidoc +53 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/figures.asciidoc +5 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/forms.asciidoc +270 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/grid.asciidoc +49 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/links.asciidoc +21 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/list_groups.asciidoc +28 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/modals.asciidoc +43 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/navbar.asciidoc +45 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/navs.asciidoc +28 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/offcanvas.asciidoc +16 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/options.asciidoc +30 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/pagination.asciidoc +40 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/paragraph.asciidoc +5 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/placeholders.asciidoc +5 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/popovers.asciidoc +28 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/position.asciidoc +8 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/progress_bars.asciidoc +12 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/spacing.asciidoc +14 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/spinners.asciidoc +12 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/tables.asciidoc +55 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/thumbnails.asciidoc +9 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/toasts.asciidoc +18 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/tooltips.asciidoc +28 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/typography.asciidoc +115 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/z_index.asciidoc +26 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/tables/_table.asciidoc +9 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/tables/accordion.asciidoc +87 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/bs_sass_variables.adoc +262 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/attributes.asciidoc +59 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/documents/100_chapter.asciidoc +541 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/documents/200_chapter.asciidoc +33 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/build_command_options.asciidoc +72 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/files_and_folders.asciidoc +66 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/global_configuration_options.asciidoc +63 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/global_variables.asciidoc +26 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/page_variables.asciidoc +54 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/serve_command_options.asciidoc +45 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/site_variables.asciidoc +59 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/core_web_vitals.adoc +442 -0
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.0.asciidoc +112 -0
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/100_gistblock.asciidoc +3 -4
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_rouge.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +10 -10
- data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +35 -4
- data/lib/starter_web/pages/public/learn/roundtrip/responsive_tables.adoc +3 -3
- data/lib/starter_web/pages/public/learn/where_to_go.adoc +41 -49
- data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +2 -2
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +2 -2
- data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +2 -2
- data/lib/starter_web/pages/public/tools/cheatsheet/gem.adoc +255 -0
- data/lib/starter_web/pages/public/tools/cheatsheet/git.adoc +1458 -0
- data/lib/starter_web/pages/public/tools/cheatsheet/j1.adoc +63 -0
- data/lib/starter_web/pages/public/tools/cheatsheet/yaml.adoc +514 -0
- data/lib/starter_web/pages/public/{previewer → tools/previewer}/preview_bootstrap_theme.adoc +94 -5
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +169 -60
- data/_includes/themes/j1/modules/ads/google_ad_content_home.html +0 -11
- data/_includes/themes/j1/modules/ads/google_ad_top_home.html +0 -11
- data/assets/themes/j1/core/css/nbinteract-tutorial/styles.css +0 -1711
- data/assets/themes/j1/core/css/nbinteract-tutorial/styles.min.css +0 -1
- data/assets/themes/j1/modules/advertising/js/google/adInitializer.js +0 -127
- data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.2.js +0 -460
- data/assets/themes/j1/modules/mdiPreviewer/css/previewer.css +0 -97
- data/assets/themes/j1/modules/mdiPreviewer/css/previewer.min.css +0 -15
- data/assets/themes/j1/modules/mdiPreviewer/js/previewer.js +0 -115
- data/assets/themes/j1/modules/mdiPreviewer/js/previewer.min.js +0 -15
- data/assets/themes/j1/modules/mdilPreviewer/css/previewer.css +0 -97
- data/assets/themes/j1/modules/mdilPreviewer/css/previewer.min.css +0 -15
- data/assets/themes/j1/modules/mdilPreviewer/js/previewer.js +0 -125
- data/assets/themes/j1/modules/mdilPreviewer/js/previewer.min.js +0 -15
- data/lib/starter_web/_includes/themes/j1/modules/ads/google_ad_content_home.html +0 -11
- data/lib/starter_web/_includes/themes/j1/modules/ads/google_ad_top_home.html +0 -11
- data/lib/starter_web/assets/images/icons/j1/j1-256x256.gif +0 -0
- data/lib/starter_web/assets/images/pages/asciidoc_skeletons/example-pdf-screenshot.png +0 -0
- data/lib/starter_web/assets/images/pages/features/bootswatch-themes-1280x800.png +0 -0
- data/lib/starter_web/assets/images/pages/features/global-mobile-traffic-1920x1080.png +0 -0
- data/lib/starter_web/assets/images/pages/features/google-lighthouse-1080x300.png +0 -0
- data/lib/starter_web/assets/images/pages/features/mobile-navigation-600x800.png +0 -0
- data/lib/starter_web/assets/images/pages/features/native-speakers-by-language.png +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/binderhub-architecture.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/jupyterlab-architecture.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/mandelbrot-menge-1920x1200.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/mandelbrot-menge.png +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi-textbook-example.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_bar.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_hist.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_line.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_multiple_choice.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_scatter.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_scatter_drag.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_short_answer.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/nbi-textbook-example.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/dynamic-web-access.png +0 -0
- data/lib/starter_web/assets/images/posts/featured/jamstack-generators.png +0 -0
- data/lib/starter_web/assets/images/posts/featured/jekyll.1200x400.png +0 -0
- data/lib/starter_web/assets/images/posts/featured/jekyll.png +0 -0
- data/lib/starter_web/assets/images/posts/featured/post-1.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/post-2.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/post-3.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/post-4.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/post-5.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/static-web-access.png +0 -0
- data/lib/starter_web/collections/posts/public/series/_posts/2022-08-01-organize-your-life.adoc +0 -118
- data/lib/starter_web/collections/posts/public/series/_posts/2022-08-02-organize-your-life.adoc +0 -118
- data/lib/starter_web/collections/posts/public/series/_posts/2022-08-03-organize-your-life.adoc +0 -118
- data/lib/starter_web/collections/posts/public/series/_posts/2022-09-01-organize-your-life.adoc +0 -117
- data/lib/starter_web/collections/posts/public/series/_posts/2022-09-02-organize-your-life.adoc +0 -117
- /data/lib/starter_web/assets/images/badges/{configBinder.png → png/configBinder.png} +0 -0
- /data/lib/starter_web/assets/images/badges/{docsBinder.png → png/docsBinder.png} +0 -0
- /data/lib/starter_web/assets/images/badges/{notebookBinder.png → png/notebookBinder.png} +0 -0
- /data/lib/starter_web/assets/images/icons/hyvor-talk/{hyvor-logo.24x24.png → png/hyvor-logo.24x24.png} +0 -0
- /data/lib/starter_web/assets/images/icons/hyvor-talk/{hyvor-logo.512x512.png → png/hyvor-logo.512x512.png} +0 -0
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* jQuery JavaScript Library v3.
|
|
2
|
+
* jQuery JavaScript Library v3.7.0
|
|
3
3
|
* https://jquery.com/
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* https://sizzlejs.com/
|
|
7
|
-
*
|
|
8
|
-
* Copyright JS Foundation and other contributors
|
|
5
|
+
* Copyright OpenJS Foundation and other contributors
|
|
9
6
|
* Released under the MIT license
|
|
10
7
|
* https://jquery.org/license
|
|
11
8
|
*
|
|
12
|
-
* Date:
|
|
9
|
+
* Date: 2023-05-11T18:29Z
|
|
13
10
|
*/
|
|
14
11
|
( function( global, factory ) {
|
|
15
12
|
|
|
@@ -23,7 +20,7 @@
|
|
|
23
20
|
// (such as Node.js), expose a factory as module.exports.
|
|
24
21
|
// This accentuates the need for the creation of a real `window`.
|
|
25
22
|
// e.g. var jQuery = require("jquery")(window);
|
|
26
|
-
// See ticket
|
|
23
|
+
// See ticket trac-14549 for more info.
|
|
27
24
|
module.exports = global.document ?
|
|
28
25
|
factory( global, true ) :
|
|
29
26
|
function( w ) {
|
|
@@ -76,12 +73,16 @@ var support = {};
|
|
|
76
73
|
|
|
77
74
|
var isFunction = function isFunction( obj ) {
|
|
78
75
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
76
|
+
// Support: Chrome <=57, Firefox <=52
|
|
77
|
+
// In some browsers, typeof returns "function" for HTML <object> elements
|
|
78
|
+
// (i.e., `typeof document.createElement( "object" ) === "function"`).
|
|
79
|
+
// We don't want to classify *any* DOM node as a function.
|
|
80
|
+
// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5
|
|
81
|
+
// Plus for old WebKit, typeof returns "function" for HTML collections
|
|
82
|
+
// (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756)
|
|
83
|
+
return typeof obj === "function" && typeof obj.nodeType !== "number" &&
|
|
84
|
+
typeof obj.item !== "function";
|
|
85
|
+
};
|
|
85
86
|
|
|
86
87
|
|
|
87
88
|
var isWindow = function isWindow( obj ) {
|
|
@@ -146,8 +147,9 @@ function toType( obj ) {
|
|
|
146
147
|
|
|
147
148
|
|
|
148
149
|
|
|
149
|
-
var
|
|
150
|
-
|
|
150
|
+
var version = "3.7.0",
|
|
151
|
+
|
|
152
|
+
rhtmlSuffix = /HTML$/i,
|
|
151
153
|
|
|
152
154
|
// Define a local copy of jQuery
|
|
153
155
|
jQuery = function( selector, context ) {
|
|
@@ -393,6 +395,33 @@ jQuery.extend( {
|
|
|
393
395
|
return obj;
|
|
394
396
|
},
|
|
395
397
|
|
|
398
|
+
|
|
399
|
+
// Retrieve the text value of an array of DOM nodes
|
|
400
|
+
text: function( elem ) {
|
|
401
|
+
var node,
|
|
402
|
+
ret = "",
|
|
403
|
+
i = 0,
|
|
404
|
+
nodeType = elem.nodeType;
|
|
405
|
+
|
|
406
|
+
if ( !nodeType ) {
|
|
407
|
+
|
|
408
|
+
// If no nodeType, this is expected to be an array
|
|
409
|
+
while ( ( node = elem[ i++ ] ) ) {
|
|
410
|
+
|
|
411
|
+
// Do not traverse comment nodes
|
|
412
|
+
ret += jQuery.text( node );
|
|
413
|
+
}
|
|
414
|
+
} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
|
|
415
|
+
return elem.textContent;
|
|
416
|
+
} else if ( nodeType === 3 || nodeType === 4 ) {
|
|
417
|
+
return elem.nodeValue;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
// Do not include comment or processing instruction nodes
|
|
421
|
+
|
|
422
|
+
return ret;
|
|
423
|
+
},
|
|
424
|
+
|
|
396
425
|
// results is for internal usage only
|
|
397
426
|
makeArray: function( arr, results ) {
|
|
398
427
|
var ret = results || [];
|
|
@@ -401,7 +430,7 @@ jQuery.extend( {
|
|
|
401
430
|
if ( isArrayLike( Object( arr ) ) ) {
|
|
402
431
|
jQuery.merge( ret,
|
|
403
432
|
typeof arr === "string" ?
|
|
404
|
-
|
|
433
|
+
[ arr ] : arr
|
|
405
434
|
);
|
|
406
435
|
} else {
|
|
407
436
|
push.call( ret, arr );
|
|
@@ -415,6 +444,15 @@ jQuery.extend( {
|
|
|
415
444
|
return arr == null ? -1 : indexOf.call( arr, elem, i );
|
|
416
445
|
},
|
|
417
446
|
|
|
447
|
+
isXMLDoc: function( elem ) {
|
|
448
|
+
var namespace = elem && elem.namespaceURI,
|
|
449
|
+
docElem = elem && ( elem.ownerDocument || elem ).documentElement;
|
|
450
|
+
|
|
451
|
+
// Assume HTML when documentElement doesn't yet exist, such as inside
|
|
452
|
+
// document fragments.
|
|
453
|
+
return !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || "HTML" );
|
|
454
|
+
},
|
|
455
|
+
|
|
418
456
|
// Support: Android <=4.0 only, PhantomJS 1 only
|
|
419
457
|
// push.apply(_, arraylike) throws on ancient WebKit
|
|
420
458
|
merge: function( first, second ) {
|
|
@@ -496,9 +534,9 @@ if ( typeof Symbol === "function" ) {
|
|
|
496
534
|
|
|
497
535
|
// Populate the class2type map
|
|
498
536
|
jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
|
|
499
|
-
function( _i, name ) {
|
|
500
|
-
|
|
501
|
-
} );
|
|
537
|
+
function( _i, name ) {
|
|
538
|
+
class2type[ "[object " + name + "]" ] = name.toLowerCase();
|
|
539
|
+
} );
|
|
502
540
|
|
|
503
541
|
function isArrayLike( obj ) {
|
|
504
542
|
|
|
@@ -516,43 +554,98 @@ function isArrayLike( obj ) {
|
|
|
516
554
|
return type === "array" || length === 0 ||
|
|
517
555
|
typeof length === "number" && length > 0 && ( length - 1 ) in obj;
|
|
518
556
|
}
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
557
|
+
|
|
558
|
+
|
|
559
|
+
function nodeName( elem, name ) {
|
|
560
|
+
|
|
561
|
+
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
|
|
562
|
+
|
|
563
|
+
}
|
|
564
|
+
var pop = arr.pop;
|
|
565
|
+
|
|
566
|
+
|
|
567
|
+
var sort = arr.sort;
|
|
568
|
+
|
|
569
|
+
|
|
570
|
+
var splice = arr.splice;
|
|
571
|
+
|
|
572
|
+
|
|
573
|
+
var whitespace = "[\\x20\\t\\r\\n\\f]";
|
|
574
|
+
|
|
575
|
+
|
|
576
|
+
var rtrimCSS = new RegExp(
|
|
577
|
+
"^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$",
|
|
578
|
+
"g"
|
|
579
|
+
);
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
|
|
583
|
+
|
|
584
|
+
// Note: an element does not contain itself
|
|
585
|
+
jQuery.contains = function( a, b ) {
|
|
586
|
+
var bup = b && b.parentNode;
|
|
587
|
+
|
|
588
|
+
return a === bup || !!( bup && bup.nodeType === 1 && (
|
|
589
|
+
|
|
590
|
+
// Support: IE 9 - 11+
|
|
591
|
+
// IE doesn't have `contains` on SVG.
|
|
592
|
+
a.contains ?
|
|
593
|
+
a.contains( bup ) :
|
|
594
|
+
a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
|
|
595
|
+
) );
|
|
596
|
+
};
|
|
597
|
+
|
|
598
|
+
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
// CSS string/identifier serialization
|
|
602
|
+
// https://drafts.csswg.org/cssom/#common-serializing-idioms
|
|
603
|
+
var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
|
|
604
|
+
|
|
605
|
+
function fcssescape( ch, asCodePoint ) {
|
|
606
|
+
if ( asCodePoint ) {
|
|
607
|
+
|
|
608
|
+
// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
|
|
609
|
+
if ( ch === "\0" ) {
|
|
610
|
+
return "\uFFFD";
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
// Control characters and (dependent upon position) numbers get escaped as code points
|
|
614
|
+
return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
// Other potentially-special ASCII characters get backslash-escaped
|
|
618
|
+
return "\\" + ch;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
jQuery.escapeSelector = function( sel ) {
|
|
622
|
+
return ( sel + "" ).replace( rcssescape, fcssescape );
|
|
623
|
+
};
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
var preferredDoc = document,
|
|
629
|
+
pushNative = push;
|
|
630
|
+
|
|
631
|
+
( function() {
|
|
632
|
+
|
|
531
633
|
var i,
|
|
532
|
-
support,
|
|
533
634
|
Expr,
|
|
534
|
-
getText,
|
|
535
|
-
isXML,
|
|
536
|
-
tokenize,
|
|
537
|
-
compile,
|
|
538
|
-
select,
|
|
539
635
|
outermostContext,
|
|
540
636
|
sortInput,
|
|
541
637
|
hasDuplicate,
|
|
638
|
+
push = pushNative,
|
|
542
639
|
|
|
543
640
|
// Local document vars
|
|
544
|
-
setDocument,
|
|
545
641
|
document,
|
|
546
|
-
|
|
642
|
+
documentElement,
|
|
547
643
|
documentIsHTML,
|
|
548
644
|
rbuggyQSA,
|
|
549
|
-
rbuggyMatches,
|
|
550
645
|
matches,
|
|
551
|
-
contains,
|
|
552
646
|
|
|
553
647
|
// Instance-specific data
|
|
554
|
-
expando =
|
|
555
|
-
preferredDoc = window.document,
|
|
648
|
+
expando = jQuery.expando,
|
|
556
649
|
dirruns = 0,
|
|
557
650
|
done = 0,
|
|
558
651
|
classCache = createCache(),
|
|
@@ -566,47 +659,22 @@ var i,
|
|
|
566
659
|
return 0;
|
|
567
660
|
},
|
|
568
661
|
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
arr = [],
|
|
572
|
-
pop = arr.pop,
|
|
573
|
-
pushNative = arr.push,
|
|
574
|
-
push = arr.push,
|
|
575
|
-
slice = arr.slice,
|
|
576
|
-
|
|
577
|
-
// Use a stripped-down indexOf as it's faster than native
|
|
578
|
-
// https://jsperf.com/thor-indexof-vs-for/5
|
|
579
|
-
indexOf = function( list, elem ) {
|
|
580
|
-
var i = 0,
|
|
581
|
-
len = list.length;
|
|
582
|
-
for ( ; i < len; i++ ) {
|
|
583
|
-
if ( list[ i ] === elem ) {
|
|
584
|
-
return i;
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
return -1;
|
|
588
|
-
},
|
|
589
|
-
|
|
590
|
-
booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" +
|
|
591
|
-
"ismap|loop|multiple|open|readonly|required|scoped",
|
|
662
|
+
booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|" +
|
|
663
|
+
"loop|multiple|open|readonly|required|scoped",
|
|
592
664
|
|
|
593
665
|
// Regular expressions
|
|
594
666
|
|
|
595
|
-
// http://www.w3.org/TR/css3-selectors/#whitespace
|
|
596
|
-
whitespace = "[\\x20\\t\\r\\n\\f]",
|
|
597
|
-
|
|
598
667
|
// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
|
|
599
668
|
identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
|
|
600
669
|
"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
|
|
601
670
|
|
|
602
|
-
// Attribute selectors:
|
|
671
|
+
// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors
|
|
603
672
|
attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
|
|
604
673
|
|
|
605
674
|
// Operator (capture 2)
|
|
606
675
|
"*([*^$|!~]?=)" + whitespace +
|
|
607
676
|
|
|
608
|
-
// "Attribute values must be CSS identifiers [capture 5]
|
|
609
|
-
// or strings [capture 3 or capture 4]"
|
|
677
|
+
// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
|
|
610
678
|
"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" +
|
|
611
679
|
whitespace + "*\\]",
|
|
612
680
|
|
|
@@ -625,101 +693,88 @@ var i,
|
|
|
625
693
|
|
|
626
694
|
// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
|
|
627
695
|
rwhitespace = new RegExp( whitespace + "+", "g" ),
|
|
628
|
-
rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" +
|
|
629
|
-
whitespace + "+$", "g" ),
|
|
630
696
|
|
|
631
697
|
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
|
|
632
|
-
|
|
633
|
-
"*" ),
|
|
698
|
+
rleadingCombinator = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" +
|
|
699
|
+
whitespace + "*" ),
|
|
634
700
|
rdescend = new RegExp( whitespace + "|>" ),
|
|
635
701
|
|
|
636
702
|
rpseudo = new RegExp( pseudos ),
|
|
637
703
|
ridentifier = new RegExp( "^" + identifier + "$" ),
|
|
638
704
|
|
|
639
705
|
matchExpr = {
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
706
|
+
ID: new RegExp( "^#(" + identifier + ")" ),
|
|
707
|
+
CLASS: new RegExp( "^\\.(" + identifier + ")" ),
|
|
708
|
+
TAG: new RegExp( "^(" + identifier + "|[*])" ),
|
|
709
|
+
ATTR: new RegExp( "^" + attributes ),
|
|
710
|
+
PSEUDO: new RegExp( "^" + pseudos ),
|
|
711
|
+
CHILD: new RegExp(
|
|
712
|
+
"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
|
|
713
|
+
whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
|
|
714
|
+
whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
|
|
715
|
+
bool: new RegExp( "^(?:" + booleans + ")$", "i" ),
|
|
649
716
|
|
|
650
717
|
// For use in libraries implementing .is()
|
|
651
718
|
// We use this for POS matching in `select`
|
|
652
|
-
|
|
719
|
+
needsContext: new RegExp( "^" + whitespace +
|
|
653
720
|
"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
|
|
654
721
|
"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
|
|
655
722
|
},
|
|
656
723
|
|
|
657
|
-
rhtml = /HTML$/i,
|
|
658
724
|
rinputs = /^(?:input|select|textarea|button)$/i,
|
|
659
725
|
rheader = /^h\d$/i,
|
|
660
726
|
|
|
661
|
-
rnative = /^[^{]+\{\s*\[native \w/,
|
|
662
|
-
|
|
663
727
|
// Easily-parseable/retrievable ID or TAG or CLASS selectors
|
|
664
728
|
rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
|
|
665
729
|
|
|
666
730
|
rsibling = /[+~]/,
|
|
667
731
|
|
|
668
732
|
// CSS escapes
|
|
669
|
-
//
|
|
670
|
-
runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace +
|
|
733
|
+
// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters
|
|
734
|
+
runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace +
|
|
735
|
+
"?|\\\\([^\\r\\n\\f])", "g" ),
|
|
671
736
|
funescape = function( escape, nonHex ) {
|
|
672
737
|
var high = "0x" + escape.slice( 1 ) - 0x10000;
|
|
673
738
|
|
|
674
|
-
|
|
739
|
+
if ( nonHex ) {
|
|
675
740
|
|
|
676
741
|
// Strip the backslash prefix from a non-hex escape sequence
|
|
677
|
-
nonHex
|
|
678
|
-
|
|
679
|
-
// Replace a hexadecimal escape sequence with the encoded Unicode code point
|
|
680
|
-
// Support: IE <=11+
|
|
681
|
-
// For values outside the Basic Multilingual Plane (BMP), manually construct a
|
|
682
|
-
// surrogate pair
|
|
683
|
-
high < 0 ?
|
|
684
|
-
String.fromCharCode( high + 0x10000 ) :
|
|
685
|
-
String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
|
|
686
|
-
},
|
|
687
|
-
|
|
688
|
-
// CSS string/identifier serialization
|
|
689
|
-
// https://drafts.csswg.org/cssom/#common-serializing-idioms
|
|
690
|
-
rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
|
|
691
|
-
fcssescape = function( ch, asCodePoint ) {
|
|
692
|
-
if ( asCodePoint ) {
|
|
693
|
-
|
|
694
|
-
// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
|
|
695
|
-
if ( ch === "\0" ) {
|
|
696
|
-
return "\uFFFD";
|
|
697
|
-
}
|
|
698
|
-
|
|
699
|
-
// Control characters and (dependent upon position) numbers get escaped as code points
|
|
700
|
-
return ch.slice( 0, -1 ) + "\\" +
|
|
701
|
-
ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
|
|
742
|
+
return nonHex;
|
|
702
743
|
}
|
|
703
744
|
|
|
704
|
-
//
|
|
705
|
-
|
|
745
|
+
// Replace a hexadecimal escape sequence with the encoded Unicode code point
|
|
746
|
+
// Support: IE <=11+
|
|
747
|
+
// For values outside the Basic Multilingual Plane (BMP), manually construct a
|
|
748
|
+
// surrogate pair
|
|
749
|
+
return high < 0 ?
|
|
750
|
+
String.fromCharCode( high + 0x10000 ) :
|
|
751
|
+
String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
|
|
706
752
|
},
|
|
707
753
|
|
|
708
|
-
// Used for iframes
|
|
709
|
-
//
|
|
754
|
+
// Used for iframes; see `setDocument`.
|
|
755
|
+
// Support: IE 9 - 11+, Edge 12 - 18+
|
|
710
756
|
// Removing the function wrapper causes a "Permission Denied"
|
|
711
|
-
// error in IE
|
|
757
|
+
// error in IE/Edge.
|
|
712
758
|
unloadHandler = function() {
|
|
713
759
|
setDocument();
|
|
714
760
|
},
|
|
715
761
|
|
|
716
762
|
inDisabledFieldset = addCombinator(
|
|
717
763
|
function( elem ) {
|
|
718
|
-
return elem.disabled === true &&
|
|
764
|
+
return elem.disabled === true && nodeName( elem, "fieldset" );
|
|
719
765
|
},
|
|
720
766
|
{ dir: "parentNode", next: "legend" }
|
|
721
767
|
);
|
|
722
768
|
|
|
769
|
+
// Support: IE <=9 only
|
|
770
|
+
// Accessing document.activeElement can throw unexpectedly
|
|
771
|
+
// https://bugs.jquery.com/ticket/13393
|
|
772
|
+
function safeActiveElement() {
|
|
773
|
+
try {
|
|
774
|
+
return document.activeElement;
|
|
775
|
+
} catch ( err ) { }
|
|
776
|
+
}
|
|
777
|
+
|
|
723
778
|
// Optimize for push.apply( _, NodeList )
|
|
724
779
|
try {
|
|
725
780
|
push.apply(
|
|
@@ -727,32 +782,22 @@ try {
|
|
|
727
782
|
preferredDoc.childNodes
|
|
728
783
|
);
|
|
729
784
|
|
|
730
|
-
// Support: Android
|
|
785
|
+
// Support: Android <=4.0
|
|
731
786
|
// Detect silently failing push.apply
|
|
732
787
|
// eslint-disable-next-line no-unused-expressions
|
|
733
788
|
arr[ preferredDoc.childNodes.length ].nodeType;
|
|
734
789
|
} catch ( e ) {
|
|
735
|
-
push = {
|
|
736
|
-
|
|
737
|
-
// Leverage slice if possible
|
|
738
|
-
function( target, els ) {
|
|
790
|
+
push = {
|
|
791
|
+
apply: function( target, els ) {
|
|
739
792
|
pushNative.apply( target, slice.call( els ) );
|
|
740
|
-
}
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
// Otherwise append directly
|
|
744
|
-
function( target, els ) {
|
|
745
|
-
var j = target.length,
|
|
746
|
-
i = 0;
|
|
747
|
-
|
|
748
|
-
// Can't trust NodeList.length
|
|
749
|
-
while ( ( target[ j++ ] = els[ i++ ] ) ) {}
|
|
750
|
-
target.length = j - 1;
|
|
793
|
+
},
|
|
794
|
+
call: function( target ) {
|
|
795
|
+
pushNative.apply( target, slice.call( arguments, 1 ) );
|
|
751
796
|
}
|
|
752
797
|
};
|
|
753
798
|
}
|
|
754
799
|
|
|
755
|
-
function
|
|
800
|
+
function find( selector, context, results, seed ) {
|
|
756
801
|
var m, i, elem, nid, match, groups, newSelector,
|
|
757
802
|
newContext = context && context.ownerDocument,
|
|
758
803
|
|
|
@@ -786,11 +831,10 @@ function Sizzle( selector, context, results, seed ) {
|
|
|
786
831
|
if ( nodeType === 9 ) {
|
|
787
832
|
if ( ( elem = context.getElementById( m ) ) ) {
|
|
788
833
|
|
|
789
|
-
// Support: IE
|
|
790
|
-
// TODO: identify versions
|
|
834
|
+
// Support: IE 9 only
|
|
791
835
|
// getElementById can match elements by name instead of ID
|
|
792
836
|
if ( elem.id === m ) {
|
|
793
|
-
|
|
837
|
+
push.call( results, elem );
|
|
794
838
|
return results;
|
|
795
839
|
}
|
|
796
840
|
} else {
|
|
@@ -800,14 +844,13 @@ function Sizzle( selector, context, results, seed ) {
|
|
|
800
844
|
// Element context
|
|
801
845
|
} else {
|
|
802
846
|
|
|
803
|
-
// Support: IE
|
|
804
|
-
// TODO: identify versions
|
|
847
|
+
// Support: IE 9 only
|
|
805
848
|
// getElementById can match elements by name instead of ID
|
|
806
849
|
if ( newContext && ( elem = newContext.getElementById( m ) ) &&
|
|
807
|
-
contains( context, elem ) &&
|
|
850
|
+
find.contains( context, elem ) &&
|
|
808
851
|
elem.id === m ) {
|
|
809
852
|
|
|
810
|
-
|
|
853
|
+
push.call( results, elem );
|
|
811
854
|
return results;
|
|
812
855
|
}
|
|
813
856
|
}
|
|
@@ -818,22 +861,15 @@ function Sizzle( selector, context, results, seed ) {
|
|
|
818
861
|
return results;
|
|
819
862
|
|
|
820
863
|
// Class selector
|
|
821
|
-
} else if ( ( m = match[ 3 ] ) &&
|
|
822
|
-
context.getElementsByClassName ) {
|
|
823
|
-
|
|
864
|
+
} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {
|
|
824
865
|
push.apply( results, context.getElementsByClassName( m ) );
|
|
825
866
|
return results;
|
|
826
867
|
}
|
|
827
868
|
}
|
|
828
869
|
|
|
829
870
|
// Take advantage of querySelectorAll
|
|
830
|
-
if (
|
|
831
|
-
!
|
|
832
|
-
( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&
|
|
833
|
-
|
|
834
|
-
// Support: IE 8 only
|
|
835
|
-
// Exclude object elements
|
|
836
|
-
( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {
|
|
871
|
+
if ( !nonnativeSelectorCache[ selector + " " ] &&
|
|
872
|
+
( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {
|
|
837
873
|
|
|
838
874
|
newSelector = selector;
|
|
839
875
|
newContext = context;
|
|
@@ -846,7 +882,7 @@ function Sizzle( selector, context, results, seed ) {
|
|
|
846
882
|
// as such selectors are not recognized by querySelectorAll.
|
|
847
883
|
// Thanks to Andrew Dupont for this technique.
|
|
848
884
|
if ( nodeType === 1 &&
|
|
849
|
-
( rdescend.test( selector ) ||
|
|
885
|
+
( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {
|
|
850
886
|
|
|
851
887
|
// Expand context for sibling selectors
|
|
852
888
|
newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
|
|
@@ -854,11 +890,15 @@ function Sizzle( selector, context, results, seed ) {
|
|
|
854
890
|
|
|
855
891
|
// We can use :scope instead of the ID hack if the browser
|
|
856
892
|
// supports it & if we're not changing the context.
|
|
857
|
-
|
|
893
|
+
// Support: IE 11+, Edge 17 - 18+
|
|
894
|
+
// IE/Edge sometimes throw a "Permission denied" error when
|
|
895
|
+
// strict-comparing two documents; shallow comparisons work.
|
|
896
|
+
// eslint-disable-next-line eqeqeq
|
|
897
|
+
if ( newContext != context || !support.scope ) {
|
|
858
898
|
|
|
859
899
|
// Capture the context ID, setting it first if necessary
|
|
860
900
|
if ( ( nid = context.getAttribute( "id" ) ) ) {
|
|
861
|
-
nid =
|
|
901
|
+
nid = jQuery.escapeSelector( nid );
|
|
862
902
|
} else {
|
|
863
903
|
context.setAttribute( "id", ( nid = expando ) );
|
|
864
904
|
}
|
|
@@ -891,7 +931,7 @@ function Sizzle( selector, context, results, seed ) {
|
|
|
891
931
|
}
|
|
892
932
|
|
|
893
933
|
// All others
|
|
894
|
-
return select( selector.replace(
|
|
934
|
+
return select( selector.replace( rtrimCSS, "$1" ), context, results, seed );
|
|
895
935
|
}
|
|
896
936
|
|
|
897
937
|
/**
|
|
@@ -905,7 +945,8 @@ function createCache() {
|
|
|
905
945
|
|
|
906
946
|
function cache( key, value ) {
|
|
907
947
|
|
|
908
|
-
// Use (key + " ") to avoid collision with native prototype properties
|
|
948
|
+
// Use (key + " ") to avoid collision with native prototype properties
|
|
949
|
+
// (see https://github.com/jquery/sizzle/issues/157)
|
|
909
950
|
if ( keys.push( key + " " ) > Expr.cacheLength ) {
|
|
910
951
|
|
|
911
952
|
// Only keep the most recent entries
|
|
@@ -917,7 +958,7 @@ function createCache() {
|
|
|
917
958
|
}
|
|
918
959
|
|
|
919
960
|
/**
|
|
920
|
-
* Mark a function for special use by
|
|
961
|
+
* Mark a function for special use by jQuery selector module
|
|
921
962
|
* @param {Function} fn The function to mark
|
|
922
963
|
*/
|
|
923
964
|
function markFunction( fn ) {
|
|
@@ -948,56 +989,13 @@ function assert( fn ) {
|
|
|
948
989
|
}
|
|
949
990
|
}
|
|
950
991
|
|
|
951
|
-
/**
|
|
952
|
-
* Adds the same handler for all of the specified attrs
|
|
953
|
-
* @param {String} attrs Pipe-separated list of attributes
|
|
954
|
-
* @param {Function} handler The method that will be applied
|
|
955
|
-
*/
|
|
956
|
-
function addHandle( attrs, handler ) {
|
|
957
|
-
var arr = attrs.split( "|" ),
|
|
958
|
-
i = arr.length;
|
|
959
|
-
|
|
960
|
-
while ( i-- ) {
|
|
961
|
-
Expr.attrHandle[ arr[ i ] ] = handler;
|
|
962
|
-
}
|
|
963
|
-
}
|
|
964
|
-
|
|
965
|
-
/**
|
|
966
|
-
* Checks document order of two siblings
|
|
967
|
-
* @param {Element} a
|
|
968
|
-
* @param {Element} b
|
|
969
|
-
* @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
|
|
970
|
-
*/
|
|
971
|
-
function siblingCheck( a, b ) {
|
|
972
|
-
var cur = b && a,
|
|
973
|
-
diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
|
|
974
|
-
a.sourceIndex - b.sourceIndex;
|
|
975
|
-
|
|
976
|
-
// Use IE sourceIndex if available on both nodes
|
|
977
|
-
if ( diff ) {
|
|
978
|
-
return diff;
|
|
979
|
-
}
|
|
980
|
-
|
|
981
|
-
// Check if b follows a
|
|
982
|
-
if ( cur ) {
|
|
983
|
-
while ( ( cur = cur.nextSibling ) ) {
|
|
984
|
-
if ( cur === b ) {
|
|
985
|
-
return -1;
|
|
986
|
-
}
|
|
987
|
-
}
|
|
988
|
-
}
|
|
989
|
-
|
|
990
|
-
return a ? 1 : -1;
|
|
991
|
-
}
|
|
992
|
-
|
|
993
992
|
/**
|
|
994
993
|
* Returns a function to use in pseudos for input types
|
|
995
994
|
* @param {String} type
|
|
996
995
|
*/
|
|
997
996
|
function createInputPseudo( type ) {
|
|
998
997
|
return function( elem ) {
|
|
999
|
-
|
|
1000
|
-
return name === "input" && elem.type === type;
|
|
998
|
+
return nodeName( elem, "input" ) && elem.type === type;
|
|
1001
999
|
};
|
|
1002
1000
|
}
|
|
1003
1001
|
|
|
@@ -1007,8 +1005,8 @@ function createInputPseudo( type ) {
|
|
|
1007
1005
|
*/
|
|
1008
1006
|
function createButtonPseudo( type ) {
|
|
1009
1007
|
return function( elem ) {
|
|
1010
|
-
|
|
1011
|
-
|
|
1008
|
+
return ( nodeName( elem, "input" ) || nodeName( elem, "button" ) ) &&
|
|
1009
|
+
elem.type === type;
|
|
1012
1010
|
};
|
|
1013
1011
|
}
|
|
1014
1012
|
|
|
@@ -1044,14 +1042,13 @@ function createDisabledPseudo( disabled ) {
|
|
|
1044
1042
|
}
|
|
1045
1043
|
}
|
|
1046
1044
|
|
|
1047
|
-
// Support: IE 6 - 11
|
|
1045
|
+
// Support: IE 6 - 11+
|
|
1048
1046
|
// Use the isDisabled shortcut property to check for disabled fieldset ancestors
|
|
1049
1047
|
return elem.isDisabled === disabled ||
|
|
1050
1048
|
|
|
1051
1049
|
// Where there is no isDisabled, check manually
|
|
1052
|
-
/* jshint -W018 */
|
|
1053
1050
|
elem.isDisabled !== !disabled &&
|
|
1054
|
-
|
|
1051
|
+
inDisabledFieldset( elem ) === disabled;
|
|
1055
1052
|
}
|
|
1056
1053
|
|
|
1057
1054
|
return elem.disabled === disabled;
|
|
@@ -1091,7 +1088,7 @@ function createPositionalPseudo( fn ) {
|
|
|
1091
1088
|
}
|
|
1092
1089
|
|
|
1093
1090
|
/**
|
|
1094
|
-
* Checks a node for validity as a
|
|
1091
|
+
* Checks a node for validity as a jQuery selector context
|
|
1095
1092
|
* @param {Element|Object=} context
|
|
1096
1093
|
* @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
|
|
1097
1094
|
*/
|
|
@@ -1099,31 +1096,13 @@ function testContext( context ) {
|
|
|
1099
1096
|
return context && typeof context.getElementsByTagName !== "undefined" && context;
|
|
1100
1097
|
}
|
|
1101
1098
|
|
|
1102
|
-
// Expose support vars for convenience
|
|
1103
|
-
support = Sizzle.support = {};
|
|
1104
|
-
|
|
1105
|
-
/**
|
|
1106
|
-
* Detects XML nodes
|
|
1107
|
-
* @param {Element|Object} elem An element or a document
|
|
1108
|
-
* @returns {Boolean} True iff elem is a non-HTML XML node
|
|
1109
|
-
*/
|
|
1110
|
-
isXML = Sizzle.isXML = function( elem ) {
|
|
1111
|
-
var namespace = elem.namespaceURI,
|
|
1112
|
-
docElem = ( elem.ownerDocument || elem ).documentElement;
|
|
1113
|
-
|
|
1114
|
-
// Support: IE <=8
|
|
1115
|
-
// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
|
|
1116
|
-
// https://bugs.jquery.com/ticket/4833
|
|
1117
|
-
return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
|
|
1118
|
-
};
|
|
1119
|
-
|
|
1120
1099
|
/**
|
|
1121
1100
|
* Sets document-related variables once based on the current document
|
|
1122
|
-
* @param {Element|Object} [
|
|
1101
|
+
* @param {Element|Object} [node] An element or document object to use to set the document
|
|
1123
1102
|
* @returns {Object} Returns the current document
|
|
1124
1103
|
*/
|
|
1125
|
-
|
|
1126
|
-
var
|
|
1104
|
+
function setDocument( node ) {
|
|
1105
|
+
var subWindow,
|
|
1127
1106
|
doc = node ? node.ownerDocument || node : preferredDoc;
|
|
1128
1107
|
|
|
1129
1108
|
// Return early if doc is invalid or already selected
|
|
@@ -1137,11 +1116,17 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
|
1137
1116
|
|
|
1138
1117
|
// Update global variables
|
|
1139
1118
|
document = doc;
|
|
1140
|
-
|
|
1141
|
-
documentIsHTML = !
|
|
1119
|
+
documentElement = document.documentElement;
|
|
1120
|
+
documentIsHTML = !jQuery.isXMLDoc( document );
|
|
1121
|
+
|
|
1122
|
+
// Support: iOS 7 only, IE 9 - 11+
|
|
1123
|
+
// Older browsers didn't support unprefixed `matches`.
|
|
1124
|
+
matches = documentElement.matches ||
|
|
1125
|
+
documentElement.webkitMatchesSelector ||
|
|
1126
|
+
documentElement.msMatchesSelector;
|
|
1142
1127
|
|
|
1143
1128
|
// Support: IE 9 - 11+, Edge 12 - 18+
|
|
1144
|
-
// Accessing iframe documents after unload throws "permission denied" errors (
|
|
1129
|
+
// Accessing iframe documents after unload throws "permission denied" errors (see trac-13936)
|
|
1145
1130
|
// Support: IE 11+, Edge 17 - 18+
|
|
1146
1131
|
// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
|
|
1147
1132
|
// two documents; shallow comparisons work.
|
|
@@ -1149,75 +1134,67 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
|
1149
1134
|
if ( preferredDoc != document &&
|
|
1150
1135
|
( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {
|
|
1151
1136
|
|
|
1152
|
-
// Support: IE 11
|
|
1153
|
-
|
|
1154
|
-
subWindow.addEventListener( "unload", unloadHandler, false );
|
|
1155
|
-
|
|
1156
|
-
// Support: IE 9 - 10 only
|
|
1157
|
-
} else if ( subWindow.attachEvent ) {
|
|
1158
|
-
subWindow.attachEvent( "onunload", unloadHandler );
|
|
1159
|
-
}
|
|
1137
|
+
// Support: IE 9 - 11+, Edge 12 - 18+
|
|
1138
|
+
subWindow.addEventListener( "unload", unloadHandler );
|
|
1160
1139
|
}
|
|
1161
1140
|
|
|
1162
|
-
// Support: IE
|
|
1163
|
-
//
|
|
1164
|
-
//
|
|
1165
|
-
//
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
!el.querySelectorAll( ":scope fieldset div" ).length;
|
|
1141
|
+
// Support: IE <10
|
|
1142
|
+
// Check if getElementById returns elements by name
|
|
1143
|
+
// The broken getElementById methods don't pick up programmatically-set names,
|
|
1144
|
+
// so use a roundabout getElementsByName test
|
|
1145
|
+
support.getById = assert( function( el ) {
|
|
1146
|
+
documentElement.appendChild( el ).id = jQuery.expando;
|
|
1147
|
+
return !document.getElementsByName ||
|
|
1148
|
+
!document.getElementsByName( jQuery.expando ).length;
|
|
1171
1149
|
} );
|
|
1172
1150
|
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
// (excepting IE8 booleans)
|
|
1179
|
-
support.attributes = assert( function( el ) {
|
|
1180
|
-
el.className = "i";
|
|
1181
|
-
return !el.getAttribute( "className" );
|
|
1151
|
+
// Support: IE 9 only
|
|
1152
|
+
// Check to see if it's possible to do matchesSelector
|
|
1153
|
+
// on a disconnected node.
|
|
1154
|
+
support.disconnectedMatch = assert( function( el ) {
|
|
1155
|
+
return matches.call( el, "*" );
|
|
1182
1156
|
} );
|
|
1183
1157
|
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
support.getElementsByTagName = assert( function( el ) {
|
|
1189
|
-
el.appendChild( document.createComment( "" ) );
|
|
1190
|
-
return !el.getElementsByTagName( "*" ).length;
|
|
1158
|
+
// Support: IE 9 - 11+, Edge 12 - 18+
|
|
1159
|
+
// IE/Edge don't support the :scope pseudo-class.
|
|
1160
|
+
support.scope = assert( function() {
|
|
1161
|
+
return document.querySelectorAll( ":scope" );
|
|
1191
1162
|
} );
|
|
1192
1163
|
|
|
1193
|
-
// Support:
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
//
|
|
1197
|
-
//
|
|
1198
|
-
//
|
|
1199
|
-
//
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1164
|
+
// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only
|
|
1165
|
+
// Make sure the `:has()` argument is parsed unforgivingly.
|
|
1166
|
+
// We include `*` in the test to detect buggy implementations that are
|
|
1167
|
+
// _selectively_ forgiving (specifically when the list includes at least
|
|
1168
|
+
// one valid selector).
|
|
1169
|
+
// Note that we treat complete lack of support for `:has()` as if it were
|
|
1170
|
+
// spec-compliant support, which is fine because use of `:has()` in such
|
|
1171
|
+
// environments will fail in the qSA path and fall back to jQuery traversal
|
|
1172
|
+
// anyway.
|
|
1173
|
+
support.cssHas = assert( function() {
|
|
1174
|
+
try {
|
|
1175
|
+
document.querySelector( ":has(*,:jqfake)" );
|
|
1176
|
+
return false;
|
|
1177
|
+
} catch ( e ) {
|
|
1178
|
+
return true;
|
|
1179
|
+
}
|
|
1203
1180
|
} );
|
|
1204
1181
|
|
|
1205
1182
|
// ID filter and find
|
|
1206
1183
|
if ( support.getById ) {
|
|
1207
|
-
Expr.filter
|
|
1184
|
+
Expr.filter.ID = function( id ) {
|
|
1208
1185
|
var attrId = id.replace( runescape, funescape );
|
|
1209
1186
|
return function( elem ) {
|
|
1210
1187
|
return elem.getAttribute( "id" ) === attrId;
|
|
1211
1188
|
};
|
|
1212
1189
|
};
|
|
1213
|
-
Expr.find
|
|
1190
|
+
Expr.find.ID = function( id, context ) {
|
|
1214
1191
|
if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
|
|
1215
1192
|
var elem = context.getElementById( id );
|
|
1216
1193
|
return elem ? [ elem ] : [];
|
|
1217
1194
|
}
|
|
1218
1195
|
};
|
|
1219
1196
|
} else {
|
|
1220
|
-
Expr.filter
|
|
1197
|
+
Expr.filter.ID = function( id ) {
|
|
1221
1198
|
var attrId = id.replace( runescape, funescape );
|
|
1222
1199
|
return function( elem ) {
|
|
1223
1200
|
var node = typeof elem.getAttributeNode !== "undefined" &&
|
|
@@ -1228,7 +1205,7 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
|
1228
1205
|
|
|
1229
1206
|
// Support: IE 6 - 7 only
|
|
1230
1207
|
// getElementById is not reliable as a find shortcut
|
|
1231
|
-
Expr.find
|
|
1208
|
+
Expr.find.ID = function( id, context ) {
|
|
1232
1209
|
if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
|
|
1233
1210
|
var node, i, elems,
|
|
1234
1211
|
elem = context.getElementById( id );
|
|
@@ -1258,40 +1235,18 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
|
1258
1235
|
}
|
|
1259
1236
|
|
|
1260
1237
|
// Tag
|
|
1261
|
-
Expr.find
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
return context.getElementsByTagName( tag );
|
|
1265
|
-
|
|
1266
|
-
// DocumentFragment nodes don't have gEBTN
|
|
1267
|
-
} else if ( support.qsa ) {
|
|
1268
|
-
return context.querySelectorAll( tag );
|
|
1269
|
-
}
|
|
1270
|
-
} :
|
|
1271
|
-
|
|
1272
|
-
function( tag, context ) {
|
|
1273
|
-
var elem,
|
|
1274
|
-
tmp = [],
|
|
1275
|
-
i = 0,
|
|
1276
|
-
|
|
1277
|
-
// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
|
|
1278
|
-
results = context.getElementsByTagName( tag );
|
|
1238
|
+
Expr.find.TAG = function( tag, context ) {
|
|
1239
|
+
if ( typeof context.getElementsByTagName !== "undefined" ) {
|
|
1240
|
+
return context.getElementsByTagName( tag );
|
|
1279
1241
|
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
}
|
|
1286
|
-
}
|
|
1287
|
-
|
|
1288
|
-
return tmp;
|
|
1289
|
-
}
|
|
1290
|
-
return results;
|
|
1291
|
-
};
|
|
1242
|
+
// DocumentFragment nodes don't have gEBTN
|
|
1243
|
+
} else {
|
|
1244
|
+
return context.querySelectorAll( tag );
|
|
1245
|
+
}
|
|
1246
|
+
};
|
|
1292
1247
|
|
|
1293
1248
|
// Class
|
|
1294
|
-
Expr.find
|
|
1249
|
+
Expr.find.CLASS = function( className, context ) {
|
|
1295
1250
|
if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
|
|
1296
1251
|
return context.getElementsByClassName( className );
|
|
1297
1252
|
}
|
|
@@ -1302,177 +1257,94 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
|
1302
1257
|
|
|
1303
1258
|
// QSA and matchesSelector support
|
|
1304
1259
|
|
|
1305
|
-
// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
|
|
1306
|
-
rbuggyMatches = [];
|
|
1307
|
-
|
|
1308
|
-
// qSa(:focus) reports false when true (Chrome 21)
|
|
1309
|
-
// We allow this because of a bug in IE8/9 that throws an error
|
|
1310
|
-
// whenever `document.activeElement` is accessed on an iframe
|
|
1311
|
-
// So, we allow :focus to pass through QSA all the time to avoid the IE error
|
|
1312
|
-
// See https://bugs.jquery.com/ticket/13378
|
|
1313
1260
|
rbuggyQSA = [];
|
|
1314
1261
|
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
// Regex strategy adopted from Diego Perini
|
|
1319
|
-
assert( function( el ) {
|
|
1320
|
-
|
|
1321
|
-
var input;
|
|
1262
|
+
// Build QSA regex
|
|
1263
|
+
// Regex strategy adopted from Diego Perini
|
|
1264
|
+
assert( function( el ) {
|
|
1322
1265
|
|
|
1323
|
-
|
|
1324
|
-
// This is to test IE's treatment of not explicitly
|
|
1325
|
-
// setting a boolean content attribute,
|
|
1326
|
-
// since its presence should be enough
|
|
1327
|
-
// https://bugs.jquery.com/ticket/12359
|
|
1328
|
-
docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
|
|
1329
|
-
"<select id='" + expando + "-\r\\' msallowcapture=''>" +
|
|
1330
|
-
"<option selected=''></option></select>";
|
|
1331
|
-
|
|
1332
|
-
// Support: IE8, Opera 11-12.16
|
|
1333
|
-
// Nothing should be selected when empty strings follow ^= or $= or *=
|
|
1334
|
-
// The test attribute must be unknown in Opera but "safe" for WinRT
|
|
1335
|
-
// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
|
|
1336
|
-
if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) {
|
|
1337
|
-
rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
|
|
1338
|
-
}
|
|
1339
|
-
|
|
1340
|
-
// Support: IE8
|
|
1341
|
-
// Boolean attributes and "value" are not treated correctly
|
|
1342
|
-
if ( !el.querySelectorAll( "[selected]" ).length ) {
|
|
1343
|
-
rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
|
|
1344
|
-
}
|
|
1345
|
-
|
|
1346
|
-
// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
|
|
1347
|
-
if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
|
|
1348
|
-
rbuggyQSA.push( "~=" );
|
|
1349
|
-
}
|
|
1350
|
-
|
|
1351
|
-
// Support: IE 11+, Edge 15 - 18+
|
|
1352
|
-
// IE 11/Edge don't find elements on a `[name='']` query in some cases.
|
|
1353
|
-
// Adding a temporary attribute to the document before the selection works
|
|
1354
|
-
// around the issue.
|
|
1355
|
-
// Interestingly, IE 10 & older don't seem to have the issue.
|
|
1356
|
-
input = document.createElement( "input" );
|
|
1357
|
-
input.setAttribute( "name", "" );
|
|
1358
|
-
el.appendChild( input );
|
|
1359
|
-
if ( !el.querySelectorAll( "[name='']" ).length ) {
|
|
1360
|
-
rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
|
|
1361
|
-
whitespace + "*(?:''|\"\")" );
|
|
1362
|
-
}
|
|
1363
|
-
|
|
1364
|
-
// Webkit/Opera - :checked should return selected option elements
|
|
1365
|
-
// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
|
|
1366
|
-
// IE8 throws error here and will not see later tests
|
|
1367
|
-
if ( !el.querySelectorAll( ":checked" ).length ) {
|
|
1368
|
-
rbuggyQSA.push( ":checked" );
|
|
1369
|
-
}
|
|
1370
|
-
|
|
1371
|
-
// Support: Safari 8+, iOS 8+
|
|
1372
|
-
// https://bugs.webkit.org/show_bug.cgi?id=136851
|
|
1373
|
-
// In-page `selector#id sibling-combinator selector` fails
|
|
1374
|
-
if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
|
|
1375
|
-
rbuggyQSA.push( ".#.+[+~]" );
|
|
1376
|
-
}
|
|
1377
|
-
|
|
1378
|
-
// Support: Firefox <=3.6 - 5 only
|
|
1379
|
-
// Old Firefox doesn't throw on a badly-escaped identifier.
|
|
1380
|
-
el.querySelectorAll( "\\\f" );
|
|
1381
|
-
rbuggyQSA.push( "[\\r\\n\\f]" );
|
|
1382
|
-
} );
|
|
1266
|
+
var input;
|
|
1383
1267
|
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1268
|
+
documentElement.appendChild( el ).innerHTML =
|
|
1269
|
+
"<a id='" + expando + "' href='' disabled='disabled'></a>" +
|
|
1270
|
+
"<select id='" + expando + "-\r\\' disabled='disabled'>" +
|
|
1271
|
+
"<option selected=''></option></select>";
|
|
1387
1272
|
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
// Support: IE8
|
|
1395
|
-
// Enforce case-sensitivity of name attribute
|
|
1396
|
-
if ( el.querySelectorAll( "[name=d]" ).length ) {
|
|
1397
|
-
rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
|
|
1398
|
-
}
|
|
1399
|
-
|
|
1400
|
-
// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
|
|
1401
|
-
// IE8 throws error here and will not see later tests
|
|
1402
|
-
if ( el.querySelectorAll( ":enabled" ).length !== 2 ) {
|
|
1403
|
-
rbuggyQSA.push( ":enabled", ":disabled" );
|
|
1404
|
-
}
|
|
1273
|
+
// Support: iOS <=7 - 8 only
|
|
1274
|
+
// Boolean attributes and "value" are not treated correctly in some XML documents
|
|
1275
|
+
if ( !el.querySelectorAll( "[selected]" ).length ) {
|
|
1276
|
+
rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
|
|
1277
|
+
}
|
|
1405
1278
|
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
rbuggyQSA.push( ":enabled", ":disabled" );
|
|
1411
|
-
}
|
|
1279
|
+
// Support: iOS <=7 - 8 only
|
|
1280
|
+
if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
|
|
1281
|
+
rbuggyQSA.push( "~=" );
|
|
1282
|
+
}
|
|
1412
1283
|
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1284
|
+
// Support: iOS 8 only
|
|
1285
|
+
// https://bugs.webkit.org/show_bug.cgi?id=136851
|
|
1286
|
+
// In-page `selector#id sibling-combinator selector` fails
|
|
1287
|
+
if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
|
|
1288
|
+
rbuggyQSA.push( ".#.+[+~]" );
|
|
1289
|
+
}
|
|
1419
1290
|
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1291
|
+
// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+
|
|
1292
|
+
// In some of the document kinds, these selectors wouldn't work natively.
|
|
1293
|
+
// This is probably OK but for backwards compatibility we want to maintain
|
|
1294
|
+
// handling them through jQuery traversal in jQuery 3.x.
|
|
1295
|
+
if ( !el.querySelectorAll( ":checked" ).length ) {
|
|
1296
|
+
rbuggyQSA.push( ":checked" );
|
|
1297
|
+
}
|
|
1425
1298
|
|
|
1426
|
-
|
|
1299
|
+
// Support: Windows 8 Native Apps
|
|
1300
|
+
// The type and name attributes are restricted during .innerHTML assignment
|
|
1301
|
+
input = document.createElement( "input" );
|
|
1302
|
+
input.setAttribute( "type", "hidden" );
|
|
1303
|
+
el.appendChild( input ).setAttribute( "name", "D" );
|
|
1304
|
+
|
|
1305
|
+
// Support: IE 9 - 11+
|
|
1306
|
+
// IE's :disabled selector does not pick up the children of disabled fieldsets
|
|
1307
|
+
// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+
|
|
1308
|
+
// In some of the document kinds, these selectors wouldn't work natively.
|
|
1309
|
+
// This is probably OK but for backwards compatibility we want to maintain
|
|
1310
|
+
// handling them through jQuery traversal in jQuery 3.x.
|
|
1311
|
+
documentElement.appendChild( el ).disabled = true;
|
|
1312
|
+
if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
|
|
1313
|
+
rbuggyQSA.push( ":enabled", ":disabled" );
|
|
1314
|
+
}
|
|
1315
|
+
|
|
1316
|
+
// Support: IE 11+, Edge 15 - 18+
|
|
1317
|
+
// IE 11/Edge don't find elements on a `[name='']` query in some cases.
|
|
1318
|
+
// Adding a temporary attribute to the document before the selection works
|
|
1319
|
+
// around the issue.
|
|
1320
|
+
// Interestingly, IE 10 & older don't seem to have the issue.
|
|
1321
|
+
input = document.createElement( "input" );
|
|
1322
|
+
input.setAttribute( "name", "" );
|
|
1323
|
+
el.appendChild( input );
|
|
1324
|
+
if ( !el.querySelectorAll( "[name='']" ).length ) {
|
|
1325
|
+
rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
|
|
1326
|
+
whitespace + "*(?:''|\"\")" );
|
|
1327
|
+
}
|
|
1328
|
+
} );
|
|
1427
1329
|
|
|
1428
|
-
|
|
1429
|
-
// on a disconnected node (IE 9)
|
|
1430
|
-
support.disconnectedMatch = matches.call( el, "*" );
|
|
1330
|
+
if ( !support.cssHas ) {
|
|
1431
1331
|
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1332
|
+
// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+
|
|
1333
|
+
// Our regular `try-catch` mechanism fails to detect natively-unsupported
|
|
1334
|
+
// pseudo-classes inside `:has()` (such as `:has(:contains("Foo"))`)
|
|
1335
|
+
// in browsers that parse the `:has()` argument as a forgiving selector list.
|
|
1336
|
+
// https://drafts.csswg.org/selectors/#relational now requires the argument
|
|
1337
|
+
// to be parsed unforgivingly, but browsers have not yet fully adjusted.
|
|
1338
|
+
rbuggyQSA.push( ":has" );
|
|
1437
1339
|
}
|
|
1438
1340
|
|
|
1439
1341
|
rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) );
|
|
1440
|
-
rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) );
|
|
1441
|
-
|
|
1442
|
-
/* Contains
|
|
1443
|
-
---------------------------------------------------------------------- */
|
|
1444
|
-
hasCompare = rnative.test( docElem.compareDocumentPosition );
|
|
1445
|
-
|
|
1446
|
-
// Element contains another
|
|
1447
|
-
// Purposefully self-exclusive
|
|
1448
|
-
// As in, an element does not contain itself
|
|
1449
|
-
contains = hasCompare || rnative.test( docElem.contains ) ?
|
|
1450
|
-
function( a, b ) {
|
|
1451
|
-
var adown = a.nodeType === 9 ? a.documentElement : a,
|
|
1452
|
-
bup = b && b.parentNode;
|
|
1453
|
-
return a === bup || !!( bup && bup.nodeType === 1 && (
|
|
1454
|
-
adown.contains ?
|
|
1455
|
-
adown.contains( bup ) :
|
|
1456
|
-
a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
|
|
1457
|
-
) );
|
|
1458
|
-
} :
|
|
1459
|
-
function( a, b ) {
|
|
1460
|
-
if ( b ) {
|
|
1461
|
-
while ( ( b = b.parentNode ) ) {
|
|
1462
|
-
if ( b === a ) {
|
|
1463
|
-
return true;
|
|
1464
|
-
}
|
|
1465
|
-
}
|
|
1466
|
-
}
|
|
1467
|
-
return false;
|
|
1468
|
-
};
|
|
1469
1342
|
|
|
1470
1343
|
/* Sorting
|
|
1471
1344
|
---------------------------------------------------------------------- */
|
|
1472
1345
|
|
|
1473
1346
|
// Document order sorting
|
|
1474
|
-
sortOrder =
|
|
1475
|
-
function( a, b ) {
|
|
1347
|
+
sortOrder = function( a, b ) {
|
|
1476
1348
|
|
|
1477
1349
|
// Flag for duplicate removal
|
|
1478
1350
|
if ( a === b ) {
|
|
@@ -1506,8 +1378,8 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
|
1506
1378
|
// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
|
|
1507
1379
|
// two documents; shallow comparisons work.
|
|
1508
1380
|
// eslint-disable-next-line eqeqeq
|
|
1509
|
-
if ( a
|
|
1510
|
-
contains( preferredDoc, a ) ) {
|
|
1381
|
+
if ( a === document || a.ownerDocument == preferredDoc &&
|
|
1382
|
+
find.contains( preferredDoc, a ) ) {
|
|
1511
1383
|
return -1;
|
|
1512
1384
|
}
|
|
1513
1385
|
|
|
@@ -1515,100 +1387,33 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
|
1515
1387
|
// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
|
|
1516
1388
|
// two documents; shallow comparisons work.
|
|
1517
1389
|
// eslint-disable-next-line eqeqeq
|
|
1518
|
-
if ( b
|
|
1519
|
-
contains( preferredDoc, b ) ) {
|
|
1390
|
+
if ( b === document || b.ownerDocument == preferredDoc &&
|
|
1391
|
+
find.contains( preferredDoc, b ) ) {
|
|
1520
1392
|
return 1;
|
|
1521
1393
|
}
|
|
1522
1394
|
|
|
1523
1395
|
// Maintain original order
|
|
1524
1396
|
return sortInput ?
|
|
1525
|
-
( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
|
|
1397
|
+
( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
|
|
1526
1398
|
0;
|
|
1527
1399
|
}
|
|
1528
1400
|
|
|
1529
1401
|
return compare & 4 ? -1 : 1;
|
|
1530
|
-
} :
|
|
1531
|
-
function( a, b ) {
|
|
1532
|
-
|
|
1533
|
-
// Exit early if the nodes are identical
|
|
1534
|
-
if ( a === b ) {
|
|
1535
|
-
hasDuplicate = true;
|
|
1536
|
-
return 0;
|
|
1537
|
-
}
|
|
1538
|
-
|
|
1539
|
-
var cur,
|
|
1540
|
-
i = 0,
|
|
1541
|
-
aup = a.parentNode,
|
|
1542
|
-
bup = b.parentNode,
|
|
1543
|
-
ap = [ a ],
|
|
1544
|
-
bp = [ b ];
|
|
1545
|
-
|
|
1546
|
-
// Parentless nodes are either documents or disconnected
|
|
1547
|
-
if ( !aup || !bup ) {
|
|
1548
|
-
|
|
1549
|
-
// Support: IE 11+, Edge 17 - 18+
|
|
1550
|
-
// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
|
|
1551
|
-
// two documents; shallow comparisons work.
|
|
1552
|
-
/* eslint-disable eqeqeq */
|
|
1553
|
-
return a == document ? -1 :
|
|
1554
|
-
b == document ? 1 :
|
|
1555
|
-
/* eslint-enable eqeqeq */
|
|
1556
|
-
aup ? -1 :
|
|
1557
|
-
bup ? 1 :
|
|
1558
|
-
sortInput ?
|
|
1559
|
-
( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
|
|
1560
|
-
0;
|
|
1561
|
-
|
|
1562
|
-
// If the nodes are siblings, we can do a quick check
|
|
1563
|
-
} else if ( aup === bup ) {
|
|
1564
|
-
return siblingCheck( a, b );
|
|
1565
|
-
}
|
|
1566
|
-
|
|
1567
|
-
// Otherwise we need full lists of their ancestors for comparison
|
|
1568
|
-
cur = a;
|
|
1569
|
-
while ( ( cur = cur.parentNode ) ) {
|
|
1570
|
-
ap.unshift( cur );
|
|
1571
|
-
}
|
|
1572
|
-
cur = b;
|
|
1573
|
-
while ( ( cur = cur.parentNode ) ) {
|
|
1574
|
-
bp.unshift( cur );
|
|
1575
|
-
}
|
|
1576
|
-
|
|
1577
|
-
// Walk down the tree looking for a discrepancy
|
|
1578
|
-
while ( ap[ i ] === bp[ i ] ) {
|
|
1579
|
-
i++;
|
|
1580
|
-
}
|
|
1581
|
-
|
|
1582
|
-
return i ?
|
|
1583
|
-
|
|
1584
|
-
// Do a sibling check if the nodes have a common ancestor
|
|
1585
|
-
siblingCheck( ap[ i ], bp[ i ] ) :
|
|
1586
|
-
|
|
1587
|
-
// Otherwise nodes in our document sort first
|
|
1588
|
-
// Support: IE 11+, Edge 17 - 18+
|
|
1589
|
-
// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
|
|
1590
|
-
// two documents; shallow comparisons work.
|
|
1591
|
-
/* eslint-disable eqeqeq */
|
|
1592
|
-
ap[ i ] == preferredDoc ? -1 :
|
|
1593
|
-
bp[ i ] == preferredDoc ? 1 :
|
|
1594
|
-
/* eslint-enable eqeqeq */
|
|
1595
|
-
0;
|
|
1596
1402
|
};
|
|
1597
1403
|
|
|
1598
1404
|
return document;
|
|
1599
|
-
}
|
|
1405
|
+
}
|
|
1600
1406
|
|
|
1601
|
-
|
|
1602
|
-
return
|
|
1407
|
+
find.matches = function( expr, elements ) {
|
|
1408
|
+
return find( expr, null, null, elements );
|
|
1603
1409
|
};
|
|
1604
1410
|
|
|
1605
|
-
|
|
1411
|
+
find.matchesSelector = function( elem, expr ) {
|
|
1606
1412
|
setDocument( elem );
|
|
1607
1413
|
|
|
1608
|
-
if (
|
|
1414
|
+
if ( documentIsHTML &&
|
|
1609
1415
|
!nonnativeSelectorCache[ expr + " " ] &&
|
|
1610
|
-
( !
|
|
1611
|
-
( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
|
|
1416
|
+
( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
|
|
1612
1417
|
|
|
1613
1418
|
try {
|
|
1614
1419
|
var ret = matches.call( elem, expr );
|
|
@@ -1616,9 +1421,9 @@ Sizzle.matchesSelector = function( elem, expr ) {
|
|
|
1616
1421
|
// IE 9's matchesSelector returns false on disconnected nodes
|
|
1617
1422
|
if ( ret || support.disconnectedMatch ||
|
|
1618
1423
|
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1424
|
+
// As well, disconnected nodes are said to be in a document
|
|
1425
|
+
// fragment in IE 9
|
|
1426
|
+
elem.document && elem.document.nodeType !== 11 ) {
|
|
1622
1427
|
return ret;
|
|
1623
1428
|
}
|
|
1624
1429
|
} catch ( e ) {
|
|
@@ -1626,10 +1431,10 @@ Sizzle.matchesSelector = function( elem, expr ) {
|
|
|
1626
1431
|
}
|
|
1627
1432
|
}
|
|
1628
1433
|
|
|
1629
|
-
return
|
|
1434
|
+
return find( expr, document, null, [ elem ] ).length > 0;
|
|
1630
1435
|
};
|
|
1631
1436
|
|
|
1632
|
-
|
|
1437
|
+
find.contains = function( context, elem ) {
|
|
1633
1438
|
|
|
1634
1439
|
// Set document vars if needed
|
|
1635
1440
|
// Support: IE 11+, Edge 17 - 18+
|
|
@@ -1639,10 +1444,11 @@ Sizzle.contains = function( context, elem ) {
|
|
|
1639
1444
|
if ( ( context.ownerDocument || context ) != document ) {
|
|
1640
1445
|
setDocument( context );
|
|
1641
1446
|
}
|
|
1642
|
-
return contains( context, elem );
|
|
1447
|
+
return jQuery.contains( context, elem );
|
|
1643
1448
|
};
|
|
1644
1449
|
|
|
1645
|
-
|
|
1450
|
+
|
|
1451
|
+
find.attr = function( elem, name ) {
|
|
1646
1452
|
|
|
1647
1453
|
// Set document vars if needed
|
|
1648
1454
|
// Support: IE 11+, Edge 17 - 18+
|
|
@@ -1655,25 +1461,19 @@ Sizzle.attr = function( elem, name ) {
|
|
|
1655
1461
|
|
|
1656
1462
|
var fn = Expr.attrHandle[ name.toLowerCase() ],
|
|
1657
1463
|
|
|
1658
|
-
// Don't get fooled by Object.prototype properties (
|
|
1464
|
+
// Don't get fooled by Object.prototype properties (see trac-13807)
|
|
1659
1465
|
val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
|
|
1660
1466
|
fn( elem, name, !documentIsHTML ) :
|
|
1661
1467
|
undefined;
|
|
1662
1468
|
|
|
1663
|
-
|
|
1664
|
-
val
|
|
1665
|
-
|
|
1666
|
-
elem.getAttribute( name ) :
|
|
1667
|
-
( val = elem.getAttributeNode( name ) ) && val.specified ?
|
|
1668
|
-
val.value :
|
|
1669
|
-
null;
|
|
1670
|
-
};
|
|
1469
|
+
if ( val !== undefined ) {
|
|
1470
|
+
return val;
|
|
1471
|
+
}
|
|
1671
1472
|
|
|
1672
|
-
|
|
1673
|
-
return ( sel + "" ).replace( rcssescape, fcssescape );
|
|
1473
|
+
return elem.getAttribute( name );
|
|
1674
1474
|
};
|
|
1675
1475
|
|
|
1676
|
-
|
|
1476
|
+
find.error = function( msg ) {
|
|
1677
1477
|
throw new Error( "Syntax error, unrecognized expression: " + msg );
|
|
1678
1478
|
};
|
|
1679
1479
|
|
|
@@ -1681,16 +1481,20 @@ Sizzle.error = function( msg ) {
|
|
|
1681
1481
|
* Document sorting and removing duplicates
|
|
1682
1482
|
* @param {ArrayLike} results
|
|
1683
1483
|
*/
|
|
1684
|
-
|
|
1484
|
+
jQuery.uniqueSort = function( results ) {
|
|
1685
1485
|
var elem,
|
|
1686
1486
|
duplicates = [],
|
|
1687
1487
|
j = 0,
|
|
1688
1488
|
i = 0;
|
|
1689
1489
|
|
|
1690
1490
|
// Unless we *know* we can detect duplicates, assume their presence
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1491
|
+
//
|
|
1492
|
+
// Support: Android <=4.0+
|
|
1493
|
+
// Testing for detecting duplicates is unpredictable so instead assume we can't
|
|
1494
|
+
// depend on duplicate detection in all browsers without a stable sort.
|
|
1495
|
+
hasDuplicate = !support.sortStable;
|
|
1496
|
+
sortInput = !support.sortStable && slice.call( results, 0 );
|
|
1497
|
+
sort.call( results, sortOrder );
|
|
1694
1498
|
|
|
1695
1499
|
if ( hasDuplicate ) {
|
|
1696
1500
|
while ( ( elem = results[ i++ ] ) ) {
|
|
@@ -1699,7 +1503,7 @@ Sizzle.uniqueSort = function( results ) {
|
|
|
1699
1503
|
}
|
|
1700
1504
|
}
|
|
1701
1505
|
while ( j-- ) {
|
|
1702
|
-
|
|
1506
|
+
splice.call( results, duplicates[ j ], 1 );
|
|
1703
1507
|
}
|
|
1704
1508
|
}
|
|
1705
1509
|
|
|
@@ -1707,50 +1511,14 @@ Sizzle.uniqueSort = function( results ) {
|
|
|
1707
1511
|
// See https://github.com/jquery/sizzle/pull/225
|
|
1708
1512
|
sortInput = null;
|
|
1709
1513
|
|
|
1710
|
-
return results;
|
|
1711
|
-
};
|
|
1712
|
-
|
|
1713
|
-
/**
|
|
1714
|
-
* Utility function for retrieving the text value of an array of DOM nodes
|
|
1715
|
-
* @param {Array|Element} elem
|
|
1716
|
-
*/
|
|
1717
|
-
getText = Sizzle.getText = function( elem ) {
|
|
1718
|
-
var node,
|
|
1719
|
-
ret = "",
|
|
1720
|
-
i = 0,
|
|
1721
|
-
nodeType = elem.nodeType;
|
|
1722
|
-
|
|
1723
|
-
if ( !nodeType ) {
|
|
1724
|
-
|
|
1725
|
-
// If no nodeType, this is expected to be an array
|
|
1726
|
-
while ( ( node = elem[ i++ ] ) ) {
|
|
1727
|
-
|
|
1728
|
-
// Do not traverse comment nodes
|
|
1729
|
-
ret += getText( node );
|
|
1730
|
-
}
|
|
1731
|
-
} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
|
|
1732
|
-
|
|
1733
|
-
// Use textContent for elements
|
|
1734
|
-
// innerText usage removed for consistency of new lines (jQuery #11153)
|
|
1735
|
-
if ( typeof elem.textContent === "string" ) {
|
|
1736
|
-
return elem.textContent;
|
|
1737
|
-
} else {
|
|
1738
|
-
|
|
1739
|
-
// Traverse its children
|
|
1740
|
-
for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
|
|
1741
|
-
ret += getText( elem );
|
|
1742
|
-
}
|
|
1743
|
-
}
|
|
1744
|
-
} else if ( nodeType === 3 || nodeType === 4 ) {
|
|
1745
|
-
return elem.nodeValue;
|
|
1746
|
-
}
|
|
1747
|
-
|
|
1748
|
-
// Do not include comment or processing instruction nodes
|
|
1514
|
+
return results;
|
|
1515
|
+
};
|
|
1749
1516
|
|
|
1750
|
-
|
|
1517
|
+
jQuery.fn.uniqueSort = function() {
|
|
1518
|
+
return this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );
|
|
1751
1519
|
};
|
|
1752
1520
|
|
|
1753
|
-
Expr =
|
|
1521
|
+
Expr = jQuery.expr = {
|
|
1754
1522
|
|
|
1755
1523
|
// Can be adjusted by the user
|
|
1756
1524
|
cacheLength: 50,
|
|
@@ -1771,12 +1539,12 @@ Expr = Sizzle.selectors = {
|
|
|
1771
1539
|
},
|
|
1772
1540
|
|
|
1773
1541
|
preFilter: {
|
|
1774
|
-
|
|
1542
|
+
ATTR: function( match ) {
|
|
1775
1543
|
match[ 1 ] = match[ 1 ].replace( runescape, funescape );
|
|
1776
1544
|
|
|
1777
1545
|
// Move the given value to match[3] whether quoted or unquoted
|
|
1778
|
-
match[ 3 ] = ( match[ 3 ] || match[ 4 ] ||
|
|
1779
|
-
|
|
1546
|
+
match[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || "" )
|
|
1547
|
+
.replace( runescape, funescape );
|
|
1780
1548
|
|
|
1781
1549
|
if ( match[ 2 ] === "~=" ) {
|
|
1782
1550
|
match[ 3 ] = " " + match[ 3 ] + " ";
|
|
@@ -1785,7 +1553,7 @@ Expr = Sizzle.selectors = {
|
|
|
1785
1553
|
return match.slice( 0, 4 );
|
|
1786
1554
|
},
|
|
1787
1555
|
|
|
1788
|
-
|
|
1556
|
+
CHILD: function( match ) {
|
|
1789
1557
|
|
|
1790
1558
|
/* matches from matchExpr["CHILD"]
|
|
1791
1559
|
1 type (only|nth|...)
|
|
@@ -1803,29 +1571,30 @@ Expr = Sizzle.selectors = {
|
|
|
1803
1571
|
|
|
1804
1572
|
// nth-* requires argument
|
|
1805
1573
|
if ( !match[ 3 ] ) {
|
|
1806
|
-
|
|
1574
|
+
find.error( match[ 0 ] );
|
|
1807
1575
|
}
|
|
1808
1576
|
|
|
1809
1577
|
// numeric x and y parameters for Expr.filter.CHILD
|
|
1810
1578
|
// remember that false/true cast respectively to 0/1
|
|
1811
1579
|
match[ 4 ] = +( match[ 4 ] ?
|
|
1812
1580
|
match[ 5 ] + ( match[ 6 ] || 1 ) :
|
|
1813
|
-
2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" )
|
|
1581
|
+
2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" )
|
|
1582
|
+
);
|
|
1814
1583
|
match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" );
|
|
1815
1584
|
|
|
1816
|
-
|
|
1585
|
+
// other types prohibit arguments
|
|
1817
1586
|
} else if ( match[ 3 ] ) {
|
|
1818
|
-
|
|
1587
|
+
find.error( match[ 0 ] );
|
|
1819
1588
|
}
|
|
1820
1589
|
|
|
1821
1590
|
return match;
|
|
1822
1591
|
},
|
|
1823
1592
|
|
|
1824
|
-
|
|
1593
|
+
PSEUDO: function( match ) {
|
|
1825
1594
|
var excess,
|
|
1826
1595
|
unquoted = !match[ 6 ] && match[ 2 ];
|
|
1827
1596
|
|
|
1828
|
-
if ( matchExpr
|
|
1597
|
+
if ( matchExpr.CHILD.test( match[ 0 ] ) ) {
|
|
1829
1598
|
return null;
|
|
1830
1599
|
}
|
|
1831
1600
|
|
|
@@ -1854,36 +1623,36 @@ Expr = Sizzle.selectors = {
|
|
|
1854
1623
|
|
|
1855
1624
|
filter: {
|
|
1856
1625
|
|
|
1857
|
-
|
|
1858
|
-
var
|
|
1626
|
+
TAG: function( nodeNameSelector ) {
|
|
1627
|
+
var expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
|
|
1859
1628
|
return nodeNameSelector === "*" ?
|
|
1860
1629
|
function() {
|
|
1861
1630
|
return true;
|
|
1862
1631
|
} :
|
|
1863
1632
|
function( elem ) {
|
|
1864
|
-
return
|
|
1633
|
+
return nodeName( elem, expectedNodeName );
|
|
1865
1634
|
};
|
|
1866
1635
|
},
|
|
1867
1636
|
|
|
1868
|
-
|
|
1637
|
+
CLASS: function( className ) {
|
|
1869
1638
|
var pattern = classCache[ className + " " ];
|
|
1870
1639
|
|
|
1871
1640
|
return pattern ||
|
|
1872
|
-
( pattern = new RegExp( "(^|" + whitespace +
|
|
1873
|
-
"
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1641
|
+
( pattern = new RegExp( "(^|" + whitespace + ")" + className +
|
|
1642
|
+
"(" + whitespace + "|$)" ) ) &&
|
|
1643
|
+
classCache( className, function( elem ) {
|
|
1644
|
+
return pattern.test(
|
|
1645
|
+
typeof elem.className === "string" && elem.className ||
|
|
1646
|
+
typeof elem.getAttribute !== "undefined" &&
|
|
1647
|
+
elem.getAttribute( "class" ) ||
|
|
1648
|
+
""
|
|
1649
|
+
);
|
|
1881
1650
|
} );
|
|
1882
1651
|
},
|
|
1883
1652
|
|
|
1884
|
-
|
|
1653
|
+
ATTR: function( name, operator, check ) {
|
|
1885
1654
|
return function( elem ) {
|
|
1886
|
-
var result =
|
|
1655
|
+
var result = find.attr( elem, name );
|
|
1887
1656
|
|
|
1888
1657
|
if ( result == null ) {
|
|
1889
1658
|
return operator === "!=";
|
|
@@ -1894,22 +1663,34 @@ Expr = Sizzle.selectors = {
|
|
|
1894
1663
|
|
|
1895
1664
|
result += "";
|
|
1896
1665
|
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1666
|
+
if ( operator === "=" ) {
|
|
1667
|
+
return result === check;
|
|
1668
|
+
}
|
|
1669
|
+
if ( operator === "!=" ) {
|
|
1670
|
+
return result !== check;
|
|
1671
|
+
}
|
|
1672
|
+
if ( operator === "^=" ) {
|
|
1673
|
+
return check && result.indexOf( check ) === 0;
|
|
1674
|
+
}
|
|
1675
|
+
if ( operator === "*=" ) {
|
|
1676
|
+
return check && result.indexOf( check ) > -1;
|
|
1677
|
+
}
|
|
1678
|
+
if ( operator === "$=" ) {
|
|
1679
|
+
return check && result.slice( -check.length ) === check;
|
|
1680
|
+
}
|
|
1681
|
+
if ( operator === "~=" ) {
|
|
1682
|
+
return ( " " + result.replace( rwhitespace, " " ) + " " )
|
|
1683
|
+
.indexOf( check ) > -1;
|
|
1684
|
+
}
|
|
1685
|
+
if ( operator === "|=" ) {
|
|
1686
|
+
return result === check || result.slice( 0, check.length + 1 ) === check + "-";
|
|
1687
|
+
}
|
|
1908
1688
|
|
|
1689
|
+
return false;
|
|
1909
1690
|
};
|
|
1910
1691
|
},
|
|
1911
1692
|
|
|
1912
|
-
|
|
1693
|
+
CHILD: function( type, what, _argument, first, last ) {
|
|
1913
1694
|
var simple = type.slice( 0, 3 ) !== "nth",
|
|
1914
1695
|
forward = type.slice( -4 ) !== "last",
|
|
1915
1696
|
ofType = what === "of-type";
|
|
@@ -1922,7 +1703,7 @@ Expr = Sizzle.selectors = {
|
|
|
1922
1703
|
} :
|
|
1923
1704
|
|
|
1924
1705
|
function( elem, _context, xml ) {
|
|
1925
|
-
var cache,
|
|
1706
|
+
var cache, outerCache, node, nodeIndex, start,
|
|
1926
1707
|
dir = simple !== forward ? "nextSibling" : "previousSibling",
|
|
1927
1708
|
parent = elem.parentNode,
|
|
1928
1709
|
name = ofType && elem.nodeName.toLowerCase(),
|
|
@@ -1937,7 +1718,7 @@ Expr = Sizzle.selectors = {
|
|
|
1937
1718
|
node = elem;
|
|
1938
1719
|
while ( ( node = node[ dir ] ) ) {
|
|
1939
1720
|
if ( ofType ?
|
|
1940
|
-
|
|
1721
|
+
nodeName( node, name ) :
|
|
1941
1722
|
node.nodeType === 1 ) {
|
|
1942
1723
|
|
|
1943
1724
|
return false;
|
|
@@ -1956,17 +1737,8 @@ Expr = Sizzle.selectors = {
|
|
|
1956
1737
|
if ( forward && useCache ) {
|
|
1957
1738
|
|
|
1958
1739
|
// Seek `elem` from a previously-cached index
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
node = parent;
|
|
1962
|
-
outerCache = node[ expando ] || ( node[ expando ] = {} );
|
|
1963
|
-
|
|
1964
|
-
// Support: IE <9 only
|
|
1965
|
-
// Defend against cloned attroperties (jQuery gh-1709)
|
|
1966
|
-
uniqueCache = outerCache[ node.uniqueID ] ||
|
|
1967
|
-
( outerCache[ node.uniqueID ] = {} );
|
|
1968
|
-
|
|
1969
|
-
cache = uniqueCache[ type ] || [];
|
|
1740
|
+
outerCache = parent[ expando ] || ( parent[ expando ] = {} );
|
|
1741
|
+
cache = outerCache[ type ] || [];
|
|
1970
1742
|
nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
|
|
1971
1743
|
diff = nodeIndex && cache[ 2 ];
|
|
1972
1744
|
node = nodeIndex && parent.childNodes[ nodeIndex ];
|
|
@@ -1978,7 +1750,7 @@ Expr = Sizzle.selectors = {
|
|
|
1978
1750
|
|
|
1979
1751
|
// When found, cache indexes on `parent` and break
|
|
1980
1752
|
if ( node.nodeType === 1 && ++diff && node === elem ) {
|
|
1981
|
-
|
|
1753
|
+
outerCache[ type ] = [ dirruns, nodeIndex, diff ];
|
|
1982
1754
|
break;
|
|
1983
1755
|
}
|
|
1984
1756
|
}
|
|
@@ -1987,17 +1759,8 @@ Expr = Sizzle.selectors = {
|
|
|
1987
1759
|
|
|
1988
1760
|
// Use previously-cached element index if available
|
|
1989
1761
|
if ( useCache ) {
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
node = elem;
|
|
1993
|
-
outerCache = node[ expando ] || ( node[ expando ] = {} );
|
|
1994
|
-
|
|
1995
|
-
// Support: IE <9 only
|
|
1996
|
-
// Defend against cloned attroperties (jQuery gh-1709)
|
|
1997
|
-
uniqueCache = outerCache[ node.uniqueID ] ||
|
|
1998
|
-
( outerCache[ node.uniqueID ] = {} );
|
|
1999
|
-
|
|
2000
|
-
cache = uniqueCache[ type ] || [];
|
|
1762
|
+
outerCache = elem[ expando ] || ( elem[ expando ] = {} );
|
|
1763
|
+
cache = outerCache[ type ] || [];
|
|
2001
1764
|
nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
|
|
2002
1765
|
diff = nodeIndex;
|
|
2003
1766
|
}
|
|
@@ -2011,7 +1774,7 @@ Expr = Sizzle.selectors = {
|
|
|
2011
1774
|
( diff = nodeIndex = 0 ) || start.pop() ) ) {
|
|
2012
1775
|
|
|
2013
1776
|
if ( ( ofType ?
|
|
2014
|
-
|
|
1777
|
+
nodeName( node, name ) :
|
|
2015
1778
|
node.nodeType === 1 ) &&
|
|
2016
1779
|
++diff ) {
|
|
2017
1780
|
|
|
@@ -2019,13 +1782,7 @@ Expr = Sizzle.selectors = {
|
|
|
2019
1782
|
if ( useCache ) {
|
|
2020
1783
|
outerCache = node[ expando ] ||
|
|
2021
1784
|
( node[ expando ] = {} );
|
|
2022
|
-
|
|
2023
|
-
// Support: IE <9 only
|
|
2024
|
-
// Defend against cloned attroperties (jQuery gh-1709)
|
|
2025
|
-
uniqueCache = outerCache[ node.uniqueID ] ||
|
|
2026
|
-
( outerCache[ node.uniqueID ] = {} );
|
|
2027
|
-
|
|
2028
|
-
uniqueCache[ type ] = [ dirruns, diff ];
|
|
1785
|
+
outerCache[ type ] = [ dirruns, diff ];
|
|
2029
1786
|
}
|
|
2030
1787
|
|
|
2031
1788
|
if ( node === elem ) {
|
|
@@ -2043,19 +1800,19 @@ Expr = Sizzle.selectors = {
|
|
|
2043
1800
|
};
|
|
2044
1801
|
},
|
|
2045
1802
|
|
|
2046
|
-
|
|
1803
|
+
PSEUDO: function( pseudo, argument ) {
|
|
2047
1804
|
|
|
2048
1805
|
// pseudo-class names are case-insensitive
|
|
2049
|
-
//
|
|
1806
|
+
// https://www.w3.org/TR/selectors/#pseudo-classes
|
|
2050
1807
|
// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
|
|
2051
1808
|
// Remember that setFilters inherits from pseudos
|
|
2052
1809
|
var args,
|
|
2053
1810
|
fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
|
|
2054
|
-
|
|
1811
|
+
find.error( "unsupported pseudo: " + pseudo );
|
|
2055
1812
|
|
|
2056
1813
|
// The user may use createPseudo to indicate that
|
|
2057
1814
|
// arguments are needed to create the filter function
|
|
2058
|
-
// just as
|
|
1815
|
+
// just as jQuery does
|
|
2059
1816
|
if ( fn[ expando ] ) {
|
|
2060
1817
|
return fn( argument );
|
|
2061
1818
|
}
|
|
@@ -2069,7 +1826,7 @@ Expr = Sizzle.selectors = {
|
|
|
2069
1826
|
matched = fn( seed, argument ),
|
|
2070
1827
|
i = matched.length;
|
|
2071
1828
|
while ( i-- ) {
|
|
2072
|
-
idx = indexOf( seed, matched[ i ] );
|
|
1829
|
+
idx = indexOf.call( seed, matched[ i ] );
|
|
2073
1830
|
seed[ idx ] = !( matches[ idx ] = matched[ i ] );
|
|
2074
1831
|
}
|
|
2075
1832
|
} ) :
|
|
@@ -2085,14 +1842,14 @@ Expr = Sizzle.selectors = {
|
|
|
2085
1842
|
pseudos: {
|
|
2086
1843
|
|
|
2087
1844
|
// Potentially complex pseudos
|
|
2088
|
-
|
|
1845
|
+
not: markFunction( function( selector ) {
|
|
2089
1846
|
|
|
2090
1847
|
// Trim the selector passed to compile
|
|
2091
1848
|
// to avoid treating leading and trailing
|
|
2092
1849
|
// spaces as combinators
|
|
2093
1850
|
var input = [],
|
|
2094
1851
|
results = [],
|
|
2095
|
-
matcher = compile( selector.replace(
|
|
1852
|
+
matcher = compile( selector.replace( rtrimCSS, "$1" ) );
|
|
2096
1853
|
|
|
2097
1854
|
return matcher[ expando ] ?
|
|
2098
1855
|
markFunction( function( seed, matches, _context, xml ) {
|
|
@@ -2111,22 +1868,23 @@ Expr = Sizzle.selectors = {
|
|
|
2111
1868
|
input[ 0 ] = elem;
|
|
2112
1869
|
matcher( input, null, xml, results );
|
|
2113
1870
|
|
|
2114
|
-
// Don't keep the element
|
|
1871
|
+
// Don't keep the element
|
|
1872
|
+
// (see https://github.com/jquery/sizzle/issues/299)
|
|
2115
1873
|
input[ 0 ] = null;
|
|
2116
1874
|
return !results.pop();
|
|
2117
1875
|
};
|
|
2118
1876
|
} ),
|
|
2119
1877
|
|
|
2120
|
-
|
|
1878
|
+
has: markFunction( function( selector ) {
|
|
2121
1879
|
return function( elem ) {
|
|
2122
|
-
return
|
|
1880
|
+
return find( selector, elem ).length > 0;
|
|
2123
1881
|
};
|
|
2124
1882
|
} ),
|
|
2125
1883
|
|
|
2126
|
-
|
|
1884
|
+
contains: markFunction( function( text ) {
|
|
2127
1885
|
text = text.replace( runescape, funescape );
|
|
2128
1886
|
return function( elem ) {
|
|
2129
|
-
return ( elem.textContent ||
|
|
1887
|
+
return ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;
|
|
2130
1888
|
};
|
|
2131
1889
|
} ),
|
|
2132
1890
|
|
|
@@ -2136,12 +1894,12 @@ Expr = Sizzle.selectors = {
|
|
|
2136
1894
|
// or beginning with the identifier C immediately followed by "-".
|
|
2137
1895
|
// The matching of C against the element's language value is performed case-insensitively.
|
|
2138
1896
|
// The identifier C does not have to be a valid language name."
|
|
2139
|
-
//
|
|
2140
|
-
|
|
1897
|
+
// https://www.w3.org/TR/selectors/#lang-pseudo
|
|
1898
|
+
lang: markFunction( function( lang ) {
|
|
2141
1899
|
|
|
2142
1900
|
// lang value must be a valid identifier
|
|
2143
1901
|
if ( !ridentifier.test( lang || "" ) ) {
|
|
2144
|
-
|
|
1902
|
+
find.error( "unsupported lang: " + lang );
|
|
2145
1903
|
}
|
|
2146
1904
|
lang = lang.replace( runescape, funescape ).toLowerCase();
|
|
2147
1905
|
return function( elem ) {
|
|
@@ -2160,38 +1918,39 @@ Expr = Sizzle.selectors = {
|
|
|
2160
1918
|
} ),
|
|
2161
1919
|
|
|
2162
1920
|
// Miscellaneous
|
|
2163
|
-
|
|
1921
|
+
target: function( elem ) {
|
|
2164
1922
|
var hash = window.location && window.location.hash;
|
|
2165
1923
|
return hash && hash.slice( 1 ) === elem.id;
|
|
2166
1924
|
},
|
|
2167
1925
|
|
|
2168
|
-
|
|
2169
|
-
return elem ===
|
|
1926
|
+
root: function( elem ) {
|
|
1927
|
+
return elem === documentElement;
|
|
2170
1928
|
},
|
|
2171
1929
|
|
|
2172
|
-
|
|
2173
|
-
return elem ===
|
|
2174
|
-
|
|
1930
|
+
focus: function( elem ) {
|
|
1931
|
+
return elem === safeActiveElement() &&
|
|
1932
|
+
document.hasFocus() &&
|
|
2175
1933
|
!!( elem.type || elem.href || ~elem.tabIndex );
|
|
2176
1934
|
},
|
|
2177
1935
|
|
|
2178
1936
|
// Boolean properties
|
|
2179
|
-
|
|
2180
|
-
|
|
1937
|
+
enabled: createDisabledPseudo( false ),
|
|
1938
|
+
disabled: createDisabledPseudo( true ),
|
|
2181
1939
|
|
|
2182
|
-
|
|
1940
|
+
checked: function( elem ) {
|
|
2183
1941
|
|
|
2184
1942
|
// In CSS3, :checked should return both checked and selected elements
|
|
2185
|
-
//
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
( nodeName === "option" && !!elem.selected );
|
|
1943
|
+
// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
|
|
1944
|
+
return ( nodeName( elem, "input" ) && !!elem.checked ) ||
|
|
1945
|
+
( nodeName( elem, "option" ) && !!elem.selected );
|
|
2189
1946
|
},
|
|
2190
1947
|
|
|
2191
|
-
|
|
1948
|
+
selected: function( elem ) {
|
|
2192
1949
|
|
|
2193
|
-
//
|
|
2194
|
-
//
|
|
1950
|
+
// Support: IE <=11+
|
|
1951
|
+
// Accessing the selectedIndex property
|
|
1952
|
+
// forces the browser to treat the default option as
|
|
1953
|
+
// selected when in an optgroup.
|
|
2195
1954
|
if ( elem.parentNode ) {
|
|
2196
1955
|
// eslint-disable-next-line no-unused-expressions
|
|
2197
1956
|
elem.parentNode.selectedIndex;
|
|
@@ -2201,9 +1960,9 @@ Expr = Sizzle.selectors = {
|
|
|
2201
1960
|
},
|
|
2202
1961
|
|
|
2203
1962
|
// Contents
|
|
2204
|
-
|
|
1963
|
+
empty: function( elem ) {
|
|
2205
1964
|
|
|
2206
|
-
//
|
|
1965
|
+
// https://www.w3.org/TR/selectors/#empty-pseudo
|
|
2207
1966
|
// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
|
|
2208
1967
|
// but not by others (comment: 8; processing instruction: 7; etc.)
|
|
2209
1968
|
// nodeType < 6 works because attributes (2) do not appear as children
|
|
@@ -2215,49 +1974,49 @@ Expr = Sizzle.selectors = {
|
|
|
2215
1974
|
return true;
|
|
2216
1975
|
},
|
|
2217
1976
|
|
|
2218
|
-
|
|
2219
|
-
return !Expr.pseudos
|
|
1977
|
+
parent: function( elem ) {
|
|
1978
|
+
return !Expr.pseudos.empty( elem );
|
|
2220
1979
|
},
|
|
2221
1980
|
|
|
2222
1981
|
// Element/input types
|
|
2223
|
-
|
|
1982
|
+
header: function( elem ) {
|
|
2224
1983
|
return rheader.test( elem.nodeName );
|
|
2225
1984
|
},
|
|
2226
1985
|
|
|
2227
|
-
|
|
1986
|
+
input: function( elem ) {
|
|
2228
1987
|
return rinputs.test( elem.nodeName );
|
|
2229
1988
|
},
|
|
2230
1989
|
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
1990
|
+
button: function( elem ) {
|
|
1991
|
+
return nodeName( elem, "input" ) && elem.type === "button" ||
|
|
1992
|
+
nodeName( elem, "button" );
|
|
2234
1993
|
},
|
|
2235
1994
|
|
|
2236
|
-
|
|
1995
|
+
text: function( elem ) {
|
|
2237
1996
|
var attr;
|
|
2238
|
-
return
|
|
2239
|
-
elem.type === "text" &&
|
|
1997
|
+
return nodeName( elem, "input" ) && elem.type === "text" &&
|
|
2240
1998
|
|
|
2241
|
-
// Support: IE<
|
|
2242
|
-
// New HTML5 attribute values (e.g., "search") appear
|
|
1999
|
+
// Support: IE <10 only
|
|
2000
|
+
// New HTML5 attribute values (e.g., "search") appear
|
|
2001
|
+
// with elem.type === "text"
|
|
2243
2002
|
( ( attr = elem.getAttribute( "type" ) ) == null ||
|
|
2244
2003
|
attr.toLowerCase() === "text" );
|
|
2245
2004
|
},
|
|
2246
2005
|
|
|
2247
2006
|
// Position-in-collection
|
|
2248
|
-
|
|
2007
|
+
first: createPositionalPseudo( function() {
|
|
2249
2008
|
return [ 0 ];
|
|
2250
2009
|
} ),
|
|
2251
2010
|
|
|
2252
|
-
|
|
2011
|
+
last: createPositionalPseudo( function( _matchIndexes, length ) {
|
|
2253
2012
|
return [ length - 1 ];
|
|
2254
2013
|
} ),
|
|
2255
2014
|
|
|
2256
|
-
|
|
2015
|
+
eq: createPositionalPseudo( function( _matchIndexes, length, argument ) {
|
|
2257
2016
|
return [ argument < 0 ? argument + length : argument ];
|
|
2258
2017
|
} ),
|
|
2259
2018
|
|
|
2260
|
-
|
|
2019
|
+
even: createPositionalPseudo( function( matchIndexes, length ) {
|
|
2261
2020
|
var i = 0;
|
|
2262
2021
|
for ( ; i < length; i += 2 ) {
|
|
2263
2022
|
matchIndexes.push( i );
|
|
@@ -2265,7 +2024,7 @@ Expr = Sizzle.selectors = {
|
|
|
2265
2024
|
return matchIndexes;
|
|
2266
2025
|
} ),
|
|
2267
2026
|
|
|
2268
|
-
|
|
2027
|
+
odd: createPositionalPseudo( function( matchIndexes, length ) {
|
|
2269
2028
|
var i = 1;
|
|
2270
2029
|
for ( ; i < length; i += 2 ) {
|
|
2271
2030
|
matchIndexes.push( i );
|
|
@@ -2273,19 +2032,24 @@ Expr = Sizzle.selectors = {
|
|
|
2273
2032
|
return matchIndexes;
|
|
2274
2033
|
} ),
|
|
2275
2034
|
|
|
2276
|
-
|
|
2277
|
-
var i
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2035
|
+
lt: createPositionalPseudo( function( matchIndexes, length, argument ) {
|
|
2036
|
+
var i;
|
|
2037
|
+
|
|
2038
|
+
if ( argument < 0 ) {
|
|
2039
|
+
i = argument + length;
|
|
2040
|
+
} else if ( argument > length ) {
|
|
2041
|
+
i = length;
|
|
2042
|
+
} else {
|
|
2043
|
+
i = argument;
|
|
2044
|
+
}
|
|
2045
|
+
|
|
2282
2046
|
for ( ; --i >= 0; ) {
|
|
2283
2047
|
matchIndexes.push( i );
|
|
2284
2048
|
}
|
|
2285
2049
|
return matchIndexes;
|
|
2286
2050
|
} ),
|
|
2287
2051
|
|
|
2288
|
-
|
|
2052
|
+
gt: createPositionalPseudo( function( matchIndexes, length, argument ) {
|
|
2289
2053
|
var i = argument < 0 ? argument + length : argument;
|
|
2290
2054
|
for ( ; ++i < length; ) {
|
|
2291
2055
|
matchIndexes.push( i );
|
|
@@ -2295,7 +2059,7 @@ Expr = Sizzle.selectors = {
|
|
|
2295
2059
|
}
|
|
2296
2060
|
};
|
|
2297
2061
|
|
|
2298
|
-
Expr.pseudos
|
|
2062
|
+
Expr.pseudos.nth = Expr.pseudos.eq;
|
|
2299
2063
|
|
|
2300
2064
|
// Add button/input type pseudos
|
|
2301
2065
|
for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
|
|
@@ -2310,7 +2074,7 @@ function setFilters() {}
|
|
|
2310
2074
|
setFilters.prototype = Expr.filters = Expr.pseudos;
|
|
2311
2075
|
Expr.setFilters = new setFilters();
|
|
2312
2076
|
|
|
2313
|
-
|
|
2077
|
+
function tokenize( selector, parseOnly ) {
|
|
2314
2078
|
var matched, match, tokens, type,
|
|
2315
2079
|
soFar, groups, preFilters,
|
|
2316
2080
|
cached = tokenCache[ selector + " " ];
|
|
@@ -2338,13 +2102,13 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
|
|
|
2338
2102
|
matched = false;
|
|
2339
2103
|
|
|
2340
2104
|
// Combinators
|
|
2341
|
-
if ( ( match =
|
|
2105
|
+
if ( ( match = rleadingCombinator.exec( soFar ) ) ) {
|
|
2342
2106
|
matched = match.shift();
|
|
2343
2107
|
tokens.push( {
|
|
2344
2108
|
value: matched,
|
|
2345
2109
|
|
|
2346
2110
|
// Cast descendant combinators to space
|
|
2347
|
-
type: match[ 0 ].replace(
|
|
2111
|
+
type: match[ 0 ].replace( rtrimCSS, " " )
|
|
2348
2112
|
} );
|
|
2349
2113
|
soFar = soFar.slice( matched.length );
|
|
2350
2114
|
}
|
|
@@ -2371,14 +2135,16 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
|
|
|
2371
2135
|
// Return the length of the invalid excess
|
|
2372
2136
|
// if we're just parsing
|
|
2373
2137
|
// Otherwise, throw an error or return tokens
|
|
2374
|
-
|
|
2375
|
-
soFar.length
|
|
2376
|
-
|
|
2377
|
-
Sizzle.error( selector ) :
|
|
2138
|
+
if ( parseOnly ) {
|
|
2139
|
+
return soFar.length;
|
|
2140
|
+
}
|
|
2378
2141
|
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2142
|
+
return soFar ?
|
|
2143
|
+
find.error( selector ) :
|
|
2144
|
+
|
|
2145
|
+
// Cache the tokens
|
|
2146
|
+
tokenCache( selector, groups ).slice( 0 );
|
|
2147
|
+
}
|
|
2382
2148
|
|
|
2383
2149
|
function toSelector( tokens ) {
|
|
2384
2150
|
var i = 0,
|
|
@@ -2411,7 +2177,7 @@ function addCombinator( matcher, combinator, base ) {
|
|
|
2411
2177
|
|
|
2412
2178
|
// Check against all ancestor/preceding elements
|
|
2413
2179
|
function( elem, context, xml ) {
|
|
2414
|
-
var oldCache,
|
|
2180
|
+
var oldCache, outerCache,
|
|
2415
2181
|
newCache = [ dirruns, doneName ];
|
|
2416
2182
|
|
|
2417
2183
|
// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
|
|
@@ -2428,14 +2194,9 @@ function addCombinator( matcher, combinator, base ) {
|
|
|
2428
2194
|
if ( elem.nodeType === 1 || checkNonElements ) {
|
|
2429
2195
|
outerCache = elem[ expando ] || ( elem[ expando ] = {} );
|
|
2430
2196
|
|
|
2431
|
-
|
|
2432
|
-
// Defend against cloned attroperties (jQuery gh-1709)
|
|
2433
|
-
uniqueCache = outerCache[ elem.uniqueID ] ||
|
|
2434
|
-
( outerCache[ elem.uniqueID ] = {} );
|
|
2435
|
-
|
|
2436
|
-
if ( skip && skip === elem.nodeName.toLowerCase() ) {
|
|
2197
|
+
if ( skip && nodeName( elem, skip ) ) {
|
|
2437
2198
|
elem = elem[ dir ] || elem;
|
|
2438
|
-
} else if ( ( oldCache =
|
|
2199
|
+
} else if ( ( oldCache = outerCache[ key ] ) &&
|
|
2439
2200
|
oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
|
|
2440
2201
|
|
|
2441
2202
|
// Assign to newCache so results back-propagate to previous elements
|
|
@@ -2443,7 +2204,7 @@ function addCombinator( matcher, combinator, base ) {
|
|
|
2443
2204
|
} else {
|
|
2444
2205
|
|
|
2445
2206
|
// Reuse newcache so results back-propagate to previous elements
|
|
2446
|
-
|
|
2207
|
+
outerCache[ key ] = newCache;
|
|
2447
2208
|
|
|
2448
2209
|
// A match means we're done; a fail means we have to keep checking
|
|
2449
2210
|
if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {
|
|
@@ -2475,7 +2236,7 @@ function multipleContexts( selector, contexts, results ) {
|
|
|
2475
2236
|
var i = 0,
|
|
2476
2237
|
len = contexts.length;
|
|
2477
2238
|
for ( ; i < len; i++ ) {
|
|
2478
|
-
|
|
2239
|
+
find( selector, contexts[ i ], results );
|
|
2479
2240
|
}
|
|
2480
2241
|
return results;
|
|
2481
2242
|
}
|
|
@@ -2509,38 +2270,37 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
|
|
|
2509
2270
|
postFinder = setMatcher( postFinder, postSelector );
|
|
2510
2271
|
}
|
|
2511
2272
|
return markFunction( function( seed, results, context, xml ) {
|
|
2512
|
-
var temp, i, elem,
|
|
2273
|
+
var temp, i, elem, matcherOut,
|
|
2513
2274
|
preMap = [],
|
|
2514
2275
|
postMap = [],
|
|
2515
2276
|
preexisting = results.length,
|
|
2516
2277
|
|
|
2517
2278
|
// Get initial elements from seed or context
|
|
2518
|
-
elems = seed ||
|
|
2519
|
-
selector || "*",
|
|
2520
|
-
|
|
2521
|
-
[]
|
|
2522
|
-
),
|
|
2279
|
+
elems = seed ||
|
|
2280
|
+
multipleContexts( selector || "*",
|
|
2281
|
+
context.nodeType ? [ context ] : context, [] ),
|
|
2523
2282
|
|
|
2524
2283
|
// Prefilter to get matcher input, preserving a map for seed-results synchronization
|
|
2525
2284
|
matcherIn = preFilter && ( seed || !selector ) ?
|
|
2526
2285
|
condense( elems, preMap, preFilter, context, xml ) :
|
|
2527
|
-
elems
|
|
2286
|
+
elems;
|
|
2528
2287
|
|
|
2529
|
-
|
|
2288
|
+
if ( matcher ) {
|
|
2530
2289
|
|
|
2531
|
-
|
|
2532
|
-
|
|
2290
|
+
// If we have a postFinder, or filtered seed, or non-seed postFilter
|
|
2291
|
+
// or preexisting results,
|
|
2292
|
+
matcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
|
|
2533
2293
|
|
|
2534
|
-
|
|
2535
|
-
|
|
2294
|
+
// ...intermediate processing is necessary
|
|
2295
|
+
[] :
|
|
2536
2296
|
|
|
2537
|
-
|
|
2538
|
-
|
|
2539
|
-
matcherIn;
|
|
2297
|
+
// ...otherwise use results directly
|
|
2298
|
+
results;
|
|
2540
2299
|
|
|
2541
|
-
|
|
2542
|
-
if ( matcher ) {
|
|
2300
|
+
// Find primary matches
|
|
2543
2301
|
matcher( matcherIn, matcherOut, context, xml );
|
|
2302
|
+
} else {
|
|
2303
|
+
matcherOut = matcherIn;
|
|
2544
2304
|
}
|
|
2545
2305
|
|
|
2546
2306
|
// Apply postFilter
|
|
@@ -2578,7 +2338,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
|
|
|
2578
2338
|
i = matcherOut.length;
|
|
2579
2339
|
while ( i-- ) {
|
|
2580
2340
|
if ( ( elem = matcherOut[ i ] ) &&
|
|
2581
|
-
( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {
|
|
2341
|
+
( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {
|
|
2582
2342
|
|
|
2583
2343
|
seed[ temp ] = !( results[ temp ] = elem );
|
|
2584
2344
|
}
|
|
@@ -2613,15 +2373,21 @@ function matcherFromTokens( tokens ) {
|
|
|
2613
2373
|
return elem === checkContext;
|
|
2614
2374
|
}, implicitRelative, true ),
|
|
2615
2375
|
matchAnyContext = addCombinator( function( elem ) {
|
|
2616
|
-
return indexOf( checkContext, elem ) > -1;
|
|
2376
|
+
return indexOf.call( checkContext, elem ) > -1;
|
|
2617
2377
|
}, implicitRelative, true ),
|
|
2618
2378
|
matchers = [ function( elem, context, xml ) {
|
|
2619
|
-
|
|
2379
|
+
|
|
2380
|
+
// Support: IE 11+, Edge 17 - 18+
|
|
2381
|
+
// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
|
|
2382
|
+
// two documents; shallow comparisons work.
|
|
2383
|
+
// eslint-disable-next-line eqeqeq
|
|
2384
|
+
var ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (
|
|
2620
2385
|
( checkContext = context ).nodeType ?
|
|
2621
2386
|
matchContext( elem, context, xml ) :
|
|
2622
2387
|
matchAnyContext( elem, context, xml ) );
|
|
2623
2388
|
|
|
2624
|
-
// Avoid hanging onto element
|
|
2389
|
+
// Avoid hanging onto element
|
|
2390
|
+
// (see https://github.com/jquery/sizzle/issues/299)
|
|
2625
2391
|
checkContext = null;
|
|
2626
2392
|
return ret;
|
|
2627
2393
|
} ];
|
|
@@ -2646,11 +2412,10 @@ function matcherFromTokens( tokens ) {
|
|
|
2646
2412
|
i > 1 && elementMatcher( matchers ),
|
|
2647
2413
|
i > 1 && toSelector(
|
|
2648
2414
|
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
).replace( rtrim, "$1" ),
|
|
2415
|
+
// If the preceding token was a descendant combinator, insert an implicit any-element `*`
|
|
2416
|
+
tokens.slice( 0, i - 1 )
|
|
2417
|
+
.concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
|
|
2418
|
+
).replace( rtrimCSS, "$1" ),
|
|
2654
2419
|
matcher,
|
|
2655
2420
|
i < j && matcherFromTokens( tokens.slice( i, j ) ),
|
|
2656
2421
|
j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),
|
|
@@ -2676,7 +2441,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
|
|
|
2676
2441
|
contextBackup = outermostContext,
|
|
2677
2442
|
|
|
2678
2443
|
// We must always have either seed elements or outermost context
|
|
2679
|
-
elems = seed || byElement && Expr.find
|
|
2444
|
+
elems = seed || byElement && Expr.find.TAG( "*", outermost ),
|
|
2680
2445
|
|
|
2681
2446
|
// Use integer dirruns iff this is the outermost matcher
|
|
2682
2447
|
dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),
|
|
@@ -2692,8 +2457,9 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
|
|
|
2692
2457
|
}
|
|
2693
2458
|
|
|
2694
2459
|
// Add elements passing elementMatchers directly to results
|
|
2695
|
-
// Support:
|
|
2696
|
-
// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching
|
|
2460
|
+
// Support: iOS <=7 - 9 only
|
|
2461
|
+
// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching
|
|
2462
|
+
// elements by id. (see trac-14142)
|
|
2697
2463
|
for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {
|
|
2698
2464
|
if ( byElement && elem ) {
|
|
2699
2465
|
j = 0;
|
|
@@ -2708,7 +2474,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
|
|
|
2708
2474
|
}
|
|
2709
2475
|
while ( ( matcher = elementMatchers[ j++ ] ) ) {
|
|
2710
2476
|
if ( matcher( elem, context || document, xml ) ) {
|
|
2711
|
-
|
|
2477
|
+
push.call( results, elem );
|
|
2712
2478
|
break;
|
|
2713
2479
|
}
|
|
2714
2480
|
}
|
|
@@ -2771,7 +2537,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
|
|
|
2771
2537
|
if ( outermost && !seed && setMatched.length > 0 &&
|
|
2772
2538
|
( matchedCount + setMatchers.length ) > 1 ) {
|
|
2773
2539
|
|
|
2774
|
-
|
|
2540
|
+
jQuery.uniqueSort( results );
|
|
2775
2541
|
}
|
|
2776
2542
|
}
|
|
2777
2543
|
|
|
@@ -2789,7 +2555,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
|
|
|
2789
2555
|
superMatcher;
|
|
2790
2556
|
}
|
|
2791
2557
|
|
|
2792
|
-
|
|
2558
|
+
function compile( selector, match /* Internal Use Only */ ) {
|
|
2793
2559
|
var i,
|
|
2794
2560
|
setMatchers = [],
|
|
2795
2561
|
elementMatchers = [],
|
|
@@ -2812,27 +2578,25 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
|
|
|
2812
2578
|
}
|
|
2813
2579
|
|
|
2814
2580
|
// Cache the compiled function
|
|
2815
|
-
cached = compilerCache(
|
|
2816
|
-
|
|
2817
|
-
matcherFromGroupMatchers( elementMatchers, setMatchers )
|
|
2818
|
-
);
|
|
2581
|
+
cached = compilerCache( selector,
|
|
2582
|
+
matcherFromGroupMatchers( elementMatchers, setMatchers ) );
|
|
2819
2583
|
|
|
2820
2584
|
// Save selector and tokenization
|
|
2821
2585
|
cached.selector = selector;
|
|
2822
2586
|
}
|
|
2823
2587
|
return cached;
|
|
2824
|
-
}
|
|
2588
|
+
}
|
|
2825
2589
|
|
|
2826
2590
|
/**
|
|
2827
|
-
* A low-level selection function that works with
|
|
2591
|
+
* A low-level selection function that works with jQuery's compiled
|
|
2828
2592
|
* selector functions
|
|
2829
2593
|
* @param {String|Function} selector A selector or a pre-compiled
|
|
2830
|
-
* selector function built with
|
|
2594
|
+
* selector function built with jQuery selector compile
|
|
2831
2595
|
* @param {Element} context
|
|
2832
2596
|
* @param {Array} [results]
|
|
2833
2597
|
* @param {Array} [seed] A set of elements to match against
|
|
2834
2598
|
*/
|
|
2835
|
-
|
|
2599
|
+
function select( selector, context, results, seed ) {
|
|
2836
2600
|
var i, tokens, token, type, find,
|
|
2837
2601
|
compiled = typeof selector === "function" && selector,
|
|
2838
2602
|
match = !seed && tokenize( ( selector = compiled.selector || selector ) );
|
|
@@ -2846,10 +2610,12 @@ select = Sizzle.select = function( selector, context, results, seed ) {
|
|
|
2846
2610
|
// Reduce context if the leading compound selector is an ID
|
|
2847
2611
|
tokens = match[ 0 ] = match[ 0 ].slice( 0 );
|
|
2848
2612
|
if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" &&
|
|
2849
|
-
|
|
2613
|
+
context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {
|
|
2850
2614
|
|
|
2851
|
-
context = ( Expr.find
|
|
2852
|
-
.replace( runescape, funescape ),
|
|
2615
|
+
context = ( Expr.find.ID(
|
|
2616
|
+
token.matches[ 0 ].replace( runescape, funescape ),
|
|
2617
|
+
context
|
|
2618
|
+
) || [] )[ 0 ];
|
|
2853
2619
|
if ( !context ) {
|
|
2854
2620
|
return results;
|
|
2855
2621
|
|
|
@@ -2862,7 +2628,7 @@ select = Sizzle.select = function( selector, context, results, seed ) {
|
|
|
2862
2628
|
}
|
|
2863
2629
|
|
|
2864
2630
|
// Fetch a seed set for right-to-left matching
|
|
2865
|
-
i = matchExpr
|
|
2631
|
+
i = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;
|
|
2866
2632
|
while ( i-- ) {
|
|
2867
2633
|
token = tokens[ i ];
|
|
2868
2634
|
|
|
@@ -2875,8 +2641,8 @@ select = Sizzle.select = function( selector, context, results, seed ) {
|
|
|
2875
2641
|
// Search, expanding context for leading sibling combinators
|
|
2876
2642
|
if ( ( seed = find(
|
|
2877
2643
|
token.matches[ 0 ].replace( runescape, funescape ),
|
|
2878
|
-
rsibling.test( tokens[ 0 ].type ) &&
|
|
2879
|
-
context
|
|
2644
|
+
rsibling.test( tokens[ 0 ].type ) &&
|
|
2645
|
+
testContext( context.parentNode ) || context
|
|
2880
2646
|
) ) ) {
|
|
2881
2647
|
|
|
2882
2648
|
// If seed is empty or no tokens remain, we can return early
|
|
@@ -2903,21 +2669,18 @@ select = Sizzle.select = function( selector, context, results, seed ) {
|
|
|
2903
2669
|
!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
|
|
2904
2670
|
);
|
|
2905
2671
|
return results;
|
|
2906
|
-
}
|
|
2672
|
+
}
|
|
2907
2673
|
|
|
2908
2674
|
// One-time assignments
|
|
2909
2675
|
|
|
2676
|
+
// Support: Android <=4.0 - 4.1+
|
|
2910
2677
|
// Sort stability
|
|
2911
2678
|
support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;
|
|
2912
2679
|
|
|
2913
|
-
// Support: Chrome 14-35+
|
|
2914
|
-
// Always assume duplicates if they aren't passed to the comparison function
|
|
2915
|
-
support.detectDuplicates = !!hasDuplicate;
|
|
2916
|
-
|
|
2917
2680
|
// Initialize against the default document
|
|
2918
2681
|
setDocument();
|
|
2919
2682
|
|
|
2920
|
-
// Support:
|
|
2683
|
+
// Support: Android <=4.0 - 4.1+
|
|
2921
2684
|
// Detached nodes confoundingly follow *each other*
|
|
2922
2685
|
support.sortDetached = assert( function( el ) {
|
|
2923
2686
|
|
|
@@ -2925,68 +2688,29 @@ support.sortDetached = assert( function( el ) {
|
|
|
2925
2688
|
return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
|
|
2926
2689
|
} );
|
|
2927
2690
|
|
|
2928
|
-
|
|
2929
|
-
// Prevent attribute/property "interpolation"
|
|
2930
|
-
// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
|
|
2931
|
-
if ( !assert( function( el ) {
|
|
2932
|
-
el.innerHTML = "<a href='#'></a>";
|
|
2933
|
-
return el.firstChild.getAttribute( "href" ) === "#";
|
|
2934
|
-
} ) ) {
|
|
2935
|
-
addHandle( "type|href|height|width", function( elem, name, isXML ) {
|
|
2936
|
-
if ( !isXML ) {
|
|
2937
|
-
return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
|
|
2938
|
-
}
|
|
2939
|
-
} );
|
|
2940
|
-
}
|
|
2941
|
-
|
|
2942
|
-
// Support: IE<9
|
|
2943
|
-
// Use defaultValue in place of getAttribute("value")
|
|
2944
|
-
if ( !support.attributes || !assert( function( el ) {
|
|
2945
|
-
el.innerHTML = "<input/>";
|
|
2946
|
-
el.firstChild.setAttribute( "value", "" );
|
|
2947
|
-
return el.firstChild.getAttribute( "value" ) === "";
|
|
2948
|
-
} ) ) {
|
|
2949
|
-
addHandle( "value", function( elem, _name, isXML ) {
|
|
2950
|
-
if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
|
|
2951
|
-
return elem.defaultValue;
|
|
2952
|
-
}
|
|
2953
|
-
} );
|
|
2954
|
-
}
|
|
2955
|
-
|
|
2956
|
-
// Support: IE<9
|
|
2957
|
-
// Use getAttributeNode to fetch booleans when getAttribute lies
|
|
2958
|
-
if ( !assert( function( el ) {
|
|
2959
|
-
return el.getAttribute( "disabled" ) == null;
|
|
2960
|
-
} ) ) {
|
|
2961
|
-
addHandle( booleans, function( elem, name, isXML ) {
|
|
2962
|
-
var val;
|
|
2963
|
-
if ( !isXML ) {
|
|
2964
|
-
return elem[ name ] === true ? name.toLowerCase() :
|
|
2965
|
-
( val = elem.getAttributeNode( name ) ) && val.specified ?
|
|
2966
|
-
val.value :
|
|
2967
|
-
null;
|
|
2968
|
-
}
|
|
2969
|
-
} );
|
|
2970
|
-
}
|
|
2971
|
-
|
|
2972
|
-
return Sizzle;
|
|
2973
|
-
|
|
2974
|
-
} )( window );
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
|
|
2978
|
-
jQuery.find = Sizzle;
|
|
2979
|
-
jQuery.expr = Sizzle.selectors;
|
|
2691
|
+
jQuery.find = find;
|
|
2980
2692
|
|
|
2981
2693
|
// Deprecated
|
|
2982
2694
|
jQuery.expr[ ":" ] = jQuery.expr.pseudos;
|
|
2983
|
-
jQuery.
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2695
|
+
jQuery.unique = jQuery.uniqueSort;
|
|
2696
|
+
|
|
2697
|
+
// These have always been private, but they used to be documented
|
|
2698
|
+
// as part of Sizzle so let's maintain them in the 3.x line
|
|
2699
|
+
// for backwards compatibility purposes.
|
|
2700
|
+
find.compile = compile;
|
|
2701
|
+
find.select = select;
|
|
2702
|
+
find.setDocument = setDocument;
|
|
2988
2703
|
|
|
2704
|
+
find.escape = jQuery.escapeSelector;
|
|
2705
|
+
find.getText = jQuery.text;
|
|
2706
|
+
find.isXML = jQuery.isXMLDoc;
|
|
2707
|
+
find.selectors = jQuery.expr;
|
|
2708
|
+
find.support = jQuery.support;
|
|
2709
|
+
find.uniqueSort = jQuery.uniqueSort;
|
|
2989
2710
|
|
|
2711
|
+
/* eslint-enable */
|
|
2712
|
+
|
|
2713
|
+
} )();
|
|
2990
2714
|
|
|
2991
2715
|
|
|
2992
2716
|
var dir = function( elem, dir, until ) {
|
|
@@ -3020,13 +2744,6 @@ var siblings = function( n, elem ) {
|
|
|
3020
2744
|
|
|
3021
2745
|
var rneedsContext = jQuery.expr.match.needsContext;
|
|
3022
2746
|
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
function nodeName( elem, name ) {
|
|
3026
|
-
|
|
3027
|
-
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
|
|
3028
|
-
|
|
3029
|
-
};
|
|
3030
2747
|
var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
|
|
3031
2748
|
|
|
3032
2749
|
|
|
@@ -3125,8 +2842,8 @@ jQuery.fn.extend( {
|
|
|
3125
2842
|
var rootjQuery,
|
|
3126
2843
|
|
|
3127
2844
|
// A simple way to check for HTML strings
|
|
3128
|
-
// Prioritize #id over <tag> to avoid XSS via location.hash (
|
|
3129
|
-
// Strict HTML recognition (
|
|
2845
|
+
// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)
|
|
2846
|
+
// Strict HTML recognition (trac-11290: must start with <)
|
|
3130
2847
|
// Shortcut simple #id case for speed
|
|
3131
2848
|
rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
|
|
3132
2849
|
|
|
@@ -3277,7 +2994,7 @@ jQuery.fn.extend( {
|
|
|
3277
2994
|
if ( cur.nodeType < 11 && ( targets ?
|
|
3278
2995
|
targets.index( cur ) > -1 :
|
|
3279
2996
|
|
|
3280
|
-
// Don't pass non-elements to
|
|
2997
|
+
// Don't pass non-elements to jQuery#find
|
|
3281
2998
|
cur.nodeType === 1 &&
|
|
3282
2999
|
jQuery.find.matchesSelector( cur, selectors ) ) ) {
|
|
3283
3000
|
|
|
@@ -3832,7 +3549,7 @@ jQuery.extend( {
|
|
|
3832
3549
|
|
|
3833
3550
|
if ( jQuery.Deferred.exceptionHook ) {
|
|
3834
3551
|
jQuery.Deferred.exceptionHook( e,
|
|
3835
|
-
process.
|
|
3552
|
+
process.error );
|
|
3836
3553
|
}
|
|
3837
3554
|
|
|
3838
3555
|
// Support: Promises/A+ section 2.3.3.3.4.1
|
|
@@ -3860,10 +3577,17 @@ jQuery.extend( {
|
|
|
3860
3577
|
process();
|
|
3861
3578
|
} else {
|
|
3862
3579
|
|
|
3863
|
-
// Call an optional hook to record the
|
|
3580
|
+
// Call an optional hook to record the error, in case of exception
|
|
3864
3581
|
// since it's otherwise lost when execution goes async
|
|
3865
|
-
if ( jQuery.Deferred.
|
|
3866
|
-
process.
|
|
3582
|
+
if ( jQuery.Deferred.getErrorHook ) {
|
|
3583
|
+
process.error = jQuery.Deferred.getErrorHook();
|
|
3584
|
+
|
|
3585
|
+
// The deprecated alias of the above. While the name suggests
|
|
3586
|
+
// returning the stack, not an error instance, jQuery just passes
|
|
3587
|
+
// it directly to `console.warn` so both will work; an instance
|
|
3588
|
+
// just better cooperates with source maps.
|
|
3589
|
+
} else if ( jQuery.Deferred.getStackHook ) {
|
|
3590
|
+
process.error = jQuery.Deferred.getStackHook();
|
|
3867
3591
|
}
|
|
3868
3592
|
window.setTimeout( process );
|
|
3869
3593
|
}
|
|
@@ -3997,8 +3721,8 @@ jQuery.extend( {
|
|
|
3997
3721
|
resolveContexts = Array( i ),
|
|
3998
3722
|
resolveValues = slice.call( arguments ),
|
|
3999
3723
|
|
|
4000
|
-
// the
|
|
4001
|
-
|
|
3724
|
+
// the primary Deferred
|
|
3725
|
+
primary = jQuery.Deferred(),
|
|
4002
3726
|
|
|
4003
3727
|
// subordinate callback factory
|
|
4004
3728
|
updateFunc = function( i ) {
|
|
@@ -4006,30 +3730,30 @@ jQuery.extend( {
|
|
|
4006
3730
|
resolveContexts[ i ] = this;
|
|
4007
3731
|
resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
|
|
4008
3732
|
if ( !( --remaining ) ) {
|
|
4009
|
-
|
|
3733
|
+
primary.resolveWith( resolveContexts, resolveValues );
|
|
4010
3734
|
}
|
|
4011
3735
|
};
|
|
4012
3736
|
};
|
|
4013
3737
|
|
|
4014
3738
|
// Single- and empty arguments are adopted like Promise.resolve
|
|
4015
3739
|
if ( remaining <= 1 ) {
|
|
4016
|
-
adoptValue( singleValue,
|
|
3740
|
+
adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,
|
|
4017
3741
|
!remaining );
|
|
4018
3742
|
|
|
4019
3743
|
// Use .then() to unwrap secondary thenables (cf. gh-3000)
|
|
4020
|
-
if (
|
|
3744
|
+
if ( primary.state() === "pending" ||
|
|
4021
3745
|
isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
|
|
4022
3746
|
|
|
4023
|
-
return
|
|
3747
|
+
return primary.then();
|
|
4024
3748
|
}
|
|
4025
3749
|
}
|
|
4026
3750
|
|
|
4027
3751
|
// Multiple arguments are aggregated like Promise.all array elements
|
|
4028
3752
|
while ( i-- ) {
|
|
4029
|
-
adoptValue( resolveValues[ i ], updateFunc( i ),
|
|
3753
|
+
adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );
|
|
4030
3754
|
}
|
|
4031
3755
|
|
|
4032
|
-
return
|
|
3756
|
+
return primary.promise();
|
|
4033
3757
|
}
|
|
4034
3758
|
} );
|
|
4035
3759
|
|
|
@@ -4038,12 +3762,16 @@ jQuery.extend( {
|
|
|
4038
3762
|
// warn about them ASAP rather than swallowing them by default.
|
|
4039
3763
|
var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
|
|
4040
3764
|
|
|
4041
|
-
jQuery.Deferred.
|
|
3765
|
+
// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error
|
|
3766
|
+
// captured before the async barrier to get the original error cause
|
|
3767
|
+
// which may otherwise be hidden.
|
|
3768
|
+
jQuery.Deferred.exceptionHook = function( error, asyncError ) {
|
|
4042
3769
|
|
|
4043
3770
|
// Support: IE 8 - 9 only
|
|
4044
3771
|
// Console exists when dev tools are open, which can happen at any time
|
|
4045
3772
|
if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
|
|
4046
|
-
window.console.warn( "jQuery.Deferred exception: " + error.message,
|
|
3773
|
+
window.console.warn( "jQuery.Deferred exception: " + error.message,
|
|
3774
|
+
error.stack, asyncError );
|
|
4047
3775
|
}
|
|
4048
3776
|
};
|
|
4049
3777
|
|
|
@@ -4083,7 +3811,7 @@ jQuery.extend( {
|
|
|
4083
3811
|
isReady: false,
|
|
4084
3812
|
|
|
4085
3813
|
// A counter to track how many items to wait for before
|
|
4086
|
-
// the ready event fires. See
|
|
3814
|
+
// the ready event fires. See trac-6781
|
|
4087
3815
|
readyWait: 1,
|
|
4088
3816
|
|
|
4089
3817
|
// Handle when the DOM is ready
|
|
@@ -4180,8 +3908,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
|
|
|
4180
3908
|
for ( ; i < len; i++ ) {
|
|
4181
3909
|
fn(
|
|
4182
3910
|
elems[ i ], key, raw ?
|
|
4183
|
-
|
|
4184
|
-
|
|
3911
|
+
value :
|
|
3912
|
+
value.call( elems[ i ], i, fn( elems[ i ], key ) )
|
|
4185
3913
|
);
|
|
4186
3914
|
}
|
|
4187
3915
|
}
|
|
@@ -4211,7 +3939,7 @@ function fcamelCase( _all, letter ) {
|
|
|
4211
3939
|
|
|
4212
3940
|
// Convert dashed to camelCase; used by the css and data modules
|
|
4213
3941
|
// Support: IE <=9 - 11, Edge 12 - 15
|
|
4214
|
-
// Microsoft forgot to hump their vendor prefix (
|
|
3942
|
+
// Microsoft forgot to hump their vendor prefix (trac-9572)
|
|
4215
3943
|
function camelCase( string ) {
|
|
4216
3944
|
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
|
|
4217
3945
|
}
|
|
@@ -4247,7 +3975,7 @@ Data.prototype = {
|
|
|
4247
3975
|
value = {};
|
|
4248
3976
|
|
|
4249
3977
|
// We can accept data for non-element nodes in modern browsers,
|
|
4250
|
-
// but we should not, see
|
|
3978
|
+
// but we should not, see trac-8335.
|
|
4251
3979
|
// Always return an empty object.
|
|
4252
3980
|
if ( acceptData( owner ) ) {
|
|
4253
3981
|
|
|
@@ -4486,7 +4214,7 @@ jQuery.fn.extend( {
|
|
|
4486
4214
|
while ( i-- ) {
|
|
4487
4215
|
|
|
4488
4216
|
// Support: IE 11 only
|
|
4489
|
-
// The attrs elements can be null (
|
|
4217
|
+
// The attrs elements can be null (trac-14894)
|
|
4490
4218
|
if ( attrs[ i ] ) {
|
|
4491
4219
|
name = attrs[ i ].name;
|
|
4492
4220
|
if ( name.indexOf( "data-" ) === 0 ) {
|
|
@@ -4909,9 +4637,9 @@ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
|
|
|
4909
4637
|
input = document.createElement( "input" );
|
|
4910
4638
|
|
|
4911
4639
|
// Support: Android 4.0 - 4.3 only
|
|
4912
|
-
// Check state lost if the name is set (
|
|
4640
|
+
// Check state lost if the name is set (trac-11217)
|
|
4913
4641
|
// Support: Windows Web Apps (WWA)
|
|
4914
|
-
// `name` and `type` must use .setAttribute for WWA (
|
|
4642
|
+
// `name` and `type` must use .setAttribute for WWA (trac-14901)
|
|
4915
4643
|
input.setAttribute( "type", "radio" );
|
|
4916
4644
|
input.setAttribute( "checked", "checked" );
|
|
4917
4645
|
input.setAttribute( "name", "t" );
|
|
@@ -4935,7 +4663,7 @@ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
|
|
|
4935
4663
|
} )();
|
|
4936
4664
|
|
|
4937
4665
|
|
|
4938
|
-
// We have to close these tags to support XHTML (
|
|
4666
|
+
// We have to close these tags to support XHTML (trac-13200)
|
|
4939
4667
|
var wrapMap = {
|
|
4940
4668
|
|
|
4941
4669
|
// XHTML parsers do not magically insert elements in the
|
|
@@ -4961,7 +4689,7 @@ if ( !support.option ) {
|
|
|
4961
4689
|
function getAll( context, tag ) {
|
|
4962
4690
|
|
|
4963
4691
|
// Support: IE <=9 - 11 only
|
|
4964
|
-
// Use typeof to avoid zero-argument method invocation on host objects (
|
|
4692
|
+
// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)
|
|
4965
4693
|
var ret;
|
|
4966
4694
|
|
|
4967
4695
|
if ( typeof context.getElementsByTagName !== "undefined" ) {
|
|
@@ -5044,7 +4772,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
|
|
|
5044
4772
|
// Remember the top-level container
|
|
5045
4773
|
tmp = fragment.firstChild;
|
|
5046
4774
|
|
|
5047
|
-
// Ensure the created nodes are orphaned (
|
|
4775
|
+
// Ensure the created nodes are orphaned (trac-12392)
|
|
5048
4776
|
tmp.textContent = "";
|
|
5049
4777
|
}
|
|
5050
4778
|
}
|
|
@@ -5089,10 +4817,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
|
|
|
5089
4817
|
}
|
|
5090
4818
|
|
|
5091
4819
|
|
|
5092
|
-
var
|
|
5093
|
-
rkeyEvent = /^key/,
|
|
5094
|
-
rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
|
|
5095
|
-
rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
|
|
4820
|
+
var rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
|
|
5096
4821
|
|
|
5097
4822
|
function returnTrue() {
|
|
5098
4823
|
return true;
|
|
@@ -5102,25 +4827,6 @@ function returnFalse() {
|
|
|
5102
4827
|
return false;
|
|
5103
4828
|
}
|
|
5104
4829
|
|
|
5105
|
-
// Support: IE <=9 - 11+
|
|
5106
|
-
// focus() and blur() are asynchronous, except when they are no-op.
|
|
5107
|
-
// So expect focus to be synchronous when the element is already active,
|
|
5108
|
-
// and blur to be synchronous when the element is not already active.
|
|
5109
|
-
// (focus and blur are always synchronous in other supported browsers,
|
|
5110
|
-
// this just defines when we can count on it).
|
|
5111
|
-
function expectSync( elem, type ) {
|
|
5112
|
-
return ( elem === safeActiveElement() ) === ( type === "focus" );
|
|
5113
|
-
}
|
|
5114
|
-
|
|
5115
|
-
// Support: IE <=9 only
|
|
5116
|
-
// Accessing document.activeElement can throw unexpectedly
|
|
5117
|
-
// https://bugs.jquery.com/ticket/13393
|
|
5118
|
-
function safeActiveElement() {
|
|
5119
|
-
try {
|
|
5120
|
-
return document.activeElement;
|
|
5121
|
-
} catch ( err ) { }
|
|
5122
|
-
}
|
|
5123
|
-
|
|
5124
4830
|
function on( elem, types, selector, data, fn, one ) {
|
|
5125
4831
|
var origFn, type;
|
|
5126
4832
|
|
|
@@ -5387,8 +5093,8 @@ jQuery.event = {
|
|
|
5387
5093
|
event = jQuery.event.fix( nativeEvent ),
|
|
5388
5094
|
|
|
5389
5095
|
handlers = (
|
|
5390
|
-
|
|
5391
|
-
|
|
5096
|
+
dataPriv.get( this, "events" ) || Object.create( null )
|
|
5097
|
+
)[ event.type ] || [],
|
|
5392
5098
|
special = jQuery.event.special[ event.type ] || {};
|
|
5393
5099
|
|
|
5394
5100
|
// Use the fix-ed jQuery.Event rather than the (read-only) native event
|
|
@@ -5468,15 +5174,15 @@ jQuery.event = {
|
|
|
5468
5174
|
|
|
5469
5175
|
for ( ; cur !== this; cur = cur.parentNode || this ) {
|
|
5470
5176
|
|
|
5471
|
-
// Don't check non-elements (
|
|
5472
|
-
// Don't process clicks on disabled elements (
|
|
5177
|
+
// Don't check non-elements (trac-13208)
|
|
5178
|
+
// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)
|
|
5473
5179
|
if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
|
|
5474
5180
|
matchedHandlers = [];
|
|
5475
5181
|
matchedSelectors = {};
|
|
5476
5182
|
for ( i = 0; i < delegateCount; i++ ) {
|
|
5477
5183
|
handleObj = handlers[ i ];
|
|
5478
5184
|
|
|
5479
|
-
// Don't conflict with Object.prototype properties (
|
|
5185
|
+
// Don't conflict with Object.prototype properties (trac-13203)
|
|
5480
5186
|
sel = handleObj.selector + " ";
|
|
5481
5187
|
|
|
5482
5188
|
if ( matchedSelectors[ sel ] === undefined ) {
|
|
@@ -5512,12 +5218,12 @@ jQuery.event = {
|
|
|
5512
5218
|
get: isFunction( hook ) ?
|
|
5513
5219
|
function() {
|
|
5514
5220
|
if ( this.originalEvent ) {
|
|
5515
|
-
|
|
5221
|
+
return hook( this.originalEvent );
|
|
5516
5222
|
}
|
|
5517
5223
|
} :
|
|
5518
5224
|
function() {
|
|
5519
5225
|
if ( this.originalEvent ) {
|
|
5520
|
-
|
|
5226
|
+
return this.originalEvent[ name ];
|
|
5521
5227
|
}
|
|
5522
5228
|
},
|
|
5523
5229
|
|
|
@@ -5558,7 +5264,7 @@ jQuery.event = {
|
|
|
5558
5264
|
el.click && nodeName( el, "input" ) ) {
|
|
5559
5265
|
|
|
5560
5266
|
// dataPriv.set( el, "click", ... )
|
|
5561
|
-
leverageNative( el, "click",
|
|
5267
|
+
leverageNative( el, "click", true );
|
|
5562
5268
|
}
|
|
5563
5269
|
|
|
5564
5270
|
// Return false to allow normal processing in the caller
|
|
@@ -5609,10 +5315,10 @@ jQuery.event = {
|
|
|
5609
5315
|
// synthetic events by interrupting progress until reinvoked in response to
|
|
5610
5316
|
// *native* events that it fires directly, ensuring that state changes have
|
|
5611
5317
|
// already occurred before other listeners are invoked.
|
|
5612
|
-
function leverageNative( el, type,
|
|
5318
|
+
function leverageNative( el, type, isSetup ) {
|
|
5613
5319
|
|
|
5614
|
-
// Missing
|
|
5615
|
-
if ( !
|
|
5320
|
+
// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add
|
|
5321
|
+
if ( !isSetup ) {
|
|
5616
5322
|
if ( dataPriv.get( el, type ) === undefined ) {
|
|
5617
5323
|
jQuery.event.add( el, type, returnTrue );
|
|
5618
5324
|
}
|
|
@@ -5624,15 +5330,13 @@ function leverageNative( el, type, expectSync ) {
|
|
|
5624
5330
|
jQuery.event.add( el, type, {
|
|
5625
5331
|
namespace: false,
|
|
5626
5332
|
handler: function( event ) {
|
|
5627
|
-
var
|
|
5333
|
+
var result,
|
|
5628
5334
|
saved = dataPriv.get( this, type );
|
|
5629
5335
|
|
|
5630
5336
|
if ( ( event.isTrigger & 1 ) && this[ type ] ) {
|
|
5631
5337
|
|
|
5632
5338
|
// Interrupt processing of the outer synthetic .trigger()ed event
|
|
5633
|
-
|
|
5634
|
-
// from an async native handler (gh-4350)
|
|
5635
|
-
if ( !saved.length ) {
|
|
5339
|
+
if ( !saved ) {
|
|
5636
5340
|
|
|
5637
5341
|
// Store arguments for use when handling the inner native event
|
|
5638
5342
|
// There will always be at least one argument (an event object), so this array
|
|
@@ -5641,27 +5345,22 @@ function leverageNative( el, type, expectSync ) {
|
|
|
5641
5345
|
dataPriv.set( this, type, saved );
|
|
5642
5346
|
|
|
5643
5347
|
// Trigger the native event and capture its result
|
|
5644
|
-
// Support: IE <=9 - 11+
|
|
5645
|
-
// focus() and blur() are asynchronous
|
|
5646
|
-
notAsync = expectSync( this, type );
|
|
5647
5348
|
this[ type ]();
|
|
5648
5349
|
result = dataPriv.get( this, type );
|
|
5649
|
-
|
|
5650
|
-
|
|
5651
|
-
} else {
|
|
5652
|
-
result = {};
|
|
5653
|
-
}
|
|
5350
|
+
dataPriv.set( this, type, false );
|
|
5351
|
+
|
|
5654
5352
|
if ( saved !== result ) {
|
|
5655
5353
|
|
|
5656
5354
|
// Cancel the outer synthetic event
|
|
5657
5355
|
event.stopImmediatePropagation();
|
|
5658
5356
|
event.preventDefault();
|
|
5659
|
-
|
|
5357
|
+
|
|
5358
|
+
return result;
|
|
5660
5359
|
}
|
|
5661
5360
|
|
|
5662
5361
|
// If this is an inner synthetic event for an event with a bubbling surrogate
|
|
5663
|
-
// (focus or blur), assume that the surrogate already propagated from triggering
|
|
5664
|
-
// native event and prevent that from happening again here.
|
|
5362
|
+
// (focus or blur), assume that the surrogate already propagated from triggering
|
|
5363
|
+
// the native event and prevent that from happening again here.
|
|
5665
5364
|
// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
|
|
5666
5365
|
// bubbling surrogate propagates *after* the non-bubbling base), but that seems
|
|
5667
5366
|
// less bad than duplication.
|
|
@@ -5671,22 +5370,25 @@ function leverageNative( el, type, expectSync ) {
|
|
|
5671
5370
|
|
|
5672
5371
|
// If this is a native event triggered above, everything is now in order
|
|
5673
5372
|
// Fire an inner synthetic event with the original arguments
|
|
5674
|
-
} else if ( saved
|
|
5373
|
+
} else if ( saved ) {
|
|
5675
5374
|
|
|
5676
5375
|
// ...and capture the result
|
|
5677
|
-
dataPriv.set( this, type,
|
|
5678
|
-
|
|
5679
|
-
|
|
5680
|
-
|
|
5681
|
-
|
|
5682
|
-
|
|
5683
|
-
|
|
5684
|
-
|
|
5685
|
-
|
|
5686
|
-
|
|
5687
|
-
|
|
5688
|
-
//
|
|
5689
|
-
|
|
5376
|
+
dataPriv.set( this, type, jQuery.event.trigger(
|
|
5377
|
+
saved[ 0 ],
|
|
5378
|
+
saved.slice( 1 ),
|
|
5379
|
+
this
|
|
5380
|
+
) );
|
|
5381
|
+
|
|
5382
|
+
// Abort handling of the native event by all jQuery handlers while allowing
|
|
5383
|
+
// native handlers on the same element to run. On target, this is achieved
|
|
5384
|
+
// by stopping immediate propagation just on the jQuery event. However,
|
|
5385
|
+
// the native event is re-wrapped by a jQuery one on each level of the
|
|
5386
|
+
// propagation so the only way to stop it for jQuery is to stop it for
|
|
5387
|
+
// everyone via native `stopPropagation()`. This is not a problem for
|
|
5388
|
+
// focus/blur which don't bubble, but it does also stop click on checkboxes
|
|
5389
|
+
// and radios. We accept this limitation.
|
|
5390
|
+
event.stopPropagation();
|
|
5391
|
+
event.isImmediatePropagationStopped = returnTrue;
|
|
5690
5392
|
}
|
|
5691
5393
|
}
|
|
5692
5394
|
} );
|
|
@@ -5724,7 +5426,7 @@ jQuery.Event = function( src, props ) {
|
|
|
5724
5426
|
|
|
5725
5427
|
// Create target properties
|
|
5726
5428
|
// Support: Safari <=6 - 7 only
|
|
5727
|
-
// Target should not be a text node (
|
|
5429
|
+
// Target should not be a text node (trac-504, trac-13143)
|
|
5728
5430
|
this.target = ( src.target && src.target.nodeType === 3 ) ?
|
|
5729
5431
|
src.target.parentNode :
|
|
5730
5432
|
src.target;
|
|
@@ -5821,49 +5523,77 @@ jQuery.each( {
|
|
|
5821
5523
|
targetTouches: true,
|
|
5822
5524
|
toElement: true,
|
|
5823
5525
|
touches: true,
|
|
5526
|
+
which: true
|
|
5527
|
+
}, jQuery.event.addProp );
|
|
5824
5528
|
|
|
5825
|
-
|
|
5826
|
-
var button = event.button;
|
|
5827
|
-
|
|
5828
|
-
// Add which for key events
|
|
5829
|
-
if ( event.which == null && rkeyEvent.test( event.type ) ) {
|
|
5830
|
-
return event.charCode != null ? event.charCode : event.keyCode;
|
|
5831
|
-
}
|
|
5832
|
-
|
|
5833
|
-
// Add which for click: 1 === left; 2 === middle; 3 === right
|
|
5834
|
-
if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
|
|
5835
|
-
if ( button & 1 ) {
|
|
5836
|
-
return 1;
|
|
5837
|
-
}
|
|
5529
|
+
jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
|
|
5838
5530
|
|
|
5839
|
-
|
|
5840
|
-
|
|
5841
|
-
}
|
|
5531
|
+
function focusMappedHandler( nativeEvent ) {
|
|
5532
|
+
if ( document.documentMode ) {
|
|
5842
5533
|
|
|
5843
|
-
|
|
5844
|
-
|
|
5534
|
+
// Support: IE 11+
|
|
5535
|
+
// Attach a single focusin/focusout handler on the document while someone wants
|
|
5536
|
+
// focus/blur. This is because the former are synchronous in IE while the latter
|
|
5537
|
+
// are async. In other browsers, all those handlers are invoked synchronously.
|
|
5538
|
+
|
|
5539
|
+
// `handle` from private data would already wrap the event, but we need
|
|
5540
|
+
// to change the `type` here.
|
|
5541
|
+
var handle = dataPriv.get( this, "handle" ),
|
|
5542
|
+
event = jQuery.event.fix( nativeEvent );
|
|
5543
|
+
event.type = nativeEvent.type === "focusin" ? "focus" : "blur";
|
|
5544
|
+
event.isSimulated = true;
|
|
5545
|
+
|
|
5546
|
+
// First, handle focusin/focusout
|
|
5547
|
+
handle( nativeEvent );
|
|
5548
|
+
|
|
5549
|
+
// ...then, handle focus/blur
|
|
5550
|
+
//
|
|
5551
|
+
// focus/blur don't bubble while focusin/focusout do; simulate the former by only
|
|
5552
|
+
// invoking the handler at the lower level.
|
|
5553
|
+
if ( event.target === event.currentTarget ) {
|
|
5554
|
+
|
|
5555
|
+
// The setup part calls `leverageNative`, which, in turn, calls
|
|
5556
|
+
// `jQuery.event.add`, so event handle will already have been set
|
|
5557
|
+
// by this point.
|
|
5558
|
+
handle( event );
|
|
5845
5559
|
}
|
|
5560
|
+
} else {
|
|
5846
5561
|
|
|
5847
|
-
|
|
5562
|
+
// For non-IE browsers, attach a single capturing handler on the document
|
|
5563
|
+
// while someone wants focusin/focusout.
|
|
5564
|
+
jQuery.event.simulate( delegateType, nativeEvent.target,
|
|
5565
|
+
jQuery.event.fix( nativeEvent ) );
|
|
5848
5566
|
}
|
|
5849
|
-
|
|
5850
|
-
return event.which;
|
|
5851
5567
|
}
|
|
5852
|
-
}, jQuery.event.addProp );
|
|
5853
5568
|
|
|
5854
|
-
jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
|
|
5855
5569
|
jQuery.event.special[ type ] = {
|
|
5856
5570
|
|
|
5857
5571
|
// Utilize native event if possible so blur/focus sequence is correct
|
|
5858
5572
|
setup: function() {
|
|
5859
5573
|
|
|
5574
|
+
var attaches;
|
|
5575
|
+
|
|
5860
5576
|
// Claim the first handler
|
|
5861
5577
|
// dataPriv.set( this, "focus", ... )
|
|
5862
5578
|
// dataPriv.set( this, "blur", ... )
|
|
5863
|
-
leverageNative( this, type,
|
|
5579
|
+
leverageNative( this, type, true );
|
|
5864
5580
|
|
|
5865
|
-
|
|
5866
|
-
|
|
5581
|
+
if ( document.documentMode ) {
|
|
5582
|
+
|
|
5583
|
+
// Support: IE 9 - 11+
|
|
5584
|
+
// We use the same native handler for focusin & focus (and focusout & blur)
|
|
5585
|
+
// so we need to coordinate setup & teardown parts between those events.
|
|
5586
|
+
// Use `delegateType` as the key as `type` is already used by `leverageNative`.
|
|
5587
|
+
attaches = dataPriv.get( this, delegateType );
|
|
5588
|
+
if ( !attaches ) {
|
|
5589
|
+
this.addEventListener( delegateType, focusMappedHandler );
|
|
5590
|
+
}
|
|
5591
|
+
dataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );
|
|
5592
|
+
} else {
|
|
5593
|
+
|
|
5594
|
+
// Return false to allow normal processing in the caller
|
|
5595
|
+
return false;
|
|
5596
|
+
}
|
|
5867
5597
|
},
|
|
5868
5598
|
trigger: function() {
|
|
5869
5599
|
|
|
@@ -5874,8 +5604,84 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp
|
|
|
5874
5604
|
return true;
|
|
5875
5605
|
},
|
|
5876
5606
|
|
|
5607
|
+
teardown: function() {
|
|
5608
|
+
var attaches;
|
|
5609
|
+
|
|
5610
|
+
if ( document.documentMode ) {
|
|
5611
|
+
attaches = dataPriv.get( this, delegateType ) - 1;
|
|
5612
|
+
if ( !attaches ) {
|
|
5613
|
+
this.removeEventListener( delegateType, focusMappedHandler );
|
|
5614
|
+
dataPriv.remove( this, delegateType );
|
|
5615
|
+
} else {
|
|
5616
|
+
dataPriv.set( this, delegateType, attaches );
|
|
5617
|
+
}
|
|
5618
|
+
} else {
|
|
5619
|
+
|
|
5620
|
+
// Return false to indicate standard teardown should be applied
|
|
5621
|
+
return false;
|
|
5622
|
+
}
|
|
5623
|
+
},
|
|
5624
|
+
|
|
5625
|
+
// Suppress native focus or blur if we're currently inside
|
|
5626
|
+
// a leveraged native-event stack
|
|
5627
|
+
_default: function( event ) {
|
|
5628
|
+
return dataPriv.get( event.target, type );
|
|
5629
|
+
},
|
|
5630
|
+
|
|
5877
5631
|
delegateType: delegateType
|
|
5878
5632
|
};
|
|
5633
|
+
|
|
5634
|
+
// Support: Firefox <=44
|
|
5635
|
+
// Firefox doesn't have focus(in | out) events
|
|
5636
|
+
// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
|
|
5637
|
+
//
|
|
5638
|
+
// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
|
|
5639
|
+
// focus(in | out) events fire after focus & blur events,
|
|
5640
|
+
// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
|
|
5641
|
+
// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
|
|
5642
|
+
//
|
|
5643
|
+
// Support: IE 9 - 11+
|
|
5644
|
+
// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,
|
|
5645
|
+
// attach a single handler for both events in IE.
|
|
5646
|
+
jQuery.event.special[ delegateType ] = {
|
|
5647
|
+
setup: function() {
|
|
5648
|
+
|
|
5649
|
+
// Handle: regular nodes (via `this.ownerDocument`), window
|
|
5650
|
+
// (via `this.document`) & document (via `this`).
|
|
5651
|
+
var doc = this.ownerDocument || this.document || this,
|
|
5652
|
+
dataHolder = document.documentMode ? this : doc,
|
|
5653
|
+
attaches = dataPriv.get( dataHolder, delegateType );
|
|
5654
|
+
|
|
5655
|
+
// Support: IE 9 - 11+
|
|
5656
|
+
// We use the same native handler for focusin & focus (and focusout & blur)
|
|
5657
|
+
// so we need to coordinate setup & teardown parts between those events.
|
|
5658
|
+
// Use `delegateType` as the key as `type` is already used by `leverageNative`.
|
|
5659
|
+
if ( !attaches ) {
|
|
5660
|
+
if ( document.documentMode ) {
|
|
5661
|
+
this.addEventListener( delegateType, focusMappedHandler );
|
|
5662
|
+
} else {
|
|
5663
|
+
doc.addEventListener( type, focusMappedHandler, true );
|
|
5664
|
+
}
|
|
5665
|
+
}
|
|
5666
|
+
dataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );
|
|
5667
|
+
},
|
|
5668
|
+
teardown: function() {
|
|
5669
|
+
var doc = this.ownerDocument || this.document || this,
|
|
5670
|
+
dataHolder = document.documentMode ? this : doc,
|
|
5671
|
+
attaches = dataPriv.get( dataHolder, delegateType ) - 1;
|
|
5672
|
+
|
|
5673
|
+
if ( !attaches ) {
|
|
5674
|
+
if ( document.documentMode ) {
|
|
5675
|
+
this.removeEventListener( delegateType, focusMappedHandler );
|
|
5676
|
+
} else {
|
|
5677
|
+
doc.removeEventListener( type, focusMappedHandler, true );
|
|
5678
|
+
}
|
|
5679
|
+
dataPriv.remove( dataHolder, delegateType );
|
|
5680
|
+
} else {
|
|
5681
|
+
dataPriv.set( dataHolder, delegateType, attaches );
|
|
5682
|
+
}
|
|
5683
|
+
}
|
|
5684
|
+
};
|
|
5879
5685
|
} );
|
|
5880
5686
|
|
|
5881
5687
|
// Create mouseenter/leave events using mouseover/out and event-time checks
|
|
@@ -5970,7 +5776,8 @@ var
|
|
|
5970
5776
|
|
|
5971
5777
|
// checked="checked" or checked
|
|
5972
5778
|
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
|
|
5973
|
-
|
|
5779
|
+
|
|
5780
|
+
rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g;
|
|
5974
5781
|
|
|
5975
5782
|
// Prefer a tbody over its parent table for containing new rows
|
|
5976
5783
|
function manipulationTarget( elem, content ) {
|
|
@@ -6084,7 +5891,7 @@ function domManip( collection, args, callback, ignored ) {
|
|
|
6084
5891
|
|
|
6085
5892
|
// Use the original fragment for the last item
|
|
6086
5893
|
// instead of the first because it can end up
|
|
6087
|
-
// being emptied incorrectly in certain situations (
|
|
5894
|
+
// being emptied incorrectly in certain situations (trac-8070).
|
|
6088
5895
|
for ( ; i < l; i++ ) {
|
|
6089
5896
|
node = fragment;
|
|
6090
5897
|
|
|
@@ -6125,6 +5932,12 @@ function domManip( collection, args, callback, ignored ) {
|
|
|
6125
5932
|
}, doc );
|
|
6126
5933
|
}
|
|
6127
5934
|
} else {
|
|
5935
|
+
|
|
5936
|
+
// Unwrap a CDATA section containing script contents. This shouldn't be
|
|
5937
|
+
// needed as in XML documents they're already not visible when
|
|
5938
|
+
// inspecting element contents and in HTML documents they have no
|
|
5939
|
+
// meaning but we're preserving that logic for backwards compatibility.
|
|
5940
|
+
// This will be removed completely in 4.0. See gh-4904.
|
|
6128
5941
|
DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
|
|
6129
5942
|
}
|
|
6130
5943
|
}
|
|
@@ -6171,7 +5984,8 @@ jQuery.extend( {
|
|
|
6171
5984
|
if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
|
|
6172
5985
|
!jQuery.isXMLDoc( elem ) ) {
|
|
6173
5986
|
|
|
6174
|
-
// We eschew
|
|
5987
|
+
// We eschew jQuery#find here for performance reasons:
|
|
5988
|
+
// https://jsperf.com/getall-vs-sizzle/2
|
|
6175
5989
|
destElements = getAll( clone );
|
|
6176
5990
|
srcElements = getAll( elem );
|
|
6177
5991
|
|
|
@@ -6407,9 +6221,12 @@ jQuery.each( {
|
|
|
6407
6221
|
} );
|
|
6408
6222
|
var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
|
|
6409
6223
|
|
|
6224
|
+
var rcustomProp = /^--/;
|
|
6225
|
+
|
|
6226
|
+
|
|
6410
6227
|
var getStyles = function( elem ) {
|
|
6411
6228
|
|
|
6412
|
-
// Support: IE <=11 only, Firefox <=30 (
|
|
6229
|
+
// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)
|
|
6413
6230
|
// IE throws on elements created in popups
|
|
6414
6231
|
// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
|
|
6415
6232
|
var view = elem.ownerDocument.defaultView;
|
|
@@ -6509,7 +6326,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
|
|
|
6509
6326
|
}
|
|
6510
6327
|
|
|
6511
6328
|
// Support: IE <=9 - 11 only
|
|
6512
|
-
// Style of cloned element affects source element cloned (
|
|
6329
|
+
// Style of cloned element affects source element cloned (trac-8908)
|
|
6513
6330
|
div.style.backgroundClip = "content-box";
|
|
6514
6331
|
div.cloneNode( true ).style.backgroundClip = "";
|
|
6515
6332
|
support.clearCloneStyle = div.style.backgroundClip === "content-box";
|
|
@@ -6541,6 +6358,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
|
|
|
6541
6358
|
// set in CSS while `offset*` properties report correct values.
|
|
6542
6359
|
// Behavior in IE 9 is more subtle than in newer versions & it passes
|
|
6543
6360
|
// some versions of this test; make sure not to make it pass there!
|
|
6361
|
+
//
|
|
6362
|
+
// Support: Firefox 70+
|
|
6363
|
+
// Only Firefox includes border widths
|
|
6364
|
+
// in computed dimensions. (gh-4529)
|
|
6544
6365
|
reliableTrDimensions: function() {
|
|
6545
6366
|
var table, tr, trChild, trStyle;
|
|
6546
6367
|
if ( reliableTrDimensionsVal == null ) {
|
|
@@ -6548,17 +6369,32 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
|
|
|
6548
6369
|
tr = document.createElement( "tr" );
|
|
6549
6370
|
trChild = document.createElement( "div" );
|
|
6550
6371
|
|
|
6551
|
-
table.style.cssText = "position:absolute;left:-11111px";
|
|
6372
|
+
table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate";
|
|
6373
|
+
tr.style.cssText = "border:1px solid";
|
|
6374
|
+
|
|
6375
|
+
// Support: Chrome 86+
|
|
6376
|
+
// Height set through cssText does not get applied.
|
|
6377
|
+
// Computed height then comes back as 0.
|
|
6552
6378
|
tr.style.height = "1px";
|
|
6553
6379
|
trChild.style.height = "9px";
|
|
6554
6380
|
|
|
6381
|
+
// Support: Android 8 Chrome 86+
|
|
6382
|
+
// In our bodyBackground.html iframe,
|
|
6383
|
+
// display for all div elements is set to "inline",
|
|
6384
|
+
// which causes a problem only in Android 8 Chrome 86.
|
|
6385
|
+
// Ensuring the div is display: block
|
|
6386
|
+
// gets around this issue.
|
|
6387
|
+
trChild.style.display = "block";
|
|
6388
|
+
|
|
6555
6389
|
documentElement
|
|
6556
6390
|
.appendChild( table )
|
|
6557
6391
|
.appendChild( tr )
|
|
6558
6392
|
.appendChild( trChild );
|
|
6559
6393
|
|
|
6560
6394
|
trStyle = window.getComputedStyle( tr );
|
|
6561
|
-
reliableTrDimensionsVal = parseInt( trStyle.height )
|
|
6395
|
+
reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +
|
|
6396
|
+
parseInt( trStyle.borderTopWidth, 10 ) +
|
|
6397
|
+
parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;
|
|
6562
6398
|
|
|
6563
6399
|
documentElement.removeChild( table );
|
|
6564
6400
|
}
|
|
@@ -6570,6 +6406,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
|
|
|
6570
6406
|
|
|
6571
6407
|
function curCSS( elem, name, computed ) {
|
|
6572
6408
|
var width, minWidth, maxWidth, ret,
|
|
6409
|
+
isCustomProp = rcustomProp.test( name ),
|
|
6573
6410
|
|
|
6574
6411
|
// Support: Firefox 51+
|
|
6575
6412
|
// Retrieving style before computed somehow
|
|
@@ -6580,11 +6417,42 @@ function curCSS( elem, name, computed ) {
|
|
|
6580
6417
|
computed = computed || getStyles( elem );
|
|
6581
6418
|
|
|
6582
6419
|
// getPropertyValue is needed for:
|
|
6583
|
-
// .css('filter') (IE 9 only,
|
|
6584
|
-
// .css('--customProperty) (
|
|
6420
|
+
// .css('filter') (IE 9 only, trac-12537)
|
|
6421
|
+
// .css('--customProperty) (gh-3144)
|
|
6585
6422
|
if ( computed ) {
|
|
6423
|
+
|
|
6424
|
+
// Support: IE <=9 - 11+
|
|
6425
|
+
// IE only supports `"float"` in `getPropertyValue`; in computed styles
|
|
6426
|
+
// it's only available as `"cssFloat"`. We no longer modify properties
|
|
6427
|
+
// sent to `.css()` apart from camelCasing, so we need to check both.
|
|
6428
|
+
// Normally, this would create difference in behavior: if
|
|
6429
|
+
// `getPropertyValue` returns an empty string, the value returned
|
|
6430
|
+
// by `.css()` would be `undefined`. This is usually the case for
|
|
6431
|
+
// disconnected elements. However, in IE even disconnected elements
|
|
6432
|
+
// with no styles return `"none"` for `getPropertyValue( "float" )`
|
|
6586
6433
|
ret = computed.getPropertyValue( name ) || computed[ name ];
|
|
6587
6434
|
|
|
6435
|
+
if ( isCustomProp && ret ) {
|
|
6436
|
+
|
|
6437
|
+
// Support: Firefox 105+, Chrome <=105+
|
|
6438
|
+
// Spec requires trimming whitespace for custom properties (gh-4926).
|
|
6439
|
+
// Firefox only trims leading whitespace. Chrome just collapses
|
|
6440
|
+
// both leading & trailing whitespace to a single space.
|
|
6441
|
+
//
|
|
6442
|
+
// Fall back to `undefined` if empty string returned.
|
|
6443
|
+
// This collapses a missing definition with property defined
|
|
6444
|
+
// and set to an empty string but there's no standard API
|
|
6445
|
+
// allowing us to differentiate them without a performance penalty
|
|
6446
|
+
// and returning `undefined` aligns with older jQuery.
|
|
6447
|
+
//
|
|
6448
|
+
// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED
|
|
6449
|
+
// as whitespace while CSS does not, but this is not a problem
|
|
6450
|
+
// because CSS preprocessing replaces them with U+000A LINE FEED
|
|
6451
|
+
// (which *is* CSS whitespace)
|
|
6452
|
+
// https://www.w3.org/TR/css-syntax-3/#input-preprocessing
|
|
6453
|
+
ret = ret.replace( rtrimCSS, "$1" ) || undefined;
|
|
6454
|
+
}
|
|
6455
|
+
|
|
6588
6456
|
if ( ret === "" && !isAttached( elem ) ) {
|
|
6589
6457
|
ret = jQuery.style( elem, name );
|
|
6590
6458
|
}
|
|
@@ -6680,7 +6548,6 @@ var
|
|
|
6680
6548
|
// except "table", "table-cell", or "table-caption"
|
|
6681
6549
|
// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
|
|
6682
6550
|
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
|
|
6683
|
-
rcustomProp = /^--/,
|
|
6684
6551
|
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
|
|
6685
6552
|
cssNormalTransform = {
|
|
6686
6553
|
letterSpacing: "0",
|
|
@@ -6702,7 +6569,8 @@ function setPositiveNumber( _elem, value, subtract ) {
|
|
|
6702
6569
|
function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
|
|
6703
6570
|
var i = dimension === "width" ? 1 : 0,
|
|
6704
6571
|
extra = 0,
|
|
6705
|
-
delta = 0
|
|
6572
|
+
delta = 0,
|
|
6573
|
+
marginDelta = 0;
|
|
6706
6574
|
|
|
6707
6575
|
// Adjustment may not be necessary
|
|
6708
6576
|
if ( box === ( isBorderBox ? "border" : "content" ) ) {
|
|
@@ -6712,8 +6580,10 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
|
|
|
6712
6580
|
for ( ; i < 4; i += 2 ) {
|
|
6713
6581
|
|
|
6714
6582
|
// Both box models exclude margin
|
|
6583
|
+
// Count margin delta separately to only add it after scroll gutter adjustment.
|
|
6584
|
+
// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).
|
|
6715
6585
|
if ( box === "margin" ) {
|
|
6716
|
-
|
|
6586
|
+
marginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
|
|
6717
6587
|
}
|
|
6718
6588
|
|
|
6719
6589
|
// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
|
|
@@ -6764,7 +6634,7 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
|
|
|
6764
6634
|
) ) || 0;
|
|
6765
6635
|
}
|
|
6766
6636
|
|
|
6767
|
-
return delta;
|
|
6637
|
+
return delta + marginDelta;
|
|
6768
6638
|
}
|
|
6769
6639
|
|
|
6770
6640
|
function getWidthOrHeight( elem, dimension, extra ) {
|
|
@@ -6862,26 +6732,35 @@ jQuery.extend( {
|
|
|
6862
6732
|
|
|
6863
6733
|
// Don't automatically add "px" to these possibly-unitless properties
|
|
6864
6734
|
cssNumber: {
|
|
6865
|
-
|
|
6866
|
-
|
|
6867
|
-
|
|
6868
|
-
|
|
6869
|
-
|
|
6870
|
-
|
|
6871
|
-
|
|
6872
|
-
|
|
6873
|
-
|
|
6874
|
-
|
|
6875
|
-
|
|
6876
|
-
|
|
6877
|
-
|
|
6878
|
-
|
|
6879
|
-
|
|
6880
|
-
|
|
6881
|
-
|
|
6882
|
-
|
|
6883
|
-
|
|
6884
|
-
|
|
6735
|
+
animationIterationCount: true,
|
|
6736
|
+
aspectRatio: true,
|
|
6737
|
+
borderImageSlice: true,
|
|
6738
|
+
columnCount: true,
|
|
6739
|
+
flexGrow: true,
|
|
6740
|
+
flexShrink: true,
|
|
6741
|
+
fontWeight: true,
|
|
6742
|
+
gridArea: true,
|
|
6743
|
+
gridColumn: true,
|
|
6744
|
+
gridColumnEnd: true,
|
|
6745
|
+
gridColumnStart: true,
|
|
6746
|
+
gridRow: true,
|
|
6747
|
+
gridRowEnd: true,
|
|
6748
|
+
gridRowStart: true,
|
|
6749
|
+
lineHeight: true,
|
|
6750
|
+
opacity: true,
|
|
6751
|
+
order: true,
|
|
6752
|
+
orphans: true,
|
|
6753
|
+
scale: true,
|
|
6754
|
+
widows: true,
|
|
6755
|
+
zIndex: true,
|
|
6756
|
+
zoom: true,
|
|
6757
|
+
|
|
6758
|
+
// SVG-related
|
|
6759
|
+
fillOpacity: true,
|
|
6760
|
+
floodOpacity: true,
|
|
6761
|
+
stopOpacity: true,
|
|
6762
|
+
strokeMiterlimit: true,
|
|
6763
|
+
strokeOpacity: true
|
|
6885
6764
|
},
|
|
6886
6765
|
|
|
6887
6766
|
// Add in properties whose names you wish to fix before
|
|
@@ -6916,15 +6795,15 @@ jQuery.extend( {
|
|
|
6916
6795
|
if ( value !== undefined ) {
|
|
6917
6796
|
type = typeof value;
|
|
6918
6797
|
|
|
6919
|
-
// Convert "+=" or "-=" to relative numbers (
|
|
6798
|
+
// Convert "+=" or "-=" to relative numbers (trac-7345)
|
|
6920
6799
|
if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
|
|
6921
6800
|
value = adjustCSS( elem, name, ret );
|
|
6922
6801
|
|
|
6923
|
-
// Fixes bug
|
|
6802
|
+
// Fixes bug trac-9237
|
|
6924
6803
|
type = "number";
|
|
6925
6804
|
}
|
|
6926
6805
|
|
|
6927
|
-
// Make sure that null and NaN values aren't set (
|
|
6806
|
+
// Make sure that null and NaN values aren't set (trac-7116)
|
|
6928
6807
|
if ( value == null || value !== value ) {
|
|
6929
6808
|
return;
|
|
6930
6809
|
}
|
|
@@ -7022,10 +6901,10 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) {
|
|
|
7022
6901
|
// Running getBoundingClientRect on a disconnected node
|
|
7023
6902
|
// in IE throws an error.
|
|
7024
6903
|
( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
|
|
7025
|
-
|
|
7026
|
-
|
|
7027
|
-
|
|
7028
|
-
|
|
6904
|
+
swap( elem, cssShow, function() {
|
|
6905
|
+
return getWidthOrHeight( elem, dimension, extra );
|
|
6906
|
+
} ) :
|
|
6907
|
+
getWidthOrHeight( elem, dimension, extra );
|
|
7029
6908
|
}
|
|
7030
6909
|
},
|
|
7031
6910
|
|
|
@@ -7084,7 +6963,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
|
|
|
7084
6963
|
swap( elem, { marginLeft: 0 }, function() {
|
|
7085
6964
|
return elem.getBoundingClientRect().left;
|
|
7086
6965
|
} )
|
|
7087
|
-
|
|
6966
|
+
) + "px";
|
|
7088
6967
|
}
|
|
7089
6968
|
}
|
|
7090
6969
|
);
|
|
@@ -7223,7 +7102,7 @@ Tween.propHooks = {
|
|
|
7223
7102
|
if ( jQuery.fx.step[ tween.prop ] ) {
|
|
7224
7103
|
jQuery.fx.step[ tween.prop ]( tween );
|
|
7225
7104
|
} else if ( tween.elem.nodeType === 1 && (
|
|
7226
|
-
|
|
7105
|
+
jQuery.cssHooks[ tween.prop ] ||
|
|
7227
7106
|
tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
|
|
7228
7107
|
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
|
|
7229
7108
|
} else {
|
|
@@ -7468,7 +7347,7 @@ function defaultPrefilter( elem, props, opts ) {
|
|
|
7468
7347
|
|
|
7469
7348
|
anim.done( function() {
|
|
7470
7349
|
|
|
7471
|
-
|
|
7350
|
+
/* eslint-enable no-loop-func */
|
|
7472
7351
|
|
|
7473
7352
|
// The final step of a "hide" animation is actually hiding the element
|
|
7474
7353
|
if ( !hidden ) {
|
|
@@ -7548,7 +7427,7 @@ function Animation( elem, properties, options ) {
|
|
|
7548
7427
|
remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
|
|
7549
7428
|
|
|
7550
7429
|
// Support: Android 2.3 only
|
|
7551
|
-
// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (
|
|
7430
|
+
// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)
|
|
7552
7431
|
temp = remaining / animation.duration || 0,
|
|
7553
7432
|
percent = 1 - temp,
|
|
7554
7433
|
index = 0,
|
|
@@ -7588,7 +7467,7 @@ function Animation( elem, properties, options ) {
|
|
|
7588
7467
|
tweens: [],
|
|
7589
7468
|
createTween: function( prop, end ) {
|
|
7590
7469
|
var tween = jQuery.Tween( elem, animation.opts, prop, end,
|
|
7591
|
-
|
|
7470
|
+
animation.opts.specialEasing[ prop ] || animation.opts.easing );
|
|
7592
7471
|
animation.tweens.push( tween );
|
|
7593
7472
|
return tween;
|
|
7594
7473
|
},
|
|
@@ -7761,7 +7640,8 @@ jQuery.fn.extend( {
|
|
|
7761
7640
|
anim.stop( true );
|
|
7762
7641
|
}
|
|
7763
7642
|
};
|
|
7764
|
-
|
|
7643
|
+
|
|
7644
|
+
doAnimation.finish = doAnimation;
|
|
7765
7645
|
|
|
7766
7646
|
return empty || optall.queue === false ?
|
|
7767
7647
|
this.each( doAnimation ) :
|
|
@@ -7937,7 +7817,6 @@ jQuery.fx.speeds = {
|
|
|
7937
7817
|
|
|
7938
7818
|
|
|
7939
7819
|
// Based off of the plugin by Clint Helfers, with permission.
|
|
7940
|
-
// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
|
|
7941
7820
|
jQuery.fn.delay = function( time, type ) {
|
|
7942
7821
|
time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
|
|
7943
7822
|
type = type || "fx";
|
|
@@ -8162,8 +8041,7 @@ jQuery.extend( {
|
|
|
8162
8041
|
// Support: IE <=9 - 11 only
|
|
8163
8042
|
// elem.tabIndex doesn't always return the
|
|
8164
8043
|
// correct value when it hasn't been explicitly set
|
|
8165
|
-
//
|
|
8166
|
-
// Use proper attribute retrieval(#12072)
|
|
8044
|
+
// Use proper attribute retrieval (trac-12072)
|
|
8167
8045
|
var tabindex = jQuery.find.attr( elem, "tabindex" );
|
|
8168
8046
|
|
|
8169
8047
|
if ( tabindex ) {
|
|
@@ -8267,8 +8145,7 @@ function classesToArray( value ) {
|
|
|
8267
8145
|
|
|
8268
8146
|
jQuery.fn.extend( {
|
|
8269
8147
|
addClass: function( value ) {
|
|
8270
|
-
var
|
|
8271
|
-
i = 0;
|
|
8148
|
+
var classNames, cur, curValue, className, i, finalValue;
|
|
8272
8149
|
|
|
8273
8150
|
if ( isFunction( value ) ) {
|
|
8274
8151
|
return this.each( function( j ) {
|
|
@@ -8276,36 +8153,35 @@ jQuery.fn.extend( {
|
|
|
8276
8153
|
} );
|
|
8277
8154
|
}
|
|
8278
8155
|
|
|
8279
|
-
|
|
8156
|
+
classNames = classesToArray( value );
|
|
8280
8157
|
|
|
8281
|
-
if (
|
|
8282
|
-
|
|
8283
|
-
curValue = getClass(
|
|
8284
|
-
cur =
|
|
8158
|
+
if ( classNames.length ) {
|
|
8159
|
+
return this.each( function() {
|
|
8160
|
+
curValue = getClass( this );
|
|
8161
|
+
cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
|
|
8285
8162
|
|
|
8286
8163
|
if ( cur ) {
|
|
8287
|
-
|
|
8288
|
-
|
|
8289
|
-
if ( cur.indexOf( " " +
|
|
8290
|
-
cur +=
|
|
8164
|
+
for ( i = 0; i < classNames.length; i++ ) {
|
|
8165
|
+
className = classNames[ i ];
|
|
8166
|
+
if ( cur.indexOf( " " + className + " " ) < 0 ) {
|
|
8167
|
+
cur += className + " ";
|
|
8291
8168
|
}
|
|
8292
8169
|
}
|
|
8293
8170
|
|
|
8294
8171
|
// Only assign if different to avoid unneeded rendering.
|
|
8295
8172
|
finalValue = stripAndCollapse( cur );
|
|
8296
8173
|
if ( curValue !== finalValue ) {
|
|
8297
|
-
|
|
8174
|
+
this.setAttribute( "class", finalValue );
|
|
8298
8175
|
}
|
|
8299
8176
|
}
|
|
8300
|
-
}
|
|
8177
|
+
} );
|
|
8301
8178
|
}
|
|
8302
8179
|
|
|
8303
8180
|
return this;
|
|
8304
8181
|
},
|
|
8305
8182
|
|
|
8306
8183
|
removeClass: function( value ) {
|
|
8307
|
-
var
|
|
8308
|
-
i = 0;
|
|
8184
|
+
var classNames, cur, curValue, className, i, finalValue;
|
|
8309
8185
|
|
|
8310
8186
|
if ( isFunction( value ) ) {
|
|
8311
8187
|
return this.each( function( j ) {
|
|
@@ -8317,45 +8193,42 @@ jQuery.fn.extend( {
|
|
|
8317
8193
|
return this.attr( "class", "" );
|
|
8318
8194
|
}
|
|
8319
8195
|
|
|
8320
|
-
|
|
8196
|
+
classNames = classesToArray( value );
|
|
8321
8197
|
|
|
8322
|
-
if (
|
|
8323
|
-
|
|
8324
|
-
curValue = getClass(
|
|
8198
|
+
if ( classNames.length ) {
|
|
8199
|
+
return this.each( function() {
|
|
8200
|
+
curValue = getClass( this );
|
|
8325
8201
|
|
|
8326
8202
|
// This expression is here for better compressibility (see addClass)
|
|
8327
|
-
cur =
|
|
8203
|
+
cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
|
|
8328
8204
|
|
|
8329
8205
|
if ( cur ) {
|
|
8330
|
-
|
|
8331
|
-
|
|
8206
|
+
for ( i = 0; i < classNames.length; i++ ) {
|
|
8207
|
+
className = classNames[ i ];
|
|
8332
8208
|
|
|
8333
8209
|
// Remove *all* instances
|
|
8334
|
-
while ( cur.indexOf( " " +
|
|
8335
|
-
cur = cur.replace( " " +
|
|
8210
|
+
while ( cur.indexOf( " " + className + " " ) > -1 ) {
|
|
8211
|
+
cur = cur.replace( " " + className + " ", " " );
|
|
8336
8212
|
}
|
|
8337
8213
|
}
|
|
8338
8214
|
|
|
8339
8215
|
// Only assign if different to avoid unneeded rendering.
|
|
8340
8216
|
finalValue = stripAndCollapse( cur );
|
|
8341
8217
|
if ( curValue !== finalValue ) {
|
|
8342
|
-
|
|
8218
|
+
this.setAttribute( "class", finalValue );
|
|
8343
8219
|
}
|
|
8344
8220
|
}
|
|
8345
|
-
}
|
|
8221
|
+
} );
|
|
8346
8222
|
}
|
|
8347
8223
|
|
|
8348
8224
|
return this;
|
|
8349
8225
|
},
|
|
8350
8226
|
|
|
8351
8227
|
toggleClass: function( value, stateVal ) {
|
|
8352
|
-
var
|
|
8228
|
+
var classNames, className, i, self,
|
|
8229
|
+
type = typeof value,
|
|
8353
8230
|
isValidValue = type === "string" || Array.isArray( value );
|
|
8354
8231
|
|
|
8355
|
-
if ( typeof stateVal === "boolean" && isValidValue ) {
|
|
8356
|
-
return stateVal ? this.addClass( value ) : this.removeClass( value );
|
|
8357
|
-
}
|
|
8358
|
-
|
|
8359
8232
|
if ( isFunction( value ) ) {
|
|
8360
8233
|
return this.each( function( i ) {
|
|
8361
8234
|
jQuery( this ).toggleClass(
|
|
@@ -8365,17 +8238,20 @@ jQuery.fn.extend( {
|
|
|
8365
8238
|
} );
|
|
8366
8239
|
}
|
|
8367
8240
|
|
|
8368
|
-
|
|
8369
|
-
|
|
8241
|
+
if ( typeof stateVal === "boolean" && isValidValue ) {
|
|
8242
|
+
return stateVal ? this.addClass( value ) : this.removeClass( value );
|
|
8243
|
+
}
|
|
8244
|
+
|
|
8245
|
+
classNames = classesToArray( value );
|
|
8370
8246
|
|
|
8247
|
+
return this.each( function() {
|
|
8371
8248
|
if ( isValidValue ) {
|
|
8372
8249
|
|
|
8373
8250
|
// Toggle individual class names
|
|
8374
|
-
i = 0;
|
|
8375
8251
|
self = jQuery( this );
|
|
8376
|
-
classNames = classesToArray( value );
|
|
8377
8252
|
|
|
8378
|
-
|
|
8253
|
+
for ( i = 0; i < classNames.length; i++ ) {
|
|
8254
|
+
className = classNames[ i ];
|
|
8379
8255
|
|
|
8380
8256
|
// Check each className given, space separated list
|
|
8381
8257
|
if ( self.hasClass( className ) ) {
|
|
@@ -8401,8 +8277,8 @@ jQuery.fn.extend( {
|
|
|
8401
8277
|
if ( this.setAttribute ) {
|
|
8402
8278
|
this.setAttribute( "class",
|
|
8403
8279
|
className || value === false ?
|
|
8404
|
-
|
|
8405
|
-
|
|
8280
|
+
"" :
|
|
8281
|
+
dataPriv.get( this, "__className__" ) || ""
|
|
8406
8282
|
);
|
|
8407
8283
|
}
|
|
8408
8284
|
}
|
|
@@ -8417,7 +8293,7 @@ jQuery.fn.extend( {
|
|
|
8417
8293
|
while ( ( elem = this[ i++ ] ) ) {
|
|
8418
8294
|
if ( elem.nodeType === 1 &&
|
|
8419
8295
|
( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
|
|
8420
|
-
|
|
8296
|
+
return true;
|
|
8421
8297
|
}
|
|
8422
8298
|
}
|
|
8423
8299
|
|
|
@@ -8509,7 +8385,7 @@ jQuery.extend( {
|
|
|
8509
8385
|
val :
|
|
8510
8386
|
|
|
8511
8387
|
// Support: IE <=10 - 11 only
|
|
8512
|
-
// option.text throws exceptions (
|
|
8388
|
+
// option.text throws exceptions (trac-14686, trac-14858)
|
|
8513
8389
|
// Strip and collapse whitespace
|
|
8514
8390
|
// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
|
|
8515
8391
|
stripAndCollapse( jQuery.text( elem ) );
|
|
@@ -8536,7 +8412,7 @@ jQuery.extend( {
|
|
|
8536
8412
|
option = options[ i ];
|
|
8537
8413
|
|
|
8538
8414
|
// Support: IE <=9 only
|
|
8539
|
-
// IE8-9 doesn't update selected after form reset (
|
|
8415
|
+
// IE8-9 doesn't update selected after form reset (trac-2551)
|
|
8540
8416
|
if ( ( option.selected || i === index ) &&
|
|
8541
8417
|
|
|
8542
8418
|
// Don't return options that are disabled or in a disabled optgroup
|
|
@@ -8610,9 +8486,39 @@ jQuery.each( [ "radio", "checkbox" ], function() {
|
|
|
8610
8486
|
|
|
8611
8487
|
|
|
8612
8488
|
// Return jQuery for attributes-only inclusion
|
|
8489
|
+
var location = window.location;
|
|
8490
|
+
|
|
8491
|
+
var nonce = { guid: Date.now() };
|
|
8492
|
+
|
|
8493
|
+
var rquery = ( /\?/ );
|
|
8494
|
+
|
|
8613
8495
|
|
|
8614
8496
|
|
|
8615
|
-
|
|
8497
|
+
// Cross-browser xml parsing
|
|
8498
|
+
jQuery.parseXML = function( data ) {
|
|
8499
|
+
var xml, parserErrorElem;
|
|
8500
|
+
if ( !data || typeof data !== "string" ) {
|
|
8501
|
+
return null;
|
|
8502
|
+
}
|
|
8503
|
+
|
|
8504
|
+
// Support: IE 9 - 11 only
|
|
8505
|
+
// IE throws on parseFromString with invalid input.
|
|
8506
|
+
try {
|
|
8507
|
+
xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
|
|
8508
|
+
} catch ( e ) {}
|
|
8509
|
+
|
|
8510
|
+
parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
|
|
8511
|
+
if ( !xml || parserErrorElem ) {
|
|
8512
|
+
jQuery.error( "Invalid XML: " + (
|
|
8513
|
+
parserErrorElem ?
|
|
8514
|
+
jQuery.map( parserErrorElem.childNodes, function( el ) {
|
|
8515
|
+
return el.textContent;
|
|
8516
|
+
} ).join( "\n" ) :
|
|
8517
|
+
data
|
|
8518
|
+
) );
|
|
8519
|
+
}
|
|
8520
|
+
return xml;
|
|
8521
|
+
};
|
|
8616
8522
|
|
|
8617
8523
|
|
|
8618
8524
|
var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
|
|
@@ -8679,8 +8585,8 @@ jQuery.extend( jQuery.event, {
|
|
|
8679
8585
|
return;
|
|
8680
8586
|
}
|
|
8681
8587
|
|
|
8682
|
-
// Determine event propagation path in advance, per W3C events spec (
|
|
8683
|
-
// Bubble up to document, then to window; watch for a global ownerDocument var (
|
|
8588
|
+
// Determine event propagation path in advance, per W3C events spec (trac-9951)
|
|
8589
|
+
// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)
|
|
8684
8590
|
if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
|
|
8685
8591
|
|
|
8686
8592
|
bubbleType = special.delegateType || type;
|
|
@@ -8707,9 +8613,7 @@ jQuery.extend( jQuery.event, {
|
|
|
8707
8613
|
special.bindType || type;
|
|
8708
8614
|
|
|
8709
8615
|
// jQuery handler
|
|
8710
|
-
handle = (
|
|
8711
|
-
dataPriv.get( cur, "events" ) || Object.create( null )
|
|
8712
|
-
)[ event.type ] &&
|
|
8616
|
+
handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] &&
|
|
8713
8617
|
dataPriv.get( cur, "handle" );
|
|
8714
8618
|
if ( handle ) {
|
|
8715
8619
|
handle.apply( cur, data );
|
|
@@ -8734,7 +8638,7 @@ jQuery.extend( jQuery.event, {
|
|
|
8734
8638
|
acceptData( elem ) ) {
|
|
8735
8639
|
|
|
8736
8640
|
// Call a native DOM method on the target with the same name as the event.
|
|
8737
|
-
// Don't do default actions on window, that's where global variables be (
|
|
8641
|
+
// Don't do default actions on window, that's where global variables be (trac-6170)
|
|
8738
8642
|
if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
|
|
8739
8643
|
|
|
8740
8644
|
// Don't re-trigger an onFOO event when we call its FOO() method
|
|
@@ -8802,80 +8706,6 @@ jQuery.fn.extend( {
|
|
|
8802
8706
|
} );
|
|
8803
8707
|
|
|
8804
8708
|
|
|
8805
|
-
// Support: Firefox <=44
|
|
8806
|
-
// Firefox doesn't have focus(in | out) events
|
|
8807
|
-
// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
|
|
8808
|
-
//
|
|
8809
|
-
// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
|
|
8810
|
-
// focus(in | out) events fire after focus & blur events,
|
|
8811
|
-
// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
|
|
8812
|
-
// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
|
|
8813
|
-
if ( !support.focusin ) {
|
|
8814
|
-
jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
|
|
8815
|
-
|
|
8816
|
-
// Attach a single capturing handler on the document while someone wants focusin/focusout
|
|
8817
|
-
var handler = function( event ) {
|
|
8818
|
-
jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
|
|
8819
|
-
};
|
|
8820
|
-
|
|
8821
|
-
jQuery.event.special[ fix ] = {
|
|
8822
|
-
setup: function() {
|
|
8823
|
-
|
|
8824
|
-
// Handle: regular nodes (via `this.ownerDocument`), window
|
|
8825
|
-
// (via `this.document`) & document (via `this`).
|
|
8826
|
-
var doc = this.ownerDocument || this.document || this,
|
|
8827
|
-
attaches = dataPriv.access( doc, fix );
|
|
8828
|
-
|
|
8829
|
-
if ( !attaches ) {
|
|
8830
|
-
doc.addEventListener( orig, handler, true );
|
|
8831
|
-
}
|
|
8832
|
-
dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
|
|
8833
|
-
},
|
|
8834
|
-
teardown: function() {
|
|
8835
|
-
var doc = this.ownerDocument || this.document || this,
|
|
8836
|
-
attaches = dataPriv.access( doc, fix ) - 1;
|
|
8837
|
-
|
|
8838
|
-
if ( !attaches ) {
|
|
8839
|
-
doc.removeEventListener( orig, handler, true );
|
|
8840
|
-
dataPriv.remove( doc, fix );
|
|
8841
|
-
|
|
8842
|
-
} else {
|
|
8843
|
-
dataPriv.access( doc, fix, attaches );
|
|
8844
|
-
}
|
|
8845
|
-
}
|
|
8846
|
-
};
|
|
8847
|
-
} );
|
|
8848
|
-
}
|
|
8849
|
-
var location = window.location;
|
|
8850
|
-
|
|
8851
|
-
var nonce = { guid: Date.now() };
|
|
8852
|
-
|
|
8853
|
-
var rquery = ( /\?/ );
|
|
8854
|
-
|
|
8855
|
-
|
|
8856
|
-
|
|
8857
|
-
// Cross-browser xml parsing
|
|
8858
|
-
jQuery.parseXML = function( data ) {
|
|
8859
|
-
var xml;
|
|
8860
|
-
if ( !data || typeof data !== "string" ) {
|
|
8861
|
-
return null;
|
|
8862
|
-
}
|
|
8863
|
-
|
|
8864
|
-
// Support: IE 9 - 11 only
|
|
8865
|
-
// IE throws on parseFromString with invalid input.
|
|
8866
|
-
try {
|
|
8867
|
-
xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
|
|
8868
|
-
} catch ( e ) {
|
|
8869
|
-
xml = undefined;
|
|
8870
|
-
}
|
|
8871
|
-
|
|
8872
|
-
if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
|
|
8873
|
-
jQuery.error( "Invalid XML: " + data );
|
|
8874
|
-
}
|
|
8875
|
-
return xml;
|
|
8876
|
-
};
|
|
8877
|
-
|
|
8878
|
-
|
|
8879
8709
|
var
|
|
8880
8710
|
rbracket = /\[\]$/,
|
|
8881
8711
|
rCRLF = /\r?\n/g,
|
|
@@ -8971,16 +8801,14 @@ jQuery.fn.extend( {
|
|
|
8971
8801
|
// Can add propHook for "elements" to filter or add form elements
|
|
8972
8802
|
var elements = jQuery.prop( this, "elements" );
|
|
8973
8803
|
return elements ? jQuery.makeArray( elements ) : this;
|
|
8974
|
-
} )
|
|
8975
|
-
.filter( function() {
|
|
8804
|
+
} ).filter( function() {
|
|
8976
8805
|
var type = this.type;
|
|
8977
8806
|
|
|
8978
8807
|
// Use .is( ":disabled" ) so that fieldset[disabled] works
|
|
8979
8808
|
return this.name && !jQuery( this ).is( ":disabled" ) &&
|
|
8980
8809
|
rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
|
|
8981
8810
|
( this.checked || !rcheckableType.test( type ) );
|
|
8982
|
-
} )
|
|
8983
|
-
.map( function( _i, elem ) {
|
|
8811
|
+
} ).map( function( _i, elem ) {
|
|
8984
8812
|
var val = jQuery( this ).val();
|
|
8985
8813
|
|
|
8986
8814
|
if ( val == null ) {
|
|
@@ -9005,7 +8833,7 @@ var
|
|
|
9005
8833
|
rantiCache = /([?&])_=[^&]*/,
|
|
9006
8834
|
rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
|
|
9007
8835
|
|
|
9008
|
-
//
|
|
8836
|
+
// trac-7653, trac-8125, trac-8152: local protocol detection
|
|
9009
8837
|
rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
|
|
9010
8838
|
rnoContent = /^(?:GET|HEAD)$/,
|
|
9011
8839
|
rprotocol = /^\/\//,
|
|
@@ -9028,12 +8856,13 @@ var
|
|
|
9028
8856
|
*/
|
|
9029
8857
|
transports = {},
|
|
9030
8858
|
|
|
9031
|
-
// Avoid comment-prolog char sequence (
|
|
8859
|
+
// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression
|
|
9032
8860
|
allTypes = "*/".concat( "*" ),
|
|
9033
8861
|
|
|
9034
8862
|
// Anchor tag for parsing the document origin
|
|
9035
8863
|
originAnchor = document.createElement( "a" );
|
|
9036
|
-
|
|
8864
|
+
|
|
8865
|
+
originAnchor.href = location.href;
|
|
9037
8866
|
|
|
9038
8867
|
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
|
|
9039
8868
|
function addToPrefiltersOrTransports( structure ) {
|
|
@@ -9098,7 +8927,7 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX
|
|
|
9098
8927
|
|
|
9099
8928
|
// A special extend for ajax options
|
|
9100
8929
|
// that takes "flat" options (not to be deep extended)
|
|
9101
|
-
// Fixes
|
|
8930
|
+
// Fixes trac-9887
|
|
9102
8931
|
function ajaxExtend( target, src ) {
|
|
9103
8932
|
var key, deep,
|
|
9104
8933
|
flatOptions = jQuery.ajaxSettings.flatOptions || {};
|
|
@@ -9414,8 +9243,8 @@ jQuery.extend( {
|
|
|
9414
9243
|
// Context for global events is callbackContext if it is a DOM node or jQuery collection
|
|
9415
9244
|
globalEventContext = s.context &&
|
|
9416
9245
|
( callbackContext.nodeType || callbackContext.jquery ) ?
|
|
9417
|
-
|
|
9418
|
-
|
|
9246
|
+
jQuery( callbackContext ) :
|
|
9247
|
+
jQuery.event,
|
|
9419
9248
|
|
|
9420
9249
|
// Deferreds
|
|
9421
9250
|
deferred = jQuery.Deferred(),
|
|
@@ -9509,12 +9338,12 @@ jQuery.extend( {
|
|
|
9509
9338
|
deferred.promise( jqXHR );
|
|
9510
9339
|
|
|
9511
9340
|
// Add protocol if not provided (prefilters might expect it)
|
|
9512
|
-
// Handle falsy url in the settings object (
|
|
9341
|
+
// Handle falsy url in the settings object (trac-10093: consistency with old signature)
|
|
9513
9342
|
// We also use the url parameter if available
|
|
9514
9343
|
s.url = ( ( url || s.url || location.href ) + "" )
|
|
9515
9344
|
.replace( rprotocol, location.protocol + "//" );
|
|
9516
9345
|
|
|
9517
|
-
// Alias method option to type as per ticket
|
|
9346
|
+
// Alias method option to type as per ticket trac-12004
|
|
9518
9347
|
s.type = options.method || options.type || s.method || s.type;
|
|
9519
9348
|
|
|
9520
9349
|
// Extract dataTypes list
|
|
@@ -9557,7 +9386,7 @@ jQuery.extend( {
|
|
|
9557
9386
|
}
|
|
9558
9387
|
|
|
9559
9388
|
// We can fire global events as of now if asked to
|
|
9560
|
-
// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (
|
|
9389
|
+
// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)
|
|
9561
9390
|
fireGlobals = jQuery.event && s.global;
|
|
9562
9391
|
|
|
9563
9392
|
// Watch for a new set of requests
|
|
@@ -9586,7 +9415,7 @@ jQuery.extend( {
|
|
|
9586
9415
|
if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
|
|
9587
9416
|
cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
|
|
9588
9417
|
|
|
9589
|
-
//
|
|
9418
|
+
// trac-9682: remove data so that it's not used in an eventual retry
|
|
9590
9419
|
delete s.data;
|
|
9591
9420
|
}
|
|
9592
9421
|
|
|
@@ -9727,8 +9556,10 @@ jQuery.extend( {
|
|
|
9727
9556
|
response = ajaxHandleResponses( s, jqXHR, responses );
|
|
9728
9557
|
}
|
|
9729
9558
|
|
|
9730
|
-
// Use a noop converter for missing script
|
|
9731
|
-
if ( !isSuccess &&
|
|
9559
|
+
// Use a noop converter for missing script but not if jsonp
|
|
9560
|
+
if ( !isSuccess &&
|
|
9561
|
+
jQuery.inArray( "script", s.dataTypes ) > -1 &&
|
|
9562
|
+
jQuery.inArray( "json", s.dataTypes ) < 0 ) {
|
|
9732
9563
|
s.converters[ "text script" ] = function() {};
|
|
9733
9564
|
}
|
|
9734
9565
|
|
|
@@ -9857,7 +9688,7 @@ jQuery._evalUrl = function( url, options, doc ) {
|
|
|
9857
9688
|
return jQuery.ajax( {
|
|
9858
9689
|
url: url,
|
|
9859
9690
|
|
|
9860
|
-
// Make this explicit, since user can override this through ajaxSetup (
|
|
9691
|
+
// Make this explicit, since user can override this through ajaxSetup (trac-11264)
|
|
9861
9692
|
type: "GET",
|
|
9862
9693
|
dataType: "script",
|
|
9863
9694
|
cache: true,
|
|
@@ -9966,7 +9797,7 @@ var xhrSuccessStatus = {
|
|
|
9966
9797
|
0: 200,
|
|
9967
9798
|
|
|
9968
9799
|
// Support: IE <=9 only
|
|
9969
|
-
//
|
|
9800
|
+
// trac-1450: sometimes IE returns 1223 when it should be 204
|
|
9970
9801
|
1223: 204
|
|
9971
9802
|
},
|
|
9972
9803
|
xhrSupported = jQuery.ajaxSettings.xhr();
|
|
@@ -10038,7 +9869,7 @@ jQuery.ajaxTransport( function( options ) {
|
|
|
10038
9869
|
} else {
|
|
10039
9870
|
complete(
|
|
10040
9871
|
|
|
10041
|
-
// File: protocol always yields status 0; see
|
|
9872
|
+
// File: protocol always yields status 0; see trac-8605, trac-14207
|
|
10042
9873
|
xhr.status,
|
|
10043
9874
|
xhr.statusText
|
|
10044
9875
|
);
|
|
@@ -10099,7 +9930,7 @@ jQuery.ajaxTransport( function( options ) {
|
|
|
10099
9930
|
xhr.send( options.hasContent && options.data || null );
|
|
10100
9931
|
} catch ( e ) {
|
|
10101
9932
|
|
|
10102
|
-
//
|
|
9933
|
+
// trac-14683: Only rethrow if this hasn't been notified as an error yet
|
|
10103
9934
|
if ( callback ) {
|
|
10104
9935
|
throw e;
|
|
10105
9936
|
}
|
|
@@ -10466,12 +10297,6 @@ jQuery.offset = {
|
|
|
10466
10297
|
options.using.call( elem, props );
|
|
10467
10298
|
|
|
10468
10299
|
} else {
|
|
10469
|
-
if ( typeof props.top === "number" ) {
|
|
10470
|
-
props.top += "px";
|
|
10471
|
-
}
|
|
10472
|
-
if ( typeof props.left === "number" ) {
|
|
10473
|
-
props.left += "px";
|
|
10474
|
-
}
|
|
10475
10300
|
curElem.css( props );
|
|
10476
10301
|
}
|
|
10477
10302
|
}
|
|
@@ -10640,8 +10465,11 @@ jQuery.each( [ "top", "left" ], function( _i, prop ) {
|
|
|
10640
10465
|
|
|
10641
10466
|
// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
|
|
10642
10467
|
jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
|
|
10643
|
-
jQuery.each( {
|
|
10644
|
-
|
|
10468
|
+
jQuery.each( {
|
|
10469
|
+
padding: "inner" + name,
|
|
10470
|
+
content: type,
|
|
10471
|
+
"": "outer" + name
|
|
10472
|
+
}, function( defaultExtra, funcName ) {
|
|
10645
10473
|
|
|
10646
10474
|
// Margin is only for outerHeight, outerWidth
|
|
10647
10475
|
jQuery.fn[ funcName ] = function( margin, value ) {
|
|
@@ -10726,7 +10554,8 @@ jQuery.fn.extend( {
|
|
|
10726
10554
|
}
|
|
10727
10555
|
} );
|
|
10728
10556
|
|
|
10729
|
-
jQuery.each(
|
|
10557
|
+
jQuery.each(
|
|
10558
|
+
( "blur focus focusin focusout resize scroll click dblclick " +
|
|
10730
10559
|
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
|
|
10731
10560
|
"change select submit keydown keypress keyup contextmenu" ).split( " " ),
|
|
10732
10561
|
function( _i, name ) {
|
|
@@ -10737,14 +10566,17 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
|
|
|
10737
10566
|
this.on( name, null, data, fn ) :
|
|
10738
10567
|
this.trigger( name );
|
|
10739
10568
|
};
|
|
10740
|
-
}
|
|
10569
|
+
}
|
|
10570
|
+
);
|
|
10741
10571
|
|
|
10742
10572
|
|
|
10743
10573
|
|
|
10744
10574
|
|
|
10745
10575
|
// Support: Android <=4.0 only
|
|
10746
10576
|
// Make sure we trim BOM and NBSP
|
|
10747
|
-
|
|
10577
|
+
// Require that the "whitespace run" starts from a non-whitespace
|
|
10578
|
+
// to avoid O(N^2) behavior when the engine would try matching "\s+$" at each space position.
|
|
10579
|
+
var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
|
|
10748
10580
|
|
|
10749
10581
|
// Bind a function to a context, optionally partially applying any
|
|
10750
10582
|
// arguments.
|
|
@@ -10811,7 +10643,7 @@ jQuery.isNumeric = function( obj ) {
|
|
|
10811
10643
|
jQuery.trim = function( text ) {
|
|
10812
10644
|
return text == null ?
|
|
10813
10645
|
"" :
|
|
10814
|
-
( text + "" ).replace( rtrim, "" );
|
|
10646
|
+
( text + "" ).replace( rtrim, "$1" );
|
|
10815
10647
|
};
|
|
10816
10648
|
|
|
10817
10649
|
|
|
@@ -10835,9 +10667,6 @@ if ( typeof define === "function" && define.amd ) {
|
|
|
10835
10667
|
} );
|
|
10836
10668
|
}
|
|
10837
10669
|
|
|
10838
|
-
|
|
10839
|
-
|
|
10840
|
-
|
|
10841
10670
|
var
|
|
10842
10671
|
|
|
10843
10672
|
// Map over jQuery in case of overwrite
|
|
@@ -10859,14 +10688,11 @@ jQuery.noConflict = function( deep ) {
|
|
|
10859
10688
|
};
|
|
10860
10689
|
|
|
10861
10690
|
// Expose jQuery and $ identifiers, even in AMD
|
|
10862
|
-
// (
|
|
10863
|
-
// and CommonJS for browser emulators (
|
|
10691
|
+
// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)
|
|
10692
|
+
// and CommonJS for browser emulators (trac-13566)
|
|
10864
10693
|
if ( typeof noGlobal === "undefined" ) {
|
|
10865
10694
|
window.jQuery = window.$ = jQuery;
|
|
10866
10695
|
}
|
|
10867
10696
|
|
|
10868
|
-
|
|
10869
|
-
|
|
10870
|
-
|
|
10871
10697
|
return jQuery;
|
|
10872
10698
|
} );
|