├── preamble.tex ├── 04-R.Rmd ├── _book ├── 04-R.md ├── 03-python.md ├── 01-intro.md ├── 02-cli.md ├── 05-r-python.md ├── libs │ ├── bootstrap-4.6.0 │ │ ├── fonts │ │ │ └── bootstrap │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ └── bootstrap.bundle.min.js │ ├── bs3compat-0.3.1 │ │ ├── transition.js │ │ ├── bs3compat.js │ │ └── tabs.js │ └── bs4_book-1.0.0 │ │ ├── bs4_book.js │ │ └── bs4_book.css ├── style.css ├── index.md ├── search.json ├── 404.html ├── r.html ├── python.html ├── r-python.html ├── introduction.html ├── command-line-interface-cli.html └── index.html ├── 03-python.Rmd ├── gdal-examples.rds ├── 01-intro.Rmd ├── 02-cli.Rmd ├── 05-r-python.Rmd ├── _bookdown_files └── 02-cross-refs_files │ ├── figure-html │ └── nice-fig-1.png │ └── figure-latex │ └── nice-fig-1.pdf ├── _bookdown.yml ├── _common.R ├── .gitignore ├── style.css ├── book.bib ├── _output.yml ├── gdal-examples.Rproj ├── index.Rmd ├── gdal-examples.md ├── README.md ├── packages.bib ├── gdal-examples.tex └── chicago-fullnote-bibliography.csl /preamble.tex: -------------------------------------------------------------------------------- 1 | \usepackage{booktabs} 2 | -------------------------------------------------------------------------------- /04-R.Rmd: -------------------------------------------------------------------------------- 1 | # R 2 | 3 | Here we go over examples of using GDAL in R... 4 | -------------------------------------------------------------------------------- /_book/04-R.md: -------------------------------------------------------------------------------- 1 | # R 2 | 3 | Here we go over examples of using GDAL in R... 4 | -------------------------------------------------------------------------------- /03-python.Rmd: -------------------------------------------------------------------------------- 1 | # Python 2 | 3 | This chapter dives into Python and its integration.... 4 | -------------------------------------------------------------------------------- /gdal-examples.rds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdal4al/gdal-examples/HEAD/gdal-examples.rds -------------------------------------------------------------------------------- /01-intro.Rmd: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | Talk about the basics and how it's helpful for users.... 4 | -------------------------------------------------------------------------------- /_book/03-python.md: -------------------------------------------------------------------------------- 1 | # Python 2 | 3 | This chapter dives into Python and its integration.... 4 | -------------------------------------------------------------------------------- /_book/01-intro.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | Talk about the basics and how it's helpful for users.... 4 | -------------------------------------------------------------------------------- /02-cli.Rmd: -------------------------------------------------------------------------------- 1 | # Command Line Interface (CLI) 2 | 3 | The section go over some of the basics using CLI with GDAL... 4 | 5 | 6 | -------------------------------------------------------------------------------- /05-r-python.Rmd: -------------------------------------------------------------------------------- 1 | # R-Python 2 | 3 | Here are some examples of using R-Python/Python-R throught the reticulate package.... 4 | -------------------------------------------------------------------------------- /_book/02-cli.md: -------------------------------------------------------------------------------- 1 | # Command Line Interface (CLI) 2 | 3 | The section go over some of the basics using CLI with GDAL... 4 | 5 | 6 | -------------------------------------------------------------------------------- /_book/05-r-python.md: -------------------------------------------------------------------------------- 1 | # R-Python 2 | 3 | Here are some examples of using R-Python/Python-R throught the reticulate package.... 4 | -------------------------------------------------------------------------------- /_bookdown_files/02-cross-refs_files/figure-html/nice-fig-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdal4al/gdal-examples/HEAD/_bookdown_files/02-cross-refs_files/figure-html/nice-fig-1.png -------------------------------------------------------------------------------- /_bookdown_files/02-cross-refs_files/figure-latex/nice-fig-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdal4al/gdal-examples/HEAD/_bookdown_files/02-cross-refs_files/figure-latex/nice-fig-1.pdf -------------------------------------------------------------------------------- /_bookdown.yml: -------------------------------------------------------------------------------- 1 | book_filename: "gdal-examples" 2 | new_session: true 3 | before_chapter_script: _common.R 4 | delete_merged_file: true 5 | language: 6 | ui: 7 | chapter_name: "Chapter " 8 | -------------------------------------------------------------------------------- /_common.R: -------------------------------------------------------------------------------- 1 | # example R options set globally 2 | options(width = 60) 3 | 4 | # example chunk options set globally 5 | knitr::opts_chunk$set( 6 | comment = "#>", 7 | collapse = TRUE 8 | ) 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .RData 4 | .Ruserdata 5 | <<<<<<< HEAD 6 | .gdal-examples.Rproj 7 | ======= 8 | .gdal-examples.Rproj 9 | >>>>>>> 79823f179ce36bc751c422d6ec67d96892d6ba8e 10 | -------------------------------------------------------------------------------- /_book/libs/bootstrap-4.6.0/fonts/bootstrap/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdal4al/gdal-examples/HEAD/_book/libs/bootstrap-4.6.0/fonts/bootstrap/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /_book/libs/bootstrap-4.6.0/fonts/bootstrap/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdal4al/gdal-examples/HEAD/_book/libs/bootstrap-4.6.0/fonts/bootstrap/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /_book/libs/bootstrap-4.6.0/fonts/bootstrap/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdal4al/gdal-examples/HEAD/_book/libs/bootstrap-4.6.0/fonts/bootstrap/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /_book/libs/bootstrap-4.6.0/fonts/bootstrap/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdal4al/gdal-examples/HEAD/_book/libs/bootstrap-4.6.0/fonts/bootstrap/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | p.caption { 2 | color: #777; 3 | margin-top: 10px; 4 | } 5 | p code { 6 | white-space: inherit; 7 | } 8 | pre { 9 | word-break: normal; 10 | word-wrap: normal; 11 | } 12 | pre code { 13 | white-space: inherit; 14 | } 15 | -------------------------------------------------------------------------------- /_book/style.css: -------------------------------------------------------------------------------- 1 | p.caption { 2 | color: #777; 3 | margin-top: 10px; 4 | } 5 | p code { 6 | white-space: inherit; 7 | } 8 | pre { 9 | word-break: normal; 10 | word-wrap: normal; 11 | } 12 | pre code { 13 | white-space: inherit; 14 | } 15 | -------------------------------------------------------------------------------- /book.bib: -------------------------------------------------------------------------------- 1 | @Book{xie2015, 2 | title = {Dynamic Documents with {R} and knitr}, 3 | author = {Yihui Xie}, 4 | publisher = {Chapman and Hall/CRC}, 5 | address = {Boca Raton, Florida}, 6 | year = {2015}, 7 | edition = {2nd}, 8 | note = {ISBN 978-1498716963}, 9 | url = {http://yihui.org/knitr/}, 10 | } 11 | -------------------------------------------------------------------------------- /_output.yml: -------------------------------------------------------------------------------- 1 | bookdown::bs4_book: 2 | css: style.css 3 | theme: 4 | primary: "#096B72" 5 | repo: https://github.com/gdal4al/gdal-examples 6 | bookdown::pdf_book: 7 | includes: 8 | in_header: preamble.tex 9 | latex_engine: xelatex 10 | citation_package: natbib 11 | keep_tex: yes 12 | bookdown::epub_book: default 13 | -------------------------------------------------------------------------------- /gdal-examples.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | 15 | AutoAppendNewline: Yes 16 | StripTrailingWhitespace: Yes 17 | 18 | BuildType: Website 19 | -------------------------------------------------------------------------------- /_book/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "GDAL4ALL" 3 | author: "..." 4 | date: "2023-05-27" 5 | site: bookdown::bookdown_site 6 | documentclass: book 7 | bibliography: [book.bib, packages.bib] 8 | url: https://github.com/gdal4al/gdal-examples 9 | # cover-image: path to the social sharing image like images/cover.jpg 10 | description: | 11 | This is a minimal example of using the bookdown package to write a book. 12 | The HTML output format for this example is bookdown::bs4_book, 13 | set in the _output.yml file. 14 | biblio-style: apalike 15 | csl: chicago-fullnote-bibliography.csl 16 | --- 17 | 18 | # About 19 | 20 | This is an attempt to collate as much Geospatial Data Abstraction Library (GDAL) uses across different languages. It is in the very beginning stages and is mostly trying to just get something started. 21 | 22 | ## Usage 23 | 24 | The idea is to have chapters dedicated to GDAL and its influence on different programming languages and context. WIP... 25 | 26 | 27 | -------------------------------------------------------------------------------- /index.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "GDAL4ALL" 3 | author: "..." 4 | date: "`r Sys.Date()`" 5 | site: bookdown::bookdown_site 6 | documentclass: book 7 | bibliography: [book.bib, packages.bib] 8 | url: https://github.com/gdal4al/gdal-examples 9 | # cover-image: path to the social sharing image like images/cover.jpg 10 | description: | 11 | This is a minimal example of using the bookdown package to write a book. 12 | The HTML output format for this example is bookdown::bs4_book, 13 | set in the _output.yml file. 14 | biblio-style: apalike 15 | csl: chicago-fullnote-bibliography.csl 16 | --- 17 | 18 | # About 19 | 20 | This is an attempt to collate as much Geospatial Data Abstraction Library (GDAL) uses across different languages. It is in the very beginning stages and is mostly trying to just get something started. 21 | 22 | ## Usage 23 | 24 | The idea is to have chapters dedicated to GDAL and its influence on different programming languages and context. WIP... 25 | 26 | 27 | -------------------------------------------------------------------------------- /_book/search.json: -------------------------------------------------------------------------------- 1 | [{"path":"index.html","id":"about","chapter":"1 About","heading":"1 About","text":"attempt collate much Geospatial Data Abstraction Library (GDAL) uses across different languages. beginning stages mostly trying just get something started.","code":""},{"path":"index.html","id":"usage","chapter":"1 About","heading":"1.1 Usage","text":"idea chapters dedicated GDAL influence different programming languages context. WIP…","code":""},{"path":"introduction.html","id":"introduction","chapter":"2 Introduction","heading":"2 Introduction","text":"Talk basics ’s helpful users….","code":""},{"path":"command-line-interface-cli.html","id":"command-line-interface-cli","chapter":"3 Command Line Interface (CLI)","heading":"3 Command Line Interface (CLI)","text":"section go basics using CLI GDAL…","code":""},{"path":"python.html","id":"python","chapter":"4 Python","heading":"4 Python","text":"chapter dives Python integration….","code":""},{"path":"r.html","id":"r","chapter":"5 R","heading":"5 R","text":"go examples using GDAL R…","code":""},{"path":"r-python.html","id":"r-python","chapter":"6 R-Python","heading":"6 R-Python","text":"examples using R-Python/Python-R throught reticulate package….","code":""}] 2 | -------------------------------------------------------------------------------- /gdal-examples.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "GDAL4ALL" 3 | author: "..." 4 | date: "2023-05-27" 5 | site: bookdown::bookdown_site 6 | documentclass: book 7 | bibliography: [book.bib, packages.bib] 8 | url: https://github.com/gdal4al/gdal-examples 9 | # cover-image: path to the social sharing image like images/cover.jpg 10 | description: | 11 | This is a minimal example of using the bookdown package to write a book. 12 | The HTML output format for this example is bookdown::bs4_book, 13 | set in the _output.yml file. 14 | biblio-style: apalike 15 | csl: chicago-fullnote-bibliography.csl 16 | --- 17 | 18 | # About 19 | 20 | This is an attempt to collate as much Geospatial Data Abstraction Library (GDAL) uses across different languages. It is in the very beginning stages and is mostly trying to just get something started. 21 | 22 | ## Usage 23 | 24 | The idea is to have chapters dedicated to GDAL and its influence on different programming languages and context. WIP... 25 | 26 | 27 | 28 | 29 | 30 | # Introduction 31 | 32 | Talk about the basics and how it's helpful for users.... 33 | 34 | 35 | 36 | # Command Line Interface (CLI) 37 | 38 | The section go over some of the basics using CLI with GDAL... 39 | 40 | 41 | 42 | 43 | 44 | # Python 45 | 46 | This chapter dives into Python and its integration.... 47 | 48 | 49 | 50 | # R 51 | 52 | Here we go over examples of using GDAL in R... 53 | 54 | 55 | 56 | # R-Python 57 | 58 | Here are some examples of using R-Python/Python-R throught the reticulate package.... 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /_book/libs/bs3compat-0.3.1/transition.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: transition.js v3.4.1 3 | * https://getbootstrap.com/docs/3.4/javascript/#transitions 4 | * ======================================================================== 5 | * Copyright 2011-2019 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/v3-dev/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/) 14 | // ============================================================ 15 | 16 | function transitionEnd() { 17 | var el = document.createElement('bootstrap') 18 | 19 | var transEndEventNames = { 20 | WebkitTransition : 'webkitTransitionEnd', 21 | MozTransition : 'transitionend', 22 | OTransition : 'oTransitionEnd otransitionend', 23 | transition : 'transitionend' 24 | } 25 | 26 | for (var name in transEndEventNames) { 27 | if (el.style[name] !== undefined) { 28 | return { end: transEndEventNames[name] } 29 | } 30 | } 31 | 32 | return false // explicit for ie8 ( ._.) 33 | } 34 | 35 | // https://blog.alexmaccaw.com/css-transitions 36 | $.fn.emulateTransitionEnd = function (duration) { 37 | var called = false 38 | var $el = this 39 | $(this).one('bsTransitionEnd', function () { called = true }) 40 | var callback = function () { if (!called) $($el).trigger($.support.transition.end) } 41 | setTimeout(callback, duration) 42 | return this 43 | } 44 | 45 | $(function () { 46 | $.support.transition = transitionEnd() 47 | 48 | if (!$.support.transition) return 49 | 50 | $.event.special.bsTransitionEnd = { 51 | bindType: $.support.transition.end, 52 | delegateType: $.support.transition.end, 53 | handle: function (e) { 54 | if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) 55 | } 56 | } 57 | }) 58 | 59 | }(jQuery); 60 | -------------------------------------------------------------------------------- /_book/libs/bs3compat-0.3.1/bs3compat.js: -------------------------------------------------------------------------------- 1 | // Inform the world that we have the ability to use BS3 nav/navbar markup in BS4 2 | window.BS3_COMPAT = true; 3 | 4 | // This logic needs to execute after both the BS4+ (new) as well as BS3 (legacy) 5 | // jQuery plugins have been registered. For BS5, plugin registration happens 6 | // after DOM content is loaded, which is why we do the same here. 7 | // https://github.com/twbs/bootstrap/blob/08139c22/js/dist/tab.js#L87 8 | $(function() { 9 | 10 | // The legacy plugin needs to be registered after the new one 11 | if (!$.fn.tab.Constructor.VERSION.match(/^3\./)) { 12 | (console.warn || console.error || console.log)("bs3compat.js couldn't find bs3 tab impl; bs3 tabs will not be properly supported"); 13 | return; 14 | } 15 | var legacyTabPlugin = $.fn.tab.noConflict(); 16 | 17 | if (!$.fn.tab || !$.fn.tab.Constructor || !$.fn.tab.noConflict) { 18 | (console.warn || console.error || console.log)("bs3compat.js couldn't find a jQuery tab impl; bs3 tabs will not be properly supported"); 19 | } 20 | var newTabPlugin = $.fn.tab.noConflict(); 21 | 22 | // Re-define the tab click event 23 | // https://github.com/twbs/bootstrap/blob/08139c2/js/src/tab.js#L33 24 | var EVENT_KEY = "click.bs.tab.data-api"; 25 | $(document).off(EVENT_KEY); 26 | 27 | var SELECTOR = '[data-toggle="tab"], [data-toggle="pill"], [data-bs-toggle="tab"], [data-bs-toggle="pill"]'; 28 | $(document).on(EVENT_KEY, SELECTOR, function(event) { 29 | event.preventDefault(); 30 | $(this).tab("show"); 31 | }); 32 | 33 | function TabPlugin(config) { 34 | // Legacy (bs3) tabs: li.active > a 35 | // New (bs4+) tabs: li.nav-item > a.active.nav-link 36 | var legacy = $(this).closest(".nav").find("li:not(.dropdown).active > a").length > 0; 37 | var plugin = legacy ? legacyTabPlugin : newTabPlugin; 38 | plugin.call($(this), config); 39 | } 40 | 41 | var noconflict = $.fn.tab; 42 | $.fn.tab = TabPlugin; 43 | $.fn.tab.Constructor = newTabPlugin.Constructor; 44 | $.fn.tab.noConflict = function() { 45 | $.fn.tab = noconflict; 46 | return TabPlugin; 47 | }; 48 | }); 49 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # gdal-examples 2 | This is a repository for the Geospatial Data Abstraction Library (GDAL) and it's applications, examples and discussions in the world of spatial data. 3 | 4 | It is meant to be **language agnostic!** 5 | 6 | * For **Discussions** please go to the [Discussions](https://github.com/gdal4al/gdal-examples/discussions) tab. 7 | * For any **issues** please go the the [issues](https://github.com/gdal4al/gdal-examples/issues) tab. 8 | 9 | Below is a list of some content to help with navigating the wide world of GDAL! 10 | 11 | Please, if you have any suggestions for the lists feel free to [**PR**](https://github.com/gdal4al/gdal-examples/pulls)! 12 | 13 | Thanks! 14 | 15 | --- 16 | 17 | ### Contributions 18 | 19 | This repo is in the beginning stages so be aware! 20 | 21 | Right now, the idea is to provide examples within the `examples` folder. Currently there are 5 sub folders: 22 | 23 | * Python 24 | * R 25 | * R-Python 26 | * CLI 27 | * JS 28 | 29 | Within these folders is where the contributions/examples will go. Please, if you have any examples feel free to [**PR**](https://github.com/gdal4al/gdal-examples/pulls) or send me a gist/txt file and I can add to the appropriate folder. From here, these will be curated to some degree into a bookdown version for easier navigation. 30 | 31 | Thanks for your help! 32 | 33 | --- 34 | 35 | ### GDAL Examples 36 | 37 | Below is the ever-growing list of links to GDAL related materials. 38 | 39 |
40 | CLI 41 | 42 | - [Mastering GDAL Tools (Full Course Material)](https://courses.spatialthoughts.com/gdal-tools.html) 43 | - [GeoTiff compression for dummies](http://blog.cleverelephant.ca/2015/02/geotiff-compression-for-dummies.html) 44 | 45 |
46 | 47 |
48 | Python 49 | - 50 | 51 |
52 | 53 |
54 | R 55 | 56 | - 57 | 58 |
59 | 60 |
61 | R-Python 62 | 63 | - [Crash Course osgeo.gdal for R](https://gist.github.com/mdsumner/0da55c5caec4a196f588cd5a4016e7ef) 64 | 65 |
66 | 67 |
68 | Videos 69 | 70 | - [IT&I Rants and Raves: Meeting Data Where It Lives - Mike Johnson, Lynker](https://www.youtube.com/watch?v=auK_gPR-e7M&t=4s) 71 | 72 | - [Making Sense Remotely (GDAL tutorials)](https://www.youtube.com/@makingsenseremotely6207/videos) 73 | 74 |
75 | 76 | Please add more :) 77 | -------------------------------------------------------------------------------- /packages.bib: -------------------------------------------------------------------------------- 1 | @Manual{R-base, 2 | title = {R: A Language and Environment for Statistical Computing}, 3 | author = {{R Core Team}}, 4 | organization = {R Foundation for Statistical Computing}, 5 | address = {Vienna, Austria}, 6 | year = {2021}, 7 | url = {https://www.R-project.org/}, 8 | } 9 | 10 | @Manual{R-bookdown, 11 | title = {bookdown: Authoring Books and Technical Documents with R Markdown}, 12 | author = {Yihui Xie}, 13 | year = {2022}, 14 | note = {R package version 0.29}, 15 | url = {https://CRAN.R-project.org/package=bookdown}, 16 | } 17 | 18 | @Manual{R-knitr, 19 | title = {knitr: A General-Purpose Package for Dynamic Report Generation in R}, 20 | author = {Yihui Xie}, 21 | year = {2022}, 22 | note = {R package version 1.40}, 23 | url = {https://yihui.org/knitr/}, 24 | } 25 | 26 | @Manual{R-rmarkdown, 27 | title = {rmarkdown: Dynamic Documents for R}, 28 | author = {JJ Allaire and Yihui Xie and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang and Richard Iannone}, 29 | year = {2022}, 30 | note = {R package version 2.16}, 31 | url = {https://CRAN.R-project.org/package=rmarkdown}, 32 | } 33 | 34 | @Book{bookdown2016, 35 | title = {bookdown: Authoring Books and Technical Documents with {R} Markdown}, 36 | author = {Yihui Xie}, 37 | publisher = {Chapman and Hall/CRC}, 38 | address = {Boca Raton, Florida}, 39 | year = {2016}, 40 | note = {ISBN 978-1138700109}, 41 | url = {https://bookdown.org/yihui/bookdown}, 42 | } 43 | 44 | @Book{knitr2015, 45 | title = {Dynamic Documents with {R} and knitr}, 46 | author = {Yihui Xie}, 47 | publisher = {Chapman and Hall/CRC}, 48 | address = {Boca Raton, Florida}, 49 | year = {2015}, 50 | edition = {2nd}, 51 | note = {ISBN 978-1498716963}, 52 | url = {https://yihui.org/knitr/}, 53 | } 54 | 55 | @InCollection{knitr2014, 56 | booktitle = {Implementing Reproducible Computational Research}, 57 | editor = {Victoria Stodden and Friedrich Leisch and Roger D. Peng}, 58 | title = {knitr: A Comprehensive Tool for Reproducible Research in {R}}, 59 | author = {Yihui Xie}, 60 | publisher = {Chapman and Hall/CRC}, 61 | year = {2014}, 62 | note = {ISBN 978-1466561595}, 63 | url = {http://www.crcpress.com/product/isbn/9781466561595}, 64 | } 65 | 66 | @Book{rmarkdown2018, 67 | title = {R Markdown: The Definitive Guide}, 68 | author = {Yihui Xie and J.J. Allaire and Garrett Grolemund}, 69 | publisher = {Chapman and Hall/CRC}, 70 | address = {Boca Raton, Florida}, 71 | year = {2018}, 72 | note = {ISBN 9781138359338}, 73 | url = {https://bookdown.org/yihui/rmarkdown}, 74 | } 75 | 76 | @Book{rmarkdown2020, 77 | title = {R Markdown Cookbook}, 78 | author = {Yihui Xie and Christophe Dervieux and Emily Riederer}, 79 | publisher = {Chapman and Hall/CRC}, 80 | address = {Boca Raton, Florida}, 81 | year = {2020}, 82 | note = {ISBN 9780367563837}, 83 | url = {https://bookdown.org/yihui/rmarkdown-cookbook}, 84 | } 85 | 86 | -------------------------------------------------------------------------------- /_book/libs/bs4_book-1.0.0/bs4_book.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | var url = new URL(window.location.href); 3 | var toMark = url.searchParams.get("q"); 4 | var mark = new Mark("main"); 5 | if (toMark) { 6 | mark.mark(toMark, { 7 | accuracy: { 8 | value: "complementary", 9 | limiters: [",", ".", ":", "/"], 10 | } 11 | }); 12 | } 13 | 14 | // Activate popovers 15 | $('[data-toggle="popover"]').popover({ 16 | container: 'body', 17 | html: true, 18 | trigger: 'focus', 19 | placement: "top", 20 | sanitize: false, 21 | }); 22 | $('[data-toggle="tooltip"]').tooltip(); 23 | }) 24 | 25 | // Search ---------------------------------------------------------------------- 26 | 27 | var fuse; 28 | 29 | $(function () { 30 | // Initialise search index on focus 31 | $("#search").focus(async function(e) { 32 | if (fuse) { 33 | return; 34 | } 35 | 36 | $(e.target).addClass("loading"); 37 | 38 | var response = await fetch('search.json'); 39 | var data = await response.json(); 40 | 41 | var options = { 42 | keys: ["heading", "text", "code"], 43 | ignoreLocation: true, 44 | threshold: 0.1, 45 | includeMatches: true, 46 | includeScore: true, 47 | }; 48 | fuse = new Fuse(data, options); 49 | 50 | $(e.target).removeClass("loading"); 51 | }); 52 | 53 | // Use algolia autocomplete 54 | var options = { 55 | autoselect: true, 56 | debug: true, 57 | hint: false, 58 | minLength: 2, 59 | }; 60 | 61 | $("#search").autocomplete(options, [ 62 | { 63 | name: "content", 64 | source: searchFuse, 65 | templates: { 66 | suggestion: (s) => { 67 | if (s.chapter == s.heading) { 68 | return `${s.chapter}`; 69 | } else { 70 | return `${s.chapter} /
${s.heading}`; 71 | } 72 | }, 73 | }, 74 | }, 75 | ]).on('autocomplete:selected', function(event, s) { 76 | window.location.href = s.path + "?q=" + q + "#" + s.id; 77 | }); 78 | }); 79 | 80 | var q; 81 | async function searchFuse(query, callback) { 82 | await fuse; 83 | 84 | var items; 85 | if (!fuse) { 86 | items = []; 87 | } else { 88 | q = query; 89 | var results = fuse.search(query, { limit: 20 }); 90 | items = results 91 | .filter((x) => x.score <= 0.75) 92 | .map((x) => x.item); 93 | } 94 | 95 | callback(items); 96 | } 97 | 98 | // Copy to clipboard ----------------------------------------------------------- 99 | 100 | function changeTooltipMessage(element, msg) { 101 | var tooltipOriginalTitle=element.getAttribute('data-original-title'); 102 | element.setAttribute('data-original-title', msg); 103 | $(element).tooltip('show'); 104 | element.setAttribute('data-original-title', tooltipOriginalTitle); 105 | } 106 | 107 | $(document).ready(function() { 108 | if(ClipboardJS.isSupported()) { 109 | // Insert copy buttons 110 | var copyButton = ""; 111 | $(copyButton).appendTo("div.sourceCode"); 112 | // Initialize tooltips: 113 | $('.btn-copy').tooltip({container: 'body', boundary: 'window'}); 114 | 115 | // Initialize clipboard: 116 | var clipboard = new ClipboardJS('.btn-copy', { 117 | text: function(trigger) { 118 | return trigger.parentNode.textContent; 119 | } 120 | }); 121 | 122 | clipboard.on('success', function(e) { 123 | const btn = e.trigger; 124 | changeTooltipMessage(btn, 'Copied!'); 125 | btn.classList.add('btn-copy-checked'); 126 | setTimeout(function() { 127 | btn.classList.remove('btn-copy-checked'); 128 | }, 2000); 129 | e.clearSelection(); 130 | }); 131 | 132 | clipboard.on('error', function() { 133 | changeTooltipMessage(e.trigger,'Press Ctrl+C or Command+C to copy'); 134 | }); 135 | }; 136 | }); 137 | -------------------------------------------------------------------------------- /gdal-examples.tex: -------------------------------------------------------------------------------- 1 | % Options for packages loaded elsewhere 2 | \PassOptionsToPackage{unicode}{hyperref} 3 | \PassOptionsToPackage{hyphens}{url} 4 | % 5 | \documentclass[ 6 | ]{book} 7 | \title{GDAL4ALL} 8 | \author{\ldots{}} 9 | \date{2023-05-27} 10 | 11 | \usepackage{amsmath,amssymb} 12 | \usepackage{lmodern} 13 | \usepackage{iftex} 14 | \ifPDFTeX 15 | \usepackage[T1]{fontenc} 16 | \usepackage[utf8]{inputenc} 17 | \usepackage{textcomp} % provide euro and other symbols 18 | \else % if luatex or xetex 19 | \usepackage{unicode-math} 20 | \defaultfontfeatures{Scale=MatchLowercase} 21 | \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1} 22 | \fi 23 | % Use upquote if available, for straight quotes in verbatim environments 24 | \IfFileExists{upquote.sty}{\usepackage{upquote}}{} 25 | \IfFileExists{microtype.sty}{% use microtype if available 26 | \usepackage[]{microtype} 27 | \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts 28 | }{} 29 | \makeatletter 30 | \@ifundefined{KOMAClassName}{% if non-KOMA class 31 | \IfFileExists{parskip.sty}{% 32 | \usepackage{parskip} 33 | }{% else 34 | \setlength{\parindent}{0pt} 35 | \setlength{\parskip}{6pt plus 2pt minus 1pt}} 36 | }{% if KOMA class 37 | \KOMAoptions{parskip=half}} 38 | \makeatother 39 | \usepackage{xcolor} 40 | \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available 41 | \IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} 42 | \hypersetup{ 43 | pdftitle={GDAL4ALL}, 44 | pdfauthor={\ldots{}}, 45 | hidelinks, 46 | pdfcreator={LaTeX via pandoc}} 47 | \urlstyle{same} % disable monospaced font for URLs 48 | \usepackage{longtable,booktabs,array} 49 | \usepackage{calc} % for calculating minipage widths 50 | % Correct order of tables after \paragraph or \subparagraph 51 | \usepackage{etoolbox} 52 | \makeatletter 53 | \patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{} 54 | \makeatother 55 | % Allow footnotes in longtable head/foot 56 | \IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}} 57 | \makesavenoteenv{longtable} 58 | \usepackage{graphicx} 59 | \makeatletter 60 | \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} 61 | \def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} 62 | \makeatother 63 | % Scale images if necessary, so that they will not overflow the page 64 | % margins by default, and it is still possible to overwrite the defaults 65 | % using explicit options in \includegraphics[width, height, ...]{} 66 | \setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} 67 | % Set default figure placement to htbp 68 | \makeatletter 69 | \def\fps@figure{htbp} 70 | \makeatother 71 | \setlength{\emergencystretch}{3em} % prevent overfull lines 72 | \providecommand{\tightlist}{% 73 | \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} 74 | \setcounter{secnumdepth}{5} 75 | \usepackage{booktabs} 76 | \ifLuaTeX 77 | \usepackage{selnolig} % disable illegal ligatures 78 | \fi 79 | \usepackage[]{natbib} 80 | \bibliographystyle{apalike} 81 | 82 | \begin{document} 83 | \maketitle 84 | 85 | { 86 | \setcounter{tocdepth}{1} 87 | \tableofcontents 88 | } 89 | \hypertarget{about}{% 90 | \chapter{About}\label{about}} 91 | 92 | This is an attempt to collate as much Geospatial Data Abstraction Library (GDAL) uses across different languages. It is in the very beginning stages and is mostly trying to just get something started. 93 | 94 | \hypertarget{usage}{% 95 | \section{Usage}\label{usage}} 96 | 97 | The idea is to have chapters dedicated to GDAL and its influence on different programming languages and context. WIP\ldots{} 98 | 99 | \hypertarget{introduction}{% 100 | \chapter{Introduction}\label{introduction}} 101 | 102 | Talk about the basics and how it's helpful for users\ldots. 103 | 104 | \hypertarget{command-line-interface-cli}{% 105 | \chapter{Command Line Interface (CLI)}\label{command-line-interface-cli}} 106 | 107 | The section go over some of the basics using CLI with GDAL\ldots{} 108 | 109 | \hypertarget{python}{% 110 | \chapter{Python}\label{python}} 111 | 112 | This chapter dives into Python and its integration\ldots. 113 | 114 | \hypertarget{r}{% 115 | \chapter{R}\label{r}} 116 | 117 | Here we go over examples of using GDAL in R\ldots{} 118 | 119 | \hypertarget{r-python}{% 120 | \chapter{R-Python}\label{r-python}} 121 | 122 | Here are some examples of using R-Python/Python-R throught the reticulate package\ldots. 123 | 124 | \bibliography{book.bib,packages.bib} 125 | 126 | \end{document} 127 | -------------------------------------------------------------------------------- /_book/libs/bs3compat-0.3.1/tabs.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: tab.js v3.4.1 3 | * https://getbootstrap.com/docs/3.4/javascript/#tabs 4 | * ======================================================================== 5 | * Copyright 2011-2019 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | // Register tab plugin after DOM content loaded in order to 10 | // override BS5's plugin 11 | // https://github.com/twbs/bootstrap/blob/08139c22/js/dist/tab.js#L87 12 | $(function() { 13 | 'use strict'; 14 | 15 | // TAB CLASS DEFINITION 16 | // ==================== 17 | 18 | var Tab = function (element) { 19 | // jscs:disable requireDollarBeforejQueryAssignment 20 | this.element = $(element) 21 | // jscs:enable requireDollarBeforejQueryAssignment 22 | } 23 | 24 | Tab.VERSION = '3.4.1' 25 | 26 | Tab.TRANSITION_DURATION = 150 27 | 28 | Tab.prototype.show = function () { 29 | var $this = this.element 30 | var $ul = $this.closest('ul:not(.dropdown-menu)') 31 | var selector = $this.data('target') 32 | 33 | if (!selector) { 34 | selector = $this.attr('href') 35 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 36 | } 37 | 38 | if ($this.parent('li').hasClass('active')) return 39 | 40 | var $previous = $ul.find('.active:last a') 41 | var hideEvent = $.Event('hide.bs.tab', { 42 | relatedTarget: $this[0] 43 | }) 44 | var showEvent = $.Event('show.bs.tab', { 45 | relatedTarget: $previous[0] 46 | }) 47 | 48 | $previous.trigger(hideEvent) 49 | $this.trigger(showEvent) 50 | 51 | if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return 52 | 53 | var $target = $(document).find(selector) 54 | 55 | this.activate($this.closest('li'), $ul) 56 | this.activate($target, $target.parent(), function () { 57 | $previous.trigger({ 58 | type: 'hidden.bs.tab', 59 | relatedTarget: $this[0] 60 | }) 61 | $this.trigger({ 62 | type: 'shown.bs.tab', 63 | relatedTarget: $previous[0] 64 | }) 65 | }) 66 | } 67 | 68 | Tab.prototype.activate = function (element, container, callback) { 69 | var $active = container.find('> .active') 70 | var transition = callback 71 | && $.support.transition 72 | && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) 73 | 74 | function next() { 75 | $active 76 | .removeClass('active') 77 | .find('> .dropdown-menu > .active') 78 | .removeClass('active') 79 | .end() 80 | .find('[data-toggle="tab"]') 81 | .attr('aria-expanded', false) 82 | 83 | element 84 | .addClass('active') 85 | .find('[data-toggle="tab"]') 86 | .attr('aria-expanded', true) 87 | 88 | if (transition) { 89 | element[0].offsetWidth // reflow for transition 90 | element.addClass('in') 91 | } else { 92 | element.removeClass('fade') 93 | } 94 | 95 | if (element.parent('.dropdown-menu').length) { 96 | element 97 | .closest('li.dropdown') 98 | .addClass('active') 99 | .end() 100 | .find('[data-toggle="tab"]') 101 | .attr('aria-expanded', true) 102 | } 103 | 104 | callback && callback() 105 | } 106 | 107 | $active.length && transition ? 108 | $active 109 | .one('bsTransitionEnd', next) 110 | .emulateTransitionEnd(Tab.TRANSITION_DURATION) : 111 | next() 112 | 113 | $active.removeClass('in') 114 | } 115 | 116 | 117 | // TAB PLUGIN DEFINITION 118 | // ===================== 119 | 120 | function Plugin(option) { 121 | return this.each(function () { 122 | var $this = $(this) 123 | var data = $this.data('bs.tab') 124 | 125 | if (!data) $this.data('bs.tab', (data = new Tab(this))) 126 | if (typeof option == 'string') data[option]() 127 | }) 128 | } 129 | 130 | var old = $.fn.tab 131 | 132 | $.fn.tab = Plugin 133 | $.fn.tab.Constructor = Tab 134 | 135 | 136 | // TAB NO CONFLICT 137 | // =============== 138 | 139 | $.fn.tab.noConflict = function () { 140 | $.fn.tab = old 141 | return this 142 | } 143 | 144 | 145 | // TAB DATA-API 146 | // ============ 147 | 148 | var clickHandler = function (e) { 149 | e.preventDefault() 150 | Plugin.call($(this), 'show') 151 | } 152 | 153 | $(document) 154 | .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) 155 | .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) 156 | 157 | }); 158 | -------------------------------------------------------------------------------- /_book/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Page not found | GDAL4ALL 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | 28 | 29 |
30 |
31 |
61 |

Page not found 62 |

63 |

The page you requested cannot be found (perhaps it was moved or renamed).

64 |

You may want to try searching to find the page's new location, or use 65 | the table of contents to find the page you are looking for.

66 |
67 |
68 |
69 |
70 |
72 | 73 |
74 |
75 | 76 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /_book/r.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Chapter 5 R | GDAL4ALL 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | 28 | 29 |
30 |
31 |
61 |

62 | 5 R 63 |

64 |

Here we go over examples of using GDAL in R…

65 | 66 |
67 |
68 | 69 | 70 |
82 | 83 |
84 |
85 | 86 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /_book/python.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Chapter 4 Python | GDAL4ALL 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | 28 | 29 |
30 |
31 |
61 |

62 | 4 Python 63 |

64 |

This chapter dives into Python and its integration….

65 | 66 |
67 |
82 | 83 |
84 |
85 | 86 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /_book/r-python.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Chapter 6 R-Python | GDAL4ALL 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | 28 | 29 |
30 |
31 |
61 |

62 | 6 R-Python 63 |

64 |

Here are some examples of using R-Python/Python-R throught the reticulate package….

65 | 66 |
67 |
68 | 69 |
70 |
82 | 83 |
84 |
85 | 86 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /_book/introduction.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Chapter 2 Introduction | GDAL4ALL 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | 28 | 29 |
30 |
31 |
61 |

62 | 2 Introduction 63 |

64 |

Talk about the basics and how it’s helpful for users….

65 | 66 |
67 |
82 | 83 |
84 |
85 | 86 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /_book/command-line-interface-cli.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Chapter 3 Command Line Interface (CLI) | GDAL4ALL 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | 28 | 29 |
30 |
31 |
61 |

62 | 3 Command Line Interface (CLI) 63 |

64 |

The section go over some of the basics using CLI with GDAL…

65 | 66 |
67 |
68 | 69 | 70 |
82 | 83 |
84 |
85 | 86 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /_book/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Chapter 1 About | GDAL4ALL 8 | 9 | 12 | 13 | 14 | 15 | 16 | 19 | 20 | 21 | 24 | 25 | 26 | 27 | 31 | 32 | 33 | 34 | 35 |
36 |
37 |
67 |

68 | 1 About 69 |

70 |

This is an attempt to collate as much Geospatial Data Abstraction Library (GDAL) uses across different languages. It is in the very beginning stages and is mostly trying to just get something started.

71 |
72 |

73 | 1.1 Usage 74 |

75 |

The idea is to have chapters dedicated to GDAL and its influence on different programming languages and context. WIP…

76 | 77 |
78 |
79 |
80 |
81 | 82 |
97 | 98 |
99 |
100 | 101 | 113 | 114 | 115 | -------------------------------------------------------------------------------- /_book/libs/bs4_book-1.0.0/bs4_book.css: -------------------------------------------------------------------------------- 1 | /* Page structure ---------------------------------------------------------- 2 | 3 | +-----+-----------------+------+--------------+ 4 | | | sidebar-chapter | main | sidebar-book | 5 | +=====+=================+======+==============+ 6 | | sml | 12 (collapsed) | 12 | - | 7 | | md | 12 (collapsed) | 9 | 3 | 8 | | lg | 3 | 7 | 2 | 9 | +-----+-----------------+------+--------------+ 10 | 11 | Side uses container-fluid so we set up some additional breakpoints, to ensure 12 | that the columns never get too wide, either individually or collectively. 13 | 14 | */ 15 | 16 | 17 | @media (min-width: 1200px) { 18 | .container-fluid { 19 | max-width: 95rem; 20 | } 21 | .container-fluid .row { 22 | justify-content: space-evenly; 23 | } 24 | .container-fluid main { 25 | max-width: 45rem; 26 | } 27 | .sidebar { 28 | max-width: 15rem; 29 | } 30 | 31 | /* Increase font-size for very wide devices */ 32 | body { 33 | font-size: 18px 34 | } 35 | } 36 | 37 | main {margin-top: 1rem;} 38 | 39 | @media (max-width: 991.98px) { 40 | .sidebar { 41 | max-width: 100%; 42 | } 43 | 44 | .collapse-lg { 45 | display: none; 46 | padding: 1rem; 47 | border-radius: 0.2rem; 48 | background: #fafafa; 49 | margin-top: 0.5rem; 50 | margin-bottom: 1rem; 51 | box-shadow: 5px 5px 10px rgba(0.1, 0.1, 0.1, 0.5); 52 | border: 1px solid var(--primary); 53 | } 54 | .book-toc { 55 | column-count: 2; 56 | } 57 | .sidebar-book, main { 58 | padding-left: 1rem; 59 | } 60 | .sidebar-book { 61 | margin-top: 1rem; 62 | } 63 | } 64 | @media (min-width: 992px) { 65 | .collapse-lg { 66 | display: block !important; 67 | } 68 | } 69 | .collapse-lg.show { 70 | display: block; 71 | } 72 | 73 | @media (min-width: 768px) { 74 | .sidebar-chapter { 75 | position: sticky; 76 | max-height: 100vh; 77 | top: 0; 78 | overflow-y: auto; 79 | } 80 | } 81 | 82 | @media (min-width: 992px) { 83 | .sidebar-book { 84 | position: sticky; 85 | max-height: 100vh; 86 | top: 0; 87 | overflow-y: auto; 88 | } 89 | } 90 | 91 | /* Chapter nav ----------------------------------------- */ 92 | 93 | .chapter-nav { 94 | display: flex; 95 | justify-content: space-between; 96 | margin-top: 2rem; 97 | } 98 | .chapter-nav .prev, .chapter-nav .next { 99 | padding: 0.5rem; 100 | border: 1px solid #eee; 101 | border-radius: 0.2rem; 102 | box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); 103 | } 104 | .chapter-nav .empty { 105 | border: none; 106 | } 107 | .chapter-nav .prev a:before { 108 | content: "« "; 109 | } 110 | .chapter-nav .next a:after { 111 | content: " »"; 112 | } 113 | 114 | /* Sidebar ------------------------------------------------------ */ 115 | 116 | .sidebar h1, .sidebar h2 { 117 | margin-top: 1.5rem; 118 | margin-bottom: 0.5rem; 119 | } 120 | .sidebar h1 { 121 | font-size: 1.1rem; 122 | } 123 | @media (max-width: 991.98px) { 124 | .sidebar h1 { 125 | font-size: 1.5rem; 126 | margin-top: 0rem; 127 | } 128 | } 129 | .sidebar h2 { 130 | font-size: 0.9rem; 131 | } 132 | 133 | .sidebar hr { 134 | margin: 0 0 0.5rem 0; 135 | } 136 | 137 | .sidebar li { 138 | margin-bottom: 0.5rem; 139 | font-size: 0.9rem; 140 | line-height: 1.5; 141 | } 142 | 143 | .sidebar li.book-part { 144 | margin-top: 1rem; 145 | } 146 | 147 | .book-toc .active { 148 | font-weight: bolder; 149 | } 150 | 151 | .book-extra { 152 | border-top: 1px solid #ccc; 153 | margin-top: 0.5rem; 154 | padding-top: 0.5rem; 155 | font-size: 0.9rem; 156 | } 157 | 158 | .book-extra i { 159 | font-size: 1.2em; 160 | } 161 | 162 | /* Sticky footer ----------------------------------------- */ 163 | html, body {height: 100%} 164 | 165 | body { 166 | display: flex; 167 | flex-direction: column; 168 | } 169 | .container-fluid { 170 | flex: 1 0 auto; 171 | } 172 | footer { 173 | flex-shrink: 0; 174 | font-size: 0.9rem; 175 | 176 | } 177 | footer a { 178 | text-decoration: underline; 179 | } 180 | 181 | /* Scrollspy --------------------------------------------- */ 182 | 183 | nav[data-toggle="toc"] .nav > li { 184 | margin-bottom: calc(0.5rem - 3px); 185 | } 186 | 187 | nav[data-toggle="toc"] .nav > li > a { 188 | padding: 3px; 189 | display: block; 190 | } 191 | 192 | nav[data-toggle="toc"] .nav > li > a:hover { 193 | text-decoration: underline; 194 | } 195 | 196 | nav[data-toggle="toc"] .nav a.nav-link.active, 197 | nav[data-toggle="toc"] .nav .nav-link.active > li > a { 198 | background-color: #eee; 199 | } 200 | 201 | /* Nav: second level (shown on .active) */ 202 | nav[data-toggle="toc"] .nav-link + ul { 203 | display: none; 204 | } 205 | nav[data-toggle="toc"] .nav-link.active + ul { 206 | margin-top: 3px; 207 | display: block; 208 | } 209 | 210 | nav[data-toggle="toc"] .nav .nav > li { 211 | margin-bottom: 0; 212 | } 213 | nav[data-toggle="toc"] .nav .nav > li > a { 214 | margin-left: 10px; 215 | } 216 | /* Figures -------------------------------------------- */ 217 | 218 | .figure, .inline-figure { 219 | width: 100%; 220 | overflow-x: auto; 221 | } 222 | 223 | .inline-figure { 224 | border: solid 2px #f1f1f1; 225 | margin-bottom: 1rem; /* to match

*/ 226 | } 227 | 228 | .figure { 229 | border-top: 2px solid #eee; 230 | border-bottom: 2px solid #eee; 231 | margin: 1.5rem -0.5rem 1rem -0.5rem; 232 | padding: 1.5rem 0 1rem 1rem; 233 | } 234 | 235 | @media (max-width: 767.98px) { 236 | .figure { 237 | margin: 1.5rem -1rem 1.5rem -1rem; 238 | padding: 1.5rem; 239 | width: 100vw; 240 | } 241 | } 242 | 243 | caption, p.caption { 244 | text-align: left; 245 | margin-top: 1rem; 246 | margin-bottom: 0; 247 | font-size: 0.9rem; 248 | color: #777; 249 | } 250 | 251 | /* Headings -------------------------------------------- */ 252 | 253 | h2 { 254 | margin-top: 2rem; 255 | margin-bottom: 1rem; 256 | font-size: 1.5rem; 257 | } 258 | h3 { margin-top: 1.5em; font-size: 1.2rem; } 259 | h4 { margin-top: 1.5em; font-size: 1.1rem; } 260 | h5 { margin-top: 1.5em; font-size: 1rem; } 261 | 262 | h1, h2, h3, h4, h5 { 263 | line-height: 1.3; 264 | } 265 | 266 | .header-section-number { 267 | color: #6C6C6C; 268 | font-weight: normal; 269 | } 270 | 271 | .dropdown-item .header-section-number { 272 | position: absolute; 273 | width: 2rem; 274 | left: -1rem; 275 | display: block; 276 | text-align: right; 277 | } 278 | 279 | .anchor { 280 | font-size: max(0.5em, 1rem); 281 | margin-left: 0.5rem; 282 | display: none; 283 | } 284 | h1:hover .anchor, 285 | h2:hover .anchor, 286 | h3:hover .anchor, 287 | h4:hover .anchor, 288 | h5:hover .anchor, 289 | h6:hover .anchor { 290 | display: inline; 291 | } 292 | 293 | /* Tables ---------------------------------------------- */ 294 | 295 | .inline-table { 296 | overflow-x: auto; 297 | } 298 | 299 | table.kable_wrapper td { 300 | vertical-align: top; 301 | } 302 | 303 | 304 | /* Footnotes --------------------------------------------- */ 305 | 306 | .popover { 307 | max-width: min(100vw, 32rem); 308 | font-size: 0.9rem; 309 | box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.3); 310 | } 311 | .popover-body { 312 | padding: 0.75rem; 313 | } 314 | .popover-body p:last-child { 315 | margin-bottom: 0; 316 | } 317 | 318 | a.footnote-ref { 319 | cursor: pointer; 320 | } 321 | 322 | /* Search ---------------------------------------------- */ 323 | 324 | mark { 325 | background: linear-gradient(-100deg, 326 | hsla(48,92%,75%,.3), 327 | hsla(48,92%,75%,.7) 95%, 328 | hsla(48,92%,75%,.1) 329 | ) 330 | } 331 | 332 | .algolia-autocomplete .aa-hint { 333 | color: #999; 334 | } 335 | .algolia-autocomplete .aa-dropdown-menu { 336 | width: min(100%, 20rem); 337 | background-color: #fff; 338 | border: 1px solid var(--gray); 339 | border-radius: 0.2rem; 340 | margin-top: 2px; 341 | 342 | max-height: 50vh; 343 | overflow-y: auto; 344 | } 345 | .algolia-autocomplete .aa-dropdown-menu .aa-suggestion { 346 | cursor: pointer; 347 | padding: 5px 4px; 348 | border-bottom: 1px #ddd solid; 349 | font-size: 0.9rem; 350 | } 351 | .algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor { 352 | background-color: #B2D7FF; 353 | } 354 | 355 | /* Code ------------------------------------------------ */ 356 | 357 | pre { 358 | position: relative; 359 | overflow: auto; 360 | border: 1px solid #eee; 361 | padding: 0.5rem; 362 | margin: 0 -0.5rem 1rem -0.5rem; 363 | background-image: linear-gradient(160deg,#f8f8f8 0,#f1f1f1 100%); 364 | } 365 | 366 | @media (max-width: 767.98px) { 367 | /* Make background span full width on mobile */ 368 | .section > .sourceCode > pre { 369 | margin: 0 -1rem 1rem -1rem; 370 | padding: 0.5rem 1rem; 371 | width: 100vw; 372 | } 373 | } 374 | 375 | code { 376 | background-color: #f8f8f8; 377 | } 378 | 379 | pre code { 380 | background-color: transparent; 381 | word-break: normal; /* force wide blocks to scroll, not wrap */ 382 | word-wrap: normal; 383 | } 384 | 385 | pre, code { 386 | border-radius: 0.2rem; 387 | color: #212529; /* match text colour */ 388 | } 389 | code a:any-link { 390 | color: inherit; /* use colour from syntax highlighting */ 391 | text-decoration: underline; 392 | text-decoration-color: #ccc; 393 | } 394 | 395 | /* copy button */ 396 | 397 | div.sourceCode { 398 | position: relative; 399 | } 400 | 401 | .btn-copy { 402 | position: absolute; 403 | top: 0rem; 404 | right: -0.5rem; /* coherent with pre margin rule */ 405 | } 406 | 407 | div.sourceCode > button { 408 | filter: opacity(50%); 409 | } 410 | 411 | div.sourceCode > button:hover { 412 | filter: opacity(100%); 413 | } 414 | 415 | div.sourceCode > button > i.bi::before { 416 | display: inline-block; 417 | height: 1rem; 418 | width: 1rem; 419 | content: ""; 420 | vertical-align: -0.125em; 421 | background-image: url('data:image/svg+xml,'); 422 | background-repeat: no-repeat; 423 | background-size: 1rem 1rem; 424 | } 425 | 426 | div.sourceCode > button.btn-copy-checked > .bi::before { 427 | background-image: url('data:image/svg+xml,'); 428 | } 429 | 430 | /* https://github.com/rstudio/distill/blob/master/inst/rmarkdown/templates/distill_article/resources/a11y.theme + https://gist.github.com/hadley/f53b6e92df20994fdabe6562d284728a */ 431 | code span.ot {color:#007faa} 432 | code span.at {color:#7d9029} 433 | code span.ss {color:#bb6688} 434 | code span.an {color:#545454;} 435 | code span.fu {color:#4254A7} 436 | code span.st {color:#008000} 437 | code span.cf {color:#007faa;} 438 | code span.op {color:#696969} 439 | code span.er {color:#ff0000;} 440 | code span.bn {color:#a1024a} 441 | code span.al {color:#ff0000;} 442 | code span.va {color:#19177c} 443 | code span.bu {color: #007faa;} 444 | code span.ex {} 445 | code span.pp {color:#bc7a00} 446 | code span.in {color:#545454;} 447 | code span.vs {color:#008000} 448 | code span.wa {color:#545454; font-style: italic} 449 | code span.do {color:#ba2121; font-style: italic} 450 | code span.im {color:#007faa; font-weight: bold;} 451 | code span.ch {color:#008000} 452 | code span.dt {color:#aa5d00} 453 | code span.fl {color:#a1024a} 454 | code span.co {color:#545454} 455 | code span.cv {color:#545454; font-style: italic} 456 | code span.cn {color:#d91e18} 457 | code span.sc {color:#008000} 458 | code span.dv {color:#a1024a} 459 | code span.kw {color:#007faa} 460 | 461 | /* Misc typography ---------------------------------------------- */ 462 | 463 | a { 464 | overflow-wrap: break-word; 465 | word-wrap: break-word; 466 | } 467 | 468 | blockquote { 469 | border-left: 0.5rem solid #eee; 470 | padding-left: 0.5rem; 471 | margin-left: -0.5rem; 472 | } 473 | 474 | body { 475 | line-height: 1.6; 476 | } 477 | 478 | .smallcaps { 479 | font-variant: small-caps; 480 | } 481 | 482 | /* special callout blocks */ 483 | 484 | .rmdnote, .rmdcaution, .rmdimportant, .rmdtip, .rmdwarning { 485 | margin: 1rem calc(-2px - 0.5em); 486 | padding: 1rem; 487 | border: 2px solid #eee; 488 | } 489 | 490 | .rmdnote > *:last-child, .rmdcaution > *:last-child, .rmdimportant > *:last-child, .rmdtip > *:last-child, .rmdwarning > *:last-child { 491 | margin-bottom: 0; 492 | } 493 | 494 | @media (max-width: 767.98px) { 495 | .rmdnote, .rmdcaution, .rmdimportant, .rmdtip, .rmdwarning { 496 | margin: 1rem -1rem; 497 | border-width: 4px; 498 | } 499 | } 500 | 501 | .rmdnote { 502 | border-color: var(--primary); 503 | } 504 | .rmdimportant { 505 | border-color: var(--success); 506 | } 507 | .rmdcaution { 508 | border-color: var(--danger); 509 | } 510 | .rmdwarning { 511 | border-color: var(--warning); 512 | } 513 | .rmdtip { 514 | border-color: var(--info); 515 | } 516 | 517 | .rmdcaution pre, .rmdimportant pre, .rmdnote pre, .rmdtip pre, .rmdwarning pre { 518 | /* Make code blocks full width in rmdnote */ 519 | margin: 0 -1rem 1rem -1rem; 520 | padding: 1rem; 521 | } 522 | 523 | .rmdcaution .btn-copy, .rmdimportant .btn-copy, .rmdnote .btn-copy, .rmdtip .btn-copy, .rmdwarning .btn-copy { 524 | /* Needs to be set according to margin in callout pre block */ 525 | right: -1rem; 526 | } 527 | 528 | main ul { 529 | list-style-type: square; 530 | } 531 | main ol, main ul { 532 | padding-left: 25px; 533 | margin-bottom: 0; 534 | } 535 | main li { 536 | margin-bottom: 0.5rem; 537 | } 538 | main ol > li:first-child, main ul > li:first-child { 539 | margin-top: 0.5rem; 540 | } 541 | 542 | /* Cover image */ 543 | 544 | img.cover { 545 | float: right; 546 | margin: 0 1rem 0 1rem; 547 | box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); 548 | } 549 | @media (max-width: 767.98px) { 550 | img.cover { 551 | float: none; 552 | display: block; 553 | margin: 0 auto 1rem auto; 554 | } 555 | } 556 | -------------------------------------------------------------------------------- /chicago-fullnote-bibliography.csl: -------------------------------------------------------------------------------- 1 | 2 | 1488 | -------------------------------------------------------------------------------- /_book/libs/bootstrap-4.6.0/bootstrap.bundle.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v4.6.0 (https://getbootstrap.com/) 3 | * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5 | */ 6 | !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap={},t.jQuery)}(this,(function(t,e){"use strict";function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=n(e);function o(t,e){for(var n=0;n=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};l.jQueryDetection(),i.default.fn.emulateTransitionEnd=s,i.default.event.special[l.TRANSITION_END]={bindType:"transitionend",delegateType:"transitionend",handle:function(t){if(i.default(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var u="alert",f=i.default.fn[u],d=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){i.default.removeData(this._element,"bs.alert"),this._element=null},e._getRootElement=function(t){var e=l.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=i.default(t).closest(".alert")[0]),n},e._triggerCloseEvent=function(t){var e=i.default.Event("close.bs.alert");return i.default(t).trigger(e),e},e._removeElement=function(t){var e=this;if(i.default(t).removeClass("show"),i.default(t).hasClass("fade")){var n=l.getTransitionDurationFromElement(t);i.default(t).one(l.TRANSITION_END,(function(n){return e._destroyElement(t,n)})).emulateTransitionEnd(n)}else this._destroyElement(t)},e._destroyElement=function(t){i.default(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this),o=n.data("bs.alert");o||(o=new t(this),n.data("bs.alert",o)),"close"===e&&o[e](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},r(t,null,[{key:"VERSION",get:function(){return"4.6.0"}}]),t}();i.default(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',d._handleDismiss(new d)),i.default.fn[u]=d._jQueryInterface,i.default.fn[u].Constructor=d,i.default.fn[u].noConflict=function(){return i.default.fn[u]=f,d._jQueryInterface};var c=i.default.fn.button,h=function(){function t(t){this._element=t,this.shouldAvoidTriggerChange=!1}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=i.default(this._element).closest('[data-toggle="buttons"]')[0];if(n){var o=this._element.querySelector('input:not([type="hidden"])');if(o){if("radio"===o.type)if(o.checked&&this._element.classList.contains("active"))t=!1;else{var r=n.querySelector(".active");r&&i.default(r).removeClass("active")}t&&("checkbox"!==o.type&&"radio"!==o.type||(o.checked=!this._element.classList.contains("active")),this.shouldAvoidTriggerChange||i.default(o).trigger("change")),o.focus(),e=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),t&&i.default(this._element).toggleClass("active"))},e.dispose=function(){i.default.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(e,n){return this.each((function(){var o=i.default(this),r=o.data("bs.button");r||(r=new t(this),o.data("bs.button",r)),r.shouldAvoidTriggerChange=n,"toggle"===e&&r[e]()}))},r(t,null,[{key:"VERSION",get:function(){return"4.6.0"}}]),t}();i.default(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=t.target,n=e;if(i.default(e).hasClass("btn")||(e=i.default(e).closest(".btn")[0]),!e||e.hasAttribute("disabled")||e.classList.contains("disabled"))t.preventDefault();else{var o=e.querySelector('input:not([type="hidden"])');if(o&&(o.hasAttribute("disabled")||o.classList.contains("disabled")))return void t.preventDefault();"INPUT"!==n.tagName&&"LABEL"===e.tagName||h._jQueryInterface.call(i.default(e),"toggle","INPUT"===n.tagName)}})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=i.default(t.target).closest(".btn")[0];i.default(e).toggleClass("focus",/^focus(in)?$/.test(t.type))})),i.default(window).on("load.bs.button.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var e=t.prototype;return e.next=function(){this._isSliding||this._slide("next")},e.nextWhenVisible=function(){var t=i.default(this._element);!document.hidden&&t.is(":visible")&&"hidden"!==t.css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide("prev")},e.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(l.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=this._element.querySelector(".active.carousel-item");var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)i.default(this._element).one("slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var o=t>n?"next":"prev";this._slide(o,this._items[t])}},e.dispose=function(){i.default(this._element).off(m),i.default.removeData(this._element,"bs.carousel"),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=a({},v,t),l.typeCheckConfig(p,t,_),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&i.default(this._element).on("keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&i.default(this._element).on("mouseenter.bs.carousel",(function(e){return t.pause(e)})).on("mouseleave.bs.carousel",(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&b[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},n=function(e){t._pointerEvent&&b[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};i.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(t){return t.preventDefault()})),this._pointerEvent?(i.default(this._element).on("pointerdown.bs.carousel",(function(t){return e(t)})),i.default(this._element).on("pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(i.default(this._element).on("touchstart.bs.carousel",(function(t){return e(t)})),i.default(this._element).on("touchmove.bs.carousel",(function(e){return function(e){e.originalEvent.touches&&e.originalEvent.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.originalEvent.touches[0].clientX-t.touchStartX}(e)})),i.default(this._element).on("touchend.bs.carousel",(function(t){return n(t)})))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var a=(o+("prev"===t?-1:1))%this._items.length;return-1===a?this._items[this._items.length-1]:this._items[a]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),o=this._getItemIndex(this._element.querySelector(".active.carousel-item")),r=i.default.Event("slide.bs.carousel",{relatedTarget:t,direction:e,from:o,to:n});return i.default(this._element).trigger(r),r},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));i.default(e).removeClass("active");var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&i.default(n).addClass("active")}},e._updateInterval=function(){var t=this._activeElement||this._element.querySelector(".active.carousel-item");if(t){var e=parseInt(t.getAttribute("data-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}},e._slide=function(t,e){var n,o,r,a=this,s=this._element.querySelector(".active.carousel-item"),u=this._getItemIndex(s),f=e||s&&this._getItemByDirection(t,s),d=this._getItemIndex(f),c=Boolean(this._interval);if("next"===t?(n="carousel-item-left",o="carousel-item-next",r="left"):(n="carousel-item-right",o="carousel-item-prev",r="right"),f&&i.default(f).hasClass("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(f,r).isDefaultPrevented()&&s&&f){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(f),this._activeElement=f;var h=i.default.Event("slid.bs.carousel",{relatedTarget:f,direction:r,from:u,to:d});if(i.default(this._element).hasClass("slide")){i.default(f).addClass(o),l.reflow(f),i.default(s).addClass(n),i.default(f).addClass(n);var p=l.getTransitionDurationFromElement(s);i.default(s).one(l.TRANSITION_END,(function(){i.default(f).removeClass(n+" "+o).addClass("active"),i.default(s).removeClass("active "+o+" "+n),a._isSliding=!1,setTimeout((function(){return i.default(a._element).trigger(h)}),0)})).emulateTransitionEnd(p)}else i.default(s).removeClass("active"),i.default(f).addClass("active"),this._isSliding=!1,i.default(this._element).trigger(h);c&&this.cycle()}},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this).data("bs.carousel"),o=a({},v,i.default(this).data());"object"==typeof e&&(o=a({},o,e));var r="string"==typeof e?e:o.slide;if(n||(n=new t(this,o),i.default(this).data("bs.carousel",n)),"number"==typeof e)n.to(e);else if("string"==typeof r){if("undefined"==typeof n[r])throw new TypeError('No method named "'+r+'"');n[r]()}else o.interval&&o.ride&&(n.pause(),n.cycle())}))},t._dataApiClickHandler=function(e){var n=l.getSelectorFromElement(this);if(n){var o=i.default(n)[0];if(o&&i.default(o).hasClass("carousel")){var r=a({},i.default(o).data(),i.default(this).data()),s=this.getAttribute("data-slide-to");s&&(r.interval=!1),t._jQueryInterface.call(i.default(o),r),s&&i.default(o).data("bs.carousel").to(s),e.preventDefault()}}},r(t,null,[{key:"VERSION",get:function(){return"4.6.0"}},{key:"Default",get:function(){return v}}]),t}();i.default(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",y._dataApiClickHandler),i.default(window).on("load.bs.carousel.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),e=0,n=t.length;e0&&(this._selector=a,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=t.prototype;return e.toggle=function(){i.default(this._element).hasClass("show")?this.hide():this.show()},e.show=function(){var e,n,o=this;if(!this._isTransitioning&&!i.default(this._element).hasClass("show")&&(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(t){return"string"==typeof o._config.parent?t.getAttribute("data-parent")===o._config.parent:t.classList.contains("collapse")}))).length&&(e=null),!(e&&(n=i.default(e).not(this._selector).data("bs.collapse"))&&n._isTransitioning))){var r=i.default.Event("show.bs.collapse");if(i.default(this._element).trigger(r),!r.isDefaultPrevented()){e&&(t._jQueryInterface.call(i.default(e).not(this._selector),"hide"),n||i.default(e).data("bs.collapse",null));var a=this._getDimension();i.default(this._element).removeClass("collapse").addClass("collapsing"),this._element.style[a]=0,this._triggerArray.length&&i.default(this._triggerArray).removeClass("collapsed").attr("aria-expanded",!0),this.setTransitioning(!0);var s="scroll"+(a[0].toUpperCase()+a.slice(1)),u=l.getTransitionDurationFromElement(this._element);i.default(this._element).one(l.TRANSITION_END,(function(){i.default(o._element).removeClass("collapsing").addClass("collapse show"),o._element.style[a]="",o.setTransitioning(!1),i.default(o._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(u),this._element.style[a]=this._element[s]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&i.default(this._element).hasClass("show")){var e=i.default.Event("hide.bs.collapse");if(i.default(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",l.reflow(this._element),i.default(this._element).addClass("collapsing").removeClass("collapse show");var o=this._triggerArray.length;if(o>0)for(var r=0;r=0)return 1;return 0}();var k=N&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then((function(){e=!1,t()})))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout((function(){e=!1,t()}),D))}};function A(t){return t&&"[object Function]"==={}.toString.call(t)}function I(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function O(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function x(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=I(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:x(O(t))}function j(t){return t&&t.referenceNode?t.referenceNode:t}var L=N&&!(!window.MSInputMethodContext||!document.documentMode),P=N&&/MSIE 10/.test(navigator.userAgent);function F(t){return 11===t?L:10===t?P:L||P}function R(t){if(!t)return document.documentElement;for(var e=F(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===I(n,"position")?R(n):n:t?t.ownerDocument.documentElement:document.documentElement}function H(t){return null!==t.parentNode?H(t.parentNode):t}function M(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var a,s,l=r.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(s=(a=l).nodeName)||"HTML"!==s&&R(a.firstElementChild)!==a?R(l):l;var u=H(t);return u.host?M(u.host,e):M(t,H(e).host)}function q(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===e?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){var o=t.ownerDocument.documentElement,r=t.ownerDocument.scrollingElement||o;return r[n]}return t[n]}function B(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=q(e,"top"),o=q(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}function Q(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+i+"Width"])}function W(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],F(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function U(t){var e=t.body,n=t.documentElement,i=F(10)&&getComputedStyle(n);return{height:W("Height",e,n,i),width:W("Width",e,n,i)}}var V=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Y=function(){function t(t,e){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],i=F(10),o="HTML"===e.nodeName,r=G(t),a=G(e),s=x(t),l=I(e),u=parseFloat(l.borderTopWidth),f=parseFloat(l.borderLeftWidth);n&&o&&(a.top=Math.max(a.top,0),a.left=Math.max(a.left,0));var d=K({top:r.top-a.top-u,left:r.left-a.left-f,width:r.width,height:r.height});if(d.marginTop=0,d.marginLeft=0,!i&&o){var c=parseFloat(l.marginTop),h=parseFloat(l.marginLeft);d.top-=u-c,d.bottom-=u-c,d.left-=f-h,d.right-=f-h,d.marginTop=c,d.marginLeft=h}return(i&&!n?e.contains(s):e===s&&"BODY"!==s.nodeName)&&(d=B(d,e)),d}function J(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=$(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),a=e?0:q(n),s=e?0:q(n,"left"),l={top:a-i.top+i.marginTop,left:s-i.left+i.marginLeft,width:o,height:r};return K(l)}function Z(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===I(t,"position"))return!0;var n=O(t);return!!n&&Z(n)}function tt(t){if(!t||!t.parentElement||F())return document.documentElement;for(var e=t.parentElement;e&&"none"===I(e,"transform");)e=e.parentElement;return e||document.documentElement}function et(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},a=o?tt(t):M(t,j(e));if("viewport"===i)r=J(a,o);else{var s=void 0;"scrollParent"===i?"BODY"===(s=x(O(e))).nodeName&&(s=t.ownerDocument.documentElement):s="window"===i?t.ownerDocument.documentElement:i;var l=$(s,a,o);if("HTML"!==s.nodeName||Z(a))r=l;else{var u=U(t.ownerDocument),f=u.height,d=u.width;r.top+=l.top-l.marginTop,r.bottom=f+l.top,r.left+=l.left-l.marginLeft,r.right=d+l.left}}var c="number"==typeof(n=n||0);return r.left+=c?n:n.left||0,r.top+=c?n:n.top||0,r.right-=c?n:n.right||0,r.bottom-=c?n:n.bottom||0,r}function nt(t){return t.width*t.height}function it(t,e,n,i,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var a=et(n,i,r,o),s={top:{width:a.width,height:e.top-a.top},right:{width:a.right-e.right,height:a.height},bottom:{width:a.width,height:a.bottom-e.bottom},left:{width:e.left-a.left,height:a.height}},l=Object.keys(s).map((function(t){return X({key:t},s[t],{area:nt(s[t])})})).sort((function(t,e){return e.area-t.area})),u=l.filter((function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight})),f=u.length>0?u[0].key:l[0].key,d=t.split("-")[1];return f+(d?"-"+d:"")}function ot(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=i?tt(e):M(e,j(n));return $(n,o,i)}function rt(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function at(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(function(t){return e[t]}))}function st(t,e,n){n=n.split("-")[0];var i=rt(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),a=r?"top":"left",s=r?"left":"top",l=r?"height":"width",u=r?"width":"height";return o[a]=e[a]+e[l]/2-i[l]/2,o[s]=n===s?e[s]-i[u]:e[at(s)],o}function lt(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function ut(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex((function(t){return t[e]===n}));var i=lt(t,(function(t){return t[e]===n}));return t.indexOf(i)}(t,"name",n))).forEach((function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&A(n)&&(e.offsets.popper=K(e.offsets.popper),e.offsets.reference=K(e.offsets.reference),e=n(e,t))})),e}function ft(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=ot(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=it(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=st(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=ut(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function dt(t,e){return t.some((function(t){var n=t.name;return t.enabled&&n===e}))}function ct(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i1&&void 0!==arguments[1]&&arguments[1],n=Tt.indexOf(t),i=Tt.slice(n+1).concat(Tt.slice(0,n));return e?i.reverse():i}var St="flip",Nt="clockwise",Dt="counterclockwise";function kt(t,e,n,i){var o=[0,0],r=-1!==["right","left"].indexOf(i),a=t.split(/(\+|\-)/).map((function(t){return t.trim()})),s=a.indexOf(lt(a,(function(t){return-1!==t.search(/,|\s/)})));a[s]&&-1===a[s].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,u=-1!==s?[a.slice(0,s).concat([a[s].split(l)[0]]),[a[s].split(l)[1]].concat(a.slice(s+1))]:[a];return(u=u.map((function(t,i){var o=(1===i?!r:r)?"height":"width",a=!1;return t.reduce((function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,a=!0,t):a?(t[t.length-1]+=e,a=!1,t):t.concat(e)}),[]).map((function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],a=o[2];if(!r)return t;if(0===a.indexOf("%")){var s=void 0;switch(a){case"%p":s=n;break;case"%":case"%r":default:s=i}return K(s)[e]/100*r}if("vh"===a||"vw"===a)return("vh"===a?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r;return r}(t,o,e,n)}))}))).forEach((function(t,e){t.forEach((function(n,i){_t(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))}))})),o}var At={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,r=o.reference,a=o.popper,s=-1!==["bottom","top"].indexOf(n),l=s?"left":"top",u=s?"width":"height",f={start:z({},l,r[l]),end:z({},l,r[l]+r[u]-a[u])};t.offsets.popper=X({},a,f[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,r=o.popper,a=o.reference,s=i.split("-")[0],l=void 0;return l=_t(+n)?[+n,0]:kt(n,r,a,s),"left"===s?(r.top+=l[0],r.left-=l[1]):"right"===s?(r.top+=l[0],r.left+=l[1]):"top"===s?(r.left+=l[0],r.top-=l[1]):"bottom"===s&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||R(t.instance.popper);t.instance.reference===n&&(n=R(n));var i=ct("transform"),o=t.instance.popper.style,r=o.top,a=o.left,s=o[i];o.top="",o.left="",o[i]="";var l=et(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=r,o.left=a,o[i]=s,e.boundaries=l;var u=e.priority,f=t.offsets.popper,d={primary:function(t){var n=f[t];return f[t]l[t]&&!e.escapeWithReference&&(i=Math.min(f[n],l[t]-("right"===t?f.width:f.height))),z({},n,i)}};return u.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";f=X({},f,d[e](t))})),t.offsets.popper=f,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,a=-1!==["top","bottom"].indexOf(o),s=a?"right":"bottom",l=a?"left":"top",u=a?"width":"height";return n[s]r(i[s])&&(t.offsets.popper[l]=r(i[s])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!wt(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,a=r.popper,s=r.reference,l=-1!==["left","right"].indexOf(o),u=l?"height":"width",f=l?"Top":"Left",d=f.toLowerCase(),c=l?"left":"top",h=l?"bottom":"right",p=rt(i)[u];s[h]-pa[h]&&(t.offsets.popper[d]+=s[d]+p-a[h]),t.offsets.popper=K(t.offsets.popper);var m=s[d]+s[u]/2-p/2,g=I(t.instance.popper),v=parseFloat(g["margin"+f]),_=parseFloat(g["border"+f+"Width"]),b=m-t.offsets.popper[d]-v-_;return b=Math.max(Math.min(a[u]-p,b),0),t.arrowElement=i,t.offsets.arrow=(z(n={},d,Math.round(b)),z(n,c,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(dt(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=et(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=at(i),r=t.placement.split("-")[1]||"",a=[];switch(e.behavior){case St:a=[i,o];break;case Nt:a=Ct(i);break;case Dt:a=Ct(i,!0);break;default:a=e.behavior}return a.forEach((function(s,l){if(i!==s||a.length===l+1)return t;i=t.placement.split("-")[0],o=at(i);var u=t.offsets.popper,f=t.offsets.reference,d=Math.floor,c="left"===i&&d(u.right)>d(f.left)||"right"===i&&d(u.left)d(f.top)||"bottom"===i&&d(u.top)d(n.right),m=d(u.top)d(n.bottom),v="left"===i&&h||"right"===i&&p||"top"===i&&m||"bottom"===i&&g,_=-1!==["top","bottom"].indexOf(i),b=!!e.flipVariations&&(_&&"start"===r&&h||_&&"end"===r&&p||!_&&"start"===r&&m||!_&&"end"===r&&g),y=!!e.flipVariationsByContent&&(_&&"start"===r&&p||_&&"end"===r&&h||!_&&"start"===r&&g||!_&&"end"===r&&m),w=b||y;(c||v||w)&&(t.flipped=!0,(c||v)&&(i=a[l+1]),w&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=X({},t.offsets.popper,st(t.instance.popper,t.offsets.reference,t.placement)),t=ut(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,a=-1!==["left","right"].indexOf(n),s=-1===["top","left"].indexOf(n);return o[a?"left":"top"]=r[n]-(s?o[a?"width":"height"]:0),t.placement=at(e),t.offsets.popper=K(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!wt(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=lt(t.instance.modifiers,(function(t){return"preventOverflow"===t.name})).boundaries;if(e.bottomn.right||e.top>n.bottom||e.right2&&void 0!==arguments[2]?arguments[2]:{};V(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=k(this.update.bind(this)),this.options=X({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(X({},t.Defaults.modifiers,o.modifiers)).forEach((function(e){i.options.modifiers[e]=X({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(t){return X({name:t},i.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&A(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)})),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return Y(t,[{key:"update",value:function(){return ft.call(this)}},{key:"destroy",value:function(){return ht.call(this)}},{key:"enableEventListeners",value:function(){return gt.call(this)}},{key:"disableEventListeners",value:function(){return vt.call(this)}}]),t}();It.Utils=("undefined"!=typeof window?window:global).PopperUtils,It.placements=Et,It.Defaults=At;var Ot="dropdown",xt=i.default.fn[Ot],jt=new RegExp("38|40|27"),Lt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},Pt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},Ft=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var e=t.prototype;return e.toggle=function(){if(!this._element.disabled&&!i.default(this._element).hasClass("disabled")){var e=i.default(this._menu).hasClass("show");t._clearMenus(),e||this.show(!0)}},e.show=function(e){if(void 0===e&&(e=!1),!(this._element.disabled||i.default(this._element).hasClass("disabled")||i.default(this._menu).hasClass("show"))){var n={relatedTarget:this._element},o=i.default.Event("show.bs.dropdown",n),r=t._getParentFromElement(this._element);if(i.default(r).trigger(o),!o.isDefaultPrevented()){if(!this._inNavbar&&e){if("undefined"==typeof It)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");var a=this._element;"parent"===this._config.reference?a=r:l.isElement(this._config.reference)&&(a=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(a=this._config.reference[0])),"scrollParent"!==this._config.boundary&&i.default(r).addClass("position-static"),this._popper=new It(a,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===i.default(r).closest(".navbar-nav").length&&i.default(document.body).children().on("mouseover",null,i.default.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),i.default(this._menu).toggleClass("show"),i.default(r).toggleClass("show").trigger(i.default.Event("shown.bs.dropdown",n))}}},e.hide=function(){if(!this._element.disabled&&!i.default(this._element).hasClass("disabled")&&i.default(this._menu).hasClass("show")){var e={relatedTarget:this._element},n=i.default.Event("hide.bs.dropdown",e),o=t._getParentFromElement(this._element);i.default(o).trigger(n),n.isDefaultPrevented()||(this._popper&&this._popper.destroy(),i.default(this._menu).toggleClass("show"),i.default(o).toggleClass("show").trigger(i.default.Event("hidden.bs.dropdown",e)))}},e.dispose=function(){i.default.removeData(this._element,"bs.dropdown"),i.default(this._element).off(".bs.dropdown"),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},e.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},e._addEventListeners=function(){var t=this;i.default(this._element).on("click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},e._getConfig=function(t){return t=a({},this.constructor.Default,i.default(this._element).data(),t),l.typeCheckConfig(Ot,t,this.constructor.DefaultType),t},e._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=e.querySelector(".dropdown-menu"))}return this._menu},e._getPlacement=function(){var t=i.default(this._element.parentNode),e="bottom-start";return t.hasClass("dropup")?e=i.default(this._menu).hasClass("dropdown-menu-right")?"top-end":"top-start":t.hasClass("dropright")?e="right-start":t.hasClass("dropleft")?e="left-start":i.default(this._menu).hasClass("dropdown-menu-right")&&(e="bottom-end"),e},e._detectNavbar=function(){return i.default(this._element).closest(".navbar").length>0},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=a({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),a({},t,this._config.popperConfig)},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this).data("bs.dropdown");if(n||(n=new t(this,"object"==typeof e?e:null),i.default(this).data("bs.dropdown",n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=[].slice.call(document.querySelectorAll('[data-toggle="dropdown"]')),o=0,r=n.length;o0&&a--,40===e.which&&adocument.documentElement.clientHeight;n||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var o=l.getTransitionDurationFromElement(this._dialog);i.default(this._element).off(l.TRANSITION_END),i.default(this._element).one(l.TRANSITION_END,(function(){t._element.classList.remove("modal-static"),n||i.default(t._element).one(l.TRANSITION_END,(function(){t._element.style.overflowY=""})).emulateTransitionEnd(t._element,o)})).emulateTransitionEnd(o),this._element.focus()}},e._showElement=function(t){var e=this,n=i.default(this._element).hasClass("fade"),o=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),i.default(this._dialog).hasClass("modal-dialog-scrollable")&&o?o.scrollTop=0:this._element.scrollTop=0,n&&l.reflow(this._element),i.default(this._element).addClass("show"),this._config.focus&&this._enforceFocus();var r=i.default.Event("shown.bs.modal",{relatedTarget:t}),a=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,i.default(e._element).trigger(r)};if(n){var s=l.getTransitionDurationFromElement(this._dialog);i.default(this._dialog).one(l.TRANSITION_END,a).emulateTransitionEnd(s)}else a()},e._enforceFocus=function(){var t=this;i.default(document).off("focusin.bs.modal").on("focusin.bs.modal",(function(e){document!==e.target&&t._element!==e.target&&0===i.default(t._element).has(e.target).length&&t._element.focus()}))},e._setEscapeEvent=function(){var t=this;this._isShown?i.default(this._element).on("keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):this._isShown||i.default(this._element).off("keydown.dismiss.bs.modal")},e._setResizeEvent=function(){var t=this;this._isShown?i.default(window).on("resize.bs.modal",(function(e){return t.handleUpdate(e)})):i.default(window).off("resize.bs.modal")},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){i.default(document.body).removeClass("modal-open"),t._resetAdjustments(),t._resetScrollbar(),i.default(t._element).trigger("hidden.bs.modal")}))},e._removeBackdrop=function(){this._backdrop&&(i.default(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=i.default(this._element).hasClass("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),i.default(this._backdrop).appendTo(document.body),i.default(this._element).on("click.dismiss.bs.modal",(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._triggerBackdropTransition():e.hide())})),n&&l.reflow(this._backdrop),i.default(this._backdrop).addClass("show"),!t)return;if(!n)return void t();var o=l.getTransitionDurationFromElement(this._backdrop);i.default(this._backdrop).one(l.TRANSITION_END,t).emulateTransitionEnd(o)}else if(!this._isShown&&this._backdrop){i.default(this._backdrop).removeClass("show");var r=function(){e._removeBackdrop(),t&&t()};if(i.default(this._element).hasClass("fade")){var a=l.getTransitionDurationFromElement(this._backdrop);i.default(this._backdrop).one(l.TRANSITION_END,r).emulateTransitionEnd(a)}else r()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)

',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:Qt,popperConfig:null},Zt={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},te=function(){function t(t,e){if("undefined"==typeof It)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=i.default(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),i.default(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(i.default(this.getTipElement()).hasClass("show"))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),i.default.removeData(this.element,this.constructor.DATA_KEY),i.default(this.element).off(this.constructor.EVENT_KEY),i.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&i.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===i.default(this.element).css("display"))throw new Error("Please use show on visible elements");var e=i.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){i.default(this.element).trigger(e);var n=l.findShadowRoot(this.element),o=i.default.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!o)return;var r=this.getTipElement(),a=l.getUID(this.constructor.NAME);r.setAttribute("id",a),this.element.setAttribute("aria-describedby",a),this.setContent(),this.config.animation&&i.default(r).addClass("fade");var s="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,u=this._getAttachment(s);this.addAttachmentClass(u);var f=this._getContainer();i.default(r).data(this.constructor.DATA_KEY,this),i.default.contains(this.element.ownerDocument.documentElement,this.tip)||i.default(r).appendTo(f),i.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new It(this.element,r,this._getPopperConfig(u)),i.default(r).addClass("show"),i.default(r).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&i.default(document.body).children().on("mouseover",null,i.default.noop);var d=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,i.default(t.element).trigger(t.constructor.Event.SHOWN),"out"===e&&t._leave(null,t)};if(i.default(this.tip).hasClass("fade")){var c=l.getTransitionDurationFromElement(this.tip);i.default(this.tip).one(l.TRANSITION_END,d).emulateTransitionEnd(c)}else d()}},e.hide=function(t){var e=this,n=this.getTipElement(),o=i.default.Event(this.constructor.Event.HIDE),r=function(){"show"!==e._hoverState&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),i.default(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(i.default(this.element).trigger(o),!o.isDefaultPrevented()){if(i.default(n).removeClass("show"),"ontouchstart"in document.documentElement&&i.default(document.body).children().off("mouseover",null,i.default.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,i.default(this.tip).hasClass("fade")){var a=l.getTransitionDurationFromElement(n);i.default(n).one(l.TRANSITION_END,r).emulateTransitionEnd(a)}else r();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(t){i.default(this.getTipElement()).addClass("bs-tooltip-"+t)},e.getTipElement=function(){return this.tip=this.tip||i.default(this.config.template)[0],this.tip},e.setContent=function(){var t=this.getTipElement();this.setElementContent(i.default(t.querySelectorAll(".tooltip-inner")),this.getTitle()),i.default(t).removeClass("fade show")},e.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=Vt(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?i.default(e).parent().is(t)||t.empty().append(e):t.text(i.default(e).text())},e.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},e._getPopperConfig=function(t){var e=this;return a({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},e._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=a({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},e._getContainer=function(){return!1===this.config.container?document.body:l.isElement(this.config.container)?i.default(this.config.container):i.default(document).find(this.config.container)},e._getAttachment=function(t){return $t[t.toUpperCase()]},e._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)i.default(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;i.default(t.element).on(n,t.config.selector,(function(e){return t._enter(e)})).on(o,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},i.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=a({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||i.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),i.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),i.default(e.getTipElement()).hasClass("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},e._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||i.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),i.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&e.hide()}),e.config.delay.hide):e.hide())},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var e=i.default(this.element).data();return Object.keys(e).forEach((function(t){-1!==Kt.indexOf(t)&&delete e[t]})),"number"==typeof(t=a({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),l.typeCheckConfig(Yt,t,this.constructor.DefaultType),t.sanitize&&(t.template=Vt(t.template,t.whiteList,t.sanitizeFn)),t},e._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},e._cleanTipClass=function(){var t=i.default(this.getTipElement()),e=t.attr("class").match(Xt);null!==e&&e.length&&t.removeClass(e.join(""))},e._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(i.default(t).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this),o=n.data("bs.tooltip"),r="object"==typeof e&&e;if((o||!/dispose|hide/.test(e))&&(o||(o=new t(this,r),n.data("bs.tooltip",o)),"string"==typeof e)){if("undefined"==typeof o[e])throw new TypeError('No method named "'+e+'"');o[e]()}}))},r(t,null,[{key:"VERSION",get:function(){return"4.6.0"}},{key:"Default",get:function(){return Jt}},{key:"NAME",get:function(){return Yt}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Zt}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Gt}}]),t}();i.default.fn[Yt]=te._jQueryInterface,i.default.fn[Yt].Constructor=te,i.default.fn[Yt].noConflict=function(){return i.default.fn[Yt]=zt,te._jQueryInterface};var ee="popover",ne=i.default.fn[ee],ie=new RegExp("(^|\\s)bs-popover\\S+","g"),oe=a({},te.Default,{placement:"right",trigger:"click",content:"",template:''}),re=a({},te.DefaultType,{content:"(string|element|function)"}),ae={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},se=function(t){var e,n;function o(){return t.apply(this,arguments)||this}n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n;var a=o.prototype;return a.isWithContent=function(){return this.getTitle()||this._getContent()},a.addAttachmentClass=function(t){i.default(this.getTipElement()).addClass("bs-popover-"+t)},a.getTipElement=function(){return this.tip=this.tip||i.default(this.config.template)[0],this.tip},a.setContent=function(){var t=i.default(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(".popover-body"),e),t.removeClass("fade show")},a._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},a._cleanTipClass=function(){var t=i.default(this.getTipElement()),e=t.attr("class").match(ie);null!==e&&e.length>0&&t.removeClass(e.join(""))},o._jQueryInterface=function(t){return this.each((function(){var e=i.default(this).data("bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),i.default(this).data("bs.popover",e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},r(o,null,[{key:"VERSION",get:function(){return"4.6.0"}},{key:"Default",get:function(){return oe}},{key:"NAME",get:function(){return ee}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return ae}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return re}}]),o}(te);i.default.fn[ee]=se._jQueryInterface,i.default.fn[ee].Constructor=se,i.default.fn[ee].noConflict=function(){return i.default.fn[ee]=ne,se._jQueryInterface};var le="scrollspy",ue=i.default.fn[le],fe={offset:10,method:"auto",target:""},de={offset:"number",method:"string",target:"(string|element)"},ce=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,i.default(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process()}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,o="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var e,r=l.getSelectorFromElement(t);if(r&&(e=document.querySelector(r)),e){var a=e.getBoundingClientRect();if(a.width||a.height)return[i.default(e)[n]().top+o,r]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},e.dispose=function(){i.default.removeData(this._element,"bs.scrollspy"),i.default(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=a({},fe,"object"==typeof t&&t?t:{})).target&&l.isElement(t.target)){var e=i.default(t.target).attr("id");e||(e=l.getUID(le),i.default(t.target).attr("id",e)),t.target="#"+e}return l.typeCheckConfig(le,t,de),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t li > .active":".active";n=(n=i.default.makeArray(i.default(o).find(a)))[n.length-1]}var s=i.default.Event("hide.bs.tab",{relatedTarget:this._element}),u=i.default.Event("show.bs.tab",{relatedTarget:n});if(n&&i.default(n).trigger(s),i.default(this._element).trigger(u),!u.isDefaultPrevented()&&!s.isDefaultPrevented()){r&&(e=document.querySelector(r)),this._activate(this._element,o);var f=function(){var e=i.default.Event("hidden.bs.tab",{relatedTarget:t._element}),o=i.default.Event("shown.bs.tab",{relatedTarget:n});i.default(n).trigger(e),i.default(t._element).trigger(o)};e?this._activate(e,e.parentNode,f):f()}}},e.dispose=function(){i.default.removeData(this._element,"bs.tab"),this._element=null},e._activate=function(t,e,n){var o=this,r=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?i.default(e).children(".active"):i.default(e).find("> li > .active"))[0],a=n&&r&&i.default(r).hasClass("fade"),s=function(){return o._transitionComplete(t,r,n)};if(r&&a){var u=l.getTransitionDurationFromElement(r);i.default(r).removeClass("show").one(l.TRANSITION_END,s).emulateTransitionEnd(u)}else s()},e._transitionComplete=function(t,e,n){if(e){i.default(e).removeClass("active");var o=i.default(e.parentNode).find("> .dropdown-menu .active")[0];o&&i.default(o).removeClass("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}i.default(t).addClass("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),l.reflow(t),t.classList.contains("fade")&&t.classList.add("show");var r=t.parentNode;if(r&&"LI"===r.nodeName&&(r=r.parentNode),r&&i.default(r).hasClass("dropdown-menu")){var a=i.default(t).closest(".dropdown")[0];if(a){var s=[].slice.call(a.querySelectorAll(".dropdown-toggle"));i.default(s).addClass("active")}t.setAttribute("aria-expanded",!0)}n&&n()},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this),o=n.data("bs.tab");if(o||(o=new t(this),n.data("bs.tab",o)),"string"==typeof e){if("undefined"==typeof o[e])throw new TypeError('No method named "'+e+'"');o[e]()}}))},r(t,null,[{key:"VERSION",get:function(){return"4.6.0"}}]),t}();i.default(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),pe._jQueryInterface.call(i.default(this),"show")})),i.default.fn.tab=pe._jQueryInterface,i.default.fn.tab.Constructor=pe,i.default.fn.tab.noConflict=function(){return i.default.fn.tab=he,pe._jQueryInterface};var me=i.default.fn.toast,ge={animation:"boolean",autohide:"boolean",delay:"number"},ve={animation:!0,autohide:!0,delay:500},_e=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var e=t.prototype;return e.show=function(){var t=this,e=i.default.Event("show.bs.toast");if(i.default(this._element).trigger(e),!e.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var n=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),i.default(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),l.reflow(this._element),this._element.classList.add("showing"),this._config.animation){var o=l.getTransitionDurationFromElement(this._element);i.default(this._element).one(l.TRANSITION_END,n).emulateTransitionEnd(o)}else n()}},e.hide=function(){if(this._element.classList.contains("show")){var t=i.default.Event("hide.bs.toast");i.default(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},e.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),i.default(this._element).off("click.dismiss.bs.toast"),i.default.removeData(this._element,"bs.toast"),this._element=null,this._config=null},e._getConfig=function(t){return t=a({},ve,i.default(this._element).data(),"object"==typeof t&&t?t:{}),l.typeCheckConfig("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;i.default(this._element).on("click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},e._close=function(){var t=this,e=function(){t._element.classList.add("hide"),i.default(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=l.getTransitionDurationFromElement(this._element);i.default(this._element).one(l.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},e._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this),o=n.data("bs.toast");if(o||(o=new t(this,"object"==typeof e&&e),n.data("bs.toast",o)),"string"==typeof e){if("undefined"==typeof o[e])throw new TypeError('No method named "'+e+'"');o[e](this)}}))},r(t,null,[{key:"VERSION",get:function(){return"4.6.0"}},{key:"DefaultType",get:function(){return ge}},{key:"Default",get:function(){return ve}}]),t}();i.default.fn.toast=_e._jQueryInterface,i.default.fn.toast.Constructor=_e,i.default.fn.toast.noConflict=function(){return i.default.fn.toast=me,_e._jQueryInterface},t.Alert=d,t.Button=h,t.Carousel=y,t.Collapse=S,t.Dropdown=Ft,t.Modal=qt,t.Popover=se,t.Scrollspy=ce,t.Tab=pe,t.Toast=_e,t.Tooltip=te,t.Util=l,Object.defineProperty(t,"__esModule",{value:!0})})); 7 | //# sourceMappingURL=bootstrap.bundle.min.js.map --------------------------------------------------------------------------------