From 2c36ed31e02cf43aac0eb79ebe991c7d43ddcde8 Mon Sep 17 00:00:00 2001 From: larnsce Date: Sun, 6 Jul 2025 20:58:10 +0200 Subject: [PATCH 1/8] Add image gallery vignette showcasing artesian well photos - Create vignettes/articles directory structure - Add image-gallery.qmd Quarto vignette - Display images in gt tables organized by district - Include 4-column image grid with CSS styling - Add flow rate analysis and usage pattern visualizations - Update DESCRIPTION with Suggests dependencies (gt, gtExtras, etc.) - Configure _pkgdown.yml to include the article - Add .gitignore for generated vignette files The vignette extracts images from mwater API URLs and presents them alongside key data points including location, flow rates, usage patterns, and management information. --- DESCRIPTION | 8 + _pkgdown.yml | 6 + vignettes/.gitignore | 3 + vignettes/articles/image-gallery.qmd | 336 +++++++++++++++++++++++++++ 4 files changed, 353 insertions(+) create mode 100644 vignettes/.gitignore create mode 100644 vignettes/articles/image-gallery.qmd diff --git a/DESCRIPTION b/DESCRIPTION index a40f319..426b902 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -19,6 +19,14 @@ Imports: dplyr, readxl, openxlsx +Suggests: + gt, + gtExtras, + ggplot2, + tidyverse, + knitr, + rmarkdown, + scales Date: 2025-06-02 URL: https://github.com/openwashdata/artesianwells BugReports: https://github.com/openwashdata/artesianwells/issues diff --git a/_pkgdown.yml b/_pkgdown.yml index abf4d24..58ba7d7 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -31,3 +31,9 @@ reference: desc: "Access the artesianwells dataset" contents: - artesianwells + +articles: +- title: "Gallery" + navbar: ~ + contents: + - image-gallery diff --git a/vignettes/.gitignore b/vignettes/.gitignore new file mode 100644 index 0000000..180e991 --- /dev/null +++ b/vignettes/.gitignore @@ -0,0 +1,3 @@ +*.html +*.R +*_files/ \ No newline at end of file diff --git a/vignettes/articles/image-gallery.qmd b/vignettes/articles/image-gallery.qmd new file mode 100644 index 0000000..7a60bdf --- /dev/null +++ b/vignettes/articles/image-gallery.qmd @@ -0,0 +1,336 @@ +--- +title: "Artesian Wells Image Gallery" +author: "openwashdata" +date: "`r Sys.Date()`" +format: + html: + toc: true + toc-depth: 2 + code-fold: true + code-summary: "Show code" +execute: + message: false + warning: false +--- + +```{r setup} +#| include: false +library(artesianwells) +library(tidyverse) +library(gt) +library(gtExtras) +``` + +## Introduction + +This vignette provides a visual showcase of the artesian wells documented in the dataset. The images are organized by district and displayed alongside key information about each well site. + +```{r data-prep} +# Prepare data with image URLs +wells_with_images <- artesianwells %>% + filter(!is.na(well_images)) %>% + mutate( + # Extract first image URL if multiple are separated by semicolons + first_well_image = str_extract(well_images, "^[^;]+"), + first_area_photo = if_else(!is.na(area_photos), + str_extract(area_photos, "^[^;]+"), + NA_character_) + ) %>% + select( + district, + traditional_authority, + latitude, + longitude, + has_structure, + well_structure_type, + seconds_to_fill_20L, + use_of_site, + river_nearby, + has_operator, + mgmt_type, + first_well_image, + first_area_photo + ) + +# Count wells by district +district_summary <- wells_with_images %>% + group_by(district) %>% + summarise( + well_count = n(), + avg_fill_time = round(mean(seconds_to_fill_20L, na.rm = TRUE), 1), + .groups = "drop" + ) %>% + arrange(desc(well_count)) +``` + +## Overview + +The dataset contains images for **`r nrow(wells_with_images)`** artesian well sites across **`r n_distinct(wells_with_images$district)`** districts in Malawi. + +```{r overview-table} +#| label: tbl-district-summary +#| tbl-cap: "Summary of artesian wells by district" + +district_summary %>% + gt() %>% + cols_label( + district = "District", + well_count = "Number of Wells", + avg_fill_time = "Avg. Fill Time (seconds)" + ) %>% + tab_header( + title = "Artesian Wells Distribution", + subtitle = "Wells with documented images" + ) %>% + fmt_number( + columns = avg_fill_time, + decimals = 1 + ) %>% + tab_style( + style = cell_fill(color = "lightblue"), + locations = cells_body(columns = well_count, rows = well_count > 5) + ) +``` + +## Wells by District + +```{r district-galleries} +#| output: asis +#| echo: false + +# Function to create a district section +create_district_section <- function(district_name, data) { + cat("\n\n### ", district_name, "\n\n") + + district_data <- data %>% + filter(district == district_name) %>% + arrange(traditional_authority) + + # Create the table with images + table_html <- district_data %>% + mutate( + location = paste0(round(latitude, 4), ", ", round(longitude, 4)), + fill_rate = case_when( + is.na(seconds_to_fill_20L) ~ "Not tested", + seconds_to_fill_20L < 30 ~ "Fast (< 30s)", + seconds_to_fill_20L < 60 ~ "Moderate (30-60s)", + TRUE ~ "Slow (> 60s)" + ) + ) %>% + select( + first_well_image, + traditional_authority, + location, + has_structure, + fill_rate, + use_of_site, + has_operator + ) %>% + gt() %>% + cols_label( + first_well_image = "Well Image", + traditional_authority = "Traditional Authority", + location = "Coordinates", + has_structure = "Structure", + fill_rate = "Fill Rate", + use_of_site = "Primary Use", + has_operator = "Operator" + ) %>% + tab_header( + title = paste0("Artesian Wells in ", district_name), + subtitle = paste0(nrow(district_data), " well sites documented") + ) %>% + fmt_image( + columns = first_well_image, + height = 150, + width = 150 + ) %>% + cols_width( + first_well_image ~ px(160), + traditional_authority ~ px(150), + location ~ px(120), + has_structure ~ px(80), + fill_rate ~ px(100), + use_of_site ~ px(100), + has_operator ~ px(80) + ) %>% + tab_style( + style = list( + cell_text(weight = "bold") + ), + locations = cells_column_labels() + ) %>% + tab_style( + style = cell_fill(color = "lightgreen"), + locations = cells_body( + columns = fill_rate, + rows = fill_rate == "Fast (< 30s)" + ) + ) %>% + tab_style( + style = cell_fill(color = "lightyellow"), + locations = cells_body( + columns = fill_rate, + rows = fill_rate == "Moderate (30-60s)" + ) + ) %>% + tab_style( + style = cell_fill(color = "lightcoral"), + locations = cells_body( + columns = fill_rate, + rows = fill_rate == "Slow (> 60s)" + ) + ) %>% + as_raw_html() + + cat(table_html) +} + +# Create sections for each district +for (dist in district_summary$district) { + create_district_section(dist, wells_with_images) +} +``` + +## Image Grid View + +For a quick visual overview, here's a grid displaying all well images organized in rows of 4: + +```{css} +#| echo: false +.image-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 10px; + margin: 20px 0; +} + +.image-item { + text-align: center; +} + +.image-item img { + width: 100%; + height: 150px; + object-fit: cover; + border-radius: 5px; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); +} + +.image-caption { + font-size: 0.8em; + margin-top: 5px; + color: #666; +} + +@media (max-width: 768px) { + .image-grid { + grid-template-columns: repeat(2, 1fr); + } +} + +@media (max-width: 480px) { + .image-grid { + grid-template-columns: 1fr; + } +} +``` + +::: {.image-grid} +```{r} +#| output: asis +#| echo: false + +# Create image grid +wells_with_images %>% + mutate( + caption = paste0(district, " - ", traditional_authority) + ) %>% + select(first_well_image, caption) %>% + slice_head(n = 40) %>% # Show first 40 images + pmap(function(first_well_image, caption) { + cat(paste0( + '
', + '', caption, '', + '
', caption, '
', + '
\n' + )) + }) +``` +::: + +## Usage Patterns + +```{r usage-analysis} +#| label: fig-usage-distribution +#| fig-cap: "Distribution of artesian wells by primary use" + +wells_with_images %>% + count(use_of_site) %>% + mutate(use_of_site = fct_reorder(use_of_site, n)) %>% + ggplot(aes(x = n, y = use_of_site, fill = use_of_site)) + + geom_col() + + geom_text(aes(label = n), hjust = -0.2) + + scale_x_continuous(expand = expansion(mult = c(0, 0.1))) + + labs( + x = "Number of Wells", + y = "Primary Use", + title = "Primary Usage of Artesian Wells" + ) + + theme_minimal() + + theme(legend.position = "none") +``` + +## Flow Rate Analysis + +```{r flow-analysis} +#| label: tbl-flow-stats +#| tbl-cap: "Flow rate statistics by district" + +wells_with_images %>% + filter(!is.na(seconds_to_fill_20L)) %>% + group_by(district) %>% + summarise( + n_tested = n(), + min_time = min(seconds_to_fill_20L, na.rm = TRUE), + avg_time = mean(seconds_to_fill_20L, na.rm = TRUE), + max_time = max(seconds_to_fill_20L, na.rm = TRUE), + .groups = "drop" + ) %>% + gt() %>% + cols_label( + district = "District", + n_tested = "Wells Tested", + min_time = "Min (s)", + avg_time = "Average (s)", + max_time = "Max (s)" + ) %>% + fmt_number( + columns = c(min_time, avg_time, max_time), + decimals = 1 + ) %>% + tab_header( + title = "Flow Rate Statistics", + subtitle = "Time to fill 20-liter container" + ) %>% + data_color( + columns = avg_time, + colors = scales::col_numeric( + palette = c("green", "yellow", "red"), + domain = NULL + ) + ) +``` + +## Data Notes + +- Images are hosted on the mwater API and may require internet connection to display +- Some wells have multiple images; only the first image is displayed in this gallery +- Flow rate data is not available for all wells +- The dataset was collected in April 2024 + +## Session Info + +```{r session-info} +sessionInfo() +``` \ No newline at end of file From 45ecd09d724c9e0e00f6368d7fc59cde70d1208e Mon Sep 17 00:00:00 2001 From: larnsce Date: Sun, 6 Jul 2025 21:04:06 +0200 Subject: [PATCH 2/8] Fix vignette: remove Session Info and fix NULL output - Replace pmap() with pwalk() to avoid NULL output in image grid - Remove Session Info section from vignette - Cleaner output without unnecessary [[1]] NULL messages --- vignettes/articles/image-gallery.qmd | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/vignettes/articles/image-gallery.qmd b/vignettes/articles/image-gallery.qmd index 7a60bdf..cba8813 100644 --- a/vignettes/articles/image-gallery.qmd +++ b/vignettes/articles/image-gallery.qmd @@ -248,7 +248,7 @@ wells_with_images %>% ) %>% select(first_well_image, caption) %>% slice_head(n = 40) %>% # Show first 40 images - pmap(function(first_well_image, caption) { + pwalk(function(first_well_image, caption) { cat(paste0( '
', '', caption, '', @@ -327,10 +327,4 @@ wells_with_images %>% - Images are hosted on the mwater API and may require internet connection to display - Some wells have multiple images; only the first image is displayed in this gallery - Flow rate data is not available for all wells -- The dataset was collected in April 2024 - -## Session Info - -```{r session-info} -sessionInfo() -``` \ No newline at end of file +- The dataset was collected in April 2024 \ No newline at end of file From 79354d5799880e8c9fdfc768c8b397a4a62ccd4e Mon Sep 17 00:00:00 2001 From: larnsce Date: Sun, 6 Jul 2025 21:08:03 +0200 Subject: [PATCH 3/8] Add image gallery to README and navigation menu - Add 'At a Glance' section with district summary table at the beginning - Create 'Use Cases' section highlighting the image gallery vignette - Update navbar in _pkgdown.yml to include Gallery link - Emphasize visual documentation benefits for stakeholders - Include summary statistics: wells per district, average fill times, image counts --- README.Rmd | 46 ++++++++++++++++++++++++++ README.md | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++- _pkgdown.yml | 9 ++++++ 3 files changed, 145 insertions(+), 1 deletion(-) diff --git a/README.Rmd b/README.Rmd index 3070f3b..53e08f8 100644 --- a/README.Rmd +++ b/README.Rmd @@ -59,6 +59,39 @@ This dataset is complemented by images captured at each site, accessible via permanent URLs, which provide photographic evidence of physical and infrastructural conditions. +## At a Glance + +```{r district-summary, echo=FALSE, message=FALSE} +library(artesianwells) +library(dplyr) +library(gt) +artesianwells |> + group_by(district) |> + summarise( + well_count = n(), + avg_fill_time = round(mean(seconds_to_fill_20L, na.rm = TRUE), 1), + wells_with_images = sum(!is.na(well_images)), + .groups = "drop" + ) |> + arrange(desc(well_count)) |> + gt::gt() |> + gt::cols_label( + district = "District", + well_count = "Total Wells", + avg_fill_time = "Avg. Fill Time (s)", + wells_with_images = "Wells with Images" + ) |> + gt::tab_header( + title = "Artesian Wells by District", + subtitle = "Summary of 44 documented well sites" + ) |> + gt::fmt_number( + columns = avg_fill_time, + decimals = 1 + ) |> + gt::as_raw_html() +``` + **Potential Use Cases** Water Resource Planning and Management Government bodies and NGOs can @@ -158,6 +191,19 @@ readr::read_csv("data-raw/dictionary.csv") |> kableExtra::scroll_box(height = "200px") ``` +## Use Cases + +### Visual Documentation and Analysis + +The package includes a comprehensive [**Image Gallery**](https://openwashdata.github.io/artesianwells/articles/image-gallery.html) vignette that showcases photographs from 43 artesian well sites. This visual documentation helps: + +- **Field verification**: Compare physical infrastructure with reported data +- **Condition assessment**: Evaluate well structures and surrounding environments +- **Training materials**: Use real-world examples for capacity building +- **Stakeholder communication**: Present tangible evidence to decision-makers + +The gallery organizes wells by district and displays key metrics alongside images, making it easy to identify patterns and prioritize interventions. + ## Example ```{r} diff --git a/README.md b/README.md index 19597df..68ab85b 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,74 @@ This dataset is complemented by images captured at each site, accessible via permanent URLs, which provide photographic evidence of physical and infrastructural conditions. +## At a Glance + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Artesian Wells by District
Summary of 44 documented well sites
DistrictTotal WellsAvg. Fill Time (s)Wells with Images
Machinga1062.910
Mangochi858.28
Blantyre5104.95
Chikwawa417.84
Ntchisi438.84
Karonga337.23
Neno30.03
Salima318.63
Balaka2153.72
Liwonde10.01
Mwanza10.00
+
+ **Potential Use Cases** Water Resource Planning and Management Government bodies and NGOs can @@ -113,7 +181,7 @@ artesianwells |> gt::as_raw_html() ``` -
+
@@ -829,6 +897,27 @@ Type of management in place for the water source if Other is selected +## Use Cases + +### Visual Documentation and Analysis + +The package includes a comprehensive [**Image +Gallery**](https://openwashdata.github.io/artesianwells/articles/image-gallery.html) +vignette that showcases photographs from 43 artesian well sites. This +visual documentation helps: + +- **Field verification**: Compare physical infrastructure with reported + data +- **Condition assessment**: Evaluate well structures and surrounding + environments +- **Training materials**: Use real-world examples for capacity building +- **Stakeholder communication**: Present tangible evidence to + decision-makers + +The gallery organizes wells by district and displays key metrics +alongside images, making it easy to identify patterns and prioritize +interventions. + ## Example ``` r diff --git a/_pkgdown.yml b/_pkgdown.yml index 58ba7d7..59f2d41 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -4,6 +4,15 @@ template: includes: in_header: | + +navbar: + structure: + left: [intro, reference, articles] + right: [search, github] + components: + articles: + text: Gallery + href: articles/image-gallery.html home: links: From 90ca7d39e7bec2a5734e7861c016413c5730e32f Mon Sep 17 00:00:00 2001 From: larnsce Date: Sun, 6 Jul 2025 21:09:49 +0200 Subject: [PATCH 4/8] =?UTF-8?q?Add=20Lars=20Sch=C3=B6bitz=20as=20author=20?= =?UTF-8?q?of=20image=20gallery=20vignette?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Include ORCID ID and email - Add affiliation to Global Health Engineering, ETH Zurich - Include GHE website URL --- vignettes/articles/image-gallery.qmd | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/vignettes/articles/image-gallery.qmd b/vignettes/articles/image-gallery.qmd index cba8813..ab84844 100644 --- a/vignettes/articles/image-gallery.qmd +++ b/vignettes/articles/image-gallery.qmd @@ -1,6 +1,12 @@ --- title: "Artesian Wells Image Gallery" -author: "openwashdata" +author: + - name: Lars Schöbitz + email: lschoebitz@ethz.ch + orcid: 0000-0003-2196-5015 + affiliation: + - name: Global Health Engineering, ETH Zurich + url: https://ghe.ethz.ch date: "`r Sys.Date()`" format: html: From 6f222d3f18d15d2ab3f3e3c2e54c95f5c6056989 Mon Sep 17 00:00:00 2001 From: larnsce Date: Sun, 6 Jul 2025 21:20:44 +0200 Subject: [PATCH 5/8] Fix R CMD check warnings and notes - Add VignetteBuilder: knitr to DESCRIPTION - Add vignettes/articles to .Rbuildignore (pkgdown-specific) - Update .Rbuildignore to exclude non-standard files - Add @importFrom statements to use imported packages - Update vignettes/.gitignore to exclude generated files - Package now passes R CMD check with 0 errors, 0 warnings, 0 notes --- .Rbuildignore | 7 +++++++ DESCRIPTION | 1 + NAMESPACE | 4 ++++ R/artesianwells.R | 5 +++++ man/artesianwells.Rd | 1 + vignettes/.gitignore | 4 +++- 6 files changed, 21 insertions(+), 1 deletion(-) diff --git a/.Rbuildignore b/.Rbuildignore index 4da9030..c510b70 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -3,3 +3,10 @@ ^data-raw$ ^LICENSE\.md$ ^README\.Rmd$ +^CITATION\.cff$ +^CLAUDE\.md$ +^_pkgdown\.yml$ +^docs$ +^\.github$ +^\.claude$ +^vignettes/articles$ diff --git a/DESCRIPTION b/DESCRIPTION index 426b902..fa75293 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -27,6 +27,7 @@ Suggests: knitr, rmarkdown, scales +VignetteBuilder: knitr Date: 2025-06-02 URL: https://github.com/openwashdata/artesianwells BugReports: https://github.com/openwashdata/artesianwells/issues diff --git a/NAMESPACE b/NAMESPACE index 6ae9268..a06b9ab 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,2 +1,6 @@ # Generated by roxygen2: do not edit by hand +importFrom(dplyr,"%>%") +importFrom(openxlsx,write.xlsx) +importFrom(readr,read_csv) +importFrom(readxl,read_excel) diff --git a/R/artesianwells.R b/R/artesianwells.R index ae0e311..1fa3585 100644 --- a/R/artesianwells.R +++ b/R/artesianwells.R @@ -47,4 +47,9 @@ #' #' # Summary of districts #' table(artesianwells$district) +#' +#' @importFrom dplyr %>% +#' @importFrom readr read_csv +#' @importFrom readxl read_excel +#' @importFrom openxlsx write.xlsx "artesianwells" diff --git a/man/artesianwells.Rd b/man/artesianwells.Rd index 10d589f..42aea1b 100644 --- a/man/artesianwells.Rd +++ b/man/artesianwells.Rd @@ -56,5 +56,6 @@ dim(artesianwells) # Summary of districts table(artesianwells$district) + } \keyword{datasets} diff --git a/vignettes/.gitignore b/vignettes/.gitignore index 180e991..e0e8cd0 100644 --- a/vignettes/.gitignore +++ b/vignettes/.gitignore @@ -1,3 +1,5 @@ *.html *.R -*_files/ \ No newline at end of file +*_files/ +articles/*.html +articles/*_files/ \ No newline at end of file From c9d1ad01a42622509934d9f970b21fc5d7cb4992 Mon Sep 17 00:00:00 2001 From: larnsce Date: Sun, 6 Jul 2025 21:27:17 +0200 Subject: [PATCH 6/8] Fix pkgdown.yml article reference - Change article reference from 'image-gallery' to 'articles/image-gallery' - Fixes pkgdown build error with hyphenated article names --- _pkgdown.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_pkgdown.yml b/_pkgdown.yml index 59f2d41..c3a92e5 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -45,4 +45,4 @@ articles: - title: "Gallery" navbar: ~ contents: - - image-gallery + - articles/image-gallery From 2ed7bead231c5576ecfa839522346ff77f35cf99 Mon Sep 17 00:00:00 2001 From: larnsce Date: Sun, 6 Jul 2025 21:29:23 +0200 Subject: [PATCH 7/8] Highlight image gallery in At a Glance section - Add prominent link to image gallery after district summary table - Use camera emoji to draw attention - Emphasize interactive features and 43 documented sites --- README.Rmd | 2 ++ README.md | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/README.Rmd b/README.Rmd index 53e08f8..61d0934 100644 --- a/README.Rmd +++ b/README.Rmd @@ -92,6 +92,8 @@ artesianwells |> gt::as_raw_html() ``` +📸 **[View the Image Gallery](https://openwashdata.github.io/artesianwells/articles/image-gallery.html)** - Explore photographs from all 43 documented well sites with interactive tables and visualizations. + **Potential Use Cases** Water Resource Planning and Management Government bodies and NGOs can diff --git a/README.md b/README.md index 68ab85b..5f30f11 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ infrastructural conditions. ## At a Glance -
+
@@ -106,6 +106,11 @@ infrastructural conditions.
+📸 **[View the Image +Gallery](https://openwashdata.github.io/artesianwells/articles/image-gallery.html)** - +Explore photographs from all 43 documented well sites with interactive +tables and visualizations. + **Potential Use Cases** Water Resource Planning and Management Government bodies and NGOs can @@ -181,7 +186,7 @@ artesianwells |> gt::as_raw_html() ``` -
+
From 0bde1d6e44c14c93eb5dd882d0b9b2c3d68f032a Mon Sep 17 00:00:00 2001 From: larnsce Date: Sun, 6 Jul 2025 21:32:44 +0200 Subject: [PATCH 8/8] Add complete pkgdown site with image gallery - Add image gallery article to docs/articles/ - Update all pkgdown site pages with new navigation - Include gallery in navbar and article index - Update .gitignore for Quarto files --- docs/404.html | 2 +- docs/CLAUDE.html | 2 +- docs/LICENSE.html | 2 +- docs/articles/articles/image-gallery.html | 8 + docs/articles/image-gallery.html | 3157 +++++++++++++++++ .../figure-html/fig-usage-distribution-1.png | Bin 0 -> 57800 bytes .../libs/quarto-html/light-border.css | 1 + .../libs/quarto-html/popper.min.js | 6 + .../libs/quarto-html/tippy.css | 1 + .../libs/quarto-html/tippy.umd.min.js | 2 + docs/articles/index.html | 59 + docs/authors.html | 2 +- docs/index.html | 217 +- docs/news/index.html | 2 +- docs/pkgdown.yml | 5 +- docs/reference/artesianwells.html | 3 +- docs/reference/index.html | 2 +- docs/search.json | 2 +- docs/sitemap.xml | 2 + vignettes/.gitignore | 3 +- 20 files changed, 3465 insertions(+), 13 deletions(-) create mode 100644 docs/articles/articles/image-gallery.html create mode 100644 docs/articles/image-gallery.html create mode 100644 docs/articles/image-gallery_files/figure-html/fig-usage-distribution-1.png create mode 100644 docs/articles/image-gallery_files/libs/quarto-html/light-border.css create mode 100644 docs/articles/image-gallery_files/libs/quarto-html/popper.min.js create mode 100644 docs/articles/image-gallery_files/libs/quarto-html/tippy.css create mode 100644 docs/articles/image-gallery_files/libs/quarto-html/tippy.umd.min.js create mode 100644 docs/articles/index.html diff --git a/docs/404.html b/docs/404.html index 3dede47..ff6fc7c 100644 --- a/docs/404.html +++ b/docs/404.html @@ -31,7 +31,7 @@
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Artesian Wells Distribution
Wells with documented images
DistrictNumber of WellsAvg. Fill Time (seconds)
Machinga1062.9
Mangochi858.2
Blantyre5104.9
Chikwawa417.8
Ntchisi438.8
Karonga337.2
Neno30.0
Salima318.6
Balaka2153.7
Liwonde10.0
+
+
+
+ +
+ +

Wells by District +

+

Machinga +

+
+ +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Artesian Wells in Machinga +
+10 well sites documented +
+Well Image + +Traditional Authority + +Coordinates + +Structure + +Fill Rate + +Primary Use + +Operator +
+ + +Sitola + +-15.1098, 35.2455 + +Yes + +Slow (> 60s) + +Domestic + +NA +
+ + +Sitola + +-15.1133, 35.2368 + +Yes + +Slow (> 60s) + +Domestic + +NA +
+ + +Sitola + +-15.0803, 35.2369 + +Yes + +Fast (< 30s) + +Domestic + +NA +
+ + +Sitola + +-15.0813, 35.239 + +Yes + +Fast (< 30s) + +Domestic + +NA +
+ + +Sitola + +-15.078, 35.2403 + +Yes + +Fast (< 30s) + +Domestic + +NA +
+ + +Sitola + +-15.0787, 35.2427 + +Yes + +Fast (< 30s) + +Domestic + +NA +
+ + +Sitola + +-15.0622, 35.2344 + +Yes + +Slow (> 60s) + +Domestic + +Yes +
+ + +Stola + +-15.1141, 35.2379 + +Yes + +Fast (< 30s) + +Domestic + +NA +
+ + +Stola + +-15.1141, 35.2379 + +Yes + +Fast (< 30s) + +Domestic + +NA +
+ + +Stola + +-15.1026, 35.2337 + +Yes + +Slow (> 60s) + +Domestic + +Yes +
+
+

Mangochi +

+
+ +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Artesian Wells in Mangochi +
+8 well sites documented +
+Well Image + +Traditional Authority + +Coordinates + +Structure + +Fill Rate + +Primary Use + +Operator +
+ + +Chimwala + +-14.7534, 35.1993 + +Yes + +Slow (> 60s) + +Domestic + +Yes +
+ + +Chimwala + +-14.7533, 35.1993 + +Yes + +Moderate (30-60s) + +Domestic + +Yes +
+ + +Chimwala + +-14.7234, 35.1723 + +Yes + +Slow (> 60s) + +Domestic + +Yes +
+ + +Chimwala + +-14.7523, 35.202 + +Yes + +Fast (< 30s) + +Domestic + +Yes +
+ + +Chimwala + +-14.4832, 35.2643 + +Yes + +Slow (> 60s) + +Domestic + +Yes +
+ + +Chimwala + +-14.7341, 35.189 + +Yes + +Slow (> 60s) + +Domestic + +Yes +
+ + +Chimwala + +-14.7358, 35.1906 + +Yes + +Fast (< 30s) + +Domestic + +No +
+ + +TA Chimwala + +-14.7526, 35.2042 + +Yes + +Moderate (30-60s) + +Domestic + +Yes +
+
+

Blantyre +

+
+ +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Artesian Wells in Blantyre +
+5 well sites documented +
+Well Image + +Traditional Authority + +Coordinates + +Structure + +Fill Rate + +Primary Use + +Operator +
+ + +Machinjiri + +-15.7578, 35.0025 + +No + +Fast (< 30s) + +Other + +NA +
+ + +TA Chigalu + +-15.3765, 34.9852 + +Yes + +Fast (< 30s) + +Domestic + +NA +
+ + +TA Kapeni + +-15.6469, 35.0212 + +Yes + +Slow (> 60s) + +Domestic + +NA +
+ + +TA Lundu + +-15.4958, 35.1109 + +Yes + +Slow (> 60s) + +Domestic + +NA +
+ + +TA Somba + +-15.9172, 34.9365 + +Yes + +Moderate (30-60s) + +Domestic + +No +
+
+

Chikwawa +

+
+ +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Artesian Wells in Chikwawa +
+4 well sites documented +
+Well Image + +Traditional Authority + +Coordinates + +Structure + +Fill Rate + +Primary Use + +Operator +
+ + +Mankhuwila + +-16.2437, 35.0101 + +Yes + +Moderate (30-60s) + +Domestic + +Yes +
+ + +Mgabu + +-16.3001, 34.8412 + +Yes + +Fast (< 30s) + +Domestic + +Yes +
+ + +Mgabu + +-15.8398, 34.3957 + +Yes + +Fast (< 30s) + +Domestic + +Yes +
+ + +TA Maseya + +-16.0369, 34.9116 + +Yes + +Fast (< 30s) + +Domestic + +NA +
+
+

Ntchisi +

+
+ +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Artesian Wells in Ntchisi +
+4 well sites documented +
+Well Image + +Traditional Authority + +Coordinates + +Structure + +Fill Rate + +Primary Use + +Operator +
+ + +Chikho + +-13.4189, 34.058 + +NA + +Fast (< 30s) + +Domestic + +NA +
+ + +Kasakula + +-13.3739, 34.0964 + +Yes + +Fast (< 30s) + +Irrigation + +No +
+ + +Kasakula + +-13.3793, 34.0665 + +Yes + +Moderate (30-60s) + +Domestic + +Yes +
+ + +Malenga + +-13.3333, 33.8693 + +Yes + +Slow (> 60s) + +Domestic + +Yes +
+
+

Karonga +

+
+ +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Artesian Wells in Karonga +
+3 well sites documented +
+Well Image + +Traditional Authority + +Coordinates + +Structure + +Fill Rate + +Primary Use + +Operator +
+ + +Kyungu + +-10.1265, 34.0035 + +Yes + +Fast (< 30s) + +Domestic + +Yes +
+ + +Kyungu + +-9.9465, 33.8672 + +Yes + +Moderate (30-60s) + +Domestic + +Yes +
+ + +Mwilangombe + +-10.3061, 34.1245 + +Yes + +Moderate (30-60s) + +Domestic + +NA +
+
+

Neno +

+
+ +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Artesian Wells in Neno +
+3 well sites documented +
+Well Image + +Traditional Authority + +Coordinates + +Structure + +Fill Rate + +Primary Use + +Operator +
+ + +Simon + +-15.2908, 34.9987 + +Yes + +Fast (< 30s) + +Domestic + +Yes +
+ + +Simoni + +-15.3235, 34.978 + +Yes + +Fast (< 30s) + +Domestic + +Yes +
+ + +Symon + +-15.2908, 34.9986 + +Yes + +Fast (< 30s) + +Domestic + +No +
+
+

Salima +

+
+ +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Artesian Wells in Salima +
+3 well sites documented +
+Well Image + +Traditional Authority + +Coordinates + +Structure + +Fill Rate + +Primary Use + +Operator +
+ + +Khombedza + +-13.6473, 34.1564 + +Yes + +Moderate (30-60s) + +Domestic + +Yes +
+ + +Maganga + +-13.7322, 34.5687 + +Yes + +Fast (< 30s) + +Irrigation + +No +
+ + +Maganga + +-13.733, 34.5687 + +Yes + +Fast (< 30s) + +Irrigation + +No +
+
+

Balaka +

+
+ +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Artesian Wells in Balaka +
+2 well sites documented +
+Well Image + +Traditional Authority + +Coordinates + +Structure + +Fill Rate + +Primary Use + +Operator +
+ + +TA Nkaya + +-15.2984, 35.0069 + +Yes + +Slow (> 60s) + +Domestic + +NA +
+ + +TA Nkaya + +-15.2886, 35.0102 + +Yes + +Slow (> 60s) + +Domestic + +NA +
+
+

Liwonde +

+
+ +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Artesian Wells in Liwonde +
+1 well sites documented +
+Well Image + +Traditional Authority + +Coordinates + +Structure + +Fill Rate + +Primary Use + +Operator +
+ + +Sitola + +-15.1105, 35.2576 + +Yes + +Fast (< 30s) + +Domestic + +Yes +
+
+

Image Grid View +

+

For a quick visual overview, here’s a grid displaying all well images organized in rows of 4:

+
+ +
+
+
+Balaka - TA Nkaya
+Balaka - TA Nkaya +
+
+
+Balaka - TA Nkaya
+Balaka - TA Nkaya +
+
+
+Blantyre - TA Chigalu
+Blantyre - TA Chigalu +
+
+
+Blantyre - TA Lundu
+Blantyre - TA Lundu +
+
+
+Blantyre - TA Kapeni
+Blantyre - TA Kapeni +
+
+
+Blantyre - TA Somba
+Blantyre - TA Somba +
+
+
+Liwonde - Sitola
+Liwonde - Sitola +
+
+
+Machinga - Sitola
+Machinga - Sitola +
+
+
+Chikwawa - TA Maseya
+Chikwawa - TA Maseya +
+
+
+Machinga - Sitola
+Machinga - Sitola +
+
+
+Machinga - Stola
+Machinga - Stola +
+
+
+Machinga - Stola
+Machinga - Stola +
+
+
+Machinga - Stola
+Machinga - Stola +
+
+
+Machinga - Sitola
+Machinga - Sitola +
+
+
+Machinga - Sitola
+Machinga - Sitola +
+
+
+Machinga - Sitola
+Machinga - Sitola +
+
+
+Machinga - Sitola
+Machinga - Sitola +
+
+
+Chikwawa - Mankhuwila
+Chikwawa - Mankhuwila +
+
+
+Machinga - Sitola
+Machinga - Sitola +
+
+
+Karonga - Kyungu
+Karonga - Kyungu +
+
+
+Karonga - Mwilangombe
+Karonga - Mwilangombe +
+
+
+Ntchisi - Malenga
+Ntchisi - Malenga +
+
+
+Ntchisi - Chikho
+Ntchisi - Chikho +
+
+
+Ntchisi - Kasakula
+Ntchisi - Kasakula +
+
+
+Ntchisi - Kasakula
+Ntchisi - Kasakula +
+
+
+Salima - Maganga
+Salima - Maganga +
+
+
+Salima - Maganga
+Salima - Maganga +
+
+
+Salima - Khombedza
+Salima - Khombedza +
+
+
+Blantyre - Machinjiri
+Blantyre - Machinjiri +
+
+
+Karonga - Kyungu
+Karonga - Kyungu +
+
+
+Chikwawa - Mgabu
+Chikwawa - Mgabu +
+
+
+Chikwawa - Mgabu
+Chikwawa - Mgabu +
+
+
+Mangochi - Chimwala
+Mangochi - Chimwala +
+
+
+Mangochi - Chimwala
+Mangochi - Chimwala +
+
+
+Mangochi - Chimwala
+Mangochi - Chimwala +
+
+
+Mangochi - TA Chimwala
+Mangochi - TA Chimwala +
+
+
+Mangochi - Chimwala
+Mangochi - Chimwala +
+
+
+Mangochi - Chimwala
+Mangochi - Chimwala +
+
+
+Neno - Symon
+Neno - Symon +
+
+
+Neno - Simon
+Neno - Simon +
+
+
+

Usage Patterns +

+
+
Show code
+wells_with_images %>%
+  count(use_of_site) %>%
+  mutate(use_of_site = fct_reorder(use_of_site, n)) %>%
+  ggplot(aes(x = n, y = use_of_site, fill = use_of_site)) +
+  geom_col() +
+  geom_text(aes(label = n), hjust = -0.2) +
+  scale_x_continuous(expand = expansion(mult = c(0, 0.1))) +
+  labs(
+    x = "Number of Wells",
+    y = "Primary Use",
+    title = "Primary Usage of Artesian Wells"
+  ) +
+  theme_minimal() +
+  theme(legend.position = "none")
+
+
+
+ +
+
+Figure 1: Distribution of artesian wells by primary use +
+
+
+
+

Flow Rate Analysis +

+
+
Show code
+wells_with_images %>%
+  filter(!is.na(seconds_to_fill_20L)) %>%
+  group_by(district) %>%
+  summarise(
+    n_tested = n(),
+    min_time = min(seconds_to_fill_20L, na.rm = TRUE),
+    avg_time = mean(seconds_to_fill_20L, na.rm = TRUE),
+    max_time = max(seconds_to_fill_20L, na.rm = TRUE),
+    .groups = "drop"
+  ) %>%
+  gt() %>%
+  cols_label(
+    district = "District",
+    n_tested = "Wells Tested",
+    min_time = "Min (s)",
+    avg_time = "Average (s)",
+    max_time = "Max (s)"
+  ) %>%
+  fmt_number(
+    columns = c(min_time, avg_time, max_time),
+    decimals = 1
+  ) %>%
+  tab_header(
+    title = "Flow Rate Statistics",
+    subtitle = "Time to fill 20-liter container"
+  ) %>%
+  data_color(
+    columns = avg_time,
+    colors = scales::col_numeric(
+      palette = c("green", "yellow", "red"),
+      domain = NULL
+    )
+  )
+
+
+Table 2: Flow rate statistics by district +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Flow Rate Statistics
Time to fill 20-liter container
DistrictWells TestedMin (s)Average (s)Max (s)
Balaka264.1153.7243.3
Blantyre50.0104.9361.4
Chikwawa40.017.841.4
Karonga324.637.246.7
Liwonde10.00.00.0
Machinga100.062.9221.3
Mangochi80.058.2140.5
Neno30.00.00.0
Ntchisi40.038.896.5
Salima30.018.637.5
+
+
+
+
+
+
+

Data Notes +

+
    +
  • Images are hosted on the mwater API and may require internet connection to display
  • +
  • Some wells have multiple images; only the first image is displayed in this gallery
  • +
  • Flow rate data is not available for all wells
  • +
  • The dataset was collected in April 2024
  • +
+ + + +
+ + + +
+ + + + + + + + diff --git a/docs/articles/image-gallery_files/figure-html/fig-usage-distribution-1.png b/docs/articles/image-gallery_files/figure-html/fig-usage-distribution-1.png new file mode 100644 index 0000000000000000000000000000000000000000..053b9e6ca0fe74e169e18642beb24e10614eb5a3 GIT binary patch literal 57800 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 literal 0 HcmV?d00001 diff --git a/docs/articles/image-gallery_files/libs/quarto-html/light-border.css b/docs/articles/image-gallery_files/libs/quarto-html/light-border.css new file mode 100644 index 0000000..2b25c61 --- /dev/null +++ b/docs/articles/image-gallery_files/libs/quarto-html/light-border.css @@ -0,0 +1 @@ +.tippy-box[data-theme~=light-border]{background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,8,16,.15);color:#333;box-shadow:0 4px 14px -2px rgba(0,8,16,.08)}.tippy-box[data-theme~=light-border]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light-border]>.tippy-arrow:after,.tippy-box[data-theme~=light-border]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=light-border]>.tippy-arrow:after{border-color:transparent;border-style:solid}.tippy-box[data-theme~=light-border][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light-border][data-placement^=top]>.tippy-arrow:after{border-top-color:rgba(0,8,16,.2);border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=light-border][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=light-border][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=light-border][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff;bottom:16px}.tippy-box[data-theme~=light-border][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:rgba(0,8,16,.2);border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=light-border][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:16px}.tippy-box[data-theme~=light-border][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=light-border][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light-border][data-placement^=left]>.tippy-arrow:after{border-left-color:rgba(0,8,16,.2);border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=light-border][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=light-border][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=light-border][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff;right:16px}.tippy-box[data-theme~=light-border][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:rgba(0,8,16,.2)}.tippy-box[data-theme~=light-border][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=light-border][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=light-border]>.tippy-svg-arrow{fill:#fff}.tippy-box[data-theme~=light-border]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px} \ No newline at end of file diff --git a/docs/articles/image-gallery_files/libs/quarto-html/popper.min.js b/docs/articles/image-gallery_files/libs/quarto-html/popper.min.js new file mode 100644 index 0000000..e3726d7 --- /dev/null +++ b/docs/articles/image-gallery_files/libs/quarto-html/popper.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.11.7 - MIT License + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function p(e,o,i){void 0===o&&(o=!1),void 0===i&&(i=!1);var a=e.getBoundingClientRect(),f=1,p=1;o&&r(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function N(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function I(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function _(e,r,o){return r===H?I(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):I(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function F(e,t,o,s){var f="clippingParents"===t?function(e){var t=w(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&N(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=_(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),_(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y("number"!=typeof b?b:G(b,k)),w=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?w:m],E=F(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=I(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=C(v),g=f||(y===v||!h?[fe(v)]:function(e){if(C(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(C(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var N=fe(q),I=[];if(i&&I.push(V[H]<=0),s&&I.push(V[q]<=0,V[N]<=0),I.every((function(e){return e}))){E=B,j=!1;break}O.set(B,I)}if(j)for(var _=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,"break"},F=h?3:1;F>0;F--){if("break"===_(F))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=U(t.placement),O=!w,j=z(x),M="x"===j?"y":"x",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,N="y"===j?D:P,I="y"===j?A:L,_="y"===j?"height":"width",F=k[j],X=F+b[N],Y=F-b[I],G=m?-H[_]/2:0,K=w===W?B[_]:H[_],Q=w===W?-H[_]:-B[_],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=de(0,B[_],$[_]),oe=O?B[_]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[_]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=F+ie-fe,pe=de(m?a(X,F+oe-fe-se):X,F,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-F}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&N(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,"__esModule",{value:!0})})); + diff --git a/docs/articles/image-gallery_files/libs/quarto-html/tippy.css b/docs/articles/image-gallery_files/libs/quarto-html/tippy.css new file mode 100644 index 0000000..e6ae635 --- /dev/null +++ b/docs/articles/image-gallery_files/libs/quarto-html/tippy.css @@ -0,0 +1 @@ +.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} \ No newline at end of file diff --git a/docs/articles/image-gallery_files/libs/quarto-html/tippy.umd.min.js b/docs/articles/image-gallery_files/libs/quarto-html/tippy.umd.min.js new file mode 100644 index 0000000..ca292be --- /dev/null +++ b/docs/articles/image-gallery_files/libs/quarto-html/tippy.umd.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e=e||self).tippy=t(e.Popper)}(this,(function(e){"use strict";var t={passive:!0,capture:!0},n=function(){return document.body};function r(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function o(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function i(e,t){return"function"==typeof e?e.apply(void 0,t):e}function a(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function s(e,t){var n=Object.assign({},e);return t.forEach((function(e){delete n[e]})),n}function u(e){return[].concat(e)}function c(e,t){-1===e.indexOf(t)&&e.push(t)}function p(e){return e.split("-")[0]}function f(e){return[].slice.call(e)}function l(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function d(){return document.createElement("div")}function v(e){return["Element","Fragment"].some((function(t){return o(e,t)}))}function m(e){return o(e,"MouseEvent")}function g(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function h(e){return v(e)?[e]:function(e){return o(e,"NodeList")}(e)?f(e):Array.isArray(e)?e:f(document.querySelectorAll(e))}function b(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function y(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function w(e){var t,n=u(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function E(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function O(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var x={isTouch:!1},C=0;function T(){x.isTouch||(x.isTouch=!0,window.performance&&document.addEventListener("mousemove",A))}function A(){var e=performance.now();e-C<20&&(x.isTouch=!1,document.removeEventListener("mousemove",A)),C=e}function L(){var e=document.activeElement;if(g(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var D=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,R=Object.assign({appendTo:n,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(R);function P(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=R[o])?r:i);return t}),{});return Object.assign({},e,t)}function j(e,t){var n=Object.assign({},t,{content:i(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(P(Object.assign({},R,{plugins:t}))):k).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},R.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function M(e,t){e.innerHTML=t}function V(e){var t=d();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",v(e)?t.appendChild(e):M(t,e)),t}function I(e,t){v(t.content)?(M(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?M(e,t.content):e.textContent=t.content)}function S(e){var t=e.firstElementChild,n=f(t.children);return{box:t,content:n.find((function(e){return e.classList.contains("tippy-content")})),arrow:n.find((function(e){return e.classList.contains("tippy-arrow")||e.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(e){return e.classList.contains("tippy-backdrop")}))}}function N(e){var t=d(),n=d();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=d();function o(n,r){var o=S(t),i=o.box,a=o.content,s=o.arrow;r.theme?i.setAttribute("data-theme",r.theme):i.removeAttribute("data-theme"),"string"==typeof r.animation?i.setAttribute("data-animation",r.animation):i.removeAttribute("data-animation"),r.inertia?i.setAttribute("data-inertia",""):i.removeAttribute("data-inertia"),i.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?i.setAttribute("role",r.role):i.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||I(a,e.props),r.arrow?s?n.arrow!==r.arrow&&(i.removeChild(s),i.appendChild(V(r.arrow))):i.appendChild(V(r.arrow)):s&&i.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),I(r,e.props),t.appendChild(n),n.appendChild(r),o(e.props,e.props),{popper:t,onUpdate:o}}N.$$tippy=!0;var B=1,H=[],U=[];function _(o,s){var v,g,h,C,T,A,L,k,M=j(o,Object.assign({},R,P(l(s)))),V=!1,I=!1,N=!1,_=!1,F=[],W=a(we,M.interactiveDebounce),X=B++,Y=(k=M.plugins).filter((function(e,t){return k.indexOf(e)===t})),$={id:X,reference:o,popper:d(),popperInstance:null,props:M,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:Y,clearDelayTimeouts:function(){clearTimeout(v),clearTimeout(g),cancelAnimationFrame(h)},setProps:function(e){if($.state.isDestroyed)return;ae("onBeforeUpdate",[$,e]),be();var t=$.props,n=j(o,Object.assign({},t,l(e),{ignoreAttributes:!0}));$.props=n,he(),t.interactiveDebounce!==n.interactiveDebounce&&(ce(),W=a(we,n.interactiveDebounce));t.triggerTarget&&!n.triggerTarget?u(t.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):n.triggerTarget&&o.removeAttribute("aria-expanded");ue(),ie(),J&&J(t,n);$.popperInstance&&(Ce(),Ae().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));ae("onAfterUpdate",[$,e])},setContent:function(e){$.setProps({content:e})},show:function(){var e=$.state.isVisible,t=$.state.isDestroyed,o=!$.state.isEnabled,a=x.isTouch&&!$.props.touch,s=r($.props.duration,0,R.duration);if(e||t||o||a)return;if(te().hasAttribute("disabled"))return;if(ae("onShow",[$],!1),!1===$.props.onShow($))return;$.state.isVisible=!0,ee()&&(z.style.visibility="visible");ie(),de(),$.state.isMounted||(z.style.transition="none");if(ee()){var u=re(),p=u.box,f=u.content;b([p,f],0)}A=function(){var e;if($.state.isVisible&&!_){if(_=!0,z.offsetHeight,z.style.transition=$.props.moveTransition,ee()&&$.props.animation){var t=re(),n=t.box,r=t.content;b([n,r],s),y([n,r],"visible")}se(),ue(),c(U,$),null==(e=$.popperInstance)||e.forceUpdate(),ae("onMount",[$]),$.props.animation&&ee()&&function(e,t){me(e,t)}(s,(function(){$.state.isShown=!0,ae("onShown",[$])}))}},function(){var e,t=$.props.appendTo,r=te();e=$.props.interactive&&t===n||"parent"===t?r.parentNode:i(t,[r]);e.contains(z)||e.appendChild(z);$.state.isMounted=!0,Ce()}()},hide:function(){var e=!$.state.isVisible,t=$.state.isDestroyed,n=!$.state.isEnabled,o=r($.props.duration,1,R.duration);if(e||t||n)return;if(ae("onHide",[$],!1),!1===$.props.onHide($))return;$.state.isVisible=!1,$.state.isShown=!1,_=!1,V=!1,ee()&&(z.style.visibility="hidden");if(ce(),ve(),ie(!0),ee()){var i=re(),a=i.box,s=i.content;$.props.animation&&(b([a,s],o),y([a,s],"hidden"))}se(),ue(),$.props.animation?ee()&&function(e,t){me(e,(function(){!$.state.isVisible&&z.parentNode&&z.parentNode.contains(z)&&t()}))}(o,$.unmount):$.unmount()},hideWithInteractivity:function(e){ne().addEventListener("mousemove",W),c(H,W),W(e)},enable:function(){$.state.isEnabled=!0},disable:function(){$.hide(),$.state.isEnabled=!1},unmount:function(){$.state.isVisible&&$.hide();if(!$.state.isMounted)return;Te(),Ae().forEach((function(e){e._tippy.unmount()})),z.parentNode&&z.parentNode.removeChild(z);U=U.filter((function(e){return e!==$})),$.state.isMounted=!1,ae("onHidden",[$])},destroy:function(){if($.state.isDestroyed)return;$.clearDelayTimeouts(),$.unmount(),be(),delete o._tippy,$.state.isDestroyed=!0,ae("onDestroy",[$])}};if(!M.render)return $;var q=M.render($),z=q.popper,J=q.onUpdate;z.setAttribute("data-tippy-root",""),z.id="tippy-"+$.id,$.popper=z,o._tippy=$,z._tippy=$;var G=Y.map((function(e){return e.fn($)})),K=o.hasAttribute("aria-expanded");return he(),ue(),ie(),ae("onCreate",[$]),M.showOnCreate&&Le(),z.addEventListener("mouseenter",(function(){$.props.interactive&&$.state.isVisible&&$.clearDelayTimeouts()})),z.addEventListener("mouseleave",(function(){$.props.interactive&&$.props.trigger.indexOf("mouseenter")>=0&&ne().addEventListener("mousemove",W)})),$;function Q(){var e=$.props.touch;return Array.isArray(e)?e:[e,0]}function Z(){return"hold"===Q()[0]}function ee(){var e;return!(null==(e=$.props.render)||!e.$$tippy)}function te(){return L||o}function ne(){var e=te().parentNode;return e?w(e):document}function re(){return S(z)}function oe(e){return $.state.isMounted&&!$.state.isVisible||x.isTouch||C&&"focus"===C.type?0:r($.props.delay,e?0:1,R.delay)}function ie(e){void 0===e&&(e=!1),z.style.pointerEvents=$.props.interactive&&!e?"":"none",z.style.zIndex=""+$.props.zIndex}function ae(e,t,n){var r;(void 0===n&&(n=!0),G.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(r=$.props)[e].apply(r,t)}function se(){var e=$.props.aria;if(e.content){var t="aria-"+e.content,n=z.id;u($.props.triggerTarget||o).forEach((function(e){var r=e.getAttribute(t);if($.state.isVisible)e.setAttribute(t,r?r+" "+n:n);else{var o=r&&r.replace(n,"").trim();o?e.setAttribute(t,o):e.removeAttribute(t)}}))}}function ue(){!K&&$.props.aria.expanded&&u($.props.triggerTarget||o).forEach((function(e){$.props.interactive?e.setAttribute("aria-expanded",$.state.isVisible&&e===te()?"true":"false"):e.removeAttribute("aria-expanded")}))}function ce(){ne().removeEventListener("mousemove",W),H=H.filter((function(e){return e!==W}))}function pe(e){if(!x.isTouch||!N&&"mousedown"!==e.type){var t=e.composedPath&&e.composedPath()[0]||e.target;if(!$.props.interactive||!O(z,t)){if(u($.props.triggerTarget||o).some((function(e){return O(e,t)}))){if(x.isTouch)return;if($.state.isVisible&&$.props.trigger.indexOf("click")>=0)return}else ae("onClickOutside",[$,e]);!0===$.props.hideOnClick&&($.clearDelayTimeouts(),$.hide(),I=!0,setTimeout((function(){I=!1})),$.state.isMounted||ve())}}}function fe(){N=!0}function le(){N=!1}function de(){var e=ne();e.addEventListener("mousedown",pe,!0),e.addEventListener("touchend",pe,t),e.addEventListener("touchstart",le,t),e.addEventListener("touchmove",fe,t)}function ve(){var e=ne();e.removeEventListener("mousedown",pe,!0),e.removeEventListener("touchend",pe,t),e.removeEventListener("touchstart",le,t),e.removeEventListener("touchmove",fe,t)}function me(e,t){var n=re().box;function r(e){e.target===n&&(E(n,"remove",r),t())}if(0===e)return t();E(n,"remove",T),E(n,"add",r),T=r}function ge(e,t,n){void 0===n&&(n=!1),u($.props.triggerTarget||o).forEach((function(r){r.addEventListener(e,t,n),F.push({node:r,eventType:e,handler:t,options:n})}))}function he(){var e;Z()&&(ge("touchstart",ye,{passive:!0}),ge("touchend",Ee,{passive:!0})),(e=$.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(ge(e,ye),e){case"mouseenter":ge("mouseleave",Ee);break;case"focus":ge(D?"focusout":"blur",Oe);break;case"focusin":ge("focusout",Oe)}}))}function be(){F.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),F=[]}function ye(e){var t,n=!1;if($.state.isEnabled&&!xe(e)&&!I){var r="focus"===(null==(t=C)?void 0:t.type);C=e,L=e.currentTarget,ue(),!$.state.isVisible&&m(e)&&H.forEach((function(t){return t(e)})),"click"===e.type&&($.props.trigger.indexOf("mouseenter")<0||V)&&!1!==$.props.hideOnClick&&$.state.isVisible?n=!0:Le(e),"click"===e.type&&(V=!n),n&&!r&&De(e)}}function we(e){var t=e.target,n=te().contains(t)||z.contains(t);"mousemove"===e.type&&n||function(e,t){var n=t.clientX,r=t.clientY;return e.every((function(e){var t=e.popperRect,o=e.popperState,i=e.props.interactiveBorder,a=p(o.placement),s=o.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,c="top"===a?s.bottom.y:0,f="right"===a?s.left.x:0,l="left"===a?s.right.x:0,d=t.top-r+u>i,v=r-t.bottom-c>i,m=t.left-n+f>i,g=n-t.right-l>i;return d||v||m||g}))}(Ae().concat(z).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:M}:null})).filter(Boolean),e)&&(ce(),De(e))}function Ee(e){xe(e)||$.props.trigger.indexOf("click")>=0&&V||($.props.interactive?$.hideWithInteractivity(e):De(e))}function Oe(e){$.props.trigger.indexOf("focusin")<0&&e.target!==te()||$.props.interactive&&e.relatedTarget&&z.contains(e.relatedTarget)||De(e)}function xe(e){return!!x.isTouch&&Z()!==e.type.indexOf("touch")>=0}function Ce(){Te();var t=$.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,s=t.moveTransition,u=ee()?S(z).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||te()}:o,p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(ee()){var n=re().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];ee()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),$.popperInstance=e.createPopper(c,z,Object.assign({},n,{placement:r,onFirstUpdate:A,modifiers:p}))}function Te(){$.popperInstance&&($.popperInstance.destroy(),$.popperInstance=null)}function Ae(){return f(z.querySelectorAll("[data-tippy-root]"))}function Le(e){$.clearDelayTimeouts(),e&&ae("onTrigger",[$,e]),de();var t=oe(!0),n=Q(),r=n[0],o=n[1];x.isTouch&&"hold"===r&&o&&(t=o),t?v=setTimeout((function(){$.show()}),t):$.show()}function De(e){if($.clearDelayTimeouts(),ae("onUntrigger",[$,e]),$.state.isVisible){if(!($.props.trigger.indexOf("mouseenter")>=0&&$.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&V)){var t=oe(!1);t?g=setTimeout((function(){$.state.isVisible&&$.hide()}),t):h=requestAnimationFrame((function(){$.hide()}))}}else ve()}}function F(e,n){void 0===n&&(n={});var r=R.plugins.concat(n.plugins||[]);document.addEventListener("touchstart",T,t),window.addEventListener("blur",L);var o=Object.assign({},n,{plugins:r}),i=h(e).reduce((function(e,t){var n=t&&_(t,o);return n&&e.push(n),e}),[]);return v(e)?i[0]:i}F.defaultProps=R,F.setDefaultProps=function(e){Object.keys(e).forEach((function(t){R[t]=e[t]}))},F.currentInput=x;var W=Object.assign({},e.applyStyles,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),X={mouseover:"mouseenter",focusin:"focus",click:"click"};var Y={name:"animateFill",defaultValue:!1,fn:function(e){var t;if(null==(t=e.props.render)||!t.$$tippy)return{};var n=S(e.popper),r=n.box,o=n.content,i=e.props.animateFill?function(){var e=d();return e.className="tippy-backdrop",y([e],"hidden"),e}():null;return{onCreate:function(){i&&(r.insertBefore(i,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(i){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));o.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y([i],"visible")}},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y([i],"hidden")}}}};var $={clientX:0,clientY:0},q=[];function z(e){var t=e.clientX,n=e.clientY;$={clientX:t,clientY:n}}var J={name:"followCursor",defaultValue:!1,fn:function(e){var t=e.reference,n=w(e.props.triggerTarget||t),r=!1,o=!1,i=!0,a=e.props;function s(){return"initial"===e.props.followCursor&&e.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,e.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||t.contains(n.target),o=e.props.followCursor,i=n.clientX,a=n.clientY,s=t.getBoundingClientRect(),u=i-s.left,c=a-s.top;!r&&e.props.interactive||e.setProps({getReferenceClientRect:function(){var e=t.getBoundingClientRect(),n=i,r=a;"initial"===o&&(n=e.left+u,r=e.top+c);var s="horizontal"===o?e.top:r,p="vertical"===o?e.right:n,f="horizontal"===o?e.bottom:r,l="vertical"===o?e.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){e.props.followCursor&&(q.push({instance:e,doc:n}),function(e){e.addEventListener("mousemove",z)}(n))}function d(){0===(q=q.filter((function(t){return t.instance!==e}))).filter((function(e){return e.doc===n})).length&&function(e){e.removeEventListener("mousemove",z)}(n)}return{onCreate:l,onDestroy:d,onBeforeUpdate:function(){a=e.props},onAfterUpdate:function(t,n){var i=n.followCursor;r||void 0!==i&&a.followCursor!==i&&(d(),i?(l(),!e.state.isMounted||o||s()||u()):(c(),p()))},onMount:function(){e.props.followCursor&&!o&&(i&&(f($),i=!1),s()||u())},onTrigger:function(e,t){m(t)&&($={clientX:t.clientX,clientY:t.clientY}),o="focus"===t.type},onHidden:function(){e.props.followCursor&&(p(),c(),i=!0)}}}};var G={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t,n=e.reference;var r=-1,o=!1,i=[],a={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(o){var a=o.state;e.props.inlinePositioning&&(-1!==i.indexOf(a.placement)&&(i=[]),t!==a.placement&&-1===i.indexOf(a.placement)&&(i.push(a.placement),e.setProps({getReferenceClientRect:function(){return function(e){return function(e,t,n,r){if(n.length<2||null===e)return t;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||t;switch(e){case"top":case"bottom":var o=n[0],i=n[n.length-1],a="top"===e,s=o.top,u=i.bottom,c=a?o.left:i.left,p=a?o.right:i.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(e){return e.left}))),l=Math.max.apply(Math,n.map((function(e){return e.right}))),d=n.filter((function(t){return"left"===e?t.left===f:t.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return t}}(p(e),n.getBoundingClientRect(),f(n.getClientRects()),r)}(a.placement)}})),t=a.placement)}};function s(){var t;o||(t=function(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat(((null==(n=e.popperOptions)?void 0:n.modifiers)||[]).filter((function(e){return e.name!==t.name})),[t])})}}(e.props,a),o=!0,e.setProps(t),o=!1)}return{onCreate:s,onAfterUpdate:s,onTrigger:function(t,n){if(m(n)){var o=f(e.reference.getClientRects()),i=o.find((function(e){return e.left-2<=n.clientX&&e.right+2>=n.clientX&&e.top-2<=n.clientY&&e.bottom+2>=n.clientY})),a=o.indexOf(i);r=a>-1?a:r}},onHidden:function(){r=-1}}}};var K={name:"sticky",defaultValue:!1,fn:function(e){var t=e.reference,n=e.popper;function r(t){return!0===e.props.sticky||e.props.sticky===t}var o=null,i=null;function a(){var s=r("reference")?(e.popperInstance?e.popperInstance.state.elements.reference:t).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&Q(o,s)||u&&Q(i,u))&&e.popperInstance&&e.popperInstance.update(),o=s,i=u,e.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){e.props.sticky&&a()}}}};function Q(e,t){return!e||!t||(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)}return F.setDefaultProps({plugins:[Y,J,G,K],render:N}),F.createSingleton=function(e,t){var n;void 0===t&&(t={});var r,o=e,i=[],a=[],c=t.overrides,p=[],f=!1;function l(){a=o.map((function(e){return u(e.props.triggerTarget||e.reference)})).reduce((function(e,t){return e.concat(t)}),[])}function v(){i=o.map((function(e){return e.reference}))}function m(e){o.forEach((function(t){e?t.enable():t.disable()}))}function g(e){return o.map((function(t){var n=t.setProps;return t.setProps=function(o){n(o),t.reference===r&&e.setProps(o)},function(){t.setProps=n}}))}function h(e,t){var n=a.indexOf(t);if(t!==r){r=t;var s=(c||[]).concat("content").reduce((function(e,t){return e[t]=o[n].props[t],e}),{});e.setProps(Object.assign({},s,{getReferenceClientRect:"function"==typeof s.getReferenceClientRect?s.getReferenceClientRect:function(){var e;return null==(e=i[n])?void 0:e.getBoundingClientRect()}}))}}m(!1),v(),l();var b={fn:function(){return{onDestroy:function(){m(!0)},onHidden:function(){r=null},onClickOutside:function(e){e.props.showOnCreate&&!f&&(f=!0,r=null)},onShow:function(e){e.props.showOnCreate&&!f&&(f=!0,h(e,i[0]))},onTrigger:function(e,t){h(e,t.currentTarget)}}}},y=F(d(),Object.assign({},s(t,["overrides"]),{plugins:[b].concat(t.plugins||[]),triggerTarget:a,popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat((null==(n=t.popperOptions)?void 0:n.modifiers)||[],[W])})})),w=y.show;y.show=function(e){if(w(),!r&&null==e)return h(y,i[0]);if(!r||null!=e){if("number"==typeof e)return i[e]&&h(y,i[e]);if(o.indexOf(e)>=0){var t=e.reference;return h(y,t)}return i.indexOf(e)>=0?h(y,e):void 0}},y.showNext=function(){var e=i[0];if(!r)return y.show(0);var t=i.indexOf(r);y.show(i[t+1]||e)},y.showPrevious=function(){var e=i[i.length-1];if(!r)return y.show(e);var t=i.indexOf(r),n=i[t-1]||e;y.show(n)};var E=y.setProps;return y.setProps=function(e){c=e.overrides||c,E(e)},y.setInstances=function(e){m(!0),p.forEach((function(e){return e()})),o=e,m(!1),v(),l(),p=g(y),y.setProps({triggerTarget:a})},p=g(y),y},F.delegate=function(e,n){var r=[],o=[],i=!1,a=n.target,c=s(n,["target"]),p=Object.assign({},c,{trigger:"manual",touch:!1}),f=Object.assign({touch:R.touch},c,{showOnCreate:!0}),l=F(e,p);function d(e){if(e.target&&!i){var t=e.target.closest(a);if(t){var r=t.getAttribute("data-tippy-trigger")||n.trigger||R.trigger;if(!t._tippy&&!("touchstart"===e.type&&"boolean"==typeof f.touch||"touchstart"!==e.type&&r.indexOf(X[e.type])<0)){var s=F(t,f);s&&(o=o.concat(s))}}}}function v(e,t,n,o){void 0===o&&(o=!1),e.addEventListener(t,n,o),r.push({node:e,eventType:t,handler:n,options:o})}return u(l).forEach((function(e){var n=e.destroy,a=e.enable,s=e.disable;e.destroy=function(e){void 0===e&&(e=!0),e&&o.forEach((function(e){e.destroy()})),o=[],r.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),r=[],n()},e.enable=function(){a(),o.forEach((function(e){return e.enable()})),i=!1},e.disable=function(){s(),o.forEach((function(e){return e.disable()})),i=!0},function(e){var n=e.reference;v(n,"touchstart",d,t),v(n,"mouseover",d),v(n,"focusin",d),v(n,"click",d)}(e)})),l},F.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;U.forEach((function(e){var t=!1;if(n&&(t=g(n)?e.reference===n:e.popper===n.popper),!t){var o=e.props.duration;e.setProps({duration:r}),e.hide(),e.state.isDestroyed||e.setProps({duration:o})}}))},F.roundArrow='',F})); + diff --git a/docs/articles/index.html b/docs/articles/index.html new file mode 100644 index 0000000..abcd9f9 --- /dev/null +++ b/docs/articles/index.html @@ -0,0 +1,59 @@ + +Articles • artesianwells + Skip to contents + + +
+
+
+ +
+

Gallery

+
+ +
Artesian Wells Image Gallery
+
+
+
+ + +
+ + + +
+ + + + + + + diff --git a/docs/authors.html b/docs/authors.html index fb1b662..8464ddc 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -16,7 +16,7 @@