From 58ca4df16a3a5c14f277b1878f9ff5b842fe1306 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Wed, 17 May 2023 22:56:32 +0200 Subject: [PATCH 01/20] detecting external resources needs to consider css argument (#2486) Co-authored-by: Yihui Xie --- DESCRIPTION | 2 +- NEWS.md | 2 + R/html_dependencies.R | 4 ++ R/html_document_base.R | 2 +- R/html_resources.R | 10 +++- tests/manual/shiny/shiny-css-bslib.Rmd | 11 ++++ tests/manual/shiny/shiny-scss.Rmd | 10 ++++ tests/manual/shiny/styles.css | 1 + tests/manual/shiny/styles.scss | 1 + tests/testthat/test-html_dependencies.R | 10 ++++ tests/testthat/test-resources.R | 72 ++++++++++++++++++++++--- 11 files changed, 114 insertions(+), 11 deletions(-) create mode 100644 tests/manual/shiny/shiny-css-bslib.Rmd create mode 100644 tests/manual/shiny/shiny-scss.Rmd create mode 100644 tests/manual/shiny/styles.css create mode 100644 tests/manual/shiny/styles.scss diff --git a/DESCRIPTION b/DESCRIPTION index 8059da92ef..1f4eba1161 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Type: Package Package: rmarkdown Title: Dynamic Documents for R -Version: 2.21.4 +Version: 2.21.5 Authors@R: c( person("JJ", "Allaire", , "jj@posit.co", role = "aut"), person("Yihui", "Xie", , "xie@yihui.name", role = c("aut", "cre"), comment = c(ORCID = "0000-0003-0645-5666")), diff --git a/NEWS.md b/NEWS.md index 0474f674c6..e16f6ca266 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,8 @@ rmarkdown 2.22 ================================================================================ +- Using `css` with `.scss` and `.sass` file, or with a bslib theme, now works as expected with a shiny runtime (thanks, @cpsievert, #2443, #2447). + - Add a `pandoc_metadata_file_arg()` function to match Pandoc's CLI flag `--metadata-file`. - Mentions that **webshot** or **webshot2** is required to take screenshot of HTML widget. When not installed, an error message mentionning `always_allow_html: true` solution will be shown, but setting this is not the solution (quarto-dev/quarto-cli#4225). diff --git a/R/html_dependencies.R b/R/html_dependencies.R index da837216b5..179e756d34 100644 --- a/R/html_dependencies.R +++ b/R/html_dependencies.R @@ -153,6 +153,10 @@ theme_version <- function(theme) { substr(html_dependency_bootstrap("default")$version, 1, 1) } +needs_sass <- function(css) { + grepl("\\.s[ac]ss$", css) +} + # Create an HTML dependency for tocify #' @rdname html-dependencies diff --git a/R/html_document_base.R b/R/html_document_base.R index 2fd8075668..a6c86f54c8 100644 --- a/R/html_document_base.R +++ b/R/html_document_base.R @@ -96,7 +96,7 @@ html_document_base <- function(theme = NULL, # Process css files as Pandoc argument if not already been processed by bslib for (f in css) { - if (grepl("\\.s[ac]ss$", f)) { + if (needs_sass(f)) { if (!xfun::loadable("sass")) { stop2("Using `.sass` or `.scss` file in `css` argument requires the sass package.") } diff --git a/R/html_resources.R b/R/html_resources.R index c302f83ba3..26335c05c8 100644 --- a/R/html_resources.R +++ b/R/html_resources.R @@ -55,7 +55,7 @@ find_external_resources <- function(input_file, encoding = 'UTF-8') { # ensure we're working with valid input ext <- tolower(xfun::file_ext(input_file)) if (!(ext %in% c("md", "rmd", "qmd", "html", "htm", "r", "css"))) { - stop("Resource discovery is only supported for R Markdown files or HTML files.") + stop("Resource discovery is only supported for R Markdown, Quarto files or HTML (and CSS) files.") } if (!file.exists(input_file)) { @@ -138,7 +138,7 @@ find_external_resources <- function(input_file, encoding = 'UTF-8') { # clean row names (they're not meaningful) rownames(discovered_resources) <- NULL - # convert paths from factors if necssary, and clean any redundant ./ leaders + # convert paths from factors if necessary, and clean any redundant ./ leaders discovered_resources$path <- as.character(discovered_resources$path) has_prefix <- grepl("^\\./", discovered_resources$path) discovered_resources$path[has_prefix] <- substring(discovered_resources$path[has_prefix], 3) @@ -216,6 +216,12 @@ discover_rmd_resources <- function(rmd_file, discover_single_resource) { output_render_files <- unlist(output_format[c( 'includes', 'pandoc_args', 'logo', 'reference_doc', 'reference_docx', 'template' )]) + # css needs to be copied for sass or bslib processing in formate rendering + needed <- if (is_bs_theme(resolve_theme(output_format[["theme"]]))) TRUE else { + needs_sass(output_format[['css']]) + } + output_render_files <- c(output_render_files, output_format[['css']][needed]) + lapply(output_render_files, discover_render_resource) } } diff --git a/tests/manual/shiny/shiny-css-bslib.Rmd b/tests/manual/shiny/shiny-css-bslib.Rmd new file mode 100644 index 0000000000..3babd4ac69 --- /dev/null +++ b/tests/manual/shiny/shiny-css-bslib.Rmd @@ -0,0 +1,11 @@ +--- +title: "Title" +runtime: shiny +output: + html_document: + css: styles.css + theme: + version: 5 +--- + +### Another title diff --git a/tests/manual/shiny/shiny-scss.Rmd b/tests/manual/shiny/shiny-scss.Rmd new file mode 100644 index 0000000000..d8260d493e --- /dev/null +++ b/tests/manual/shiny/shiny-scss.Rmd @@ -0,0 +1,10 @@ +--- +title: "Title" +runtime: shiny +output: + html_document: + css: styles.scss + theme: darkly +--- + +### Another title diff --git a/tests/manual/shiny/styles.css b/tests/manual/shiny/styles.css new file mode 100644 index 0000000000..d91d48177f --- /dev/null +++ b/tests/manual/shiny/styles.css @@ -0,0 +1 @@ +body {background-color: purple;} diff --git a/tests/manual/shiny/styles.scss b/tests/manual/shiny/styles.scss new file mode 100644 index 0000000000..d91d48177f --- /dev/null +++ b/tests/manual/shiny/styles.scss @@ -0,0 +1 @@ +body {background-color: purple;} diff --git a/tests/testthat/test-html_dependencies.R b/tests/testthat/test-html_dependencies.R index 8c894c16a5..e5c275edf2 100644 --- a/tests/testthat/test-html_dependencies.R +++ b/tests/testthat/test-html_dependencies.R @@ -210,3 +210,13 @@ test_that("header-attr can be opt-out", { withr::local_options(list(rmarkdown.html_dependency.header_attr = FALSE)) expect_null(html_dependency_header_attrs()) }) + +test_that('needs_saas', { + expect_true(needs_sass('dummy.scss')) + expect_true(needs_sass('dummy.sass')) + expect_false(needs_sass('dummy.css')) + expect_identical( + needs_sass(c('dummy.scss', 'dummy.sass', 'dummy.css')), + c(TRUE, TRUE, FALSE) + ) +}) diff --git a/tests/testthat/test-resources.R b/tests/testthat/test-resources.R index cf077ed64c..65c7891434 100644 --- a/tests/testthat/test-resources.R +++ b/tests/testthat/test-resources.R @@ -1,9 +1,16 @@ context("resource discovery") +sort_resources <- function(resources) { + # sort by filename and remove rownames to avoid errors arising from file ordering + # -- we don't really care what order these come back in + resources <- as.data.frame(resources[order(resources[[1]]), , drop = FALSE]) + rownames(resources) <- NULL +} + test_that("R Markdown resource discovery finds expected resources", { # Test with the current version of the template - file.copy(pkg_file("rmd/h/default.html"), 'resources/template.html') - resources <- find_external_resources("resources/rmarkdown.Rmd") + file.copy(pkg_file("rmd/h/default.html"), test_path('resources/template.html'), overwrite = TRUE) + resources <- find_external_resources(test_path("resources/rmarkdown.Rmd")) expected <- data.frame( path = c("empty.md", "empty.png", "empty.tsv", "empty.Rmd", "empty.css", "empty.jpg", "empty.html", "template.html", "empty.csv"), @@ -11,15 +18,66 @@ test_that("R Markdown resource discovery finds expected resources", { web = c(FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE), stringsAsFactors = FALSE) - # sort by filename and remove rownames to avoid errors arising from file ordering - # -- we don't really care what order these come back in - resources <- as.data.frame(resources[order(resources[[1]]), , drop = FALSE]) - expected <- as.data.frame(expected[order(expected[[1]]), , drop = FALSE]) - rownames(resources) <- rownames(expected) <- NULL + resources <- sort_resources(resources) + expected <- sort_resources(expected) expect_equal(resources, expected) }) +test_that("R Markdown resource discovery finds expected scss when sass is used", { + skip_if_not_installed("sass") + css_files <- c("empty.scss", "empty.css", "empty2.scss", "empty2.css") + yaml <- yaml::as.yaml(list( + title = "test", + output = list( + html_document = list( + css = c("empty.scss", "empty.css", "empty2.scss", "empty2.css"), + theme = "cerulean" + ) + ) + )) + rmd <- local_rmd_file(knitr::knit_expand(text = c("---", "{{yaml}}", "---", "", "# test"))) + withr::local_dir(dirname(rmd)) + file.create(css_files) + resources <- find_external_resources(basename(rmd)) + resource <- resources[resources$path %in% css_files, ] + expected <- data.frame( + path = css_files, + explicit = rep_len(FALSE, length(css_files)), + web = !needs_sass(css_files), + stringsAsFactors = FALSE) + resource <- sort_resources(resource) + expected <- sort_resources(expected) + expect_equal(resource, expected) +}) + +test_that("R Markdown resource discovery finds expected scss and css when bslib is used", { + skip_if_not_installed("bslib") + css_files <- c("empty.scss", "empty.css", "empty2.scss", "empty2.css") + yaml <- yaml::as.yaml(list( + title = "test", + output = list( + html_document = list( + css = c("empty.scss", "empty.css", "empty2.scss", "empty2.css"), + theme = list(version = "5") + ) + ) + )) + rmd <- local_rmd_file(knitr::knit_expand(text = c("---", "{{yaml}}", "---", "", "# test"))) + withr::local_dir(dirname(rmd)) + file.create(css_files) + resources <- find_external_resources(basename(rmd)) + resource <- resources[resources$path %in% css_files, ] + expected <- data.frame( + path = css_files, + explicit = rep_len(FALSE, length(css_files)), + web = rep_len(FALSE, length(css_files)), + stringsAsFactors = FALSE) + resource <- sort_resources(resource) + expected <- sort_resources(expected) + expect_equal(resource, expected) +}) + test_that("HTML resource discovery finds expected resources", { From 151de7e97b412d01db2e221d0b3c0409ebf5e4b7 Mon Sep 17 00:00:00 2001 From: Michael Daschner Date: Tue, 23 May 2023 16:11:26 +0200 Subject: [PATCH 02/20] fix: bump jquery-ui to v1.13.2 to fix multiple CVEs (#2477) Co-authored-by: Michael Daschner Co-authored-by: Christophe Dervieux --- DESCRIPTION | 4 +- NEWS.md | 2 + R/html_dependencies.R | 2 +- R/version_jqueryui.R | 2 + .../AUTHORS.txt} | 61 +- inst/rmd/h/jqueryui/LICENSE.txt | 43 + inst/rmd/h/jqueryui/README | 8 - .../images/ui-icons_444444_256x240.png | Bin 6992 -> 7142 bytes .../images/ui-icons_555555_256x240.png | Bin 6988 -> 7126 bytes .../images/ui-icons_777620_256x240.png | Bin 4549 -> 4670 bytes .../images/ui-icons_777777_256x240.png | Bin 6999 -> 7163 bytes .../images/ui-icons_cc0000_256x240.png | Bin 4549 -> 4670 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6299 -> 6539 bytes inst/rmd/h/jqueryui/index.html | 144 +- inst/rmd/h/jqueryui/jquery-ui.css | 847 +- inst/rmd/h/jqueryui/jquery-ui.js | 25960 +++++++++------- inst/rmd/h/jqueryui/jquery-ui.min.css | 8 +- inst/rmd/h/jqueryui/jquery-ui.min.js | 12 +- inst/rmd/h/jqueryui/jquery-ui.structure.css | 736 +- .../h/jqueryui/jquery-ui.structure.min.css | 4 +- inst/rmd/h/jqueryui/jquery-ui.theme.css | 112 +- inst/rmd/h/jqueryui/jquery-ui.theme.min.css | 4 +- tests/manual/test-toc_float.R | 23 + tests/manual/test.Rmd | 52 + tools/updatejQueryUI.R.R | 22 + 25 files changed, 16628 insertions(+), 11418 deletions(-) create mode 100644 R/version_jqueryui.R rename inst/rmd/h/{jqueryui-AUTHORS.txt => jqueryui/AUTHORS.txt} (83%) create mode 100644 inst/rmd/h/jqueryui/LICENSE.txt delete mode 100644 inst/rmd/h/jqueryui/README create mode 100644 tests/manual/test-toc_float.R create mode 100644 tests/manual/test.Rmd create mode 100644 tools/updatejQueryUI.R.R diff --git a/DESCRIPTION b/DESCRIPTION index 1f4eba1161..a4d0cb7bf6 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Type: Package Package: rmarkdown Title: Dynamic Documents for R -Version: 2.21.5 +Version: 2.21.6 Authors@R: c( person("JJ", "Allaire", , "jj@posit.co", role = "aut"), person("Yihui", "Xie", , "xie@yihui.name", role = c("aut", "cre"), comment = c(ORCID = "0000-0003-0645-5666")), @@ -29,7 +29,7 @@ Authors@R: c( person("Ruben", "Arslan", , "ruben.arslan@uni-goettingen.de", role = "ctb"), person("Sergio", "Oller", role = "ctb"), person(given = "Posit Software, PBC", role = c("cph", "fnd")), - person(, "jQuery UI contributors", role = c("ctb", "cph"), comment = "jQuery UI library; authors listed in inst/rmd/h/jqueryui-AUTHORS.txt"), + person(, "jQuery UI contributors", role = c("ctb", "cph"), comment = "jQuery UI library; authors listed in inst/rmd/h/jqueryui/AUTHORS.txt"), person("Mark", "Otto", role = "ctb", comment = "Bootstrap library"), person("Jacob", "Thornton", role = "ctb", comment = "Bootstrap library"), person(, "Bootstrap contributors", role = "ctb", comment = "Bootstrap library"), diff --git a/NEWS.md b/NEWS.md index e16f6ca266..02c4870f0d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -7,6 +7,8 @@ rmarkdown 2.22 - Mentions that **webshot** or **webshot2** is required to take screenshot of HTML widget. When not installed, an error message mentionning `always_allow_html: true` solution will be shown, but setting this is not the solution (quarto-dev/quarto-cli#4225). +- `html_dependency_jqueryui()` updated to 1.13.2 from version bundled in shiny (thanks, @daschnerm, #2477). + - Fix an issue with YAML header ending with a commented line containing incomplete yaml (thanks, @keithnewman, #2483). rmarkdown 2.21 diff --git a/R/html_dependencies.R b/R/html_dependencies.R index 179e756d34..34a45880a8 100644 --- a/R/html_dependencies.R +++ b/R/html_dependencies.R @@ -26,7 +26,7 @@ html_dependency_jqueryui <- function() { htmlDependency( name = "jqueryui", - version = "1.11.4", + version = version_jqueryui, src = pkg_file("rmd/h/jqueryui"), script = "jquery-ui.min.js") } diff --git a/R/version_jqueryui.R b/R/version_jqueryui.R new file mode 100644 index 0000000000..5ae52ccbf0 --- /dev/null +++ b/R/version_jqueryui.R @@ -0,0 +1,2 @@ +# Generated by tools/updatejQueryUI.R; do not edit by hand +version_jqueryui <- "1.13.2" diff --git a/inst/rmd/h/jqueryui-AUTHORS.txt b/inst/rmd/h/jqueryui/AUTHORS.txt similarity index 83% rename from inst/rmd/h/jqueryui-AUTHORS.txt rename to inst/rmd/h/jqueryui/AUTHORS.txt index 2e124d3d49..0ee3fb31eb 100644 --- a/inst/rmd/h/jqueryui-AUTHORS.txt +++ b/inst/rmd/h/jqueryui/AUTHORS.txt @@ -255,7 +255,7 @@ Gan Eng Chin Gabriel Schulhof Alexander Schmitz Vilhjálmur Skúlason -Siebrand Mazeland +Siebrand Mazeland Mohsen Ekhtiari Pere Orga Jasper de Groot @@ -312,4 +312,61 @@ Mani Mishra Hannah Methvin Leonardo Balter Benjamin Albert -Michał Gołębiowski +Michał Gołębiowski-Owczarek +Alyosha Pushak +Fahad Ahmad +Matt Brundage +Francesc Baeta +Piotr Baran +Mukul Hase +Konstantin Dinev +Rand Scullard +Dan Strohl +Maksim Ryzhikov +Amine HADDAD +Amanpreet Singh +Alexey Balchunas +Peter Kehl +Peter Dave Hello +Johannes Schäfer +Ville Skyttä +Ryan Oriecuia +Sergei Ratnikov +milk54 +Evelyn Masso +Robin +Simon Asika +Kevin Cupp +Jeremy Mickelson +Kyle Rosenberg +Petri Partio +pallxk +Luke Brookhart +claudi +Eirik Sletteberg +Albert Johansson +A. Wells +Robert Brignull +Horus68 +Maksymenkov Eugene +OskarNS +Gez Quinn +jigar gala +Florian Wegscheider +Fatér Zsolt +Szabolcs Szabolcsi-Toth +Jérémy Munsch +Hrvoje Novosel +Paul Capron +Micah Miller +sakshi87 <53863764+sakshi87@users.noreply.github.com> +Mikolaj Wolicki +Patrick McKay +c-lambert <58025159+c-lambert@users.noreply.github.com> +Josep Sanz +Ben Mullins +Christian Oliff +dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> +Adam Lidén Hällgren +James Hinderks +Denny Septian Panggabean <97607754+ddevsr@users.noreply.github.com> diff --git a/inst/rmd/h/jqueryui/LICENSE.txt b/inst/rmd/h/jqueryui/LICENSE.txt new file mode 100644 index 0000000000..4819e54213 --- /dev/null +++ b/inst/rmd/h/jqueryui/LICENSE.txt @@ -0,0 +1,43 @@ +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. diff --git a/inst/rmd/h/jqueryui/README b/inst/rmd/h/jqueryui/README deleted file mode 100644 index 9961a1162f..0000000000 --- a/inst/rmd/h/jqueryui/README +++ /dev/null @@ -1,8 +0,0 @@ -This a jQuery UI custom build, downloaded from: -http://jqueryui.com/download/#!version=1.11.4&components=1111111111110111111111111111111111111 - -It includes all components except the datepicker, because it conflicts with -bootstrap-datepicker that is packaged with Shiny. - -The copy of jQuery that is bundled with the download, under external/, is not -included because Shiny already has its own copy of jQuery. diff --git a/inst/rmd/h/jqueryui/images/ui-icons_444444_256x240.png b/inst/rmd/h/jqueryui/images/ui-icons_444444_256x240.png index a802263b58990c806c1d1bc2a95c3847f01b138e..56d546beb39061e9a9f21d61e63fde3d5bcd6267 100644 GIT binary patch literal 7142 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 diff --git a/inst/rmd/h/jqueryui/images/ui-icons_555555_256x240.png b/inst/rmd/h/jqueryui/images/ui-icons_555555_256x240.png index 7009bf752f54a13850f5cd3c2956b1c4469b5c65..607e4362a628f1ded7d05ac88176a66ce042d591 100644 GIT binary patch literal 7126 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%0AZGyUy!((0He7MIsZEYx3qKKf|mxuLH!WY!>T3 z=aG0(jC%)r{zuw9b^tcB)!Zd;RsxvaeUJ;cFnLwRcXme_8iNSc{`O2ee?H~zPn`}W z#ay5c-_m7{M|W0q)7D)fM{pn4PQ|J%20sKGA5{tJqn8|DCua(cPABEkg0v#$@;X0p zyisZoe)(i|Y8|>Q*CqiDc^`eeyvH}-!Uq`pg|98Hx5~L)zj%y6A#sk0L_k_{ z?X5L#$!)$I>4KKL%vUSVe#9k{{*lN8A5IWJpZG?-_6s>&)?3|`+q4B7nT;1 z{3oW^2hwqiq5lWQ(979B$j;XZc;x71?*vo#v~zJXaI$j@@%irbk7gU7uA-w{rf3`a F{{Wt|fMoyx literal 6988 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 Ar~m)} delta 4241 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 literal 6999 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 B_eKB! delta 4241 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 M0RSNN1dsfG03Y?)i2wiq diff --git a/inst/rmd/h/jqueryui/images/ui-icons_ffffff_256x240.png b/inst/rmd/h/jqueryui/images/ui-icons_ffffff_256x240.png index 4d66f596e5967a460a37526e2130a55711eeca3c..d5cdbf43ca776014783a13a69dd94c830940ddb4 100644 GIT binary patch literal 6539 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 diff --git a/inst/rmd/h/jqueryui/index.html b/inst/rmd/h/jqueryui/index.html index 7f4a59a929..9fdd811ba4 100644 --- a/inst/rmd/h/jqueryui/index.html +++ b/inst/rmd/h/jqueryui/index.html @@ -6,7 +6,7 @@ " ).appendTo( body ); - } + _processPanels: function() { + var prevHeaders = this.headers, + prevPanels = this.panels; - if(o.opacity) { // opacity option - if (this.helper.css("opacity")) { - this._storedOpacity = this.helper.css("opacity"); - } - this.helper.css("opacity", o.opacity); + if ( typeof this.options.header === "function" ) { + this.headers = this.options.header( this.element ); + } else { + this.headers = this.element.find( this.options.header ); } + this._addClass( this.headers, "ui-accordion-header ui-accordion-header-collapsed", + "ui-state-default" ); - if(o.zIndex) { // zIndex option - if (this.helper.css("zIndex")) { - this._storedZIndex = this.helper.css("zIndex"); - } - this.helper.css("zIndex", o.zIndex); - } + this.panels = this.headers.next().filter( ":not(.ui-accordion-content-active)" ).hide(); + this._addClass( this.panels, "ui-accordion-content", "ui-helper-reset ui-widget-content" ); - //Prepare scrolling - if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") { - this.overflowOffset = this.scrollParent.offset(); + // Avoid memory leaks (#10056) + if ( prevPanels ) { + this._off( prevHeaders.not( this.headers ) ); + this._off( prevPanels.not( this.panels ) ); } + }, - //Call callbacks - this._trigger("start", event, this._uiHash()); - - //Recache the helper size - if(!this._preserveHelperProportions) { - this._cacheHelperProportions(); - } + _refresh: function() { + var maxHeight, + options = this.options, + heightStyle = options.heightStyle, + parent = this.element.parent(); + this.active = this._findActive( options.active ); + this._addClass( this.active, "ui-accordion-header-active", "ui-state-active" ) + ._removeClass( this.active, "ui-accordion-header-collapsed" ); + this._addClass( this.active.next(), "ui-accordion-content-active" ); + this.active.next().show(); - //Post "activate" events to possible containers - if( !noActivation ) { - for ( i = this.containers.length - 1; i >= 0; i-- ) { - this.containers[ i ]._trigger( "activate", event, this._uiHash( this ) ); - } - } + this.headers + .attr( "role", "tab" ) + .each( function() { + var header = $( this ), + headerId = header.uniqueId().attr( "id" ), + panel = header.next(), + panelId = panel.uniqueId().attr( "id" ); + header.attr( "aria-controls", panelId ); + panel.attr( "aria-labelledby", headerId ); + } ) + .next() + .attr( "role", "tabpanel" ); - //Prepare possible droppables - if($.ui.ddmanager) { - $.ui.ddmanager.current = this; - } + this.headers + .not( this.active ) + .attr( { + "aria-selected": "false", + "aria-expanded": "false", + tabIndex: -1 + } ) + .next() + .attr( { + "aria-hidden": "true" + } ) + .hide(); - if ($.ui.ddmanager && !o.dropBehaviour) { - $.ui.ddmanager.prepareOffsets(this, event); + // Make sure at least one header is in the tab order + if ( !this.active.length ) { + this.headers.eq( 0 ).attr( "tabIndex", 0 ); + } else { + this.active.attr( { + "aria-selected": "true", + "aria-expanded": "true", + tabIndex: 0 + } ) + .next() + .attr( { + "aria-hidden": "false" + } ); } - this.dragging = true; + this._createIcons(); - this.helper.addClass("ui-sortable-helper"); - this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position - return true; + this._setupEvents( options.event ); - }, + if ( heightStyle === "fill" ) { + maxHeight = parent.height(); + this.element.siblings( ":visible" ).each( function() { + var elem = $( this ), + position = elem.css( "position" ); - _mouseDrag: function(event) { - var i, item, itemElement, intersection, - o = this.options, - scrolled = false; + if ( position === "absolute" || position === "fixed" ) { + return; + } + maxHeight -= elem.outerHeight( true ); + } ); - //Compute the helpers position - this.position = this._generatePosition(event); - this.positionAbs = this._convertPositionTo("absolute"); + this.headers.each( function() { + maxHeight -= $( this ).outerHeight( true ); + } ); - if (!this.lastPositionAbs) { - this.lastPositionAbs = this.positionAbs; + this.headers.next() + .each( function() { + $( this ).height( Math.max( 0, maxHeight - + $( this ).innerHeight() + $( this ).height() ) ); + } ) + .css( "overflow", "auto" ); + } else if ( heightStyle === "auto" ) { + maxHeight = 0; + this.headers.next() + .each( function() { + var isVisible = $( this ).is( ":visible" ); + if ( !isVisible ) { + $( this ).show(); + } + maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() ); + if ( !isVisible ) { + $( this ).hide(); + } + } ) + .height( maxHeight ); } + }, - //Do scrolling - if(this.options.scroll) { - if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") { - - if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) { - this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed; - } else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) { - this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed; - } - - if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) { - this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed; - } else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) { - this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed; - } + _activate: function( index ) { + var active = this._findActive( index )[ 0 ]; - } else { + // Trying to activate the already active panel + if ( active === this.active[ 0 ] ) { + return; + } - if(event.pageY - this.document.scrollTop() < o.scrollSensitivity) { - scrolled = this.document.scrollTop(this.document.scrollTop() - o.scrollSpeed); - } else if(this.window.height() - (event.pageY - this.document.scrollTop()) < o.scrollSensitivity) { - scrolled = this.document.scrollTop(this.document.scrollTop() + o.scrollSpeed); - } + // Trying to collapse, simulate a click on the currently active header + active = active || this.active[ 0 ]; - if(event.pageX - this.document.scrollLeft() < o.scrollSensitivity) { - scrolled = this.document.scrollLeft(this.document.scrollLeft() - o.scrollSpeed); - } else if(this.window.width() - (event.pageX - this.document.scrollLeft()) < o.scrollSensitivity) { - scrolled = this.document.scrollLeft(this.document.scrollLeft() + o.scrollSpeed); - } + this._eventHandler( { + target: active, + currentTarget: active, + preventDefault: $.noop + } ); + }, - } + _findActive: function( selector ) { + return typeof selector === "number" ? this.headers.eq( selector ) : $(); + }, - if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) { - $.ui.ddmanager.prepareOffsets(this, event); - } + _setupEvents: function( event ) { + var events = { + keydown: "_keydown" + }; + if ( event ) { + $.each( event.split( " " ), function( index, eventName ) { + events[ eventName ] = "_eventHandler"; + } ); } - //Regenerate the absolute position used for position checks - this.positionAbs = this._convertPositionTo("absolute"); + this._off( this.headers.add( this.headers.next() ) ); + this._on( this.headers, events ); + this._on( this.headers.next(), { keydown: "_panelKeyDown" } ); + this._hoverable( this.headers ); + this._focusable( this.headers ); + }, - //Set the helper position - if(!this.options.axis || this.options.axis !== "y") { - this.helper[0].style.left = this.position.left+"px"; - } - if(!this.options.axis || this.options.axis !== "x") { - this.helper[0].style.top = this.position.top+"px"; - } + _eventHandler: function( event ) { + var activeChildren, clickedChildren, + options = this.options, + active = this.active, + clicked = $( event.currentTarget ), + clickedIsActive = clicked[ 0 ] === active[ 0 ], + collapsing = clickedIsActive && options.collapsible, + toShow = collapsing ? $() : clicked.next(), + toHide = active.next(), + eventData = { + oldHeader: active, + oldPanel: toHide, + newHeader: collapsing ? $() : clicked, + newPanel: toShow + }; - //Rearrange - for (i = this.items.length - 1; i >= 0; i--) { + event.preventDefault(); - //Cache variables and intersection, continue if no intersection - item = this.items[i]; - itemElement = item.item[0]; - intersection = this._intersectsWithPointer(item); - if (!intersection) { - continue; - } + if ( - // Only put the placeholder inside the current Container, skip all - // items from other containers. This works because when moving - // an item from one container to another the - // currentContainer is switched before the placeholder is moved. - // - // Without this, moving items in "sub-sortables" can cause - // the placeholder to jitter between the outer and inner container. - if (item.instance !== this.currentContainer) { - continue; - } + // click on active header, but not collapsible + ( clickedIsActive && !options.collapsible ) || - // cannot intersect with itself - // no useless actions that have been done before - // no action if the item moved is the parent of the item checked - if (itemElement !== this.currentItem[0] && - this.placeholder[intersection === 1 ? "next" : "prev"]()[0] !== itemElement && - !$.contains(this.placeholder[0], itemElement) && - (this.options.type === "semi-dynamic" ? !$.contains(this.element[0], itemElement) : true) - ) { + // allow canceling activation + ( this._trigger( "beforeActivate", event, eventData ) === false ) ) { + return; + } - this.direction = intersection === 1 ? "down" : "up"; + options.active = collapsing ? false : this.headers.index( clicked ); - if (this.options.tolerance === "pointer" || this._intersectsWithSides(item)) { - this._rearrange(event, item); - } else { - break; - } + // When the call to ._toggle() comes after the class changes + // it causes a very odd bug in IE 8 (see #6720) + this.active = clickedIsActive ? $() : clicked; + this._toggle( eventData ); - this._trigger("change", event, this._uiHash()); - break; - } + // Switch classes + // corner classes on the previously active header stay after the animation + this._removeClass( active, "ui-accordion-header-active", "ui-state-active" ); + if ( options.icons ) { + activeChildren = active.children( ".ui-accordion-header-icon" ); + this._removeClass( activeChildren, null, options.icons.activeHeader ) + ._addClass( activeChildren, null, options.icons.header ); } - //Post events to containers - this._contactContainers(event); + if ( !clickedIsActive ) { + this._removeClass( clicked, "ui-accordion-header-collapsed" ) + ._addClass( clicked, "ui-accordion-header-active", "ui-state-active" ); + if ( options.icons ) { + clickedChildren = clicked.children( ".ui-accordion-header-icon" ); + this._removeClass( clickedChildren, null, options.icons.header ) + ._addClass( clickedChildren, null, options.icons.activeHeader ); + } - //Interconnect with droppables - if($.ui.ddmanager) { - $.ui.ddmanager.drag(this, event); + this._addClass( clicked.next(), "ui-accordion-content-active" ); } - - //Call callbacks - this._trigger("sort", event, this._uiHash()); - - this.lastPositionAbs = this.positionAbs; - return false; - }, - _mouseStop: function(event, noPropagation) { + _toggle: function( data ) { + var toShow = data.newPanel, + toHide = this.prevShow.length ? this.prevShow : data.oldPanel; - if(!event) { - return; - } + // Handle activating a panel during the animation for another activation + this.prevShow.add( this.prevHide ).stop( true, true ); + this.prevShow = toShow; + this.prevHide = toHide; - //If we are using droppables, inform the manager about the drop - if ($.ui.ddmanager && !this.options.dropBehaviour) { - $.ui.ddmanager.drop(this, event); + if ( this.options.animate ) { + this._animate( toShow, toHide, data ); + } else { + toHide.hide(); + toShow.show(); + this._toggleComplete( data ); } - if(this.options.revert) { - var that = this, - cur = this.placeholder.offset(), - axis = this.options.axis, - animation = {}; + toHide.attr( { + "aria-hidden": "true" + } ); + toHide.prev().attr( { + "aria-selected": "false", + "aria-expanded": "false" + } ); - if ( !axis || axis === "x" ) { - animation.left = cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft); - } - if ( !axis || axis === "y" ) { - animation.top = cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop); - } - this.reverting = true; - $(this.helper).animate( animation, parseInt(this.options.revert, 10) || 500, function() { - that._clear(event); - }); - } else { - this._clear(event, noPropagation); + // if we're switching panels, remove the old header from the tab order + // if we're opening from collapsed state, remove the previous header from the tab order + // if we're collapsing, then keep the collapsing header in the tab order + if ( toShow.length && toHide.length ) { + toHide.prev().attr( { + "tabIndex": -1, + "aria-expanded": "false" + } ); + } else if ( toShow.length ) { + this.headers.filter( function() { + return parseInt( $( this ).attr( "tabIndex" ), 10 ) === 0; + } ) + .attr( "tabIndex", -1 ); } - return false; - + toShow + .attr( "aria-hidden", "false" ) + .prev() + .attr( { + "aria-selected": "true", + "aria-expanded": "true", + tabIndex: 0 + } ); }, - cancel: function() { - - if(this.dragging) { - - this._mouseUp({ target: null }); + _animate: function( toShow, toHide, data ) { + var total, easing, duration, + that = this, + adjust = 0, + boxSizing = toShow.css( "box-sizing" ), + down = toShow.length && + ( !toHide.length || ( toShow.index() < toHide.index() ) ), + animate = this.options.animate || {}, + options = down && animate.down || animate, + complete = function() { + that._toggleComplete( data ); + }; - if(this.options.helper === "original") { - this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); - } else { - this.currentItem.show(); - } + if ( typeof options === "number" ) { + duration = options; + } + if ( typeof options === "string" ) { + easing = options; + } - //Post deactivating events to containers - for (var i = this.containers.length - 1; i >= 0; i--){ - this.containers[i]._trigger("deactivate", null, this._uiHash(this)); - if(this.containers[i].containerCache.over) { - this.containers[i]._trigger("out", null, this._uiHash(this)); - this.containers[i].containerCache.over = 0; - } - } + // fall back from options to animation in case of partial down settings + easing = easing || options.easing || animate.easing; + duration = duration || options.duration || animate.duration; + if ( !toHide.length ) { + return toShow.animate( this.showProps, duration, easing, complete ); + } + if ( !toShow.length ) { + return toHide.animate( this.hideProps, duration, easing, complete ); } - if (this.placeholder) { - //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! - if(this.placeholder[0].parentNode) { - this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - } - if(this.options.helper !== "original" && this.helper && this.helper[0].parentNode) { - this.helper.remove(); + total = toShow.show().outerHeight(); + toHide.animate( this.hideProps, { + duration: duration, + easing: easing, + step: function( now, fx ) { + fx.now = Math.round( now ); } - - $.extend(this, { - helper: null, - dragging: false, - reverting: false, - _noFinalSort: null - }); - - if(this.domPosition.prev) { - $(this.domPosition.prev).after(this.currentItem); - } else { - $(this.domPosition.parent).prepend(this.currentItem); - } - } - - return this; - + } ); + toShow + .hide() + .animate( this.showProps, { + duration: duration, + easing: easing, + complete: complete, + step: function( now, fx ) { + fx.now = Math.round( now ); + if ( fx.prop !== "height" ) { + if ( boxSizing === "content-box" ) { + adjust += fx.now; + } + } else if ( that.options.heightStyle !== "content" ) { + fx.now = Math.round( total - toHide.outerHeight() - adjust ); + adjust = 0; + } + } + } ); }, - serialize: function(o) { - - var items = this._getItemsAsjQuery(o && o.connected), - str = []; - o = o || {}; + _toggleComplete: function( data ) { + var toHide = data.oldPanel, + prev = toHide.prev(); - $(items).each(function() { - var res = ($(o.item || this).attr(o.attribute || "id") || "").match(o.expression || (/(.+)[\-=_](.+)/)); - if (res) { - str.push((o.key || res[1]+"[]")+"="+(o.key && o.expression ? res[1] : res[2])); - } - }); + this._removeClass( toHide, "ui-accordion-content-active" ); + this._removeClass( prev, "ui-accordion-header-active" ) + ._addClass( prev, "ui-accordion-header-collapsed" ); - if(!str.length && o.key) { - str.push(o.key + "="); + // Work around for rendering bug in IE (#5421) + if ( toHide.length ) { + toHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className; } + this._trigger( "activate", null, data ); + } +} ); - return str.join("&"); - - }, - - toArray: function(o) { - - var items = this._getItemsAsjQuery(o && o.connected), - ret = []; - - o = o || {}; - items.each(function() { ret.push($(o.item || this).attr(o.attribute || "id") || ""); }); - return ret; - }, +var safeActiveElement = $.ui.safeActiveElement = function( document ) { + var activeElement; - /* Be careful with the following core functions */ - _intersectsWith: function(item) { + // Support: IE 9 only + // IE9 throws an "Unspecified error" accessing document.activeElement from an