From 14e37acef9983cfd2fd1b83a7b12ff3b319da97f Mon Sep 17 00:00:00 2001 From: cgadal Date: Thu, 31 Aug 2023 15:56:28 +0000 Subject: [PATCH] deploy: 28de1ef1fad460d1d93ca5b3ce20aa6188c1fb6c --- .buildinfo | 4 + .nojekyll | 0 ...pyudv.amplitude.direct_models.alpha_w.html | 514 ++++ ...itude.direct_models.correction_factor.html | 503 ++++ ...litude.direct_models.create_MSvoltage.html | 513 ++++ ...de.direct_models.cumulative_trapezoid.html | 546 +++++ .../pyudv.amplitude.direct_models.html | 480 ++++ ....direct_models.near_field_theoretical.html | 515 ++++ ...mplitude.direct_models.sound_velocity.html | 510 ++++ _autosummary/pyudv.amplitude.html | 464 ++++ ...amplitude.inversion.correction_factor.html | 503 ++++ ...mplitude.inversion.explicit_inversion.html | 491 ++++ _autosummary/pyudv.amplitude.inversion.html | 468 ++++ .../pyudv.helpers.create_arboresence.html | 479 ++++ _autosummary/pyudv.helpers.html | 473 ++++ _autosummary/pyudv.helpers.moving_std.html | 495 ++++ _autosummary/pyudv.helpers.moving_std1d.html | 496 ++++ .../pyudv.helpers.uniform_filter.html | 565 +++++ .../pyudv.helpers.uniform_filter1d.html | 537 ++++ _autosummary/pyudv.html | 478 ++++ _autosummary/pyudv.probes.Probe.html | 488 ++++ .../pyudv.probes.Probe.plot_probe.html | 484 ++++ .../pyudv.probes.compute_vertical_axis.html | 479 ++++ _autosummary/pyudv.probes.html | 476 ++++ .../pyudv.probes.probe_crossing_point.html | 479 ++++ _autosummary/pyudv.probes.sketch_probes.html | 486 ++++ ...dv.read_mfprof.amplitude_from_UVPdata.html | 500 ++++ ..._mfprof.amplitude_from_mfprof_reading.html | 504 ++++ .../pyudv.read_mfprof.create_variable.html | 479 ++++ .../pyudv.read_mfprof.filetime_to_dt.html | 479 ++++ _autosummary/pyudv.read_mfprof.html | 485 ++++ .../pyudv.read_mfprof.mfprof_to_netcdf.html | 479 ++++ .../pyudv.read_mfprof.read_mfprof.html | 505 ++++ ...udv.read_mfprof.velocity_from_UVPdata.html | 498 ++++ ...d_mfprof.velocity_from_mfprof_reading.html | 503 ++++ .../pyudv.read_mfprof.write_dictionnary.html | 492 ++++ _autosummary/pyudv.reconstruct_velocity.html | 506 ++++ _autosummary/pyudv.velocity.Probe.html | 488 ++++ .../pyudv.velocity.Probe.plot_probe.html | 484 ++++ .../pyudv.velocity.compute_vertical_axis.html | 479 ++++ _autosummary/pyudv.velocity.html | 476 ++++ .../pyudv.velocity.probe_crossing_point.html | 479 ++++ .../pyudv.velocity.reconstruct_velocity.html | 503 ++++ .../plot_reconstruct_velocity.py | 69 + .../plot_direct_inversion.py | 171 ++ .../_examples_python.zip | Bin 0 -> 9603 bytes .../plot_read_plot_mfprof_data.py | 69 + .../_examples_jupyter.zip | Bin 0 -> 13358 bytes .../plot_direct_inversion.ipynb | 79 + .../plot_read_plot_mfprof_data.ipynb | 43 + .../plot_reconstruct_velocity.ipynb | 97 + _examples/index.html | 414 ++++ _examples/plot_direct_inversion.html | 607 +++++ _examples/plot_read_plot_mfprof_data.html | 480 ++++ _examples/plot_reconstruct_velocity.html | 495 ++++ _examples/sg_execution_times.html | 395 +++ .../sphx_glr_plot_direct_inversion_001.png | Bin 0 -> 158253 bytes .../sphx_glr_plot_direct_inversion_002.png | Bin 0 -> 160399 bytes .../sphx_glr_plot_direct_inversion_003.png | Bin 0 -> 81880 bytes .../sphx_glr_plot_direct_inversion_thumb.png | Bin 0 -> 34640 bytes ...phx_glr_plot_read_plot_mfprof_data_001.png | Bin 0 -> 241999 bytes ...phx_glr_plot_read_plot_mfprof_data_002.png | Bin 0 -> 264768 bytes ...x_glr_plot_read_plot_mfprof_data_thumb.png | Bin 0 -> 114544 bytes ...sphx_glr_plot_reconstruct_velocity_001.png | Bin 0 -> 14791 bytes ...sphx_glr_plot_reconstruct_velocity_002.png | Bin 0 -> 18640 bytes ...hx_glr_plot_reconstruct_velocity_thumb.png | Bin 0 -> 8684 bytes _modules/index.html | 383 +++ _modules/pyudv/amplitude/direct_models.html | 548 +++++ _modules/pyudv/amplitude/inversion.html | 470 ++++ _modules/pyudv/helpers.html | 448 ++++ _modules/pyudv/probes.html | 505 ++++ _modules/pyudv/read_mfprof.html | 915 +++++++ _modules/pyudv/velocity.html | 488 ++++ _modules/scipy/integrate/_quadrature.html | 1889 +++++++++++++++ _modules/scipy/ndimage/_filters.html | 2155 +++++++++++++++++ _static/basic.css | 925 +++++++ _static/binder_badge_logo.svg | 1 + _static/broken_example.png | Bin 0 -> 21404 bytes _static/doctools.js | 156 ++ _static/documentation_options.js | 13 + _static/file.png | Bin 0 -> 286 bytes _static/jupyterlite_badge_logo.svg | 3 + _static/language_data.js | 199 ++ _static/minus.png | Bin 0 -> 90 bytes _static/no_image.png | Bin 0 -> 4315 bytes _static/plus.png | Bin 0 -> 90 bytes _static/pydata-custom.css | 17 + _static/pygments.css | 152 ++ _static/scripts/bootstrap.js | 3 + _static/scripts/bootstrap.js.LICENSE.txt | 5 + _static/scripts/bootstrap.js.map | 1 + _static/scripts/pydata-sphinx-theme.js | 2 + _static/scripts/pydata-sphinx-theme.js.map | 1 + _static/searchtools.js | 574 +++++ _static/sg_gallery-binder.css | 11 + _static/sg_gallery-dataframe.css | 47 + _static/sg_gallery-rendered-html.css | 224 ++ _static/sg_gallery.css | 342 +++ _static/sphinx_highlight.js | 154 ++ _static/styles/bootstrap.css | 6 + _static/styles/pydata-sphinx-theme.css | 1 + _static/styles/theme.css | 2 + _static/vendor/fontawesome/6.1.2/LICENSE.txt | 165 ++ .../vendor/fontawesome/6.1.2/css/all.min.css | 5 + .../6.1.2/webfonts/fa-brands-400.ttf | Bin 0 -> 181264 bytes .../6.1.2/webfonts/fa-brands-400.woff2 | Bin 0 -> 105112 bytes .../6.1.2/webfonts/fa-regular-400.ttf | Bin 0 -> 60236 bytes .../6.1.2/webfonts/fa-regular-400.woff2 | Bin 0 -> 24028 bytes .../6.1.2/webfonts/fa-solid-900.ttf | Bin 0 -> 389948 bytes .../6.1.2/webfonts/fa-solid-900.woff2 | Bin 0 -> 154840 bytes .../6.1.2/webfonts/fa-v4compatibility.ttf | Bin 0 -> 10084 bytes .../6.1.2/webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4776 bytes _static/webpack-macros.html | 30 + api.html | 382 +++ genindex.html | 605 +++++ index.html | 361 +++ objects.inv | Bin 0 -> 2119 bytes py-modindex.html | 404 +++ search.html | 378 +++ searchindex.js | 1 + 120 files changed, 36155 insertions(+) create mode 100644 .buildinfo create mode 100644 .nojekyll create mode 100644 _autosummary/pyudv.amplitude.direct_models.alpha_w.html create mode 100644 _autosummary/pyudv.amplitude.direct_models.correction_factor.html create mode 100644 _autosummary/pyudv.amplitude.direct_models.create_MSvoltage.html create mode 100644 _autosummary/pyudv.amplitude.direct_models.cumulative_trapezoid.html create mode 100644 _autosummary/pyudv.amplitude.direct_models.html create mode 100644 _autosummary/pyudv.amplitude.direct_models.near_field_theoretical.html create mode 100644 _autosummary/pyudv.amplitude.direct_models.sound_velocity.html create mode 100644 _autosummary/pyudv.amplitude.html create mode 100644 _autosummary/pyudv.amplitude.inversion.correction_factor.html create mode 100644 _autosummary/pyudv.amplitude.inversion.explicit_inversion.html create mode 100644 _autosummary/pyudv.amplitude.inversion.html create mode 100644 _autosummary/pyudv.helpers.create_arboresence.html create mode 100644 _autosummary/pyudv.helpers.html create mode 100644 _autosummary/pyudv.helpers.moving_std.html create mode 100644 _autosummary/pyudv.helpers.moving_std1d.html create mode 100644 _autosummary/pyudv.helpers.uniform_filter.html create mode 100644 _autosummary/pyudv.helpers.uniform_filter1d.html create mode 100644 _autosummary/pyudv.html create mode 100644 _autosummary/pyudv.probes.Probe.html create mode 100644 _autosummary/pyudv.probes.Probe.plot_probe.html create mode 100644 _autosummary/pyudv.probes.compute_vertical_axis.html create mode 100644 _autosummary/pyudv.probes.html create mode 100644 _autosummary/pyudv.probes.probe_crossing_point.html create mode 100644 _autosummary/pyudv.probes.sketch_probes.html create mode 100644 _autosummary/pyudv.read_mfprof.amplitude_from_UVPdata.html create mode 100644 _autosummary/pyudv.read_mfprof.amplitude_from_mfprof_reading.html create mode 100644 _autosummary/pyudv.read_mfprof.create_variable.html create mode 100644 _autosummary/pyudv.read_mfprof.filetime_to_dt.html create mode 100644 _autosummary/pyudv.read_mfprof.html create mode 100644 _autosummary/pyudv.read_mfprof.mfprof_to_netcdf.html create mode 100644 _autosummary/pyudv.read_mfprof.read_mfprof.html create mode 100644 _autosummary/pyudv.read_mfprof.velocity_from_UVPdata.html create mode 100644 _autosummary/pyudv.read_mfprof.velocity_from_mfprof_reading.html create mode 100644 _autosummary/pyudv.read_mfprof.write_dictionnary.html create mode 100644 _autosummary/pyudv.reconstruct_velocity.html create mode 100644 _autosummary/pyudv.velocity.Probe.html create mode 100644 _autosummary/pyudv.velocity.Probe.plot_probe.html create mode 100644 _autosummary/pyudv.velocity.compute_vertical_axis.html create mode 100644 _autosummary/pyudv.velocity.html create mode 100644 _autosummary/pyudv.velocity.probe_crossing_point.html create mode 100644 _autosummary/pyudv.velocity.reconstruct_velocity.html create mode 100644 _downloads/041e21a5dcf4665a558ec24266dc2579/plot_reconstruct_velocity.py create mode 100644 _downloads/072ebe5500351177edd3cc97b2ba54e0/plot_direct_inversion.py create mode 100644 _downloads/324c76d72de4ccd8db63a09d4b2f0f27/_examples_python.zip create mode 100644 _downloads/39a7d881e7c4cd005f75283a91b4a81d/plot_read_plot_mfprof_data.py create mode 100644 _downloads/3c0d8a29b2f057cd52c92d618498f1b8/_examples_jupyter.zip create mode 100644 _downloads/6cec4194ce032359195b02a8876d221c/plot_direct_inversion.ipynb create mode 100644 _downloads/a5c9e21f789d517bf8b16d2d54419403/plot_read_plot_mfprof_data.ipynb create mode 100644 _downloads/cd287cdd444dc329dfbb4e599fcea920/plot_reconstruct_velocity.ipynb create mode 100644 _examples/index.html create mode 100644 _examples/plot_direct_inversion.html create mode 100644 _examples/plot_read_plot_mfprof_data.html create mode 100644 _examples/plot_reconstruct_velocity.html create mode 100644 _examples/sg_execution_times.html create mode 100644 _images/sphx_glr_plot_direct_inversion_001.png create mode 100644 _images/sphx_glr_plot_direct_inversion_002.png create mode 100644 _images/sphx_glr_plot_direct_inversion_003.png create mode 100644 _images/sphx_glr_plot_direct_inversion_thumb.png create mode 100644 _images/sphx_glr_plot_read_plot_mfprof_data_001.png create mode 100644 _images/sphx_glr_plot_read_plot_mfprof_data_002.png create mode 100644 _images/sphx_glr_plot_read_plot_mfprof_data_thumb.png create mode 100644 _images/sphx_glr_plot_reconstruct_velocity_001.png create mode 100644 _images/sphx_glr_plot_reconstruct_velocity_002.png create mode 100644 _images/sphx_glr_plot_reconstruct_velocity_thumb.png create mode 100644 _modules/index.html create mode 100644 _modules/pyudv/amplitude/direct_models.html create mode 100644 _modules/pyudv/amplitude/inversion.html create mode 100644 _modules/pyudv/helpers.html create mode 100644 _modules/pyudv/probes.html create mode 100644 _modules/pyudv/read_mfprof.html create mode 100644 _modules/pyudv/velocity.html create mode 100644 _modules/scipy/integrate/_quadrature.html create mode 100644 _modules/scipy/ndimage/_filters.html create mode 100644 _static/basic.css create mode 100644 _static/binder_badge_logo.svg create mode 100644 _static/broken_example.png create mode 100644 _static/doctools.js create mode 100644 _static/documentation_options.js create mode 100644 _static/file.png create mode 100644 _static/jupyterlite_badge_logo.svg create mode 100644 _static/language_data.js create mode 100644 _static/minus.png create mode 100644 _static/no_image.png create mode 100644 _static/plus.png create mode 100644 _static/pydata-custom.css create mode 100644 _static/pygments.css create mode 100644 _static/scripts/bootstrap.js create mode 100644 _static/scripts/bootstrap.js.LICENSE.txt create mode 100644 _static/scripts/bootstrap.js.map create mode 100644 _static/scripts/pydata-sphinx-theme.js create mode 100644 _static/scripts/pydata-sphinx-theme.js.map create mode 100644 _static/searchtools.js create mode 100644 _static/sg_gallery-binder.css create mode 100644 _static/sg_gallery-dataframe.css create mode 100644 _static/sg_gallery-rendered-html.css create mode 100644 _static/sg_gallery.css create mode 100644 _static/sphinx_highlight.js create mode 100644 _static/styles/bootstrap.css create mode 100644 _static/styles/pydata-sphinx-theme.css create mode 100644 _static/styles/theme.css create mode 100644 _static/vendor/fontawesome/6.1.2/LICENSE.txt create mode 100644 _static/vendor/fontawesome/6.1.2/css/all.min.css create mode 100644 _static/vendor/fontawesome/6.1.2/webfonts/fa-brands-400.ttf create mode 100644 _static/vendor/fontawesome/6.1.2/webfonts/fa-brands-400.woff2 create mode 100644 _static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.ttf create mode 100644 _static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.woff2 create mode 100644 _static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.ttf create mode 100644 _static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.woff2 create mode 100644 _static/vendor/fontawesome/6.1.2/webfonts/fa-v4compatibility.ttf create mode 100644 _static/vendor/fontawesome/6.1.2/webfonts/fa-v4compatibility.woff2 create mode 100644 _static/webpack-macros.html create mode 100644 api.html create mode 100644 genindex.html create mode 100644 index.html create mode 100644 objects.inv create mode 100644 py-modindex.html create mode 100644 search.html create mode 100644 searchindex.js diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 0000000..6523b28 --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: eea301c30114ab70375befbb91222d16 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/_autosummary/pyudv.amplitude.direct_models.alpha_w.html b/_autosummary/pyudv.amplitude.direct_models.alpha_w.html new file mode 100644 index 0000000..7531fe0 --- /dev/null +++ b/_autosummary/pyudv.amplitude.direct_models.alpha_w.html @@ -0,0 +1,514 @@ + + + + + + + + + + + pyudv.amplitude.direct_models.alpha_w — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.amplitude.direct_models.alpha_w#

+
+
+alpha_w(f, T)[source]#
+

Calculate the fresh water attenuation in m-1.

+
+
Parameters:
+
    +
  • f (scalar, array) – Sound frequency in Hertz.

  • +
  • T (scalar, array) – Temperature in Celsius degrees.

  • +
+
+
Returns:
+

return the fresh water attenuation in m-1.

+
+
Return type:
+

scalar, array

+
+
+

Examples

+
>>> f = 2e6
+>>> T = 25
+>>> print(alpha_w(f, T))
+
+
+

References

+

[1] Fisher, F. H., & Simmons, V. P. (1977). Sound absorption in sea water. The Journal of the Acoustical Society of America, 62(3), 558-564.

+
+ +
+

Examples using pyudv.amplitude.direct_models.alpha_w#

+
+

Concentration inference from amplitude signals

+
Concentration inference from amplitude signals
+
+
+ + +
+ + + +
+ + + + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.amplitude.direct_models.correction_factor.html b/_autosummary/pyudv.amplitude.direct_models.correction_factor.html new file mode 100644 index 0000000..08f58be --- /dev/null +++ b/_autosummary/pyudv.amplitude.direct_models.correction_factor.html @@ -0,0 +1,503 @@ + + + + + + + + + + + pyudv.amplitude.direct_models.correction_factor — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.amplitude.direct_models.correction_factor#

+
+
+correction_factor(r, alpha_w, Ks, Kt, psi)[source]#
+

Compute the part of the mean squared voltage independet of the sediment concentration: \(\frac{K_{\textup{s}} K_{\textup{t}}}{\psi r}^{2}e^{-4r\alpha_{\textup{w}}}\)

+
+
Parameters:
+
    +
  • r (scalar, array) – radial coordinate

  • +
  • alpha_w (scalar, array) – water attenuation coefficient

  • +
  • Ks (scalar, array) – Sediment constant.

  • +
  • Kt (scalar, array) – Transducer constant.

  • +
  • psi (scalar, array) – near field function.

  • +
+
+
Returns:
+

return the part of the mean squared voltage that is independent of the sediment concentration.

+
+
Return type:
+

scalar, array

+
+
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.amplitude.direct_models.create_MSvoltage.html b/_autosummary/pyudv.amplitude.direct_models.create_MSvoltage.html new file mode 100644 index 0000000..5a70f8b --- /dev/null +++ b/_autosummary/pyudv.amplitude.direct_models.create_MSvoltage.html @@ -0,0 +1,513 @@ + + + + + + + + + + + pyudv.amplitude.direct_models.create_MSvoltage — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.amplitude.direct_models.create_MSvoltage#

+
+
+create_MSvoltage(C, r, Xi, alpha_w, Ks, Kt, psi)[source]#
+

Compute the mean squared voltage from a concentration profile, given a set of acoustic coefficients: \(\langle V^{2} \rangle = C \frac{K_{\textup{s}} K_{\textup{t}}}{\psi r}^{2}e^{-4r\alpha_{\textup{w}} - \int_{0}^{r}\xi C dr}\)

+
+
Parameters:
+
    +
  • C (scalar, array) – Sediment concentration.

  • +
  • r (scalar, array) – Radial coordinate.

  • +
  • Xi (scalar, array) – sediment attenuation constant

  • +
  • alpha_w (scalar, array) – water attenuation coefficient

  • +
  • Ks (scalar, array) – Sediment constant.

  • +
  • Kt (scalar, array) – Transducer constant.

  • +
  • psi (scalar, array) – near field function.

  • +
+
+
Returns:
+

    +
  • scalar, array – Mean squared voltage.

  • +
  • >>>

  • +
+

+
+
+
+ +
+

Examples using pyudv.amplitude.direct_models.create_MSvoltage#

+
+

Concentration inference from amplitude signals

+
Concentration inference from amplitude signals
+
+
+ + +
+ + + +
+ + + + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.amplitude.direct_models.cumulative_trapezoid.html b/_autosummary/pyudv.amplitude.direct_models.cumulative_trapezoid.html new file mode 100644 index 0000000..0b56ac6 --- /dev/null +++ b/_autosummary/pyudv.amplitude.direct_models.cumulative_trapezoid.html @@ -0,0 +1,546 @@ + + + + + + + + + + + pyudv.amplitude.direct_models.cumulative_trapezoid — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.amplitude.direct_models.cumulative_trapezoid#

+
+
+cumulative_trapezoid(y, x=None, dx=1.0, axis=-1, initial=None)[source]#
+

Cumulatively integrate y(x) using the composite trapezoidal rule.

+
+
Parameters:
+
    +
  • y (array_like) – Values to integrate.

  • +
  • x (array_like, optional) – The coordinate to integrate along. If None (default), use spacing dx +between consecutive elements in y.

  • +
  • dx (float, optional) – Spacing between elements of y. Only used if x is None.

  • +
  • axis (int, optional) – Specifies the axis to cumulate. Default is -1 (last axis).

  • +
  • initial (scalar, optional) – If given, insert this value at the beginning of the returned result. +Typically this value should be 0. Default is None, which means no +value at x[0] is returned and res has one element less than y +along the axis of integration.

  • +
+
+
Returns:
+

res – The result of cumulative integration of y along axis. +If initial is None, the shape is such that the axis of integration +has one less value than y. If initial is given, the shape is equal +to that of y.

+
+
Return type:
+

ndarray

+
+
+
+

See also

+

numpy.cumsum, numpy.cumprod

+
+
quad

adaptive quadrature using QUADPACK

+
+
romberg

adaptive Romberg quadrature

+
+
quadrature

adaptive Gaussian quadrature

+
+
fixed_quad

fixed-order Gaussian quadrature

+
+
dblquad

double integrals

+
+
tplquad

triple integrals

+
+
romb

integrators for sampled data

+
+
ode

ODE integrators

+
+
odeint

ODE integrators

+
+
+
+

Examples

+
>>> from scipy import integrate
+>>> import numpy as np
+>>> import matplotlib.pyplot as plt
+
+
+
>>> x = np.linspace(-2, 2, num=20)
+>>> y = x
+>>> y_int = integrate.cumulative_trapezoid(y, x, initial=0)
+>>> plt.plot(x, y_int, 'ro', x, y[0] + 0.5 * x**2, 'b-')
+>>> plt.show()
+
+
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.amplitude.direct_models.html b/_autosummary/pyudv.amplitude.direct_models.html new file mode 100644 index 0000000..6dd7c46 --- /dev/null +++ b/_autosummary/pyudv.amplitude.direct_models.html @@ -0,0 +1,480 @@ + + + + + + + + + + + pyudv.amplitude.direct_models — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.amplitude.direct_models#

+

Functions

+ + + + + + + + + + + + + + + + + + + + + +

alpha_w

Calculate the fresh water attenuation in m-1.

correction_factor

Compute the part of the mean squared voltage independet of the sediment concentration: \(\frac{K_{\textup{s}} K_{\textup{t}}}{\psi r}^{2}e^{-4r\alpha_{\textup{w}}}\)

create_MSvoltage

Compute the mean squared voltage from a concentration profile, given a set of acoustic coefficients: \(\langle V^{2} \rangle = C \frac{K_{\textup{s}} K_{\textup{t}}}{\psi r}^{2}e^{-4r\alpha_{\textup{w}} - \int_{0}^{r}\xi C dr}\)

cumulative_trapezoid

Cumulatively integrate y(x) using the composite trapezoidal rule.

near_field_theoretical

Return the near field function.

sound_velocity

Compute sound velocity in fresh water in [m/s]

+
+ + +
+ + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.amplitude.direct_models.near_field_theoretical.html b/_autosummary/pyudv.amplitude.direct_models.near_field_theoretical.html new file mode 100644 index 0000000..ea48dbb --- /dev/null +++ b/_autosummary/pyudv.amplitude.direct_models.near_field_theoretical.html @@ -0,0 +1,515 @@ + + + + + + + + + + + pyudv.amplitude.direct_models.near_field_theoretical — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.amplitude.direct_models.near_field_theoretical#

+
+
+near_field_theoretical(r, rn)[source]#
+

Return the near field function.

+
+
Parameters:
+
    +
  • r (scalar, array) – Radial coordinate.

  • +
  • rn (scalar, array) – Near field distance

  • +
+
+
Returns:
+

return the near field function.

+
+
Return type:
+

scalar, array

+
+
+

Examples

+
>>> r = np.linspace(0.1, 1, 100)
+>>> rn = 0.2
+>>> Psi = near_field_theoretical(r, rn)
+
+
+

References

+

[1] Downing, A., Thorne, P. D., & Vincent, C. E. (1995). Backscattering from a suspension in the near field of a piston transducer. The Journal of the Acoustical Society of America, 97(3), 1614-1620. +[2] Pedocchi, F., & García, M. H. (2012). Acoustic measurement of suspended sediment concentration profiles in an oscillatory boundary layer. Continental Shelf Research, 46, 87-95.

+
+ +
+

Examples using pyudv.amplitude.direct_models.near_field_theoretical#

+
+

Concentration inference from amplitude signals

+
Concentration inference from amplitude signals
+
+
+ + +
+ + + +
+ + + + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.amplitude.direct_models.sound_velocity.html b/_autosummary/pyudv.amplitude.direct_models.sound_velocity.html new file mode 100644 index 0000000..2f7ac29 --- /dev/null +++ b/_autosummary/pyudv.amplitude.direct_models.sound_velocity.html @@ -0,0 +1,510 @@ + + + + + + + + + + + pyudv.amplitude.direct_models.sound_velocity — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.amplitude.direct_models.sound_velocity#

+
+
+sound_velocity(T)[source]#
+

Compute sound velocity in fresh water in [m/s]

+
+
Parameters:
+

T (scalar, array) – Temperature in Celsius degrees.

+
+
Returns:
+

sound velocity in fresh water in [m/s]

+
+
Return type:
+

scalar, array

+
+
+

Examples

+
>>> T = 25
+>>> print(sound_velocity(T))
+
+
+

References

+

[1] Lubbers, J., & Graaff, R. (1998). A simple and accurate formula for the sound velocity in water. Ultrasound in medicine & biology, 24(7), 1065-1068.

+
+ +
+

Examples using pyudv.amplitude.direct_models.sound_velocity#

+
+

Concentration inference from amplitude signals

+
Concentration inference from amplitude signals
+
+
+ + +
+ + + +
+ + + + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.amplitude.html b/_autosummary/pyudv.amplitude.html new file mode 100644 index 0000000..b873141 --- /dev/null +++ b/_autosummary/pyudv.amplitude.html @@ -0,0 +1,464 @@ + + + + + + + + + + + pyudv.amplitude — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + + + + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.amplitude.inversion.correction_factor.html b/_autosummary/pyudv.amplitude.inversion.correction_factor.html new file mode 100644 index 0000000..6c35d28 --- /dev/null +++ b/_autosummary/pyudv.amplitude.inversion.correction_factor.html @@ -0,0 +1,503 @@ + + + + + + + + + + + pyudv.amplitude.inversion.correction_factor — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.amplitude.inversion.correction_factor#

+
+
+correction_factor(r, alpha_w, Ks, Kt, psi)[source]#
+

Compute the part of the mean squared voltage independet of the sediment concentration: \(\frac{K_{\textup{s}} K_{\textup{t}}}{\psi r}^{2}e^{-4r\alpha_{\textup{w}}}\)

+
+
Parameters:
+
    +
  • r (scalar, array) – radial coordinate

  • +
  • alpha_w (scalar, array) – water attenuation coefficient

  • +
  • Ks (scalar, array) – Sediment constant.

  • +
  • Kt (scalar, array) – Transducer constant.

  • +
  • psi (scalar, array) – near field function.

  • +
+
+
Returns:
+

return the part of the mean squared voltage that is independent of the sediment concentration.

+
+
Return type:
+

scalar, array

+
+
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.amplitude.inversion.explicit_inversion.html b/_autosummary/pyudv.amplitude.inversion.explicit_inversion.html new file mode 100644 index 0000000..2f49f11 --- /dev/null +++ b/_autosummary/pyudv.amplitude.inversion.explicit_inversion.html @@ -0,0 +1,491 @@ + + + + + + + + + + + pyudv.amplitude.inversion.explicit_inversion — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.amplitude.inversion.explicit_inversion#

+
+
+explicit_inversion(MSV, r, Xi, alpha_w, psi, C0, r0, delta_r=None)[source]#
+
+ +
+

Examples using pyudv.amplitude.inversion.explicit_inversion#

+
+

Concentration inference from amplitude signals

+
Concentration inference from amplitude signals
+
+
+ + +
+ + + +
+ + + + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.amplitude.inversion.html b/_autosummary/pyudv.amplitude.inversion.html new file mode 100644 index 0000000..f03fada --- /dev/null +++ b/_autosummary/pyudv.amplitude.inversion.html @@ -0,0 +1,468 @@ + + + + + + + + + + + pyudv.amplitude.inversion — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.amplitude.inversion#

+

Functions

+ + + + + + + + + +

correction_factor

Compute the part of the mean squared voltage independet of the sediment concentration: \(\frac{K_{\textup{s}} K_{\textup{t}}}{\psi r}^{2}e^{-4r\alpha_{\textup{w}}}\)

explicit_inversion

+
+ + +
+ + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.helpers.create_arboresence.html b/_autosummary/pyudv.helpers.create_arboresence.html new file mode 100644 index 0000000..70dc75c --- /dev/null +++ b/_autosummary/pyudv.helpers.create_arboresence.html @@ -0,0 +1,479 @@ + + + + + + + + + + + pyudv.helpers.create_arboresence — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.helpers.create_arboresence#

+
+
+create_arboresence(path)[source]#
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.helpers.html b/_autosummary/pyudv.helpers.html new file mode 100644 index 0000000..bc48f27 --- /dev/null +++ b/_autosummary/pyudv.helpers.html @@ -0,0 +1,473 @@ + + + + + + + + + + + pyudv.helpers — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + + + + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.helpers.moving_std.html b/_autosummary/pyudv.helpers.moving_std.html new file mode 100644 index 0000000..f21908e --- /dev/null +++ b/_autosummary/pyudv.helpers.moving_std.html @@ -0,0 +1,495 @@ + + + + + + + + + + + pyudv.helpers.moving_std — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.helpers.moving_std#

+
+
+moving_std(arr, size, **kwargs)[source]#
+

Rolling standard deviation on n-dimensional arrays.

+
+
Parameters:
+
    +
  • arr (array) – Input array

  • +
  • size (int) – The sizes of the uniform filter are given for each axis as a sequence, or as a single number, in which case the size is equal for all axes.

  • +
  • **kwargs – Optional parameters passed to scipy.ndimage.uniform_filter

  • +
+
+
Returns:
+

Array of standard deviation

+
+
Return type:
+

array

+
+
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.helpers.moving_std1d.html b/_autosummary/pyudv.helpers.moving_std1d.html new file mode 100644 index 0000000..b906350 --- /dev/null +++ b/_autosummary/pyudv.helpers.moving_std1d.html @@ -0,0 +1,496 @@ + + + + + + + + + + + pyudv.helpers.moving_std1d — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.helpers.moving_std1d#

+
+
+moving_std1d(arr, windows, axis=-1, **kwargs)[source]#
+

Rolling standard deviation on 1 dimension of the input array.

+
+
Parameters:
+
    +
  • arr (array) – Input array

  • +
  • windows (int) – windows over wich the standard deviation is calculated.

  • +
  • axis (int) – axis along which the standard deviation is calculated. (the default is -1).

  • +
  • **kwargs – Optional parameters passed to scipy.ndimage.uniform_filter1d

  • +
+
+
Returns:
+

Array of standard deviation

+
+
Return type:
+

array

+
+
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.helpers.uniform_filter.html b/_autosummary/pyudv.helpers.uniform_filter.html new file mode 100644 index 0000000..16c62ed --- /dev/null +++ b/_autosummary/pyudv.helpers.uniform_filter.html @@ -0,0 +1,565 @@ + + + + + + + + + + + pyudv.helpers.uniform_filter — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.helpers.uniform_filter#

+
+
+uniform_filter(input, size=3, output=None, mode='reflect', cval=0.0, origin=0, *, axes=None)[source]#
+

Multidimensional uniform filter.

+
+
Parameters:
+
    +
  • input (array_like) – The input array.

  • +
  • size (int or sequence of ints, optional) – The sizes of the uniform filter are given for each axis as a +sequence, or as a single number, in which case the size is +equal for all axes.

  • +
  • output (array or dtype, optional) – The array in which to place the output, or the dtype of the +returned array. By default an array of the same dtype as input +will be created.

  • +
  • mode (str or sequence, optional) –

    The mode parameter determines how the input array is extended +when the filter overlaps a border. By passing a sequence of modes +with length equal to the number of dimensions of the input array, +different modes can be specified along each axis. Default value is +‘reflect’. The valid values and their behavior is as follows:

    +
    +
    ’reflect’ (d c b a | a b c d | d c b a)

    The input is extended by reflecting about the edge of the last +pixel. This mode is also sometimes referred to as half-sample +symmetric.

    +
    +
    ’constant’ (k k k k | a b c d | k k k k)

    The input is extended by filling all values beyond the edge with +the same constant value, defined by the cval parameter.

    +
    +
    ’nearest’ (a a a a | a b c d | d d d d)

    The input is extended by replicating the last pixel.

    +
    +
    ’mirror’ (d c b | a b c d | c b a)

    The input is extended by reflecting about the center of the last +pixel. This mode is also sometimes referred to as whole-sample +symmetric.

    +
    +
    ’wrap’ (a b c d | a b c d | a b c d)

    The input is extended by wrapping around to the opposite edge.

    +
    +
    +

    For consistency with the interpolation functions, the following mode +names can also be used:

    +
    +
    ’grid-constant’

    This is a synonym for ‘constant’.

    +
    +
    ’grid-mirror’

    This is a synonym for ‘reflect’.

    +
    +
    ’grid-wrap’

    This is a synonym for ‘wrap’.

    +
    +
    +

  • +
  • cval (scalar, optional) – Value to fill past edges of input if mode is ‘constant’. Default +is 0.0.

  • +
  • origin (int or sequence, optional) – Controls the placement of the filter on the input array’s pixels. +A value of 0 (the default) centers the filter over the pixel, with +positive values shifting the filter to the left, and negative ones +to the right. By passing a sequence of origins with length equal to +the number of dimensions of the input array, different shifts can +be specified along each axis.

  • +
  • axes (tuple of int or None, optional) – If None, input is filtered along all axes. Otherwise, +input is filtered along the specified axes. When axes is +specified, any tuples used for size, origin, and/or mode +must match the length of axes. The ith entry in any of these tuples +corresponds to the ith entry in axes.

  • +
+
+
Returns:
+

uniform_filter – Filtered array. Has the same shape as input.

+
+
Return type:
+

ndarray

+
+
+

Notes

+

The multidimensional filter is implemented as a sequence of +1-D uniform filters. The intermediate arrays are stored +in the same data type as the output. Therefore, for output types +with a limited precision, the results may be imprecise because +intermediate results may be stored with insufficient precision.

+

Examples

+
>>> from scipy import ndimage, datasets
+>>> import matplotlib.pyplot as plt
+>>> fig = plt.figure()
+>>> plt.gray()  # show the filtered result in grayscale
+>>> ax1 = fig.add_subplot(121)  # left side
+>>> ax2 = fig.add_subplot(122)  # right side
+>>> ascent = datasets.ascent()
+>>> result = ndimage.uniform_filter(ascent, size=20)
+>>> ax1.imshow(ascent)
+>>> ax2.imshow(result)
+>>> plt.show()
+
+
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.helpers.uniform_filter1d.html b/_autosummary/pyudv.helpers.uniform_filter1d.html new file mode 100644 index 0000000..e705080 --- /dev/null +++ b/_autosummary/pyudv.helpers.uniform_filter1d.html @@ -0,0 +1,537 @@ + + + + + + + + + + + pyudv.helpers.uniform_filter1d — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.helpers.uniform_filter1d#

+
+
+uniform_filter1d(input, size, axis=-1, output=None, mode='reflect', cval=0.0, origin=0)[source]#
+

Calculate a 1-D uniform filter along the given axis.

+

The lines of the array along the given axis are filtered with a +uniform filter of given size.

+
+
Parameters:
+
    +
  • input (array_like) – The input array.

  • +
  • size (int) – length of uniform filter

  • +
  • axis (int, optional) – The axis of input along which to calculate. Default is -1.

  • +
  • output (array or dtype, optional) – The array in which to place the output, or the dtype of the +returned array. By default an array of the same dtype as input +will be created.

  • +
  • mode ({'reflect', 'constant', 'nearest', 'mirror', 'wrap'}, optional) –

    The mode parameter determines how the input array is extended +beyond its boundaries. Default is ‘reflect’. Behavior for each valid +value is as follows:

    +
    +
    ’reflect’ (d c b a | a b c d | d c b a)

    The input is extended by reflecting about the edge of the last +pixel. This mode is also sometimes referred to as half-sample +symmetric.

    +
    +
    ’constant’ (k k k k | a b c d | k k k k)

    The input is extended by filling all values beyond the edge with +the same constant value, defined by the cval parameter.

    +
    +
    ’nearest’ (a a a a | a b c d | d d d d)

    The input is extended by replicating the last pixel.

    +
    +
    ’mirror’ (d c b | a b c d | c b a)

    The input is extended by reflecting about the center of the last +pixel. This mode is also sometimes referred to as whole-sample +symmetric.

    +
    +
    ’wrap’ (a b c d | a b c d | a b c d)

    The input is extended by wrapping around to the opposite edge.

    +
    +
    +

    For consistency with the interpolation functions, the following mode +names can also be used:

    +
    +
    ’grid-mirror’

    This is a synonym for ‘reflect’.

    +
    +
    ’grid-constant’

    This is a synonym for ‘constant’.

    +
    +
    ’grid-wrap’

    This is a synonym for ‘wrap’.

    +
    +
    +

  • +
  • cval (scalar, optional) – Value to fill past edges of input if mode is ‘constant’. Default +is 0.0.

  • +
  • origin (int, optional) – Controls the placement of the filter on the input array’s pixels. +A value of 0 (the default) centers the filter over the pixel, with +positive values shifting the filter to the left, and negative ones +to the right.

  • +
+
+
+

Examples

+
>>> from scipy.ndimage import uniform_filter1d
+>>> uniform_filter1d([2, 8, 0, 4, 1, 9, 9, 0], size=3)
+array([4, 3, 4, 1, 4, 6, 6, 3])
+
+
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.html b/_autosummary/pyudv.html new file mode 100644 index 0000000..154b225 --- /dev/null +++ b/_autosummary/pyudv.html @@ -0,0 +1,478 @@ + + + + + + + + + + + pyudv — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + + + + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.probes.Probe.html b/_autosummary/pyudv.probes.Probe.html new file mode 100644 index 0000000..da00754 --- /dev/null +++ b/_autosummary/pyudv.probes.Probe.html @@ -0,0 +1,488 @@ + + + + + + + + + + + pyudv.probes.Probe — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.probes.Probe#

+
+
+class Probe(r, alpha, Pref)[source]#
+

Bases: object

+

Methods

+ + + + + + +

plot_probe(ax[, color])

+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.probes.Probe.plot_probe.html b/_autosummary/pyudv.probes.Probe.plot_probe.html new file mode 100644 index 0000000..e9d03ce --- /dev/null +++ b/_autosummary/pyudv.probes.Probe.plot_probe.html @@ -0,0 +1,484 @@ + + + + + + + + + + + pyudv.probes.Probe.plot_probe — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.probes.Probe.plot_probe#

+
+
+Probe.plot_probe(ax, color=None)[source]#
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.probes.compute_vertical_axis.html b/_autosummary/pyudv.probes.compute_vertical_axis.html new file mode 100644 index 0000000..5b6655b --- /dev/null +++ b/_autosummary/pyudv.probes.compute_vertical_axis.html @@ -0,0 +1,479 @@ + + + + + + + + + + + pyudv.probes.compute_vertical_axis — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.probes.compute_vertical_axis#

+
+
+compute_vertical_axis(probe1, probe2)[source]#
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.probes.html b/_autosummary/pyudv.probes.html new file mode 100644 index 0000000..c39177c --- /dev/null +++ b/_autosummary/pyudv.probes.html @@ -0,0 +1,476 @@ + + + + + + + + + + + pyudv.probes — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + + + + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.probes.probe_crossing_point.html b/_autosummary/pyudv.probes.probe_crossing_point.html new file mode 100644 index 0000000..82ae1d2 --- /dev/null +++ b/_autosummary/pyudv.probes.probe_crossing_point.html @@ -0,0 +1,479 @@ + + + + + + + + + + + pyudv.probes.probe_crossing_point — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.probes.probe_crossing_point#

+
+
+probe_crossing_point(probe1, probe2)[source]#
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.probes.sketch_probes.html b/_autosummary/pyudv.probes.sketch_probes.html new file mode 100644 index 0000000..71e86d1 --- /dev/null +++ b/_autosummary/pyudv.probes.sketch_probes.html @@ -0,0 +1,486 @@ + + + + + + + + + + + pyudv.probes.sketch_probes — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.probes.sketch_probes#

+
+
+sketch_probes(probes, combinations=None, ax=None, probe_colors=None, combination_colors=None)[source]#
+
+ +
+

Examples using pyudv.probes.sketch_probes#

+
+

Probes and velocity reconstruction

+
Probes and velocity reconstruction
+
+
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.read_mfprof.amplitude_from_UVPdata.html b/_autosummary/pyudv.read_mfprof.amplitude_from_UVPdata.html new file mode 100644 index 0000000..b42fd2f --- /dev/null +++ b/_autosummary/pyudv.read_mfprof.amplitude_from_UVPdata.html @@ -0,0 +1,500 @@ + + + + + + + + + + + pyudv.read_mfprof.amplitude_from_UVPdata — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.read_mfprof.amplitude_from_UVPdata#

+
+
+amplitude_from_UVPdata(raw_data, z, GainStart, GainEnd, zend, zstart=0.00037, Nbytes=14, deltaV=5)[source]#
+

Correct the raw amplitude data as outut of the UVP-DUO.

+
+
Parameters:
+
    +
  • raw_data (scalar, array) – raw echo signal before demodulation outputted by the UVP.

  • +
  • z (scalar, array) – position corresponding to raw_data.

  • +
  • GainStart (scalar) – start absolute gain.

  • +
  • GainEnd (scalar) – end absolute gain.

  • +
  • zend (type) – Maximum measurable distance by the UVP.

  • +
  • zstart (type) – minimum measurable distance by the UVP (the default is 0.00037)).

  • +
  • Nbytes (int) – Number of bytes over which the raw data are coded (the default is 14).

  • +
  • deltaV (int) – Volt range corresponding to the number of bytes (the default is 5).

  • +
+
+
Returns:
+

Unamplified/corrected echo signal.

+
+
Return type:
+

scalar, array

+
+
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.read_mfprof.amplitude_from_mfprof_reading.html b/_autosummary/pyudv.read_mfprof.amplitude_from_mfprof_reading.html new file mode 100644 index 0000000..914a7f6 --- /dev/null +++ b/_autosummary/pyudv.read_mfprof.amplitude_from_mfprof_reading.html @@ -0,0 +1,504 @@ + + + + + + + + + + + pyudv.read_mfprof.amplitude_from_mfprof_reading — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.read_mfprof.amplitude_from_mfprof_reading#

+
+
+amplitude_from_mfprof_reading(Data, Parameters, Nbytes=14, deltaV=5)[source]#
+

Calculate the unamplified/corrected echo signal from Data and Parameters dictionnaries as output of read_mfprof, +using the function amplitude_from_UVPdata.

+
+
Parameters:
+
    +
  • Data (dict) – Data dictionnary coming from read_mfprof.

  • +
  • Parameters (dict) – Parameters dictionnary coming from read_mfprof.

  • +
  • Nbytes (int) – Number of bytes over which the raw data are coded (the default is 14).

  • +
  • deltaV (int) – Volt range corresponding to the number of bytes (the default is 5).

  • +
+
+
Returns:
+

Unamplified/corrected echo signal.

+
+
Return type:
+

scalar, array

+
+
+
+ +
+

Examples using pyudv.read_mfprof.amplitude_from_mfprof_reading#

+
+

Read and plot .mfprof data

+
Read and plot .mfprof data
+
+
+ + +
+ + + +
+ + + + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.read_mfprof.create_variable.html b/_autosummary/pyudv.read_mfprof.create_variable.html new file mode 100644 index 0000000..9b16612 --- /dev/null +++ b/_autosummary/pyudv.read_mfprof.create_variable.html @@ -0,0 +1,479 @@ + + + + + + + + + + + pyudv.read_mfprof.create_variable — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.read_mfprof.create_variable#

+
+
+create_variable(netcdf_group, name, data, dimensions=None, std=None, unit=None, comments=None, type='float64')[source]#
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.read_mfprof.filetime_to_dt.html b/_autosummary/pyudv.read_mfprof.filetime_to_dt.html new file mode 100644 index 0000000..6b705d8 --- /dev/null +++ b/_autosummary/pyudv.read_mfprof.filetime_to_dt.html @@ -0,0 +1,479 @@ + + + + + + + + + + + pyudv.read_mfprof.filetime_to_dt — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.read_mfprof.filetime_to_dt#

+
+
+filetime_to_dt(ft)[source]#
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.read_mfprof.html b/_autosummary/pyudv.read_mfprof.html new file mode 100644 index 0000000..9942978 --- /dev/null +++ b/_autosummary/pyudv.read_mfprof.html @@ -0,0 +1,485 @@ + + + + + + + + + + + pyudv.read_mfprof — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.read_mfprof#

+

Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

amplitude_from_UVPdata

Correct the raw amplitude data as outut of the UVP-DUO.

amplitude_from_mfprof_reading

Calculate the unamplified/corrected echo signal from Data and Parameters dictionnaries as output of read_mfprof, using the function amplitude_from_UVPdata.

create_variable

filetime_to_dt

mfprof_to_netcdf

read_mfprof

Read .mfprof binary files of the Met-Flow UDV.

velocity_from_UVPdata

Calculate velocity from UDV raw data.

velocity_from_mfprof_reading

Calculate velocity from Data and Parameters dictionnaries as output of read_mfprof, using the function velocity_from_UVPdata.

write_dictionnary

Write parameter dictionnary to a .txt file.

+
+ + +
+ + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.read_mfprof.mfprof_to_netcdf.html b/_autosummary/pyudv.read_mfprof.mfprof_to_netcdf.html new file mode 100644 index 0000000..766c352 --- /dev/null +++ b/_autosummary/pyudv.read_mfprof.mfprof_to_netcdf.html @@ -0,0 +1,479 @@ + + + + + + + + + + + pyudv.read_mfprof.mfprof_to_netcdf — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.read_mfprof.mfprof_to_netcdf#

+
+
+mfprof_to_netcdf(input, output, add_attr=None, cut_zeros=True)[source]#
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.read_mfprof.read_mfprof.html b/_autosummary/pyudv.read_mfprof.read_mfprof.html new file mode 100644 index 0000000..1ccf593 --- /dev/null +++ b/_autosummary/pyudv.read_mfprof.read_mfprof.html @@ -0,0 +1,505 @@ + + + + + + + + + + + pyudv.read_mfprof.read_mfprof — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.read_mfprof.read_mfprof#

+
+
+read_mfprof(fileName, SI_units=True, convert_time=True)[source]#
+

Read .mfprof binary files of the Met-Flow UDV. This is mostly a direct python translation of the matlab script given by Met-Flow.

+
+
Parameters:
+
    +
  • fileName (str) – Path to the .mfprof file.

  • +
  • SI_units (bool) – If True, convert units to the international system (the default is True).

  • +
  • convert_time (bool) – If True, convert the time vector into seconds (the default is True).

  • +
+
+
Returns:
+

    +
  • Data (dict) – Dictionnary with the data stored in the mprof files. Available keys are: ‘transducer’, ‘profileTime’, ‘DopplerData’, ‘AmplitudeData’, ‘DistanceAlongBeam’

  • +
  • Parameters (dict) – Dictionnary with the parameters used in the UVP software when sampling the data. See UVP documentation for detail. Keys are: ‘Frequency’, ‘StartChannel’, ‘ChannelDistance’, ‘ChannelWidth’, ‘MaximumDepth’, ‘SoundSpeed’, ‘Angle’, ‘GainStart’, ‘GainEnd’, ‘Voltage’, ‘Iterations’, ‘NoiseLevel’, ‘CyclesPerPulse’, ‘TriggerMode’, ‘TriggerModeName’, ‘ProfileLength’, ‘ProfilesPerBlock’, ‘Blocks’, ‘AmplitudeStored’, ‘DoNotStoreDoppler’, ‘RawDataMin’, ‘RawDataMax’, ‘RawDataRange’, ‘AmplDataMin’, ‘AmplDataMax’, ‘VelocityInterpretingMode’, ‘UserSampleTime’, ‘SampleTime’, ‘UseMultiplexer’, ‘FlowMapping’, ‘FirstValidChannel’, ‘LastValidChannel’, ‘FlowRateType’, ‘PeriodEnhOffset’, ‘PeriodEnhPeriod’, ‘PeriodEnhNCycles’, ‘Comment’, ‘MeasurementProtocol’, ‘NumberOfCycles’, ‘CycleDelay’, ‘Version’, ‘Table’

  • +
  • Infos – Dictionnary with some informations stored during sampling of the data. Keys are ‘Signum’, ‘measParamsOffset’, ‘nProfiles’, ‘reserved1’, ‘flags’, ‘recordSize’, ‘nChannels’, ‘reserved2’, ‘startTime’.

  • +
  • Units1 – Dictionnary with the units of the variables stored in the other dictionnaries. Keys are the name of the variables.

  • +
+

+
+
+
+ +
+

Examples using pyudv.read_mfprof.read_mfprof#

+
+

Read and plot .mfprof data

+
Read and plot .mfprof data
+
+
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.read_mfprof.velocity_from_UVPdata.html b/_autosummary/pyudv.read_mfprof.velocity_from_UVPdata.html new file mode 100644 index 0000000..8209797 --- /dev/null +++ b/_autosummary/pyudv.read_mfprof.velocity_from_UVPdata.html @@ -0,0 +1,498 @@ + + + + + + + + + + + pyudv.read_mfprof.velocity_from_UVPdata — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.read_mfprof.velocity_from_UVPdata#

+
+
+velocity_from_UVPdata(raw_data, SoundSpeed, MaximumDepth, Angle, Frequency, Nbytes=8)[source]#
+

Calculate velocity from UDV raw data. Units must be checked outside of this function - no conversion is done here.

+
+
Parameters:
+
    +
  • raw_data (float, numpy array) – Raw data coming out of the UDV.

  • +
  • SoundSpeed (float) – Sound velocity.

  • +
  • MaximumDepth (float) – Maximum depth measurement, as defined by the Pulse Repetition Frequency.

  • +
  • Angle (float) – Angle between the probe and the flow direction.

  • +
  • Frequency (float) – Frequency of the probe.

  • +
  • Nbytes (int) – Number of bytes over which the raw data are coded (the default is 8).

  • +
+
+
Returns:
+

Velocity field

+
+
Return type:
+

float, numpy array

+
+
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.read_mfprof.velocity_from_mfprof_reading.html b/_autosummary/pyudv.read_mfprof.velocity_from_mfprof_reading.html new file mode 100644 index 0000000..4da81f5 --- /dev/null +++ b/_autosummary/pyudv.read_mfprof.velocity_from_mfprof_reading.html @@ -0,0 +1,503 @@ + + + + + + + + + + + pyudv.read_mfprof.velocity_from_mfprof_reading — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.read_mfprof.velocity_from_mfprof_reading#

+
+
+velocity_from_mfprof_reading(Data, Parameters, Nbytes=8)[source]#
+

Calculate velocity from Data and Parameters dictionnaries as output of read_mfprof, +using the function velocity_from_UVPdata.

+
+
Parameters:
+
    +
  • Data (dict) – Data dictionnary coming from read_mfprof.

  • +
  • Parameters (dict) – Parameters dictionnary coming from read_mfprof.

  • +
  • Nbytes (int) – Number of bytes over which the raw data are coded (the default is 8).

  • +
+
+
Returns:
+

Velocity field

+
+
Return type:
+

float, numpy array

+
+
+
+ +
+

Examples using pyudv.read_mfprof.velocity_from_mfprof_reading#

+
+

Read and plot .mfprof data

+
Read and plot .mfprof data
+
+
+ + +
+ + + +
+ + + + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.read_mfprof.write_dictionnary.html b/_autosummary/pyudv.read_mfprof.write_dictionnary.html new file mode 100644 index 0000000..dfa54ae --- /dev/null +++ b/_autosummary/pyudv.read_mfprof.write_dictionnary.html @@ -0,0 +1,492 @@ + + + + + + + + + + + pyudv.read_mfprof.write_dictionnary — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.read_mfprof.write_dictionnary#

+
+
+write_dictionnary(dico, file)[source]#
+

Write parameter dictionnary to a .txt file. +Each line of this file is a dictionnary key, followed by the corresponding entry, directly converted using str().

+
+
Parameters:
+
    +
  • dico (dict) – input dictionnary

  • +
  • file (str) – output txt file.

  • +
+
+
Returns:
+

Nothing.

+
+
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.reconstruct_velocity.html b/_autosummary/pyudv.reconstruct_velocity.html new file mode 100644 index 0000000..570e3db --- /dev/null +++ b/_autosummary/pyudv.reconstruct_velocity.html @@ -0,0 +1,506 @@ + + + + + + + + + + + pyudv.reconstruct_velocity — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.reconstruct_velocity#

+
+
+reconstruct_velocity(u1, u2, probe1_pars, probe2_pars)[source]#
+

This function takes the velocities measured by two probes, and reconstruct the velocity field, assuming that it only depends on the vertical coordinate.

+
+
Return type:
+

tuple[ndarray[Any, dtype[TypeVar(_ScalarType_co, bound= generic, covariant=True)]], ndarray[Any, dtype[TypeVar(_ScalarType_co, bound= generic, covariant=True)]], ndarray[Any, dtype[TypeVar(_ScalarType_co, bound= generic, covariant=True)]], ndarray[Any, dtype[TypeVar(_ScalarType_co, bound= generic, covariant=True)]], ndarray[Any, dtype[TypeVar(_ScalarType_co, bound= generic, covariant=True)]], ndarray[Any, dtype[TypeVar(_ScalarType_co, bound= generic, covariant=True)]]]

+
+
Parameters:
+
    +
  • u1 (ArrayLike) – velocity vector measured by first probe

  • +
  • u2 (ArrayLike) – velocity vector measured by second probe

  • +
  • probe1_pars (list[ArrayLike, float, list[float, ArrayLike]]) – list containing parameters of the first probe

  • +
  • probe2_pars (list[ArrayLike, float, list[float, ArrayLike]]) – list containing parameters of the second probe

  • +
+
+
Returns:
+

    +
  • U (NDArray) – reconstructed velocity components in the coordinate system corresponding to the one of the refernce points of the probes.

  • +
  • z_interp (NDArray) – coordinate vector corresponding to U

  • +
  • X (NDArray) – crossing point of the probes

  • +
  • dx_1 (NDArray) – horizontal distance between the first probe beam, and the vertical axis passing by the crossing point X

  • +
  • dx_2 (NDArray) – horizontal distance between the second probe beam, and the vertical axis passing by the crossing point X

  • +
+

+
+
+
+ +
+

Examples using pyudv.reconstruct_velocity#

+
+

Probes and velocity reconstruction

+
Probes and velocity reconstruction
+
+
+ + +
+ + + +
+ + + + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.velocity.Probe.html b/_autosummary/pyudv.velocity.Probe.html new file mode 100644 index 0000000..9cce02f --- /dev/null +++ b/_autosummary/pyudv.velocity.Probe.html @@ -0,0 +1,488 @@ + + + + + + + + + + + pyudv.velocity.Probe — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.velocity.Probe#

+
+
+class Probe(r, alpha, Pref)[source]#
+

Bases: object

+

Methods

+ + + + + + +

plot_probe(ax[, color])

+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.velocity.Probe.plot_probe.html b/_autosummary/pyudv.velocity.Probe.plot_probe.html new file mode 100644 index 0000000..64292f7 --- /dev/null +++ b/_autosummary/pyudv.velocity.Probe.plot_probe.html @@ -0,0 +1,484 @@ + + + + + + + + + + + pyudv.velocity.Probe.plot_probe — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.velocity.Probe.plot_probe#

+
+
+Probe.plot_probe(ax, color=None)[source]#
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.velocity.compute_vertical_axis.html b/_autosummary/pyudv.velocity.compute_vertical_axis.html new file mode 100644 index 0000000..0154cfa --- /dev/null +++ b/_autosummary/pyudv.velocity.compute_vertical_axis.html @@ -0,0 +1,479 @@ + + + + + + + + + + + pyudv.velocity.compute_vertical_axis — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.velocity.compute_vertical_axis#

+
+
+compute_vertical_axis(probe1, probe2)[source]#
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.velocity.html b/_autosummary/pyudv.velocity.html new file mode 100644 index 0000000..8b659be --- /dev/null +++ b/_autosummary/pyudv.velocity.html @@ -0,0 +1,476 @@ + + + + + + + + + + + pyudv.velocity — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + + + + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.velocity.probe_crossing_point.html b/_autosummary/pyudv.velocity.probe_crossing_point.html new file mode 100644 index 0000000..1b47d5c --- /dev/null +++ b/_autosummary/pyudv.velocity.probe_crossing_point.html @@ -0,0 +1,479 @@ + + + + + + + + + + + pyudv.velocity.probe_crossing_point — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.velocity.probe_crossing_point#

+
+
+probe_crossing_point(probe1, probe2)[source]#
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_autosummary/pyudv.velocity.reconstruct_velocity.html b/_autosummary/pyudv.velocity.reconstruct_velocity.html new file mode 100644 index 0000000..4f8828c --- /dev/null +++ b/_autosummary/pyudv.velocity.reconstruct_velocity.html @@ -0,0 +1,503 @@ + + + + + + + + + + + pyudv.velocity.reconstruct_velocity — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

pyudv.velocity.reconstruct_velocity#

+
+
+reconstruct_velocity(u1, u2, probe1_pars, probe2_pars)[source]#
+

This function takes the velocities measured by two probes, and reconstruct the velocity field, assuming that it only depends on the vertical coordinate.

+
+
Return type:
+

tuple[ndarray[Any, dtype[TypeVar(_ScalarType_co, bound= generic, covariant=True)]], ndarray[Any, dtype[TypeVar(_ScalarType_co, bound= generic, covariant=True)]], ndarray[Any, dtype[TypeVar(_ScalarType_co, bound= generic, covariant=True)]], ndarray[Any, dtype[TypeVar(_ScalarType_co, bound= generic, covariant=True)]], ndarray[Any, dtype[TypeVar(_ScalarType_co, bound= generic, covariant=True)]], ndarray[Any, dtype[TypeVar(_ScalarType_co, bound= generic, covariant=True)]]]

+
+
Parameters:
+
    +
  • u1 (ArrayLike) – velocity vector measured by first probe

  • +
  • u2 (ArrayLike) – velocity vector measured by second probe

  • +
  • probe1_pars (list[ArrayLike, float, list[float, ArrayLike]]) – list containing parameters of the first probe

  • +
  • probe2_pars (list[ArrayLike, float, list[float, ArrayLike]]) – list containing parameters of the second probe

  • +
+
+
Returns:
+

    +
  • U (NDArray) – reconstructed velocity components in the coordinate system corresponding to the one of the refernce points of the probes.

  • +
  • z_interp (NDArray) – coordinate vector corresponding to U

  • +
  • X (NDArray) – crossing point of the probes

  • +
  • dx_1 (NDArray) – horizontal distance between the first probe beam, and the vertical axis passing by the crossing point X

  • +
  • dx_2 (NDArray) – horizontal distance between the second probe beam, and the vertical axis passing by the crossing point X

  • +
+

+
+
+
+ +
+ + +
+ + + +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/_downloads/041e21a5dcf4665a558ec24266dc2579/plot_reconstruct_velocity.py b/_downloads/041e21a5dcf4665a558ec24266dc2579/plot_reconstruct_velocity.py new file mode 100644 index 0000000..357ee24 --- /dev/null +++ b/_downloads/041e21a5dcf4665a558ec24266dc2579/plot_reconstruct_velocity.py @@ -0,0 +1,69 @@ +""" +================================== +Probes and velocity reconstruction +================================== +""" + +import matplotlib.pyplot as plt +import numpy as np + +from pyudv import reconstruct_velocity +from pyudv.probes import Probe, sketch_probes + + +def U(z): + u = 5 * (5 - z) ** 2 + v = u / 10 + U = np.array([u, v]) + return U + + +# %% +# Define probes and plot them +# =========================== + +# define probes +r = np.linspace(0, 5, 100) +alpha1, alpha2 = -120, -70 # deg +O1, O2 = np.array([1, 8]), np.array([-1, 7]) +probe1_pars = [r, alpha1, [0, O1]] +probe2_pars = [r, alpha2, [0, O2]] +# +probe1 = Probe(*probe1_pars) +probe2 = Probe(*probe2_pars) + +fig, ax = plt.subplots(1, 1, layout="constrained") +sketch_probes( + [probe1, probe2], + combinations=[[0, 1]], + probe_colors=[None, None], + combination_colors=["k"], + ax=ax, +) +ax.set_xlabel("x") +ax.set_ylabel("y") +plt.show() + +# %% +# Create fake signal +# ================== + +u1 = U(probe1.z).T @ probe1.unit_vec +u2 = U(probe2.z).T @ probe2.unit_vec + +# %% +# Velocity reconstruction +# ======================= + +U_rec, z_interp, X, dx_1, dx_2 = reconstruct_velocity(u1, u2, probe1_pars, probe2_pars) +U_th = U(z_interp) +# +fig, axarr = plt.subplots(1, 3, layout="constrained", sharey=True) +for ax, u_th, u_rec in zip(axarr, U_th, U_rec): + ax.plot(u_th, z_interp, ".", label="base") + ax.plot(u_rec, z_interp, ".", label="reconstructed") + ax.legend() +axarr[0].set_xlabel("u") +axarr[1].set_xlabel("v") +axarr[0].set_ylabel("z") +plt.show() diff --git a/_downloads/072ebe5500351177edd3cc97b2ba54e0/plot_direct_inversion.py b/_downloads/072ebe5500351177edd3cc97b2ba54e0/plot_direct_inversion.py new file mode 100644 index 0000000..9747cb5 --- /dev/null +++ b/_downloads/072ebe5500351177edd3cc97b2ba54e0/plot_direct_inversion.py @@ -0,0 +1,171 @@ +""" +============================================== +Concentration inference from amplitude signals +============================================== +""" + +import matplotlib.pyplot as plt +import numpy as np + +import pyudv.amplitude.direct_models as DM +from pyudv.amplitude.inversion import explicit_inversion +from pyudv.amplitude.sediment_acoustic_models import quartz_sand as quartz + + +def C_to_phi(C, rho=2.65e3): + return C / rho + + +def phi_to_C(phi, rho=2.65e3): + return phi * rho + + +fig_width_small = 11.25 + +# %% +# Define the parameters for the direct model +# ========================================== + +d = 100e-6 # grain mean diameter [m] +rho = 2.65 # grain density [g/cm3] +rho = rho * 1e-3 / 1e-6 # grain density [kg/m3] + +F = 2e6 # frequency [Hz] +T = 20 # Temperature [Celsius degrees] +a_w = DM.alpha_w(F, T) # water absorption, [m-1] +k = 2 * np.pi * F / DM.sound_velocity(T) # wavenumber of the wave + +Ks, Kt = 1, 1 # sediment and transducer constants +Xi = quartz.Xi(k, d / 2) # sediment attenuation constant +rn = 0.05 # near field distance [cm] +r = np.linspace(0.001, 12, 330) # radial coordinates [cm] + +# Volumic fraction of grain +Phi = np.array([0.0001, 0.002, 0.005, 0.01, 0.02, 0.05, 0.1]) + + +# %% +# Influence of the imposed point in the integration +# ================================================= + +# #### without near field function +psi = DM.near_field_theoretical(r, rn) * 0 + 1 # near field function +# defining a constant grain concentration profile +C = Phi[:, None] * rho * (r[None, :] * 0 + 1) +MSV = DM.create_MSvoltage(C, r, Xi, a_w, Ks, Kt, psi) +# +indexes = [2, 50, 150, 250, 320] + +color = [] +fig, ax = plt.subplots( + 1, 1, figsize=(fig_width_small, fig_width_small), constrained_layout=True +) +for i, phi in enumerate(Phi): + if i == 0: + a = plt.plot(C[i, :], r, lw=4, alpha=0.3, label="imposed") + else: + a = plt.plot(C[i, :], r, lw=4, alpha=0.3) + color.append(a[0].get_color()) +for j, index in enumerate(indexes): + C0 = C[:, index] + r0 = r[index] + C_inferred = explicit_inversion(MSV, r, Xi, a_w, psi, C0, r0) + for i, phi in enumerate(Phi): + if i == 0: + plt.plot( + C_inferred[i, :], r, lw=2.5 - (j + 1) / 3, label=str(r0), color=color[i] + ) + else: + plt.plot(C_inferred[i, :], r, lw=2.5 - (j + 1) / 3, color=color[i]) +plt.xlabel("Concentration~[kg/m3]") +plt.ylabel("Distance from transducer~[m]") +ax.set_xscale("log") +plt.xlim([0.5 * C.min(), 2.5 * C.max()]) +plt.ylim([0, r.max()]) +ax.invert_yaxis() +secax = ax.secondary_xaxis("top", functions=(C_to_phi, phi_to_C)) +secax.set_xlabel("Volumic fraction") +plt.legend(title="Distance of imposed concentration [mm]") +plt.title("Without near field") + +# #### with near field function +psi = DM.near_field_theoretical(r, rn) # near field function +# defining a constant grain concentration profile +C = Phi[:, None] * rho * (r[None, :] * 0 + 1) +MSV = DM.create_MSvoltage(C, r[None, :], Xi, a_w, Ks, Kt, psi[None, :]) +# +color = [] +fig, ax = plt.subplots( + 1, 1, figsize=(fig_width_small, fig_width_small), constrained_layout=True +) +for i, phi in enumerate(Phi): + if i == 0: + a = plt.plot(C[i, :], r, lw=4, alpha=0.3, label="imposed") + else: + a = plt.plot(C[i, :], r, lw=4, alpha=0.3) + color.append(a[0].get_color()) +for j, index in enumerate(indexes): + C0 = C[:, index] + r0 = r[index] + C_inferred = explicit_inversion(MSV, r, Xi, a_w, psi * 0 + 1, C0, r0) + for i, phi in enumerate(Phi): + if i == 0: + plt.plot( + C_inferred[i, :], r, lw=2.5 - (j + 1) / 3, label=str(r0), color=color[i] + ) + else: + plt.plot(C_inferred[i, :], r, lw=2.5 - (j + 1) / 3, color=color[i]) +plt.xlabel("Concentration~[kg/m3]") +plt.ylabel("Distance from transducer~[m]") +ax.set_xscale("log") +plt.xlim([0.5 * C.min(), 2.5 * C.max()]) +plt.ylim([0, r.max()]) +ax.invert_yaxis() +secax = ax.secondary_xaxis("top", functions=(C_to_phi, phi_to_C)) +secax.set_xlabel("Volumic fraction") +plt.legend(title="Distance of imposed concentration [mm]") +plt.title("With near field") + +# #### with real type concentration profiles +psi = DM.near_field_theoretical(r, rn) # near field function +# C = Phi[:, None]*rho*np.exp(-r[None, :]/1) # defining an exponentially decreasing profile +# C = Phi[:, None]*rho*np.exp(r[None, :]/10) # defining an exponentially increasing profile +C = Phi[:, None] * rho * (r[None, :] * 0 + 1) # defining sedimentation-like profile +C[..., :230] = 0 +# +MSV = DM.create_MSvoltage(C, r[None, :], Xi, a_w, Ks, Kt, psi[None, :]) +# +color = [] +fig, ax = plt.subplots( + 1, 1, figsize=(fig_width_small, fig_width_small), constrained_layout=True +) +for i, phi in enumerate(Phi): + if i == 0: + a = plt.plot(C[i, :], r, lw=4, alpha=0.3, label="imposed") + else: + a = plt.plot(C[i, :], r, lw=4, alpha=0.3) + color.append(a[0].get_color()) +for j, index in enumerate(indexes): + C0 = C[:, index] + r0 = r[index] + C_inferred = explicit_inversion(MSV, r, Xi, a_w, psi * 0 + 1, C0, r0) + for i, phi in enumerate(Phi): + if i == 0: + plt.plot( + C_inferred[i, :], r, lw=2.5 - (j + 1) / 3, label=str(r0), color=color[i] + ) + else: + plt.plot(C_inferred[i, :], r, lw=2.5 - (j + 1) / 3, color=color[i]) +plt.xlabel("Concentration~[kg/m3]") +plt.ylabel("Distance from transducer~[m]") +ax.set_xscale("log") +plt.xlim([0.2 * C[:, -1].min(), 2.5 * C.max()]) +plt.ylim([0, r.max()]) +ax.invert_yaxis() +secax = ax.secondary_xaxis("top", functions=(C_to_phi, phi_to_C)) +secax.set_xlabel("Volumic fraction") +plt.legend(title="Distance of imposed concentration [mm]") +plt.title("With exponential concentration profiles") + + +plt.show() diff --git a/_downloads/324c76d72de4ccd8db63a09d4b2f0f27/_examples_python.zip b/_downloads/324c76d72de4ccd8db63a09d4b2f0f27/_examples_python.zip new file mode 100644 index 0000000000000000000000000000000000000000..8a92bf5ce8f7fa0988fc36681c1f3934bb5d885e GIT binary patch literal 9603 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 + + + + + + + + + Examples — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Examples#

+

Below is a gallery of examples demonstrating the use of several functions of pyudv.

+
+

Probes and velocity reconstruction

+
Probes and velocity reconstruction
+
+

Read and plot .mfprof data

+
Read and plot .mfprof data
+
+

Concentration inference from amplitude signals

+
Concentration inference from amplitude signals
+
+
+ +

Gallery generated by Sphinx-Gallery

+
+ + +
+ + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_examples/plot_direct_inversion.html b/_examples/plot_direct_inversion.html new file mode 100644 index 0000000..c1c4d47 --- /dev/null +++ b/_examples/plot_direct_inversion.html @@ -0,0 +1,607 @@ + + + + + + + + + + + Concentration inference from amplitude signals — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ + +
+

Concentration inference from amplitude signals#

+
import matplotlib.pyplot as plt
+import numpy as np
+
+import pyudv.amplitude.direct_models as DM
+from pyudv.amplitude.inversion import explicit_inversion
+from pyudv.amplitude.sediment_acoustic_models import quartz_sand as quartz
+
+
+def C_to_phi(C, rho=2.65e3):
+    return C / rho
+
+
+def phi_to_C(phi, rho=2.65e3):
+    return phi * rho
+
+
+fig_width_small = 11.25
+
+
+
+

Define the parameters for the direct model#

+
d = 100e-6  # grain mean diameter [m]
+rho = 2.65  # grain density [g/cm3]
+rho = rho * 1e-3 / 1e-6  # grain density [kg/m3]
+
+F = 2e6  # frequency [Hz]
+T = 20  # Temperature [Celsius degrees]
+a_w = DM.alpha_w(F, T)  # water absorption, [m-1]
+k = 2 * np.pi * F / DM.sound_velocity(T)  # wavenumber of the wave
+
+Ks, Kt = 1, 1  # sediment and transducer constants
+Xi = quartz.Xi(k, d / 2)  # sediment attenuation constant
+rn = 0.05  # near field distance [cm]
+r = np.linspace(0.001, 12, 330)  # radial coordinates [cm]
+
+# Volumic fraction of grain
+Phi = np.array([0.0001, 0.002, 0.005, 0.01, 0.02, 0.05, 0.1])
+
+
+
+
+

Influence of the imposed point in the integration#

+
# #### without near field function
+psi = DM.near_field_theoretical(r, rn) * 0 + 1  # near field function
+# defining a constant grain concentration profile
+C = Phi[:, None] * rho * (r[None, :] * 0 + 1)
+MSV = DM.create_MSvoltage(C, r, Xi, a_w, Ks, Kt, psi)
+#
+indexes = [2, 50, 150, 250, 320]
+
+color = []
+fig, ax = plt.subplots(
+    1, 1, figsize=(fig_width_small, fig_width_small), constrained_layout=True
+)
+for i, phi in enumerate(Phi):
+    if i == 0:
+        a = plt.plot(C[i, :], r, lw=4, alpha=0.3, label="imposed")
+    else:
+        a = plt.plot(C[i, :], r, lw=4, alpha=0.3)
+    color.append(a[0].get_color())
+for j, index in enumerate(indexes):
+    C0 = C[:, index]
+    r0 = r[index]
+    C_inferred = explicit_inversion(MSV, r, Xi, a_w, psi, C0, r0)
+    for i, phi in enumerate(Phi):
+        if i == 0:
+            plt.plot(
+                C_inferred[i, :], r, lw=2.5 - (j + 1) / 3, label=str(r0), color=color[i]
+            )
+        else:
+            plt.plot(C_inferred[i, :], r, lw=2.5 - (j + 1) / 3, color=color[i])
+plt.xlabel("Concentration~[kg/m3]")
+plt.ylabel("Distance from transducer~[m]")
+ax.set_xscale("log")
+plt.xlim([0.5 * C.min(), 2.5 * C.max()])
+plt.ylim([0, r.max()])
+ax.invert_yaxis()
+secax = ax.secondary_xaxis("top", functions=(C_to_phi, phi_to_C))
+secax.set_xlabel("Volumic fraction")
+plt.legend(title="Distance of imposed concentration [mm]")
+plt.title("Without near field")
+
+# #### with near field function
+psi = DM.near_field_theoretical(r, rn)  # near field function
+# defining a constant grain concentration profile
+C = Phi[:, None] * rho * (r[None, :] * 0 + 1)
+MSV = DM.create_MSvoltage(C, r[None, :], Xi, a_w, Ks, Kt, psi[None, :])
+#
+color = []
+fig, ax = plt.subplots(
+    1, 1, figsize=(fig_width_small, fig_width_small), constrained_layout=True
+)
+for i, phi in enumerate(Phi):
+    if i == 0:
+        a = plt.plot(C[i, :], r, lw=4, alpha=0.3, label="imposed")
+    else:
+        a = plt.plot(C[i, :], r, lw=4, alpha=0.3)
+    color.append(a[0].get_color())
+for j, index in enumerate(indexes):
+    C0 = C[:, index]
+    r0 = r[index]
+    C_inferred = explicit_inversion(MSV, r, Xi, a_w, psi * 0 + 1, C0, r0)
+    for i, phi in enumerate(Phi):
+        if i == 0:
+            plt.plot(
+                C_inferred[i, :], r, lw=2.5 - (j + 1) / 3, label=str(r0), color=color[i]
+            )
+        else:
+            plt.plot(C_inferred[i, :], r, lw=2.5 - (j + 1) / 3, color=color[i])
+plt.xlabel("Concentration~[kg/m3]")
+plt.ylabel("Distance from transducer~[m]")
+ax.set_xscale("log")
+plt.xlim([0.5 * C.min(), 2.5 * C.max()])
+plt.ylim([0, r.max()])
+ax.invert_yaxis()
+secax = ax.secondary_xaxis("top", functions=(C_to_phi, phi_to_C))
+secax.set_xlabel("Volumic fraction")
+plt.legend(title="Distance of imposed concentration [mm]")
+plt.title("With near field")
+
+# #### with real type concentration profiles
+psi = DM.near_field_theoretical(r, rn)  # near field function
+# C = Phi[:, None]*rho*np.exp(-r[None, :]/1)  # defining an exponentially decreasing profile
+# C = Phi[:, None]*rho*np.exp(r[None, :]/10)  # defining an exponentially increasing profile
+C = Phi[:, None] * rho * (r[None, :] * 0 + 1)  # defining sedimentation-like profile
+C[..., :230] = 0
+#
+MSV = DM.create_MSvoltage(C, r[None, :], Xi, a_w, Ks, Kt, psi[None, :])
+#
+color = []
+fig, ax = plt.subplots(
+    1, 1, figsize=(fig_width_small, fig_width_small), constrained_layout=True
+)
+for i, phi in enumerate(Phi):
+    if i == 0:
+        a = plt.plot(C[i, :], r, lw=4, alpha=0.3, label="imposed")
+    else:
+        a = plt.plot(C[i, :], r, lw=4, alpha=0.3)
+    color.append(a[0].get_color())
+for j, index in enumerate(indexes):
+    C0 = C[:, index]
+    r0 = r[index]
+    C_inferred = explicit_inversion(MSV, r, Xi, a_w, psi * 0 + 1, C0, r0)
+    for i, phi in enumerate(Phi):
+        if i == 0:
+            plt.plot(
+                C_inferred[i, :], r, lw=2.5 - (j + 1) / 3, label=str(r0), color=color[i]
+            )
+        else:
+            plt.plot(C_inferred[i, :], r, lw=2.5 - (j + 1) / 3, color=color[i])
+plt.xlabel("Concentration~[kg/m3]")
+plt.ylabel("Distance from transducer~[m]")
+ax.set_xscale("log")
+plt.xlim([0.2 * C[:, -1].min(), 2.5 * C.max()])
+plt.ylim([0, r.max()])
+ax.invert_yaxis()
+secax = ax.secondary_xaxis("top", functions=(C_to_phi, phi_to_C))
+secax.set_xlabel("Volumic fraction")
+plt.legend(title="Distance of imposed concentration [mm]")
+plt.title("With exponential concentration profiles")
+
+
+plt.show()
+
+
+
    +
  • Without near field
  • +
  • With near field
  • +
  • With exponential concentration profiles
  • +
+
/home/cyril/Documents/Work/Research/Codes/python_libs/custom/pyudv/pyudv/amplitude/inversion.py:12: RuntimeWarning: divide by zero encountered in divide
+  return f / (B - 4 * Xi * integral)
+/home/cyril/Documents/Work/Research/Codes/python_libs/custom/pyudv/pyudv/amplitude/inversion.py:42: RuntimeWarning: invalid value encountered in divide
+  B = constant_MSV / C0_expanded + 4 * Xi * constant_int
+
+
+

Total running time of the script: ( 0 minutes 3.661 seconds)

+ +

Gallery generated by Sphinx-Gallery

+
+
+ + +
+ + + +
+ + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_examples/plot_read_plot_mfprof_data.html b/_examples/plot_read_plot_mfprof_data.html new file mode 100644 index 0000000..cddb68c --- /dev/null +++ b/_examples/plot_read_plot_mfprof_data.html @@ -0,0 +1,480 @@ + + + + + + + + + + + Read and plot .mfprof data — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ + +
+

Read and plot .mfprof data#

+
    +
  • plot read plot mfprof data
  • +
  • plot read plot mfprof data
  • +
+
import matplotlib.colors as colors
+import matplotlib.pyplot as plt
+import numpy as np
+
+from pyudv.read_mfprof import (
+    amplitude_from_mfprof_reading,
+    read_mfprof,
+    velocity_from_mfprof_reading,
+)
+
+#
+path_data = "src/data_sample.mfprof"
+
+# #### Loading data
+Data, Parameters, Info, Units = read_mfprof(path_data)
+Amplitude_data = amplitude_from_mfprof_reading(Data, Parameters)
+Velocity_data = velocity_from_mfprof_reading(Data, Parameters)
+time = Data["profileTime"]
+z_coordinates = Data["DistanceAlongBeam"] * 1e2
+indmax_time = np.argwhere(Data["transducer"] == 0)[1][0] - 1
+indmax_z = -1
+ind_bottom = 572
+
+# #### plotting velocity
+divnorm = colors.TwoSlopeNorm(vcenter=0, vmin=-0.2, vmax=0.2)
+fig, ax = plt.subplots(1, 1, constrained_layout=True)
+c = ax.pcolormesh(
+    time[:indmax_time],
+    z_coordinates[:indmax_z],
+    Velocity_data[:indmax_z, :indmax_time],
+    cmap="PuOr",
+    norm=divnorm,
+    rasterized=True,
+    shading="auto",
+)
+ax.axhline(y=z_coordinates[ind_bottom], color="k", lw="0.5", ls="--")
+ax.invert_yaxis()
+fig.colorbar(c, label="Velocity [m/s]")
+ax.set_xlabel("Time [s]")
+ax.set_ylabel("DistanceAlongBeam [cm]")
+# fig.draw_without_rendering()
+plt.savefig("plots/Spatio_temporal_velocity.pdf", dpi=600)
+plt.show()
+
+# #### plotting amplitude
+divnorm = colors.TwoSlopeNorm(vcenter=0, vmin=-0.1, vmax=0.1)
+fig, ax = plt.subplots(1, 1, constrained_layout=True)
+c = ax.pcolormesh(
+    time[:indmax_time],
+    z_coordinates[:indmax_z],
+    Amplitude_data[:indmax_z, :indmax_time],
+    rasterized=True,
+    shading="auto",
+    cmap="PuOr",
+    norm=divnorm,
+)
+ax.axhline(y=z_coordinates[ind_bottom], color="k", lw="0.5", ls="--")
+ax.invert_yaxis()
+fig.colorbar(c, label="Amplitude [V]")
+ax.set_xlabel("Time [s]")
+ax.set_ylabel("DistanceAlongBeam [cm]")
+plt.savefig("plots/Spatio_temporal_amplitude.pdf", dpi=600)
+plt.show()
+
+
+

Total running time of the script: ( 0 minutes 3.690 seconds)

+ +

Gallery generated by Sphinx-Gallery

+
+ + +
+ + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_examples/plot_reconstruct_velocity.html b/_examples/plot_reconstruct_velocity.html new file mode 100644 index 0000000..bd4dad2 --- /dev/null +++ b/_examples/plot_reconstruct_velocity.html @@ -0,0 +1,495 @@ + + + + + + + + + + + Probes and velocity reconstruction — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ + +
+

Probes and velocity reconstruction#

+
import matplotlib.pyplot as plt
+import numpy as np
+
+from pyudv import reconstruct_velocity
+from pyudv.probes import Probe, sketch_probes
+
+
+def U(z):
+    u = 5 * (5 - z) ** 2
+    v = u / 10
+    U = np.array([u, v])
+    return U
+
+
+
+

Define probes and plot them#

+
# define probes
+r = np.linspace(0, 5, 100)
+alpha1, alpha2 = -120, -70  # deg
+O1, O2 = np.array([1, 8]), np.array([-1, 7])
+probe1_pars = [r, alpha1, [0, O1]]
+probe2_pars = [r, alpha2, [0, O2]]
+#
+probe1 = Probe(*probe1_pars)
+probe2 = Probe(*probe2_pars)
+
+fig, ax = plt.subplots(1, 1, layout="constrained")
+sketch_probes(
+    [probe1, probe2],
+    combinations=[[0, 1]],
+    probe_colors=[None, None],
+    combination_colors=["k"],
+    ax=ax,
+)
+ax.set_xlabel("x")
+ax.set_ylabel("y")
+plt.show()
+
+
+plot reconstruct velocity
+
+

Create fake signal#

+ +
+
+

Velocity reconstruction#

+
U_rec, z_interp, X, dx_1, dx_2 = reconstruct_velocity(u1, u2, probe1_pars, probe2_pars)
+U_th = U(z_interp)
+#
+fig, axarr = plt.subplots(1, 3, layout="constrained", sharey=True)
+for ax, u_th, u_rec in zip(axarr, U_th, U_rec):
+    ax.plot(u_th, z_interp, ".", label="base")
+    ax.plot(u_rec, z_interp, ".", label="reconstructed")
+    ax.legend()
+axarr[0].set_xlabel("u")
+axarr[1].set_xlabel("v")
+axarr[0].set_ylabel("z")
+plt.show()
+
+
+plot reconstruct velocity

Total running time of the script: (0 minutes 0.571 seconds)

+ +

Gallery generated by Sphinx-Gallery

+
+
+ + +
+ + + +
+ + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_examples/sg_execution_times.html b/_examples/sg_execution_times.html new file mode 100644 index 0000000..b1c8f83 --- /dev/null +++ b/_examples/sg_execution_times.html @@ -0,0 +1,395 @@ + + + + + + + + + + + Computation times — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + + + + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_images/sphx_glr_plot_direct_inversion_001.png b/_images/sphx_glr_plot_direct_inversion_001.png new file mode 100644 index 0000000000000000000000000000000000000000..946369c03db108e5e85e47771e1464949fb45961 GIT binary patch literal 158253 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

YuX`_1~ShFO@_Br-Cz~+TB0w_iXN1D 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

4}{JW2KUn3PQ*N1_Z%v7HX9e3e);DL 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 LmPwO3d*{CZM3rt! literal 0 HcmV?d00001 diff --git a/_images/sphx_glr_plot_direct_inversion_002.png b/_images/sphx_glr_plot_direct_inversion_002.png new file mode 100644 index 0000000000000000000000000000000000000000..eea760d64de983c484f807876904c6458b5c45a0 GIT binary patch literal 160399 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

i6f@z8Sq+sl4tVj@a3r-(fFy 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�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 O7R&$~2bEhQee-SPbyvlGRmi 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 literal 0 HcmV?d00001 diff --git a/_images/sphx_glr_plot_direct_inversion_thumb.png b/_images/sphx_glr_plot_direct_inversion_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8353a7a3b1d73d44c179f81342fcb96e0374e89c GIT binary patch literal 34640 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

~!!m1lQ9| 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⁣ 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

i6f=e~`eB}Wm*ow_G;&#*Y{G$O4J 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

P<0jt@&8wj4f6(gwFZYq=xY-h6 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≥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 Pz>lV?o=W)x%dr0d%%{t4 literal 0 HcmV?d00001 diff --git a/_images/sphx_glr_plot_read_plot_mfprof_data_thumb.png b/_images/sphx_glr_plot_read_plot_mfprof_data_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ef2e76d6b67d84e99e6fd235f51764a89966e9f2 GIT binary patch literal 114544 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 literal 0 HcmV?d00001 diff --git a/_images/sphx_glr_plot_reconstruct_velocity_001.png b/_images/sphx_glr_plot_reconstruct_velocity_001.png new file mode 100644 index 0000000000000000000000000000000000000000..e378f439a38ad4c48219359b7bb2853a1d845360 GIT binary patch literal 14791 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 literal 0 HcmV?d00001 diff --git a/_images/sphx_glr_plot_reconstruct_velocity_002.png b/_images/sphx_glr_plot_reconstruct_velocity_002.png new file mode 100644 index 0000000000000000000000000000000000000000..121b7158f097247ffb8a2925a9e10d99ca531c39 GIT binary patch literal 18640 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 literal 0 HcmV?d00001 diff --git a/_images/sphx_glr_plot_reconstruct_velocity_thumb.png b/_images/sphx_glr_plot_reconstruct_velocity_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ce0701ff09551c364ec5c9882af5b1dd74ed97cd GIT binary patch literal 8684 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 + + + + + + + + Overview: module code — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + + + + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_modules/pyudv/amplitude/direct_models.html b/_modules/pyudv/amplitude/direct_models.html new file mode 100644 index 0000000..0132ea6 --- /dev/null +++ b/_modules/pyudv/amplitude/direct_models.html @@ -0,0 +1,548 @@ + + + + + + + + + + pyudv.amplitude.direct_models — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for pyudv.amplitude.direct_models

+import numpy as np
+from scipy.integrate import cumulative_trapezoid
+
+
+
+[docs] +def alpha_w(f, T): + """Calculate the fresh water attenuation in m-1. + + Parameters + ---------- + f : scalar, array + Sound frequency in Hertz. + T : scalar, array + Temperature in Celsius degrees. + + Returns + ------- + scalar, array + return the fresh water attenuation in m-1. + + Examples + -------- + >>> f = 2e6 + >>> T = 25 + >>> print(alpha_w(f, T)) + + References + -------- + [1] Fisher, F. H., & Simmons, V. P. (1977). Sound absorption in sea water. The Journal of the Acoustical Society of America, 62(3), 558-564. + + """ + return ( + 10 ** (-15) + * (55.9 - 2.37 * T + 4.77 * 10 ** (-2) * T**2 - 3.48 * 10 ** (-4) * T**3) + * f**2 + )
+ + + +
+[docs] +def sound_velocity(T): + """Compute sound velocity in fresh water in [m/s] + + Parameters + ---------- + T : scalar, array + Temperature in Celsius degrees. + + Returns + ------- + scalar, array + sound velocity in fresh water in [m/s] + + Examples + -------- + >>> T = 25 + >>> print(sound_velocity(T)) + + References + -------- + [1] Lubbers, J., & Graaff, R. (1998). A simple and accurate formula for the sound velocity in water. Ultrasound in medicine & biology, 24(7), 1065-1068. + + + """ + return 1405.03 + 4.624 * T - 3.83 * 10 ** (-2) * T**2
+ + + +
+[docs] +def near_field_theoretical(r, rn): + """Return the near field function. + + Parameters + ---------- + r : scalar, array + Radial coordinate. + rn : scalar, array + Near field distance + + Returns + ------- + scalar, array + return the near field function. + + Examples + -------- + >>> r = np.linspace(0.1, 1, 100) + >>> rn = 0.2 + >>> Psi = near_field_theoretical(r, rn) + + References + -------- + [1] Downing, A., Thorne, P. D., & Vincent, C. E. (1995). Backscattering from a suspension in the near field of a piston transducer. The Journal of the Acoustical Society of America, 97(3), 1614-1620. + [2] Pedocchi, F., & García, M. H. (2012). Acoustic measurement of suspended sediment concentration profiles in an oscillatory boundary layer. Continental Shelf Research, 46, 87-95. + + + """ + # return 1 + rn**3.2/(0.43*r*rn**2.2 + 0.48*r**3.2) + return 1 + rn**3.2 / (1.35 * r * rn**2.2 + (2.5 * r) ** 3.2)
+ + + +
+[docs] +def correction_factor(r, alpha_w, Ks, Kt, psi): + r"""Compute the part of the mean squared voltage independet of the sediment concentration: :math:`\frac{K_{\textup{s}} K_{\textup{t}}}{\psi r}^{2}e^{-4r\alpha_{\textup{w}}}` + + Parameters + ---------- + r : scalar, array + radial coordinate + alpha_w : scalar, array + water attenuation coefficient + Ks : scalar, array + Sediment constant. + Kt : scalar, array + Transducer constant. + psi : scalar, array + near field function. + + Returns + ------- + scalar, array + return the part of the mean squared voltage that is independent of the sediment concentration. + + """ + return np.exp(-4 * r * alpha_w) * ((Ks * Kt) / (r * psi)) ** 2
+ + + +
+[docs] +def create_MSvoltage(C, r, Xi, alpha_w, Ks, Kt, psi): + r"""Compute the mean squared voltage from a concentration profile, given a set of acoustic coefficients: :math:`\langle V^{2} \rangle = C \frac{K_{\textup{s}} K_{\textup{t}}}{\psi r}^{2}e^{-4r\alpha_{\textup{w}} - \int_{0}^{r}\xi C dr}` + + Parameters + ---------- + C : scalar, array + Sediment concentration. + r : scalar, array + Radial coordinate. + Xi : scalar, array + sediment attenuation constant + alpha_w : scalar, array + water attenuation coefficient + Ks : scalar, array + Sediment constant. + Kt : scalar, array + Transducer constant. + psi : scalar, array + near field function. + + + Returns + ------- + scalar, array + Mean squared voltage. + >>> + + """ + if Xi == 0: + integral = 0 + else: + integral = cumulative_trapezoid(Xi * C + 0 * r, r + 0 * C, initial=0) + factor = correction_factor(r, alpha_w, psi, Ks, Kt) + return C * np.exp(-4 * integral) * factor
+ +
+ +
+ + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_modules/pyudv/amplitude/inversion.html b/_modules/pyudv/amplitude/inversion.html new file mode 100644 index 0000000..142b5ee --- /dev/null +++ b/_modules/pyudv/amplitude/inversion.html @@ -0,0 +1,470 @@ + + + + + + + + + + pyudv.amplitude.inversion — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for pyudv.amplitude.inversion

+import numpy as np
+import scipy.integrate as scipyint
+from .direct_models import correction_factor
+
+r"""
+Explicit inversion scheme --
+"""
+
+
+def _explicit_solution_form(f, B, Xi, r):
+    integral = scipyint.cumulative_trapezoid(f, r, initial=0)
+    return f / (B - 4 * Xi * integral)
+
+
+
+[docs] +def explicit_inversion(MSV, r, Xi, alpha_w, psi, C0, r0, delta_r=None): + r_expanded = np.expand_dims( + np.squeeze(r), axis=tuple(np.arange(len(MSV.shape[:-1]))) + ) + psi_expanded = np.expand_dims( + np.squeeze(psi), axis=tuple(np.arange(len(MSV.shape[:-1]))) + ) + C0_expanded = C0 if np.isscalar(C0) else np.squeeze(C0)[..., None] + # + # ## calculating MSV reduced of factor + factor = correction_factor(r_expanded, alpha_w, 1, 1, psi_expanded) + f = MSV / factor + # ## calculating adjustable constant with imposed point + r0_brod = ( + np.broadcast_to(r0, f.shape) + if np.isscalar(r0) + else np.broadcast_to(r0.squeeze()[..., None], f.shape) + ) + r_temp = np.broadcast_to(r_expanded, f.shape) + if delta_r is None: # if single fixed point + f_zeroed = np.where( + r_temp <= r0_brod, f, 0 + ) # putting 0 everywhere r < r0 to compute constant integrals + constant_int = scipyint.trapezoid(f_zeroed, r_expanded)[..., None] + del f_zeroed + ind_r0 = np.argmin(np.abs(r0_brod - r_expanded), axis=-1) + constant_MSV = np.take_along_axis(f, ind_r0[..., None], axis=-1) + B = constant_MSV / C0_expanded + 4 * Xi * constant_int + else: # if averaged within delta_r + f_zeroed = np.where( + r_temp <= r0_brod + delta_r, f, 0 + ) # putting 0 everywhere r < r0 + delta_r to compute constant integrals + constant_int_pos = scipyint.trapezoid(f_zeroed, r_expanded)[..., None] + f_zeroed = np.where( + r_temp <= r0_brod - delta_r, f, 0 + ) # putting 0 everywhere r < r0 - delta_r to compute constant integrals + constant_int_neg = scipyint.trapezoid(f_zeroed, r_expanded)[..., None] + # + B = ( + 4 + * Xi + * ( + constant_int_pos + - np.exp(-8 * delta_r * Xi * C0_expanded) * constant_int_neg + ) + / (1 - np.exp(-8 * delta_r * Xi * C0_expanded)) + ) + return _explicit_solution_form(f, B, Xi, r_expanded)
+ + + +# +# def explicit_inversion(MSV, r, Xi, alpha_w, psi, C0, r0): +# r_expanded = np.expand_dims(r, axis=tuple(np.arange(len(MSV.shape[:-1])))) +# psi_expanded = np.expand_dims(psi, axis=tuple(np.arange(len(MSV.shape[:-1])))) +# C0_expanded = np.expand_dims(C0, axis=-1) +# # +# factor = correction_factor(r_expanded, alpha_w, 1, 1, psi_expanded) +# MSV_reduced = MSV/factor +# # +# integral = cumulative_trapezoid(MSV_reduced, r_expanded, initial=0) +# if np.isscalar(r0): +# ind_r0 = np.arange(r.size)[r <= r0][-1] +# constant_int = trapezoid(MSV_reduced[..., :ind_r0], r_expanded[..., :ind_r0]) +# return C0_expanded*MSV_reduced/(MSV_reduced[..., ind_r0:ind_r0 + 1] - C0_expanded*4*Xi*(integral - constant_int[..., None])) +# else: +# r_temp = np.broadcast_to(r_expanded, MSV_reduced.shape) +# MSV_zeroed = np.where(r_temp <= r0[..., None], MSV_reduced, 0) +# del r_temp +# constant_int = trapezoid(MSV_zeroed, r_expanded) +# del MSV_zeroed +# # +# ind_r0 = np.argmin(np.abs(r0[..., None] - r_expanded), axis=-1) +# constant_MSV = np.take_along_axis(MSV_reduced, ind_r0[..., None], axis=-1) +# del ind_r0 +# return C0_expanded*MSV_reduced/(constant_MSV - C0_expanded*4*Xi*(integral - constant_int[..., None])) +
+ +
+ + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_modules/pyudv/helpers.html b/_modules/pyudv/helpers.html new file mode 100644 index 0000000..ce06cbf --- /dev/null +++ b/_modules/pyudv/helpers.html @@ -0,0 +1,448 @@ + + + + + + + + + + pyudv.helpers — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for pyudv.helpers

+import os
+
+from scipy.ndimage import uniform_filter, uniform_filter1d
+
+
+
+[docs] +def moving_std1d(arr, windows, axis=-1, **kwargs): + """Rolling standard deviation on 1 dimension of the input array. + + Parameters + ---------- + arr : array + Input array + windows : int + windows over wich the standard deviation is calculated. + axis : int + axis along which the standard deviation is calculated. (the default is -1). + **kwargs : + Optional parameters passed to `scipy.ndimage.uniform_filter1d` + + Returns + ------- + array + Array of standard deviation + + """ + # based on https://stackoverflow.com/a/18422519/9530017 + c1 = uniform_filter1d(arr, windows, mode="constant", axis=axis, **kwargs) + c2 = uniform_filter1d(arr * arr, windows, mode="constant", axis=axis, **kwargs) + return (c2 - c1 * c1) ** 0.5
+ + + +
+[docs] +def moving_std(arr, size, **kwargs): + """Rolling standard deviation on n-dimensional arrays. + + Parameters + ---------- + arr : array + Input array + size : int + The sizes of the uniform filter are given for each axis as a sequence, or as a single number, in which case the size is equal for all axes. + **kwargs : + Optional parameters passed to `scipy.ndimage.uniform_filter` + + Returns + ------- + array + Array of standard deviation + + """ + # based on https://stackoverflow.com/a/18422519/9530017 + c1 = uniform_filter(arr, size, mode="constant", **kwargs) + c2 = uniform_filter(arr * arr, size, mode="constant", **kwargs) + return (c2 - c1 * c1) ** 0.5
+ + + +
+[docs] +def create_arboresence(path): + # Create all arborescence present in path if directories does not exist. Otherwise leave them unaltered. + if not os.path.exists(path): + if path[-1] != os.sep: + path += os.sep + os.makedirs(path[: path.rindex(os.path.sep)], exist_ok=True)
+ +
+ +
+ + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_modules/pyudv/probes.html b/_modules/pyudv/probes.html new file mode 100644 index 0000000..91600d4 --- /dev/null +++ b/_modules/pyudv/probes.html @@ -0,0 +1,505 @@ + + + + + + + + + + pyudv.probes — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for pyudv.probes

+import matplotlib.pyplot as plt
+import numpy as np
+import numpy.typing as npt
+import matplotlib.axes as mplaxes
+
+
+
+[docs] +class Probe: + def __init__( + self, + r: npt.ArrayLike, + alpha: float, + Pref: list[float, npt.ArrayLike], + ): + self.r = r # vector along beam axis + self.alpha = alpha # beam axis inclination, trigo referential + self.Pref = Pref # refernce point [r_ref, (x_ref, y_ref)] + # + self.r_ref = self.Pref[0] + self.X_ref = self.Pref[1] + self.unit_vec = np.array( + [np.cos(np.radians(alpha)), np.sin(np.radians(alpha))] + ) # beam unit vector in real coordinates + self.O = Pref[1] - Pref[0] * self.unit_vec # Beam origin in real coordinates + self.E = ( + self.X_ref + (r.max() - self.r_ref) * self.unit_vec + ) # Beam end in real coordinates + + # Beam coordinates + self.x = self.O[0] + self.r * self.unit_vec[0] + self.z = self.O[1] + self.r * self.unit_vec[1] + +
+[docs] + def plot_probe(self, ax: mplaxes.Axes, color=None): + ax.scatter(self.O[0], self.O[1], color=color) + (a,) = ax.plot( + [self.O[0], self.E[0]], + [self.O[1], self.E[1]], + color=color, + ls="--", + lw=1, + ) + ax.annotate( + "", + xytext=self.O, + xy=self.O + (self.r.max() - self.r.min()) / 10 * self.unit_vec, + arrowprops=dict(arrowstyle="->", color=a.get_color()), + )
+
+ + + +
+[docs] +def sketch_probes( + probes: list[Probe], + combinations: list[tuple] = None, + ax=None, + probe_colors: list[str] = None, + combination_colors: list[str] = None, +): + if ax is None: + fig, ax = plt.subplots(1, 1, layout="constrained") + ax.set_aspect("equal") + # + if probe_colors is None: + probe_colors = [None for i in probes] + if (combinations is not None) and (combination_colors is None): + combination_colors = [None for i in combinations] + # + # plot probes + for probe, color in zip(probes, probe_colors): + probe.plot_probe(ax, color=color) + if combinations is not None: + for combination, combination_color in zip(combinations, combination_colors): + probe1, probe2 = probes[combination[0]], probes[combination[1]] + X = probe_crossing_point(probe1, probe2) + ax.scatter(X[0], X[1], color=combination_color) + # + z_interp, z_min, z_max = compute_vertical_axis(probe1, probe2) + ax.plot([X[0], X[0]], [z_min, z_max], color=combination_color)
+ + + +
+[docs] +def probe_crossing_point(probe1: Probe, probe2: Probe): + M = np.array([-probe1.unit_vec, probe2.unit_vec]).T + S = probe1.O - probe2.O + T = np.linalg.inv(M) @ S + X = probe1.O + T[0] * probe1.unit_vec + return X
+ + + +
+[docs] +def compute_vertical_axis(probe1: Probe, probe2: Probe): + z_min = max(probe1.z.min(), probe2.z.min()) + z_max = min(probe1.z.max(), probe2.z.max()) + n_pts = ( + ((probe1.z <= z_max) & (probe1.z >= z_min)).sum() + + ((probe2.z <= z_max) & (probe2.z >= z_min)).sum() + ) / 2 + z_interp = np.linspace(z_min, z_max, int(n_pts)) + return z_interp, z_min, z_max
+ + + +if __name__ == "__main__": + r = np.linspace(0, 5, 100) + alpha1, alpha2 = -120, -70 # deg + O1, O2 = np.array([1, 8]), np.array([-1, 7]) + probe1_pars = [r, alpha1, [0, O1]] + probe2_pars = [r, alpha2, [0, O2]] + # + probe1 = Probe(*probe1_pars) + probe2 = Probe(*probe2_pars) + # + sketch_probes( + [probe1, probe2], + combinations=[[0, 1]], + probe_colors=[None, None], + combination_colors=["k"], + ) +
+ +
+ + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_modules/pyudv/read_mfprof.html b/_modules/pyudv/read_mfprof.html new file mode 100644 index 0000000..4f640ac --- /dev/null +++ b/_modules/pyudv/read_mfprof.html @@ -0,0 +1,915 @@ + + + + + + + + + + pyudv.read_mfprof — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for pyudv.read_mfprof

+import datetime as dt
+
+import numpy as np
+import netCDF4
+
+Types = {
+    "Frequency": np.int32,
+    "StartChannel": np.float64,
+    "ChannelDistance": np.float64,
+    "ChannelWidth": np.float64,
+    "MaximumDepth": np.float64,
+    "SoundSpeed": np.int32,
+    "Angle": int,
+    "GainStart": np.int32,
+    "GainEnd": np.int32,
+    "Voltage": np.int32,
+    "Iterations": np.int32,
+    "NoiseLevel": np.int32,
+    "CyclesPerPulse": np.int32,
+    "TriggerMode": np.int32,
+    "TriggerModeName": str,
+    "ProfileLength": np.int32,
+    "ProfilesPerBlock": np.int32,
+    "Blocks": np.int32,
+    "AmplitudeStored": int,
+    "DoNotStoreDoppler": int,
+    "RawDataMin": int,
+    "RawDataMax": int,
+    "RawDataRange": np.int32,
+    "AmplDataMin": int,
+    "AmplDataMax": int,
+    "VelocityInterpretingMode": int,
+    "UserSampleTime": int,
+    "SampleTime": np.int32,
+    "UseMultiplexer": int,
+    "FlowMapping": int,
+    "FirstValidChannel": np.int32,
+    "LastValidChannel": np.int32,
+    "FlowRateType": int,
+    "PeriodEnhOffset": np.int32,
+    "PeriodEnhPeriod": np.int32,
+    "PeriodEnhNCycles": np.int32,
+    "Comment": str,
+    "MeasurementProtocol": str,
+    "NumberOfCycles": np.int32,
+    "CycleDelay": np.int32,
+    "Version": np.int32,
+    "Table": str,
+    "CalcOffsetPulsesCount": np.int32,
+    "MultiplexerUsingType": str,
+}
+
+
+Base_units = {
+    "Frequency": "Hz",
+    "StartChannel": "mm",
+    "ChannelDistance": "mm",
+    "ChannelWidth": "mm",
+    "MaximumDepth": "mm",
+    "SoundSpeed": "m/s",
+    "Angle": "int",
+    "GainStart": "int",
+    "GainEnd": "int",
+    "Voltage": "V",
+    "Iterations": "int",
+    "NoiseLevel": "int",
+    "CyclesPerPulse": "int",
+    "TriggerMode": "index",
+    "TriggerModeName": "text",
+    "ProfileLength": "nChannels",
+    "ProfilesPerBlock": "nSamples",
+    "Blocks": "int",
+    "AmplitudeStored": "bool",
+    "DoNotStoreDoppler": "-",
+    "RawDataMin": "int",
+    "RawDataMax": "int",
+    "RawDataRange": "int",
+    "AmplDataMin": "int",
+    "AmplDataMax": "int",
+    "VelocityInterpretingMode": "int",
+    "UserSampleTime": "bool",
+    # 'SampleTime': 'int',
+    "SampleTime": "ms",
+    "UseMultiplexer": "bool",
+    "FlowMapping": "bool",
+    "FirstValidChannel": "int",
+    "LastValidChannel": "int",
+    "FlowRateType": "bool",
+    "PeriodEnhOffset": "int",
+    "PeriodEnhPeriod": "int",
+    "PeriodEnhNCycles": "int",
+    "Comment": "text",
+    "MeasurementProtocol": "text",
+    "NumberOfCycles": "int",
+    "CycleDelay": "int",
+    "Version": "int",
+    "Table": "int",
+    # switched from np.int32 to str due to problem loading files with multiplexing
+    "CalcOffsetPulsesCount": "int",
+    "MultiplexerUsingType": "int",
+}
+
+
+Absolute_gains = {
+    0.5: {3: 2.17, 4: 4.41, 5: 8.82, 6: 16.67, 7: 33.33, 8: 60.00, 9: 150.00},
+    1: {3: 2.17, 4: 4.41, 5: 8.82, 6: 16.67, 7: 33.33, 8: 60.00, 9: 150.00},
+    2: {3: 0.91, 4: 1.76, 5: 3.41, 6: 6.67, 7: 15.00, 8: 25.00, 9: 60.00},
+    4: {3: 0.91, 4: 1.76, 5: 3.41, 6: 6.67, 7: 15.00, 8: 25.00, 9: 60.00},
+    8: {3: 0.65, 4: 1.36, 5: 2.80, 6: 5.26, 7: 11.11, 8: 23.08, 9: 42.86},
+}
+
+
+
+[docs] +def read_mfprof(fileName, SI_units=True, convert_time=True): + """Read .mfprof binary files of the Met-Flow UDV. This is mostly a direct python translation of the matlab script given by Met-Flow. + + Parameters + ---------- + fileName : str + Path to the .mfprof file. + SI_units : bool + If `True`, convert units to the international system (the default is True). + convert_time : bool + If True, convert the time vector into seconds (the default is True). + + Returns + ------- + Data : dict + Dictionnary with the data stored in the mprof files. Available keys are: 'transducer', 'profileTime', 'DopplerData', 'AmplitudeData', 'DistanceAlongBeam' + Parameters : dict + Dictionnary with the parameters used in the UVP software when sampling the data. See UVP documentation for detail. Keys are: 'Frequency', 'StartChannel', 'ChannelDistance', 'ChannelWidth', 'MaximumDepth', 'SoundSpeed', 'Angle', 'GainStart', 'GainEnd', 'Voltage', 'Iterations', 'NoiseLevel', 'CyclesPerPulse', 'TriggerMode', 'TriggerModeName', 'ProfileLength', 'ProfilesPerBlock', 'Blocks', 'AmplitudeStored', 'DoNotStoreDoppler', 'RawDataMin', 'RawDataMax', 'RawDataRange', 'AmplDataMin', 'AmplDataMax', 'VelocityInterpretingMode', 'UserSampleTime', 'SampleTime', 'UseMultiplexer', 'FlowMapping', 'FirstValidChannel', 'LastValidChannel', 'FlowRateType', 'PeriodEnhOffset', 'PeriodEnhPeriod', 'PeriodEnhNCycles', 'Comment', 'MeasurementProtocol', 'NumberOfCycles', 'CycleDelay', 'Version', 'Table' + Infos + Dictionnary with some informations stored during sampling of the data. Keys are 'Signum', 'measParamsOffset', 'nProfiles', 'reserved1', 'flags', 'recordSize', 'nChannels', 'reserved2', 'startTime'. + Units1 + Dictionnary with the units of the variables stored in the other dictionnaries. Keys are the name of the variables. + + """ + Infos = {} + Parameters = {} + Data = {} + with open(fileName, mode="rb") as file: # b is important -> binary + ############################################################################ + # ######################## File HEADER ##################################### + ############################################################################ + # Met-Flow 64-symbol file type signature + Infos["Signum"] = np.fromfile(file, np.uint8, 64) # char 64 + # 64-bit number giving position of beginning of Measurement Parameters + Infos["measParamsOffset"] = np.fromfile(file, np.int64, 1) + # Number of profiles saved in the file + Infos["nProfiles"] = np.fromfile(file, np.int32, 1) + # Always 0 parameter + Infos["reserved1"] = np.fromfile(file, np.int32, 1) + # Flag. If this is set (=1) then Profiles also contain Amplitude Infos + Infos["flags"] = np.fromfile(file, np.int32, 1) + # Size of Infos in a single Profile + Infos["recordSize"] = np.fromfile(file, np.int32, 1) + # Number of Infos channels in a single Profile + Infos["nChannels"] = np.fromfile(file, np.int32, 1) + # Always 0 parameter + Infos["reserved2"] = np.fromfile(file, np.int32, 1) + # Time of measurement of the start(first profile) in the format FILETIME (Win32) structure. + Infos["startTime"] = np.fromfile(file, np.int64, 1) + + ############################################################################ + # ######### PROFILES - Read contents of PROFILES BLOCK ##################### + ############################################################################ + + # Profile information (in 0 to 255, 8-bit)values follow immediately after + # Profile header. Profiles consists of nProfiles Doppler Infos and if flags = 1 + # then profile also contain Amplitude Infos. Each block consists of: + # Profile Header, Doppler Infos and Amplitude Infos. This information must be + # read nProfiles times. + + # First, we allocate memory space for faster file reading + Data["transducer"] = np.zeros((Infos["nProfiles"][0],)) + Data["profileTime"] = np.zeros((Infos["nProfiles"][0],)) + Data["DopplerData"] = np.zeros((Infos["nChannels"][0], Infos["nProfiles"][0])) + Data["AmplitudeData"] = np.zeros((Infos["nChannels"][0], Infos["nProfiles"][0])) + + # READ CONTENTS FROM BLOCK nProfiles TIMES + for i in range(Infos["nProfiles"][0]): + # PROFILE HEADER BLOCK + # Always 0 not used + _ = np.fromfile(file, np.int32, 1) # status + # Data['transducer'] number -reads which Data['transducer'] Infos comes from + Data["transducer"][i] = np.fromfile(file, np.int32, 1) + # Time of measurement of the profile in 100 ns increments + Data["profileTime"][i] = np.fromfile(file, np.int64, 1) + # DOPPLER Infos BLOCK + # Doppler Infos block contains nChannels Int16 Doppler values from UVP + Data["DopplerData"][:, i] = np.fromfile( + file, np.int16, Infos["nChannels"][0] + ) + # AMPLITUDE Infos BLOCK + # Amplitude Infos block contains nChannels Int16 Amplitude values from UVP + if Infos["flags"]: # Read Infos if it exists + Data["AmplitudeData"][:, i] = np.fromfile( + file, np.int16, Infos["nChannels"][0] + ) + + ############################################################################ + # ##### UVP PARAMETER - Read the UVP Parameters into a Matlab struct ###### + ############################################################################ + + # UVP Measurement Parameters are stored at measParamsOffset position. Measurement + # Parameters are saved in text form. Values of parameters are saved in a form: + # parameter name=parameter value. Each parameter is given in one line. In case of + # text values including more lines, at the end of line (with the exception of the last + # line) a symbol '\' is added. E.g. comment including two lines: + # "An example of forwards-backwards oscillating 'piston' flow + # Piston action starts only after Profile 110" will be saved as: + # Comment=An example of forwards-backwards oscillating 'piston' flow.\ + # Piston action starts only after Profile 110. + # Measurement Parameters consist of two blocks: + # 1. UVP Parameters, and 2. and Multiplexer Parameters if present + + # READ CONTENTS FROM UVP PARAMETER BLOCK + # Find position of Measurement Parameters start location + file.seek(Infos["measParamsOffset"][0], 0) + _ = np.fromfile(file, np.uint8, 15) # measParamsposition + Parameters = {} + + # READ CONTENTS FROM UVP PARAMETER BLOCK LINE BY LINE + par = "" + while par != "Table": + line = file.readline().rstrip() # Read new line + if (len(line) > 0) & (b"=" in line): # skip empty lines + # print(line) + tp = line.decode("utf-8").split("=")[0] + par = line.decode("utf-8").split("=")[0] + if len(tp) > 1: + Parameters[par] = line.decode("utf-8").split("=")[1] + else: + Parameters[par] = [] + + # converting time in seconds - dt = 100 ns + if convert_time: + Data["profileTime"] = Data["profileTime"] * 100 * 1e-9 + # Formatting parameters + Units = Base_units.copy() + for key in Parameters.keys(): + # Assigning good type to parameters + Parameters[key] = Types[key](Parameters[key]) + if SI_units & (Base_units[key] == "mm"): # Converting mm to m + Parameters[key] = 1e-3 * Parameters[key] + Units[key] = "m" + if SI_units & (Base_units[key] == "ms"): # Converting ms to s + Parameters[key] = 1e-3 * Parameters[key] + Units[key] = "s" + + Data["DistanceAlongBeam"] = ( + np.arange(Data["AmplitudeData"].shape[0]) * Parameters["ChannelDistance"] + + Parameters["StartChannel"] + ) + return Data, Parameters, Infos, Units
+ + + +
+[docs] +def filetime_to_dt(ft): + us = int(ft) // 10 + return dt.datetime(1601, 1, 1) + dt.timedelta(microseconds=us)
+ + + +
+[docs] +def velocity_from_UVPdata( + raw_data, SoundSpeed, MaximumDepth, Angle, Frequency, Nbytes=8 +): + """Calculate velocity from UDV raw data. Units must be checked outside of this function - no conversion is done here. + + Parameters + ---------- + raw_data : float, numpy array + Raw data coming out of the UDV. + SoundSpeed : float + Sound velocity. + MaximumDepth : float + Maximum depth measurement, as defined by the Pulse Repetition Frequency. + Angle : float + Angle between the probe and the flow direction. + Frequency : float + Frequency of the probe. + Nbytes : int + Number of bytes over which the raw data are coded (the default is 8). + + Returns + ------- + float, numpy array + Velocity field + + """ + PRF = SoundSpeed / (2 * MaximumDepth) # Pulse Repetiion Frequency + N_DU = 2**Nbytes # Number of possible velocities coded on 'Nbytes'-bit + Doppler_coeff = PRF / N_DU # Doppler coefficient + # + Fd = raw_data * Doppler_coeff # Doppler frequencies + Angle_correction = 1 / np.sin(np.pi * Angle / 180) # angle correction + # + # return radial velocity + return Fd * SoundSpeed * Angle_correction / (2 * Frequency)
+ + + +
+[docs] +def velocity_from_mfprof_reading(Data, Parameters, Nbytes=8): + """Calculate velocity from `Data` and `Parameters` dictionnaries as output of :func:`read_mfprof <read_mfprof.read_mfprof>`, + using the function :func:`velocity_from_UVPdata <read_mfprof.velocity_from_UVPdata>`. + + Parameters + ---------- + Data : dict + Data dictionnary coming from :func:`read_mfprof <read_mfprof.read_mfprof>`. + Parameters : dict + Parameters dictionnary coming from :func:`read_mfprof <read_mfprof.read_mfprof>`. + Nbytes : int + Number of bytes over which the raw data are coded (the default is 8). + + Returns + ------- + float, numpy array + Velocity field + + """ + raw_data = Data["DopplerData"] + SoundSpeed, MaximumDepth, Angle, Frequency = ( + Parameters["SoundSpeed"], + Parameters["MaximumDepth"], + Parameters["Angle"], + Parameters["Frequency"], + ) + return velocity_from_UVPdata( + raw_data, SoundSpeed, MaximumDepth, Angle, Frequency, Nbytes=Nbytes + )
+ + + +
+[docs] +def amplitude_from_UVPdata( + raw_data, z, GainStart, GainEnd, zend, zstart=0.37 * 1e-3, Nbytes=14, deltaV=5 +): + """Correct the raw amplitude data as outut of the UVP-DUO. + + Parameters + ---------- + raw_data : scalar, array + raw echo signal before demodulation outputted by the UVP. + z : scalar, array + position corresponding to `raw_data`. + GainStart : scalar + start absolute gain. + GainEnd : scalar + end absolute gain. + zend : type + Maximum measurable distance by the UVP. + zstart : type + minimum measurable distance by the UVP (the default is 0.00037)). + Nbytes : int + Number of bytes over which the raw data are coded (the default is 14). + deltaV : int + Volt range corresponding to the number of bytes (the default is 5). + + Returns + ------- + scalar, array + Unamplified/corrected echo signal. + + """ + return ( + raw_data + * (1 / GainStart) + * (GainStart / GainEnd) ** ((z - zstart) / (zend - zstart)) + * deltaV + / 2**Nbytes + )
+ + + +
+[docs] +def amplitude_from_mfprof_reading(Data, Parameters, Nbytes=14, deltaV=5): + """Calculate the unamplified/corrected echo signal from `Data` and `Parameters` dictionnaries as output of :func:`read_mfprof <read_mfprof.read_mfprof>`, + using the function :func:`amplitude_from_UVPdata <read_mfprof.amplitude_from_UVPdata>`. + + Parameters + ---------- + Data : dict + Data dictionnary coming from :func:`read_mfprof <read_mfprof.read_mfprof>`. + Parameters : dict + Parameters dictionnary coming from :func:`read_mfprof <read_mfprof.read_mfprof>`. + Nbytes : int + Number of bytes over which the raw data are coded (the default is 14). + deltaV : int + Volt range corresponding to the number of bytes (the default is 5). + + Returns + ------- + scalar, array + Unamplified/corrected echo signal. + + """ + raw_data, z = Data["AmplitudeData"], Data["DistanceAlongBeam"][:, None] + zend = Parameters["MaximumDepth"] + F0 = Parameters["Frequency"] / 1e6 # frequency in Mhz + GainStart, GainEnd = ( + Absolute_gains[F0][Parameters["GainStart"]], + Absolute_gains[F0][Parameters["GainEnd"]], + ) + return amplitude_from_UVPdata( + raw_data, z, GainStart, GainEnd, zend, Nbytes=Nbytes, deltaV=deltaV + )
+ + + +# #### Writing functions + + +
+[docs] +def write_dictionnary(dico, file): + """Write parameter dictionnary to a .txt file. + Each line of this file is a dictionnary key, followed by the corresponding entry, directly converted using `str()`. + + Parameters + ---------- + dico : dict + input dictionnary + file : str + output txt file. + + Returns + ------- + + Nothing. + + """ + with open(file, "w") as f: + for key in sorted(dico.keys()): + line = key + ": " + str(dico[key]) + "\n" + f.write(line)
+ + + +
+[docs] +def create_variable( + netcdf_group, + name, + data, + dimensions=None, + std=None, + unit=None, + comments=None, + type="float64", +): + if dimensions is not None: + var = netcdf_group.createVariable(name, type, (dimensions)) + else: + var = netcdf_group.createVariable(name, type) + var[:] = data + if std is not None: + var.std = std + if unit is not None: + var.unit = unit + if comments is not None: + var.comments = comments
+ + + +
+[docs] +def mfprof_to_netcdf(input, output, add_attr=None, cut_zeros=True): + newfile = netCDF4.Dataset(output, "w", format="NETCDF4") + # + Data, Parameters, Info, Units = read_mfprof(input) + amplitude_data = amplitude_from_mfprof_reading(Data, Parameters) + velocity_data = velocity_from_mfprof_reading(Data, Parameters) + # + tmax = ( + np.argwhere(Data["transducer"] == 0).squeeze()[0] + if ((Data["transducer"] == 0).any() & cut_zeros) + else -1 + ) + # ### fill Data + newfile.createDimension("time", Data["profileTime"][:tmax].size) + newfile.createDimension("z", Data["DistanceAlongBeam"].size) + # + for key, var in Data.items(): + if key in ["DistanceAlongBeam"]: + dims = "z" + elif key in ["profileTime", "transducer"]: + dims = "time" + else: + dims = ("z", "time") + # + create_variable( + newfile, + key, + var[..., :tmax] if key != "DistanceAlongBeam" else var, + dimensions=dims, + unit=Units[key] if key in Units.keys() else None, + ) + create_variable( + newfile, + "amplitude_data", + amplitude_data[..., :tmax], + dimensions=("z", "time"), + unit="V", + ) + create_variable( + newfile, + "velocity_data", + velocity_data[..., :tmax], + dimensions=("z", "time"), + unit="m/s", + ) + # ### fill Parameters and Info + for key, var in Parameters.items(): + setattr(newfile, key, var) + for key, var in Info.items(): + setattr(newfile, key, var) + # ### fill additional attributes + if add_attr is not None: + for key, var in add_attr.items(): + setattr(newfile, key, var) + # + if cut_zeros: + newfile.cut_zeros = "True. File has been shortened while converted to netcdf as there was trailing unused zeros." + newfile.NumberOfCyclesShort = Data["profileTime"][:tmax].size + # + newfile.close()
+ +
+ +
+ + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_modules/pyudv/velocity.html b/_modules/pyudv/velocity.html new file mode 100644 index 0000000..e9a600f --- /dev/null +++ b/_modules/pyudv/velocity.html @@ -0,0 +1,488 @@ + + + + + + + + + + pyudv.velocity — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for pyudv.velocity

+import numpy as np
+import numpy.typing as npt
+import scipy.interpolate as scipyinterp
+
+from pyudv.probes import Probe, compute_vertical_axis, probe_crossing_point
+
+
+
+[docs] +def reconstruct_velocity( + u1: npt.ArrayLike, + u2: npt.ArrayLike, + probe1_pars: list[npt.ArrayLike, float, list[float, npt.ArrayLike]], + probe2_pars: list[npt.ArrayLike, float, list[float, npt.ArrayLike]], +) -> tuple[ + npt.NDArray, npt.NDArray, npt.NDArray, npt.NDArray, npt.NDArray, npt.NDArray +]: + """ + This function takes the velocities measured by two probes, and reconstruct the velocity field, assuming that it only depends on the vertical coordinate. + + Parameters + ---------- + u1 : ArrayLike + velocity vector measured by first probe + u2 : ArrayLike + velocity vector measured by second probe + probe1_pars : list[ArrayLike, float, list[float, ArrayLike]] + list containing parameters of the first probe + probe2_pars : list[ArrayLike, float, list[float, ArrayLike]] + list containing parameters of the second probe + + Returns + ------- + U : NDArray + reconstructed velocity components in the coordinate system corresponding to the one of the refernce points of the probes. + z_interp : NDArray + coordinate vector corresponding to `U` + X : NDArray + crossing point of the probes + dx_1 : NDArray + horizontal distance between the first probe beam, and the vertical axis passing by the crossing point `X` + dx_2 : NDArray + horizontal distance between the second probe beam, and the vertical axis passing by the crossing point `X` + + """ + # # init probes + probe1 = Probe(*probe1_pars) + probe2 = Probe(*probe2_pars) + # + # # Build common vertical axis + z_interp, _, _ = compute_vertical_axis(probe1, probe2) + # # interpolating velocity + interp1 = scipyinterp.interp1d(probe1.z, u1) + interp2 = scipyinterp.interp1d(probe2.z, u2) + # + u1_interp = interp1(z_interp) + u2_interp = interp2(z_interp) + # + # velocity reconstruction + M = np.array([probe1.unit_vec, probe2.unit_vec]) + U = np.linalg.inv(M) @ np.array([u1_interp, u2_interp]) + # + # # other quantities + # crossing point + X = probe_crossing_point(probe1, probe2) + # horizontal distances to the vertical axis passing by the crossing point + dx_1 = np.tan(np.radians(probe1.alpha)) * (z_interp - X[1]) + dx_2 = np.tan(np.radians(probe2.alpha)) * (z_interp - X[1]) + return U, z_interp, X, dx_1, dx_2
+ + + +if __name__ == "__main__": + import matplotlib.pyplot as plt + + def U(z): + u = 5 * (5 - z) ** 2 + v = u / 10 + U = np.array([u, v]) + return U + + # define probes + r = np.linspace(0, 5, 100) + alpha1, alpha2 = -120, -70 # deg + O1, O2 = np.array([1, 8]), np.array([-1, 7]) + probe1_pars = [r, alpha1, [0, O1]] + probe2_pars = [r, alpha2, [0, O2]] + # + probe1 = Probe(*probe1_pars) + probe2 = Probe(*probe2_pars) + # make fake signals + u1 = U(probe1.z).T @ probe1.unit_vec + u2 = U(probe2.z).T @ probe2.unit_vec + # + # #### reconstruction + U_rec, z_interp, X, dx_1, dx_2 = reconstruct_velocity( + u1, u2, probe1_pars, probe2_pars + ) + U_th = U(z_interp) + # + fig, axarr = plt.subplots(1, 2, layout="constrained", sharey=True) + for ax, u_th, u_rec in zip(axarr, U_th, U_rec): + ax.plot(u_th, z_interp, ".", label="base") + ax.plot(u_rec, z_interp, ".", label="reconstructed") + ax.legend() + axarr[0].set_xlabel("u") + axarr[1].set_xlabel("v") + axarr[0].set_ylabel("z") + plt.show() + # +
+ +
+ + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_modules/scipy/integrate/_quadrature.html b/_modules/scipy/integrate/_quadrature.html new file mode 100644 index 0000000..483c876 --- /dev/null +++ b/_modules/scipy/integrate/_quadrature.html @@ -0,0 +1,1889 @@ + + + + + + + + + + scipy.integrate._quadrature — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for scipy.integrate._quadrature

+from __future__ import annotations
+from typing import TYPE_CHECKING, Callable, Any, cast
+import numpy as np
+import math
+import warnings
+from collections import namedtuple
+
+from scipy.special import roots_legendre
+from scipy.special import gammaln, logsumexp
+from scipy._lib._util import _rng_spawn
+
+
+__all__ = ['fixed_quad', 'quadrature', 'romberg', 'romb',
+           'trapezoid', 'trapz', 'simps', 'simpson',
+           'cumulative_trapezoid', 'cumtrapz', 'newton_cotes',
+           'qmc_quad', 'AccuracyWarning']
+
+
+def trapezoid(y, x=None, dx=1.0, axis=-1):
+    r"""
+    Integrate along the given axis using the composite trapezoidal rule.
+
+    If `x` is provided, the integration happens in sequence along its
+    elements - they are not sorted.
+
+    Integrate `y` (`x`) along each 1d slice on the given axis, compute
+    :math:`\int y(x) dx`.
+    When `x` is specified, this integrates along the parametric curve,
+    computing :math:`\int_t y(t) dt =
+    \int_t y(t) \left.\frac{dx}{dt}\right|_{x=x(t)} dt`.
+
+    Parameters
+    ----------
+    y : array_like
+        Input array to integrate.
+    x : array_like, optional
+        The sample points corresponding to the `y` values. If `x` is None,
+        the sample points are assumed to be evenly spaced `dx` apart. The
+        default is None.
+    dx : scalar, optional
+        The spacing between sample points when `x` is None. The default is 1.
+    axis : int, optional
+        The axis along which to integrate.
+
+    Returns
+    -------
+    trapezoid : float or ndarray
+        Definite integral of `y` = n-dimensional array as approximated along
+        a single axis by the trapezoidal rule. If `y` is a 1-dimensional array,
+        then the result is a float. If `n` is greater than 1, then the result
+        is an `n`-1 dimensional array.
+
+    See Also
+    --------
+    cumulative_trapezoid, simpson, romb
+
+    Notes
+    -----
+    Image [2]_ illustrates trapezoidal rule -- y-axis locations of points
+    will be taken from `y` array, by default x-axis distances between
+    points will be 1.0, alternatively they can be provided with `x` array
+    or with `dx` scalar.  Return value will be equal to combined area under
+    the red lines.
+
+    References
+    ----------
+    .. [1] Wikipedia page: https://en.wikipedia.org/wiki/Trapezoidal_rule
+
+    .. [2] Illustration image:
+           https://en.wikipedia.org/wiki/File:Composite_trapezoidal_rule_illustration.png
+
+    Examples
+    --------
+    Use the trapezoidal rule on evenly spaced points:
+
+    >>> import numpy as np
+    >>> from scipy import integrate
+    >>> integrate.trapezoid([1, 2, 3])
+    4.0
+
+    The spacing between sample points can be selected by either the
+    ``x`` or ``dx`` arguments:
+
+    >>> integrate.trapezoid([1, 2, 3], x=[4, 6, 8])
+    8.0
+    >>> integrate.trapezoid([1, 2, 3], dx=2)
+    8.0
+
+    Using a decreasing ``x`` corresponds to integrating in reverse:
+
+    >>> integrate.trapezoid([1, 2, 3], x=[8, 6, 4])
+    -8.0
+
+    More generally ``x`` is used to integrate along a parametric curve. We can
+    estimate the integral :math:`\int_0^1 x^2 = 1/3` using:
+
+    >>> x = np.linspace(0, 1, num=50)
+    >>> y = x**2
+    >>> integrate.trapezoid(y, x)
+    0.33340274885464394
+
+    Or estimate the area of a circle, noting we repeat the sample which closes
+    the curve:
+
+    >>> theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True)
+    >>> integrate.trapezoid(np.cos(theta), x=np.sin(theta))
+    3.141571941375841
+
+    ``trapezoid`` can be applied along a specified axis to do multiple
+    computations in one call:
+
+    >>> a = np.arange(6).reshape(2, 3)
+    >>> a
+    array([[0, 1, 2],
+           [3, 4, 5]])
+    >>> integrate.trapezoid(a, axis=0)
+    array([1.5, 2.5, 3.5])
+    >>> integrate.trapezoid(a, axis=1)
+    array([2.,  8.])
+    """
+    # Future-proofing, in case NumPy moves from trapz to trapezoid for the same
+    # reasons as SciPy
+    if hasattr(np, 'trapezoid'):
+        return np.trapezoid(y, x=x, dx=dx, axis=axis)
+    else:
+        return np.trapz(y, x=x, dx=dx, axis=axis)
+
+
+# Note: alias kept for backwards compatibility. Rename was done
+# because trapz is a slur in colloquial English (see gh-12924).
+def trapz(y, x=None, dx=1.0, axis=-1):
+    """An alias of `trapezoid`.
+
+    `trapz` is kept for backwards compatibility. For new code, prefer
+    `trapezoid` instead.
+    """
+    return trapezoid(y, x=x, dx=dx, axis=axis)
+
+
+class AccuracyWarning(Warning):
+    pass
+
+
+if TYPE_CHECKING:
+    # workaround for mypy function attributes see:
+    # https://github.com/python/mypy/issues/2087#issuecomment-462726600
+    from typing import Protocol
+
+    class CacheAttributes(Protocol):
+        cache: dict[int, tuple[Any, Any]]
+else:
+    CacheAttributes = Callable
+
+
+def cache_decorator(func: Callable) -> CacheAttributes:
+    return cast(CacheAttributes, func)
+
+
+@cache_decorator
+def _cached_roots_legendre(n):
+    """
+    Cache roots_legendre results to speed up calls of the fixed_quad
+    function.
+    """
+    if n in _cached_roots_legendre.cache:
+        return _cached_roots_legendre.cache[n]
+
+    _cached_roots_legendre.cache[n] = roots_legendre(n)
+    return _cached_roots_legendre.cache[n]
+
+
+_cached_roots_legendre.cache = dict()
+
+
+def fixed_quad(func, a, b, args=(), n=5):
+    """
+    Compute a definite integral using fixed-order Gaussian quadrature.
+
+    Integrate `func` from `a` to `b` using Gaussian quadrature of
+    order `n`.
+
+    Parameters
+    ----------
+    func : callable
+        A Python function or method to integrate (must accept vector inputs).
+        If integrating a vector-valued function, the returned array must have
+        shape ``(..., len(x))``.
+    a : float
+        Lower limit of integration.
+    b : float
+        Upper limit of integration.
+    args : tuple, optional
+        Extra arguments to pass to function, if any.
+    n : int, optional
+        Order of quadrature integration. Default is 5.
+
+    Returns
+    -------
+    val : float
+        Gaussian quadrature approximation to the integral
+    none : None
+        Statically returned value of None
+
+    See Also
+    --------
+    quad : adaptive quadrature using QUADPACK
+    dblquad : double integrals
+    tplquad : triple integrals
+    romberg : adaptive Romberg quadrature
+    quadrature : adaptive Gaussian quadrature
+    romb : integrators for sampled data
+    simpson : integrators for sampled data
+    cumulative_trapezoid : cumulative integration for sampled data
+    ode : ODE integrator
+    odeint : ODE integrator
+
+    Examples
+    --------
+    >>> from scipy import integrate
+    >>> import numpy as np
+    >>> f = lambda x: x**8
+    >>> integrate.fixed_quad(f, 0.0, 1.0, n=4)
+    (0.1110884353741496, None)
+    >>> integrate.fixed_quad(f, 0.0, 1.0, n=5)
+    (0.11111111111111102, None)
+    >>> print(1/9.0)  # analytical result
+    0.1111111111111111
+
+    >>> integrate.fixed_quad(np.cos, 0.0, np.pi/2, n=4)
+    (0.9999999771971152, None)
+    >>> integrate.fixed_quad(np.cos, 0.0, np.pi/2, n=5)
+    (1.000000000039565, None)
+    >>> np.sin(np.pi/2)-np.sin(0)  # analytical result
+    1.0
+
+    """
+    x, w = _cached_roots_legendre(n)
+    x = np.real(x)
+    if np.isinf(a) or np.isinf(b):
+        raise ValueError("Gaussian quadrature is only available for "
+                         "finite limits.")
+    y = (b-a)*(x+1)/2.0 + a
+    return (b-a)/2.0 * np.sum(w*func(y, *args), axis=-1), None
+
+
+def vectorize1(func, args=(), vec_func=False):
+    """Vectorize the call to a function.
+
+    This is an internal utility function used by `romberg` and
+    `quadrature` to create a vectorized version of a function.
+
+    If `vec_func` is True, the function `func` is assumed to take vector
+    arguments.
+
+    Parameters
+    ----------
+    func : callable
+        User defined function.
+    args : tuple, optional
+        Extra arguments for the function.
+    vec_func : bool, optional
+        True if the function func takes vector arguments.
+
+    Returns
+    -------
+    vfunc : callable
+        A function that will take a vector argument and return the
+        result.
+
+    """
+    if vec_func:
+        def vfunc(x):
+            return func(x, *args)
+    else:
+        def vfunc(x):
+            if np.isscalar(x):
+                return func(x, *args)
+            x = np.asarray(x)
+            # call with first point to get output type
+            y0 = func(x[0], *args)
+            n = len(x)
+            dtype = getattr(y0, 'dtype', type(y0))
+            output = np.empty((n,), dtype=dtype)
+            output[0] = y0
+            for i in range(1, n):
+                output[i] = func(x[i], *args)
+            return output
+    return vfunc
+
+
+def quadrature(func, a, b, args=(), tol=1.49e-8, rtol=1.49e-8, maxiter=50,
+               vec_func=True, miniter=1):
+    """
+    Compute a definite integral using fixed-tolerance Gaussian quadrature.
+
+    Integrate `func` from `a` to `b` using Gaussian quadrature
+    with absolute tolerance `tol`.
+
+    Parameters
+    ----------
+    func : function
+        A Python function or method to integrate.
+    a : float
+        Lower limit of integration.
+    b : float
+        Upper limit of integration.
+    args : tuple, optional
+        Extra arguments to pass to function.
+    tol, rtol : float, optional
+        Iteration stops when error between last two iterates is less than
+        `tol` OR the relative change is less than `rtol`.
+    maxiter : int, optional
+        Maximum order of Gaussian quadrature.
+    vec_func : bool, optional
+        True or False if func handles arrays as arguments (is
+        a "vector" function). Default is True.
+    miniter : int, optional
+        Minimum order of Gaussian quadrature.
+
+    Returns
+    -------
+    val : float
+        Gaussian quadrature approximation (within tolerance) to integral.
+    err : float
+        Difference between last two estimates of the integral.
+
+    See Also
+    --------
+    romberg : adaptive Romberg quadrature
+    fixed_quad : fixed-order Gaussian quadrature
+    quad : adaptive quadrature using QUADPACK
+    dblquad : double integrals
+    tplquad : triple integrals
+    romb : integrator for sampled data
+    simpson : integrator for sampled data
+    cumulative_trapezoid : cumulative integration for sampled data
+    ode : ODE integrator
+    odeint : ODE integrator
+
+    Examples
+    --------
+    >>> from scipy import integrate
+    >>> import numpy as np
+    >>> f = lambda x: x**8
+    >>> integrate.quadrature(f, 0.0, 1.0)
+    (0.11111111111111106, 4.163336342344337e-17)
+    >>> print(1/9.0)  # analytical result
+    0.1111111111111111
+
+    >>> integrate.quadrature(np.cos, 0.0, np.pi/2)
+    (0.9999999999999536, 3.9611425250996035e-11)
+    >>> np.sin(np.pi/2)-np.sin(0)  # analytical result
+    1.0
+
+    """
+    if not isinstance(args, tuple):
+        args = (args,)
+    vfunc = vectorize1(func, args, vec_func=vec_func)
+    val = np.inf
+    err = np.inf
+    maxiter = max(miniter+1, maxiter)
+    for n in range(miniter, maxiter+1):
+        newval = fixed_quad(vfunc, a, b, (), n)[0]
+        err = abs(newval-val)
+        val = newval
+
+        if err < tol or err < rtol*abs(val):
+            break
+    else:
+        warnings.warn(
+            "maxiter (%d) exceeded. Latest difference = %e" % (maxiter, err),
+            AccuracyWarning)
+    return val, err
+
+
+def tupleset(t, i, value):
+    l = list(t)
+    l[i] = value
+    return tuple(l)
+
+
+# Note: alias kept for backwards compatibility. Rename was done
+# because cumtrapz is a slur in colloquial English (see gh-12924).
+def cumtrapz(y, x=None, dx=1.0, axis=-1, initial=None):
+    """An alias of `cumulative_trapezoid`.
+
+    `cumtrapz` is kept for backwards compatibility. For new code, prefer
+    `cumulative_trapezoid` instead.
+    """
+    return cumulative_trapezoid(y, x=x, dx=dx, axis=axis, initial=initial)
+
+
+
+[docs] +def cumulative_trapezoid(y, x=None, dx=1.0, axis=-1, initial=None): + """ + Cumulatively integrate y(x) using the composite trapezoidal rule. + + Parameters + ---------- + y : array_like + Values to integrate. + x : array_like, optional + The coordinate to integrate along. If None (default), use spacing `dx` + between consecutive elements in `y`. + dx : float, optional + Spacing between elements of `y`. Only used if `x` is None. + axis : int, optional + Specifies the axis to cumulate. Default is -1 (last axis). + initial : scalar, optional + If given, insert this value at the beginning of the returned result. + Typically this value should be 0. Default is None, which means no + value at ``x[0]`` is returned and `res` has one element less than `y` + along the axis of integration. + + Returns + ------- + res : ndarray + The result of cumulative integration of `y` along `axis`. + If `initial` is None, the shape is such that the axis of integration + has one less value than `y`. If `initial` is given, the shape is equal + to that of `y`. + + See Also + -------- + numpy.cumsum, numpy.cumprod + quad : adaptive quadrature using QUADPACK + romberg : adaptive Romberg quadrature + quadrature : adaptive Gaussian quadrature + fixed_quad : fixed-order Gaussian quadrature + dblquad : double integrals + tplquad : triple integrals + romb : integrators for sampled data + ode : ODE integrators + odeint : ODE integrators + + Examples + -------- + >>> from scipy import integrate + >>> import numpy as np + >>> import matplotlib.pyplot as plt + + >>> x = np.linspace(-2, 2, num=20) + >>> y = x + >>> y_int = integrate.cumulative_trapezoid(y, x, initial=0) + >>> plt.plot(x, y_int, 'ro', x, y[0] + 0.5 * x**2, 'b-') + >>> plt.show() + + """ + y = np.asarray(y) + if x is None: + d = dx + else: + x = np.asarray(x) + if x.ndim == 1: + d = np.diff(x) + # reshape to correct shape + shape = [1] * y.ndim + shape[axis] = -1 + d = d.reshape(shape) + elif len(x.shape) != len(y.shape): + raise ValueError("If given, shape of x must be 1-D or the " + "same as y.") + else: + d = np.diff(x, axis=axis) + + if d.shape[axis] != y.shape[axis] - 1: + raise ValueError("If given, length of x along axis must be the " + "same as y.") + + nd = len(y.shape) + slice1 = tupleset((slice(None),)*nd, axis, slice(1, None)) + slice2 = tupleset((slice(None),)*nd, axis, slice(None, -1)) + res = np.cumsum(d * (y[slice1] + y[slice2]) / 2.0, axis=axis) + + if initial is not None: + if not np.isscalar(initial): + raise ValueError("`initial` parameter should be a scalar.") + + shape = list(res.shape) + shape[axis] = 1 + res = np.concatenate([np.full(shape, initial, dtype=res.dtype), res], + axis=axis) + + return res
+ + + +def _basic_simpson(y, start, stop, x, dx, axis): + nd = len(y.shape) + if start is None: + start = 0 + step = 2 + slice_all = (slice(None),)*nd + slice0 = tupleset(slice_all, axis, slice(start, stop, step)) + slice1 = tupleset(slice_all, axis, slice(start+1, stop+1, step)) + slice2 = tupleset(slice_all, axis, slice(start+2, stop+2, step)) + + if x is None: # Even-spaced Simpson's rule. + result = np.sum(y[slice0] + 4.0*y[slice1] + y[slice2], axis=axis) + result *= dx / 3.0 + else: + # Account for possibly different spacings. + # Simpson's rule changes a bit. + h = np.diff(x, axis=axis) + sl0 = tupleset(slice_all, axis, slice(start, stop, step)) + sl1 = tupleset(slice_all, axis, slice(start+1, stop+1, step)) + h0 = np.float64(h[sl0]) + h1 = np.float64(h[sl1]) + hsum = h0 + h1 + hprod = h0 * h1 + h0divh1 = np.true_divide(h0, h1, out=np.zeros_like(h0), where=h1 != 0) + tmp = hsum/6.0 * (y[slice0] * + (2.0 - np.true_divide(1.0, h0divh1, + out=np.zeros_like(h0divh1), + where=h0divh1 != 0)) + + y[slice1] * (hsum * + np.true_divide(hsum, hprod, + out=np.zeros_like(hsum), + where=hprod != 0)) + + y[slice2] * (2.0 - h0divh1)) + result = np.sum(tmp, axis=axis) + return result + + +# Note: alias kept for backwards compatibility. simps was renamed to simpson +# because the former is a slur in colloquial English (see gh-12924). +def simps(y, x=None, dx=1.0, axis=-1, even=None): + """An alias of `simpson`. + + `simps` is kept for backwards compatibility. For new code, prefer + `simpson` instead. + """ + return simpson(y, x=x, dx=dx, axis=axis, even=even) + + +def simpson(y, x=None, dx=1.0, axis=-1, even=None): + """ + Integrate y(x) using samples along the given axis and the composite + Simpson's rule. If x is None, spacing of dx is assumed. + + If there are an even number of samples, N, then there are an odd + number of intervals (N-1), but Simpson's rule requires an even number + of intervals. The parameter 'even' controls how this is handled. + + Parameters + ---------- + y : array_like + Array to be integrated. + x : array_like, optional + If given, the points at which `y` is sampled. + dx : float, optional + Spacing of integration points along axis of `x`. Only used when + `x` is None. Default is 1. + axis : int, optional + Axis along which to integrate. Default is the last axis. + even : {None, 'simpson', 'avg', 'first', 'last'}, optional + 'avg' : Average two results: + 1) use the first N-2 intervals with + a trapezoidal rule on the last interval and + 2) use the last + N-2 intervals with a trapezoidal rule on the first interval. + + 'first' : Use Simpson's rule for the first N-2 intervals with + a trapezoidal rule on the last interval. + + 'last' : Use Simpson's rule for the last N-2 intervals with a + trapezoidal rule on the first interval. + + None : equivalent to 'simpson' (default) + + 'simpson' : Use Simpson's rule for the first N-2 intervals with the + addition of a 3-point parabolic segment for the last + interval using equations outlined by Cartwright [1]_. + If the axis to be integrated over only has two points then + the integration falls back to a trapezoidal integration. + + .. versionadded:: 1.11.0 + + .. versionchanged:: 1.11.0 + The newly added 'simpson' option is now the default as it is more + accurate in most situations. + + .. deprecated:: 1.11.0 + Parameter `even` is deprecated and will be removed in SciPy + 1.13.0. After this time the behaviour for an even number of + points will follow that of `even='simpson'`. + + Returns + ------- + float + The estimated integral computed with the composite Simpson's rule. + + See Also + -------- + quad : adaptive quadrature using QUADPACK + romberg : adaptive Romberg quadrature + quadrature : adaptive Gaussian quadrature + fixed_quad : fixed-order Gaussian quadrature + dblquad : double integrals + tplquad : triple integrals + romb : integrators for sampled data + cumulative_trapezoid : cumulative integration for sampled data + ode : ODE integrators + odeint : ODE integrators + + Notes + ----- + For an odd number of samples that are equally spaced the result is + exact if the function is a polynomial of order 3 or less. If + the samples are not equally spaced, then the result is exact only + if the function is a polynomial of order 2 or less. + + References + ---------- + .. [1] Cartwright, Kenneth V. Simpson's Rule Cumulative Integration with + MS Excel and Irregularly-spaced Data. Journal of Mathematical + Sciences and Mathematics Education. 12 (2): 1-9 + + Examples + -------- + >>> from scipy import integrate + >>> import numpy as np + >>> x = np.arange(0, 10) + >>> y = np.arange(0, 10) + + >>> integrate.simpson(y, x) + 40.5 + + >>> y = np.power(x, 3) + >>> integrate.simpson(y, x) + 1640.5 + >>> integrate.quad(lambda x: x**3, 0, 9)[0] + 1640.25 + + >>> integrate.simpson(y, x, even='first') + 1644.5 + + """ + y = np.asarray(y) + nd = len(y.shape) + N = y.shape[axis] + last_dx = dx + first_dx = dx + returnshape = 0 + if x is not None: + x = np.asarray(x) + if len(x.shape) == 1: + shapex = [1] * nd + shapex[axis] = x.shape[0] + saveshape = x.shape + returnshape = 1 + x = x.reshape(tuple(shapex)) + elif len(x.shape) != len(y.shape): + raise ValueError("If given, shape of x must be 1-D or the " + "same as y.") + if x.shape[axis] != N: + raise ValueError("If given, length of x along axis must be the " + "same as y.") + + # even keyword parameter is deprecated + if even is not None: + warnings.warn( + "The 'even' keyword is deprecated as of SciPy 1.11.0 and will be " + "removed in SciPy 1.13.0", + DeprecationWarning, stacklevel=2 + ) + + if N % 2 == 0: + val = 0.0 + result = 0.0 + slice_all = (slice(None),) * nd + + # default is 'simpson' + even = even if even is not None else "simpson" + + if even not in ['avg', 'last', 'first', 'simpson']: + raise ValueError( + "Parameter 'even' must be 'simpson', " + "'avg', 'last', or 'first'." + ) + + if N == 2: + # need at least 3 points in integration axis to form parabolic + # segment. If there are two points then any of 'avg', 'first', + # 'last' should give the same result. + slice1 = tupleset(slice_all, axis, -1) + slice2 = tupleset(slice_all, axis, -2) + if x is not None: + last_dx = x[slice1] - x[slice2] + val += 0.5 * last_dx * (y[slice1] + y[slice2]) + + # calculation is finished. Set `even` to None to skip other + # scenarios + even = None + + if even == 'simpson': + # use Simpson's rule on first intervals + result = _basic_simpson(y, 0, N-3, x, dx, axis) + + slice1 = tupleset(slice_all, axis, -1) + slice2 = tupleset(slice_all, axis, -2) + slice3 = tupleset(slice_all, axis, -3) + + h = np.asfarray([dx, dx]) + if x is not None: + # grab the last two spacings from the appropriate axis + hm2 = tupleset(slice_all, axis, slice(-2, -1, 1)) + hm1 = tupleset(slice_all, axis, slice(-1, None, 1)) + + diffs = np.float64(np.diff(x, axis=axis)) + h = [np.squeeze(diffs[hm2], axis=axis), + np.squeeze(diffs[hm1], axis=axis)] + + # This is the correction for the last interval according to + # Cartwright. + # However, I used the equations given at + # https://en.wikipedia.org/wiki/Simpson%27s_rule#Composite_Simpson's_rule_for_irregularly_spaced_data + # A footnote on Wikipedia says: + # Cartwright 2017, Equation 8. The equation in Cartwright is + # calculating the first interval whereas the equations in the + # Wikipedia article are adjusting for the last integral. If the + # proper algebraic substitutions are made, the equation results in + # the values shown. + num = 2 * h[1] ** 2 + 3 * h[0] * h[1] + den = 6 * (h[1] + h[0]) + alpha = np.true_divide( + num, + den, + out=np.zeros_like(den), + where=den != 0 + ) + + num = h[1] ** 2 + 3.0 * h[0] * h[1] + den = 6 * h[0] + beta = np.true_divide( + num, + den, + out=np.zeros_like(den), + where=den != 0 + ) + + num = 1 * h[1] ** 3 + den = 6 * h[0] * (h[0] + h[1]) + eta = np.true_divide( + num, + den, + out=np.zeros_like(den), + where=den != 0 + ) + + result += alpha*y[slice1] + beta*y[slice2] - eta*y[slice3] + + # The following code (down to result=result+val) can be removed + # once the 'even' keyword is removed. + + # Compute using Simpson's rule on first intervals + if even in ['avg', 'first']: + slice1 = tupleset(slice_all, axis, -1) + slice2 = tupleset(slice_all, axis, -2) + if x is not None: + last_dx = x[slice1] - x[slice2] + val += 0.5*last_dx*(y[slice1]+y[slice2]) + result = _basic_simpson(y, 0, N-3, x, dx, axis) + # Compute using Simpson's rule on last set of intervals + if even in ['avg', 'last']: + slice1 = tupleset(slice_all, axis, 0) + slice2 = tupleset(slice_all, axis, 1) + if x is not None: + first_dx = x[tuple(slice2)] - x[tuple(slice1)] + val += 0.5*first_dx*(y[slice2]+y[slice1]) + result += _basic_simpson(y, 1, N-2, x, dx, axis) + if even == 'avg': + val /= 2.0 + result /= 2.0 + result = result + val + else: + result = _basic_simpson(y, 0, N-2, x, dx, axis) + if returnshape: + x = x.reshape(saveshape) + return result + + +def romb(y, dx=1.0, axis=-1, show=False): + """ + Romberg integration using samples of a function. + + Parameters + ---------- + y : array_like + A vector of ``2**k + 1`` equally-spaced samples of a function. + dx : float, optional + The sample spacing. Default is 1. + axis : int, optional + The axis along which to integrate. Default is -1 (last axis). + show : bool, optional + When `y` is a single 1-D array, then if this argument is True + print the table showing Richardson extrapolation from the + samples. Default is False. + + Returns + ------- + romb : ndarray + The integrated result for `axis`. + + See Also + -------- + quad : adaptive quadrature using QUADPACK + romberg : adaptive Romberg quadrature + quadrature : adaptive Gaussian quadrature + fixed_quad : fixed-order Gaussian quadrature + dblquad : double integrals + tplquad : triple integrals + simpson : integrators for sampled data + cumulative_trapezoid : cumulative integration for sampled data + ode : ODE integrators + odeint : ODE integrators + + Examples + -------- + >>> from scipy import integrate + >>> import numpy as np + >>> x = np.arange(10, 14.25, 0.25) + >>> y = np.arange(3, 12) + + >>> integrate.romb(y) + 56.0 + + >>> y = np.sin(np.power(x, 2.5)) + >>> integrate.romb(y) + -0.742561336672229 + + >>> integrate.romb(y, show=True) + Richardson Extrapolation Table for Romberg Integration + ====================================================== + -0.81576 + 4.63862 6.45674 + -1.10581 -3.02062 -3.65245 + -2.57379 -3.06311 -3.06595 -3.05664 + -1.34093 -0.92997 -0.78776 -0.75160 -0.74256 + ====================================================== + -0.742561336672229 # may vary + + """ + y = np.asarray(y) + nd = len(y.shape) + Nsamps = y.shape[axis] + Ninterv = Nsamps-1 + n = 1 + k = 0 + while n < Ninterv: + n <<= 1 + k += 1 + if n != Ninterv: + raise ValueError("Number of samples must be one plus a " + "non-negative power of 2.") + + R = {} + slice_all = (slice(None),) * nd + slice0 = tupleset(slice_all, axis, 0) + slicem1 = tupleset(slice_all, axis, -1) + h = Ninterv * np.asarray(dx, dtype=float) + R[(0, 0)] = (y[slice0] + y[slicem1])/2.0*h + slice_R = slice_all + start = stop = step = Ninterv + for i in range(1, k+1): + start >>= 1 + slice_R = tupleset(slice_R, axis, slice(start, stop, step)) + step >>= 1 + R[(i, 0)] = 0.5*(R[(i-1, 0)] + h*y[slice_R].sum(axis=axis)) + for j in range(1, i+1): + prev = R[(i, j-1)] + R[(i, j)] = prev + (prev-R[(i-1, j-1)]) / ((1 << (2*j))-1) + h /= 2.0 + + if show: + if not np.isscalar(R[(0, 0)]): + print("*** Printing table only supported for integrals" + + " of a single data set.") + else: + try: + precis = show[0] + except (TypeError, IndexError): + precis = 5 + try: + width = show[1] + except (TypeError, IndexError): + width = 8 + formstr = "%%%d.%df" % (width, precis) + + title = "Richardson Extrapolation Table for Romberg Integration" + print(title, "=" * len(title), sep="\n", end="\n") + for i in range(k+1): + for j in range(i+1): + print(formstr % R[(i, j)], end=" ") + print() + print("=" * len(title)) + + return R[(k, k)] + +# Romberg quadratures for numeric integration. +# +# Written by Scott M. Ransom <ransom@cfa.harvard.edu> +# last revision: 14 Nov 98 +# +# Cosmetic changes by Konrad Hinsen <hinsen@cnrs-orleans.fr> +# last revision: 1999-7-21 +# +# Adapted to SciPy by Travis Oliphant <oliphant.travis@ieee.org> +# last revision: Dec 2001 + + +def _difftrap(function, interval, numtraps): + """ + Perform part of the trapezoidal rule to integrate a function. + Assume that we had called difftrap with all lower powers-of-2 + starting with 1. Calling difftrap only returns the summation + of the new ordinates. It does _not_ multiply by the width + of the trapezoids. This must be performed by the caller. + 'function' is the function to evaluate (must accept vector arguments). + 'interval' is a sequence with lower and upper limits + of integration. + 'numtraps' is the number of trapezoids to use (must be a + power-of-2). + """ + if numtraps <= 0: + raise ValueError("numtraps must be > 0 in difftrap().") + elif numtraps == 1: + return 0.5*(function(interval[0])+function(interval[1])) + else: + numtosum = numtraps/2 + h = float(interval[1]-interval[0])/numtosum + lox = interval[0] + 0.5 * h + points = lox + h * np.arange(numtosum) + s = np.sum(function(points), axis=0) + return s + + +def _romberg_diff(b, c, k): + """ + Compute the differences for the Romberg quadrature corrections. + See Forman Acton's "Real Computing Made Real," p 143. + """ + tmp = 4.0**k + return (tmp * c - b)/(tmp - 1.0) + + +def _printresmat(function, interval, resmat): + # Print the Romberg result matrix. + i = j = 0 + print('Romberg integration of', repr(function), end=' ') + print('from', interval) + print('') + print('%6s %9s %9s' % ('Steps', 'StepSize', 'Results')) + for i in range(len(resmat)): + print('%6d %9f' % (2**i, (interval[1]-interval[0])/(2.**i)), end=' ') + for j in range(i+1): + print('%9f' % (resmat[i][j]), end=' ') + print('') + print('') + print('The final result is', resmat[i][j], end=' ') + print('after', 2**(len(resmat)-1)+1, 'function evaluations.') + + +def romberg(function, a, b, args=(), tol=1.48e-8, rtol=1.48e-8, show=False, + divmax=10, vec_func=False): + """ + Romberg integration of a callable function or method. + + Returns the integral of `function` (a function of one variable) + over the interval (`a`, `b`). + + If `show` is 1, the triangular array of the intermediate results + will be printed. If `vec_func` is True (default is False), then + `function` is assumed to support vector arguments. + + Parameters + ---------- + function : callable + Function to be integrated. + a : float + Lower limit of integration. + b : float + Upper limit of integration. + + Returns + ------- + results : float + Result of the integration. + + Other Parameters + ---------------- + args : tuple, optional + Extra arguments to pass to function. Each element of `args` will + be passed as a single argument to `func`. Default is to pass no + extra arguments. + tol, rtol : float, optional + The desired absolute and relative tolerances. Defaults are 1.48e-8. + show : bool, optional + Whether to print the results. Default is False. + divmax : int, optional + Maximum order of extrapolation. Default is 10. + vec_func : bool, optional + Whether `func` handles arrays as arguments (i.e., whether it is a + "vector" function). Default is False. + + See Also + -------- + fixed_quad : Fixed-order Gaussian quadrature. + quad : Adaptive quadrature using QUADPACK. + dblquad : Double integrals. + tplquad : Triple integrals. + romb : Integrators for sampled data. + simpson : Integrators for sampled data. + cumulative_trapezoid : Cumulative integration for sampled data. + ode : ODE integrator. + odeint : ODE integrator. + + References + ---------- + .. [1] 'Romberg's method' https://en.wikipedia.org/wiki/Romberg%27s_method + + Examples + -------- + Integrate a gaussian from 0 to 1 and compare to the error function. + + >>> from scipy import integrate + >>> from scipy.special import erf + >>> import numpy as np + >>> gaussian = lambda x: 1/np.sqrt(np.pi) * np.exp(-x**2) + >>> result = integrate.romberg(gaussian, 0, 1, show=True) + Romberg integration of <function vfunc at ...> from [0, 1] + + :: + + Steps StepSize Results + 1 1.000000 0.385872 + 2 0.500000 0.412631 0.421551 + 4 0.250000 0.419184 0.421368 0.421356 + 8 0.125000 0.420810 0.421352 0.421350 0.421350 + 16 0.062500 0.421215 0.421350 0.421350 0.421350 0.421350 + 32 0.031250 0.421317 0.421350 0.421350 0.421350 0.421350 0.421350 + + The final result is 0.421350396475 after 33 function evaluations. + + >>> print("%g %g" % (2*result, erf(1))) + 0.842701 0.842701 + + """ + if np.isinf(a) or np.isinf(b): + raise ValueError("Romberg integration only available " + "for finite limits.") + vfunc = vectorize1(function, args, vec_func=vec_func) + n = 1 + interval = [a, b] + intrange = b - a + ordsum = _difftrap(vfunc, interval, n) + result = intrange * ordsum + resmat = [[result]] + err = np.inf + last_row = resmat[0] + for i in range(1, divmax+1): + n *= 2 + ordsum += _difftrap(vfunc, interval, n) + row = [intrange * ordsum / n] + for k in range(i): + row.append(_romberg_diff(last_row[k], row[k], k+1)) + result = row[i] + lastresult = last_row[i-1] + if show: + resmat.append(row) + err = abs(result - lastresult) + if err < tol or err < rtol * abs(result): + break + last_row = row + else: + warnings.warn( + "divmax (%d) exceeded. Latest difference = %e" % (divmax, err), + AccuracyWarning) + + if show: + _printresmat(vfunc, interval, resmat) + return result + + +# Coefficients for Newton-Cotes quadrature +# +# These are the points being used +# to construct the local interpolating polynomial +# a are the weights for Newton-Cotes integration +# B is the error coefficient. +# error in these coefficients grows as N gets larger. +# or as samples are closer and closer together + +# You can use maxima to find these rational coefficients +# for equally spaced data using the commands +# a(i,N) := integrate(product(r-j,j,0,i-1) * product(r-j,j,i+1,N),r,0,N) / ((N-i)! * i!) * (-1)^(N-i); +# Be(N) := N^(N+2)/(N+2)! * (N/(N+3) - sum((i/N)^(N+2)*a(i,N),i,0,N)); +# Bo(N) := N^(N+1)/(N+1)! * (N/(N+2) - sum((i/N)^(N+1)*a(i,N),i,0,N)); +# B(N) := (if (mod(N,2)=0) then Be(N) else Bo(N)); +# +# pre-computed for equally-spaced weights +# +# num_a, den_a, int_a, num_B, den_B = _builtincoeffs[N] +# +# a = num_a*array(int_a)/den_a +# B = num_B*1.0 / den_B +# +# integrate(f(x),x,x_0,x_N) = dx*sum(a*f(x_i)) + B*(dx)^(2k+3) f^(2k+2)(x*) +# where k = N // 2 +# +_builtincoeffs = { + 1: (1,2,[1,1],-1,12), + 2: (1,3,[1,4,1],-1,90), + 3: (3,8,[1,3,3,1],-3,80), + 4: (2,45,[7,32,12,32,7],-8,945), + 5: (5,288,[19,75,50,50,75,19],-275,12096), + 6: (1,140,[41,216,27,272,27,216,41],-9,1400), + 7: (7,17280,[751,3577,1323,2989,2989,1323,3577,751],-8183,518400), + 8: (4,14175,[989,5888,-928,10496,-4540,10496,-928,5888,989], + -2368,467775), + 9: (9,89600,[2857,15741,1080,19344,5778,5778,19344,1080, + 15741,2857], -4671, 394240), + 10: (5,299376,[16067,106300,-48525,272400,-260550,427368, + -260550,272400,-48525,106300,16067], + -673175, 163459296), + 11: (11,87091200,[2171465,13486539,-3237113, 25226685,-9595542, + 15493566,15493566,-9595542,25226685,-3237113, + 13486539,2171465], -2224234463, 237758976000), + 12: (1, 5255250, [1364651,9903168,-7587864,35725120,-51491295, + 87516288,-87797136,87516288,-51491295,35725120, + -7587864,9903168,1364651], -3012, 875875), + 13: (13, 402361344000,[8181904909, 56280729661, -31268252574, + 156074417954,-151659573325,206683437987, + -43111992612,-43111992612,206683437987, + -151659573325,156074417954,-31268252574, + 56280729661,8181904909], -2639651053, + 344881152000), + 14: (7, 2501928000, [90241897,710986864,-770720657,3501442784, + -6625093363,12630121616,-16802270373,19534438464, + -16802270373,12630121616,-6625093363,3501442784, + -770720657,710986864,90241897], -3740727473, + 1275983280000) + } + + +def newton_cotes(rn, equal=0): + r""" + Return weights and error coefficient for Newton-Cotes integration. + + Suppose we have (N+1) samples of f at the positions + x_0, x_1, ..., x_N. Then an N-point Newton-Cotes formula for the + integral between x_0 and x_N is: + + :math:`\int_{x_0}^{x_N} f(x)dx = \Delta x \sum_{i=0}^{N} a_i f(x_i) + + B_N (\Delta x)^{N+2} f^{N+1} (\xi)` + + where :math:`\xi \in [x_0,x_N]` + and :math:`\Delta x = \frac{x_N-x_0}{N}` is the average samples spacing. + + If the samples are equally-spaced and N is even, then the error + term is :math:`B_N (\Delta x)^{N+3} f^{N+2}(\xi)`. + + Parameters + ---------- + rn : int + The integer order for equally-spaced data or the relative positions of + the samples with the first sample at 0 and the last at N, where N+1 is + the length of `rn`. N is the order of the Newton-Cotes integration. + equal : int, optional + Set to 1 to enforce equally spaced data. + + Returns + ------- + an : ndarray + 1-D array of weights to apply to the function at the provided sample + positions. + B : float + Error coefficient. + + Notes + ----- + Normally, the Newton-Cotes rules are used on smaller integration + regions and a composite rule is used to return the total integral. + + Examples + -------- + Compute the integral of sin(x) in [0, :math:`\pi`]: + + >>> from scipy.integrate import newton_cotes + >>> import numpy as np + >>> def f(x): + ... return np.sin(x) + >>> a = 0 + >>> b = np.pi + >>> exact = 2 + >>> for N in [2, 4, 6, 8, 10]: + ... x = np.linspace(a, b, N + 1) + ... an, B = newton_cotes(N, 1) + ... dx = (b - a) / N + ... quad = dx * np.sum(an * f(x)) + ... error = abs(quad - exact) + ... print('{:2d} {:10.9f} {:.5e}'.format(N, quad, error)) + ... + 2 2.094395102 9.43951e-02 + 4 1.998570732 1.42927e-03 + 6 2.000017814 1.78136e-05 + 8 1.999999835 1.64725e-07 + 10 2.000000001 1.14677e-09 + + """ + try: + N = len(rn)-1 + if equal: + rn = np.arange(N+1) + elif np.all(np.diff(rn) == 1): + equal = 1 + except Exception: + N = rn + rn = np.arange(N+1) + equal = 1 + + if equal and N in _builtincoeffs: + na, da, vi, nb, db = _builtincoeffs[N] + an = na * np.array(vi, dtype=float) / da + return an, float(nb)/db + + if (rn[0] != 0) or (rn[-1] != N): + raise ValueError("The sample positions must start at 0" + " and end at N") + yi = rn / float(N) + ti = 2 * yi - 1 + nvec = np.arange(N+1) + C = ti ** nvec[:, np.newaxis] + Cinv = np.linalg.inv(C) + # improve precision of result + for i in range(2): + Cinv = 2*Cinv - Cinv.dot(C).dot(Cinv) + vec = 2.0 / (nvec[::2]+1) + ai = Cinv[:, ::2].dot(vec) * (N / 2.) + + if (N % 2 == 0) and equal: + BN = N/(N+3.) + power = N+2 + else: + BN = N/(N+2.) + power = N+1 + + BN = BN - np.dot(yi**power, ai) + p1 = power+1 + fac = power*math.log(N) - gammaln(p1) + fac = math.exp(fac) + return ai, BN*fac + + +def _qmc_quad_iv(func, a, b, n_points, n_estimates, qrng, log): + + # lazy import to avoid issues with partially-initialized submodule + if not hasattr(qmc_quad, 'qmc'): + from scipy import stats + qmc_quad.stats = stats + else: + stats = qmc_quad.stats + + if not callable(func): + message = "`func` must be callable." + raise TypeError(message) + + # a, b will be modified, so copy. Oh well if it's copied twice. + a = np.atleast_1d(a).copy() + b = np.atleast_1d(b).copy() + a, b = np.broadcast_arrays(a, b) + dim = a.shape[0] + + try: + func((a + b) / 2) + except Exception as e: + message = ("`func` must evaluate the integrand at points within " + "the integration range; e.g. `func( (a + b) / 2)` " + "must return the integrand at the centroid of the " + "integration volume.") + raise ValueError(message) from e + + try: + func(np.array([a, b]).T) + vfunc = func + except Exception as e: + message = ("Exception encountered when attempting vectorized call to " + f"`func`: {e}. For better performance, `func` should " + "accept two-dimensional array `x` with shape `(len(a), " + "n_points)` and return an array of the integrand value at " + "each of the `n_points.") + warnings.warn(message, stacklevel=3) + + def vfunc(x): + return np.apply_along_axis(func, axis=-1, arr=x) + + n_points_int = np.int64(n_points) + if n_points != n_points_int: + message = "`n_points` must be an integer." + raise TypeError(message) + + n_estimates_int = np.int64(n_estimates) + if n_estimates != n_estimates_int: + message = "`n_estimates` must be an integer." + raise TypeError(message) + + if qrng is None: + qrng = stats.qmc.Halton(dim) + elif not isinstance(qrng, stats.qmc.QMCEngine): + message = "`qrng` must be an instance of scipy.stats.qmc.QMCEngine." + raise TypeError(message) + + if qrng.d != a.shape[0]: + message = ("`qrng` must be initialized with dimensionality equal to " + "the number of variables in `a`, i.e., " + "`qrng.random().shape[-1]` must equal `a.shape[0]`.") + raise ValueError(message) + + rng_seed = getattr(qrng, 'rng_seed', None) + rng = stats._qmc.check_random_state(rng_seed) + + if log not in {True, False}: + message = "`log` must be boolean (`True` or `False`)." + raise TypeError(message) + + return (vfunc, a, b, n_points_int, n_estimates_int, qrng, rng, log, stats) + + +QMCQuadResult = namedtuple('QMCQuadResult', ['integral', 'standard_error']) + + +def qmc_quad(func, a, b, *, n_estimates=8, n_points=1024, qrng=None, + log=False): + """ + Compute an integral in N-dimensions using Quasi-Monte Carlo quadrature. + + Parameters + ---------- + func : callable + The integrand. Must accept a single argument ``x``, an array which + specifies the point(s) at which to evaluate the scalar-valued + integrand, and return the value(s) of the integrand. + For efficiency, the function should be vectorized to accept an array of + shape ``(d, n_points)``, where ``d`` is the number of variables (i.e. + the dimensionality of the function domain) and `n_points` is the number + of quadrature points, and return an array of shape ``(n_points,)``, + the integrand at each quadrature point. + a, b : array-like + One-dimensional arrays specifying the lower and upper integration + limits, respectively, of each of the ``d`` variables. + n_estimates, n_points : int, optional + `n_estimates` (default: 8) statistically independent QMC samples, each + of `n_points` (default: 1024) points, will be generated by `qrng`. + The total number of points at which the integrand `func` will be + evaluated is ``n_points * n_estimates``. See Notes for details. + qrng : `~scipy.stats.qmc.QMCEngine`, optional + An instance of the QMCEngine from which to sample QMC points. + The QMCEngine must be initialized to a number of dimensions ``d`` + corresponding with the number of variables ``x1, ..., xd`` passed to + `func`. + The provided QMCEngine is used to produce the first integral estimate. + If `n_estimates` is greater than one, additional QMCEngines are + spawned from the first (with scrambling enabled, if it is an option.) + If a QMCEngine is not provided, the default `scipy.stats.qmc.Halton` + will be initialized with the number of dimensions determine from + the length of `a`. + log : boolean, default: False + When set to True, `func` returns the log of the integrand, and + the result object contains the log of the integral. + + Returns + ------- + result : object + A result object with attributes: + + integral : float + The estimate of the integral. + standard_error : + The error estimate. See Notes for interpretation. + + Notes + ----- + Values of the integrand at each of the `n_points` points of a QMC sample + are used to produce an estimate of the integral. This estimate is drawn + from a population of possible estimates of the integral, the value of + which we obtain depends on the particular points at which the integral + was evaluated. We perform this process `n_estimates` times, each time + evaluating the integrand at different scrambled QMC points, effectively + drawing i.i.d. random samples from the population of integral estimates. + The sample mean :math:`m` of these integral estimates is an + unbiased estimator of the true value of the integral, and the standard + error of the mean :math:`s` of these estimates may be used to generate + confidence intervals using the t distribution with ``n_estimates - 1`` + degrees of freedom. Perhaps counter-intuitively, increasing `n_points` + while keeping the total number of function evaluation points + ``n_points * n_estimates`` fixed tends to reduce the actual error, whereas + increasing `n_estimates` tends to decrease the error estimate. + + Examples + -------- + QMC quadrature is particularly useful for computing integrals in higher + dimensions. An example integrand is the probability density function + of a multivariate normal distribution. + + >>> import numpy as np + >>> from scipy import stats + >>> dim = 8 + >>> mean = np.zeros(dim) + >>> cov = np.eye(dim) + >>> def func(x): + ... # `multivariate_normal` expects the _last_ axis to correspond with + ... # the dimensionality of the space, so `x` must be transposed + ... return stats.multivariate_normal.pdf(x.T, mean, cov) + + To compute the integral over the unit hypercube: + + >>> from scipy.integrate import qmc_quad + >>> a = np.zeros(dim) + >>> b = np.ones(dim) + >>> rng = np.random.default_rng() + >>> qrng = stats.qmc.Halton(d=dim, seed=rng) + >>> n_estimates = 8 + >>> res = qmc_quad(func, a, b, n_estimates=n_estimates, qrng=qrng) + >>> res.integral, res.standard_error + (0.00018429555666024108, 1.0389431116001344e-07) + + A two-sided, 99% confidence interval for the integral may be estimated + as: + + >>> t = stats.t(df=n_estimates-1, loc=res.integral, + ... scale=res.standard_error) + >>> t.interval(0.99) + (0.0001839319802536469, 0.00018465913306683527) + + Indeed, the value reported by `scipy.stats.multivariate_normal` is + within this range. + + >>> stats.multivariate_normal.cdf(b, mean, cov, lower_limit=a) + 0.00018430867675187443 + + """ + args = _qmc_quad_iv(func, a, b, n_points, n_estimates, qrng, log) + func, a, b, n_points, n_estimates, qrng, rng, log, stats = args + + def sum_product(integrands, dA, log=False): + if log: + return logsumexp(integrands) + np.log(dA) + else: + return np.sum(integrands * dA) + + def mean(estimates, log=False): + if log: + return logsumexp(estimates) - np.log(n_estimates) + else: + return np.mean(estimates) + + def std(estimates, m=None, ddof=0, log=False): + m = m or mean(estimates, log) + if log: + estimates, m = np.broadcast_arrays(estimates, m) + temp = np.vstack((estimates, m + np.pi * 1j)) + diff = logsumexp(temp, axis=0) + return np.real(0.5 * (logsumexp(2 * diff) + - np.log(n_estimates - ddof))) + else: + return np.std(estimates, ddof=ddof) + + def sem(estimates, m=None, s=None, log=False): + m = m or mean(estimates, log) + s = s or std(estimates, m, ddof=1, log=log) + if log: + return s - 0.5*np.log(n_estimates) + else: + return s / np.sqrt(n_estimates) + + # The sign of the integral depends on the order of the limits. Fix this by + # ensuring that lower bounds are indeed lower and setting sign of resulting + # integral manually + if np.any(a == b): + message = ("A lower limit was equal to an upper limit, so the value " + "of the integral is zero by definition.") + warnings.warn(message, stacklevel=2) + return QMCQuadResult(-np.inf if log else 0, 0) + + i_swap = b < a + sign = (-1)**(i_swap.sum(axis=-1)) # odd # of swaps -> negative + a[i_swap], b[i_swap] = b[i_swap], a[i_swap] + + A = np.prod(b - a) + dA = A / n_points + + estimates = np.zeros(n_estimates) + rngs = _rng_spawn(qrng.rng, n_estimates) + for i in range(n_estimates): + # Generate integral estimate + sample = qrng.random(n_points) + # The rationale for transposing is that this allows users to easily + # unpack `x` into separate variables, if desired. This is consistent + # with the `xx` array passed into the `scipy.integrate.nquad` `func`. + x = stats.qmc.scale(sample, a, b).T # (n_dim, n_points) + integrands = func(x) + estimates[i] = sum_product(integrands, dA, log) + + # Get a new, independently-scrambled QRNG for next time + qrng = type(qrng)(seed=rngs[i], **qrng._init_quad) + + integral = mean(estimates, log) + standard_error = sem(estimates, m=integral, log=log) + integral = integral + np.pi*1j if (log and sign < 0) else integral*sign + return QMCQuadResult(integral, standard_error) +
+ +
+ + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_modules/scipy/ndimage/_filters.html b/_modules/scipy/ndimage/_filters.html new file mode 100644 index 0000000..204bc11 --- /dev/null +++ b/_modules/scipy/ndimage/_filters.html @@ -0,0 +1,2155 @@ + + + + + + + + + + scipy.ndimage._filters — pyudv documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for scipy.ndimage._filters

+# Copyright (C) 2003-2005 Peter J. Verveer
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above
+#    copyright notice, this list of conditions and the following
+#    disclaimer in the documentation and/or other materials provided
+#    with the distribution.
+#
+# 3. The name of the author may not be used to endorse or promote
+#    products derived from this software without specific prior
+#    written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+from collections.abc import Iterable
+import numbers
+import warnings
+import numpy
+import operator
+from numpy.core.multiarray import normalize_axis_index
+from . import _ni_support
+from . import _nd_image
+from . import _ni_docstrings
+
+__all__ = ['correlate1d', 'convolve1d', 'gaussian_filter1d', 'gaussian_filter',
+           'prewitt', 'sobel', 'generic_laplace', 'laplace',
+           'gaussian_laplace', 'generic_gradient_magnitude',
+           'gaussian_gradient_magnitude', 'correlate', 'convolve',
+           'uniform_filter1d', 'uniform_filter', 'minimum_filter1d',
+           'maximum_filter1d', 'minimum_filter', 'maximum_filter',
+           'rank_filter', 'median_filter', 'percentile_filter',
+           'generic_filter1d', 'generic_filter']
+
+
+def _invalid_origin(origin, lenw):
+    return (origin < -(lenw // 2)) or (origin > (lenw - 1) // 2)
+
+
+def _complex_via_real_components(func, input, weights, output, cval, **kwargs):
+    """Complex convolution via a linear combination of real convolutions."""
+    complex_input = input.dtype.kind == 'c'
+    complex_weights = weights.dtype.kind == 'c'
+    if complex_input and complex_weights:
+        # real component of the output
+        func(input.real, weights.real, output=output.real,
+             cval=numpy.real(cval), **kwargs)
+        output.real -= func(input.imag, weights.imag, output=None,
+                            cval=numpy.imag(cval), **kwargs)
+        # imaginary component of the output
+        func(input.real, weights.imag, output=output.imag,
+             cval=numpy.real(cval), **kwargs)
+        output.imag += func(input.imag, weights.real, output=None,
+                            cval=numpy.imag(cval), **kwargs)
+    elif complex_input:
+        func(input.real, weights, output=output.real, cval=numpy.real(cval),
+             **kwargs)
+        func(input.imag, weights, output=output.imag, cval=numpy.imag(cval),
+             **kwargs)
+    else:
+        if numpy.iscomplexobj(cval):
+            raise ValueError("Cannot provide a complex-valued cval when the "
+                             "input is real.")
+        func(input, weights.real, output=output.real, cval=cval, **kwargs)
+        func(input, weights.imag, output=output.imag, cval=cval, **kwargs)
+    return output
+
+
+@_ni_docstrings.docfiller
+def correlate1d(input, weights, axis=-1, output=None, mode="reflect",
+                cval=0.0, origin=0):
+    """Calculate a 1-D correlation along the given axis.
+
+    The lines of the array along the given axis are correlated with the
+    given weights.
+
+    Parameters
+    ----------
+    %(input)s
+    weights : array
+        1-D sequence of numbers.
+    %(axis)s
+    %(output)s
+    %(mode_reflect)s
+    %(cval)s
+    %(origin)s
+
+    Examples
+    --------
+    >>> from scipy.ndimage import correlate1d
+    >>> correlate1d([2, 8, 0, 4, 1, 9, 9, 0], weights=[1, 3])
+    array([ 8, 26,  8, 12,  7, 28, 36,  9])
+    """
+    input = numpy.asarray(input)
+    weights = numpy.asarray(weights)
+    complex_input = input.dtype.kind == 'c'
+    complex_weights = weights.dtype.kind == 'c'
+    if complex_input or complex_weights:
+        if complex_weights:
+            weights = weights.conj()
+            weights = weights.astype(numpy.complex128, copy=False)
+        kwargs = dict(axis=axis, mode=mode, origin=origin)
+        output = _ni_support._get_output(output, input, complex_output=True)
+        return _complex_via_real_components(correlate1d, input, weights,
+                                            output, cval, **kwargs)
+
+    output = _ni_support._get_output(output, input)
+    weights = numpy.asarray(weights, dtype=numpy.float64)
+    if weights.ndim != 1 or weights.shape[0] < 1:
+        raise RuntimeError('no filter weights given')
+    if not weights.flags.contiguous:
+        weights = weights.copy()
+    axis = normalize_axis_index(axis, input.ndim)
+    if _invalid_origin(origin, len(weights)):
+        raise ValueError('Invalid origin; origin must satisfy '
+                         '-(len(weights) // 2) <= origin <= '
+                         '(len(weights)-1) // 2')
+    mode = _ni_support._extend_mode_to_code(mode)
+    _nd_image.correlate1d(input, weights, axis, output, mode, cval,
+                          origin)
+    return output
+
+
+@_ni_docstrings.docfiller
+def convolve1d(input, weights, axis=-1, output=None, mode="reflect",
+               cval=0.0, origin=0):
+    """Calculate a 1-D convolution along the given axis.
+
+    The lines of the array along the given axis are convolved with the
+    given weights.
+
+    Parameters
+    ----------
+    %(input)s
+    weights : ndarray
+        1-D sequence of numbers.
+    %(axis)s
+    %(output)s
+    %(mode_reflect)s
+    %(cval)s
+    %(origin)s
+
+    Returns
+    -------
+    convolve1d : ndarray
+        Convolved array with same shape as input
+
+    Examples
+    --------
+    >>> from scipy.ndimage import convolve1d
+    >>> convolve1d([2, 8, 0, 4, 1, 9, 9, 0], weights=[1, 3])
+    array([14, 24,  4, 13, 12, 36, 27,  0])
+    """
+    weights = weights[::-1]
+    origin = -origin
+    if not len(weights) & 1:
+        origin -= 1
+    weights = numpy.asarray(weights)
+    if weights.dtype.kind == 'c':
+        # pre-conjugate here to counteract the conjugation in correlate1d
+        weights = weights.conj()
+    return correlate1d(input, weights, axis, output, mode, cval, origin)
+
+
+def _gaussian_kernel1d(sigma, order, radius):
+    """
+    Computes a 1-D Gaussian convolution kernel.
+    """
+    if order < 0:
+        raise ValueError('order must be non-negative')
+    exponent_range = numpy.arange(order + 1)
+    sigma2 = sigma * sigma
+    x = numpy.arange(-radius, radius+1)
+    phi_x = numpy.exp(-0.5 / sigma2 * x ** 2)
+    phi_x = phi_x / phi_x.sum()
+
+    if order == 0:
+        return phi_x
+    else:
+        # f(x) = q(x) * phi(x) = q(x) * exp(p(x))
+        # f'(x) = (q'(x) + q(x) * p'(x)) * phi(x)
+        # p'(x) = -1 / sigma ** 2
+        # Implement q'(x) + q(x) * p'(x) as a matrix operator and apply to the
+        # coefficients of q(x)
+        q = numpy.zeros(order + 1)
+        q[0] = 1
+        D = numpy.diag(exponent_range[1:], 1)  # D @ q(x) = q'(x)
+        P = numpy.diag(numpy.ones(order)/-sigma2, -1)  # P @ q(x) = q(x) * p'(x)
+        Q_deriv = D + P
+        for _ in range(order):
+            q = Q_deriv.dot(q)
+        q = (x[:, None] ** exponent_range).dot(q)
+        return q * phi_x
+
+
+@_ni_docstrings.docfiller
+def gaussian_filter1d(input, sigma, axis=-1, order=0, output=None,
+                      mode="reflect", cval=0.0, truncate=4.0, *, radius=None):
+    """1-D Gaussian filter.
+
+    Parameters
+    ----------
+    %(input)s
+    sigma : scalar
+        standard deviation for Gaussian kernel
+    %(axis)s
+    order : int, optional
+        An order of 0 corresponds to convolution with a Gaussian
+        kernel. A positive order corresponds to convolution with
+        that derivative of a Gaussian.
+    %(output)s
+    %(mode_reflect)s
+    %(cval)s
+    truncate : float, optional
+        Truncate the filter at this many standard deviations.
+        Default is 4.0.
+    radius : None or int, optional
+        Radius of the Gaussian kernel. If specified, the size of
+        the kernel will be ``2*radius + 1``, and `truncate` is ignored.
+        Default is None.
+
+    Returns
+    -------
+    gaussian_filter1d : ndarray
+
+    Notes
+    -----
+    The Gaussian kernel will have size ``2*radius + 1`` along each axis. If
+    `radius` is None, a default ``radius = round(truncate * sigma)`` will be
+    used.
+
+    Examples
+    --------
+    >>> from scipy.ndimage import gaussian_filter1d
+    >>> import numpy as np
+    >>> gaussian_filter1d([1.0, 2.0, 3.0, 4.0, 5.0], 1)
+    array([ 1.42704095,  2.06782203,  3.        ,  3.93217797,  4.57295905])
+    >>> gaussian_filter1d([1.0, 2.0, 3.0, 4.0, 5.0], 4)
+    array([ 2.91948343,  2.95023502,  3.        ,  3.04976498,  3.08051657])
+    >>> import matplotlib.pyplot as plt
+    >>> rng = np.random.default_rng()
+    >>> x = rng.standard_normal(101).cumsum()
+    >>> y3 = gaussian_filter1d(x, 3)
+    >>> y6 = gaussian_filter1d(x, 6)
+    >>> plt.plot(x, 'k', label='original data')
+    >>> plt.plot(y3, '--', label='filtered, sigma=3')
+    >>> plt.plot(y6, ':', label='filtered, sigma=6')
+    >>> plt.legend()
+    >>> plt.grid()
+    >>> plt.show()
+
+    """
+    sd = float(sigma)
+    # make the radius of the filter equal to truncate standard deviations
+    lw = int(truncate * sd + 0.5)
+    if radius is not None:
+        lw = radius
+    if not isinstance(lw, numbers.Integral) or lw < 0:
+        raise ValueError('Radius must be a nonnegative integer.')
+    # Since we are calling correlate, not convolve, revert the kernel
+    weights = _gaussian_kernel1d(sigma, order, lw)[::-1]
+    return correlate1d(input, weights, axis, output, mode, cval, 0)
+
+
+@_ni_docstrings.docfiller
+def gaussian_filter(input, sigma, order=0, output=None,
+                    mode="reflect", cval=0.0, truncate=4.0, *, radius=None,
+                    axes=None):
+    """Multidimensional Gaussian filter.
+
+    Parameters
+    ----------
+    %(input)s
+    sigma : scalar or sequence of scalars
+        Standard deviation for Gaussian kernel. The standard
+        deviations of the Gaussian filter are given for each axis as a
+        sequence, or as a single number, in which case it is equal for
+        all axes.
+    order : int or sequence of ints, optional
+        The order of the filter along each axis is given as a sequence
+        of integers, or as a single number. An order of 0 corresponds
+        to convolution with a Gaussian kernel. A positive order
+        corresponds to convolution with that derivative of a Gaussian.
+    %(output)s
+    %(mode_multiple)s
+    %(cval)s
+    truncate : float, optional
+        Truncate the filter at this many standard deviations.
+        Default is 4.0.
+    radius : None or int or sequence of ints, optional
+        Radius of the Gaussian kernel. The radius are given for each axis
+        as a sequence, or as a single number, in which case it is equal
+        for all axes. If specified, the size of the kernel along each axis
+        will be ``2*radius + 1``, and `truncate` is ignored.
+        Default is None.
+    axes : tuple of int or None, optional
+        If None, `input` is filtered along all axes. Otherwise,
+        `input` is filtered along the specified axes. When `axes` is
+        specified, any tuples used for `sigma`, `order`, `mode` and/or `radius`
+        must match the length of `axes`. The ith entry in any of these tuples
+        corresponds to the ith entry in `axes`.
+
+    Returns
+    -------
+    gaussian_filter : ndarray
+        Returned array of same shape as `input`.
+
+    Notes
+    -----
+    The multidimensional filter is implemented as a sequence of
+    1-D convolution filters. The intermediate arrays are
+    stored in the same data type as the output. Therefore, for output
+    types with a limited precision, the results may be imprecise
+    because intermediate results may be stored with insufficient
+    precision.
+
+    The Gaussian kernel will have size ``2*radius + 1`` along each axis. If
+    `radius` is None, the default ``radius = round(truncate * sigma)`` will be
+    used.
+
+    Examples
+    --------
+    >>> from scipy.ndimage import gaussian_filter
+    >>> import numpy as np
+    >>> a = np.arange(50, step=2).reshape((5,5))
+    >>> a
+    array([[ 0,  2,  4,  6,  8],
+           [10, 12, 14, 16, 18],
+           [20, 22, 24, 26, 28],
+           [30, 32, 34, 36, 38],
+           [40, 42, 44, 46, 48]])
+    >>> gaussian_filter(a, sigma=1)
+    array([[ 4,  6,  8,  9, 11],
+           [10, 12, 14, 15, 17],
+           [20, 22, 24, 25, 27],
+           [29, 31, 33, 34, 36],
+           [35, 37, 39, 40, 42]])
+
+    >>> from scipy import datasets
+    >>> import matplotlib.pyplot as plt
+    >>> fig = plt.figure()
+    >>> plt.gray()  # show the filtered result in grayscale
+    >>> ax1 = fig.add_subplot(121)  # left side
+    >>> ax2 = fig.add_subplot(122)  # right side
+    >>> ascent = datasets.ascent()
+    >>> result = gaussian_filter(ascent, sigma=5)
+    >>> ax1.imshow(ascent)
+    >>> ax2.imshow(result)
+    >>> plt.show()
+    """
+    input = numpy.asarray(input)
+    output = _ni_support._get_output(output, input)
+
+    axes = _ni_support._check_axes(axes, input.ndim)
+    num_axes = len(axes)
+    orders = _ni_support._normalize_sequence(order, num_axes)
+    sigmas = _ni_support._normalize_sequence(sigma, num_axes)
+    modes = _ni_support._normalize_sequence(mode, num_axes)
+    radiuses = _ni_support._normalize_sequence(radius, num_axes)
+    axes = [(axes[ii], sigmas[ii], orders[ii], modes[ii], radiuses[ii])
+            for ii in range(num_axes) if sigmas[ii] > 1e-15]
+    if len(axes) > 0:
+        for axis, sigma, order, mode, radius in axes:
+            gaussian_filter1d(input, sigma, axis, order, output,
+                              mode, cval, truncate, radius=radius)
+            input = output
+    else:
+        output[...] = input[...]
+    return output
+
+
+@_ni_docstrings.docfiller
+def prewitt(input, axis=-1, output=None, mode="reflect", cval=0.0):
+    """Calculate a Prewitt filter.
+
+    Parameters
+    ----------
+    %(input)s
+    %(axis)s
+    %(output)s
+    %(mode_multiple)s
+    %(cval)s
+
+    Examples
+    --------
+    >>> from scipy import ndimage, datasets
+    >>> import matplotlib.pyplot as plt
+    >>> fig = plt.figure()
+    >>> plt.gray()  # show the filtered result in grayscale
+    >>> ax1 = fig.add_subplot(121)  # left side
+    >>> ax2 = fig.add_subplot(122)  # right side
+    >>> ascent = datasets.ascent()
+    >>> result = ndimage.prewitt(ascent)
+    >>> ax1.imshow(ascent)
+    >>> ax2.imshow(result)
+    >>> plt.show()
+    """
+    input = numpy.asarray(input)
+    axis = normalize_axis_index(axis, input.ndim)
+    output = _ni_support._get_output(output, input)
+    modes = _ni_support._normalize_sequence(mode, input.ndim)
+    correlate1d(input, [-1, 0, 1], axis, output, modes[axis], cval, 0)
+    axes = [ii for ii in range(input.ndim) if ii != axis]
+    for ii in axes:
+        correlate1d(output, [1, 1, 1], ii, output, modes[ii], cval, 0,)
+    return output
+
+
+@_ni_docstrings.docfiller
+def sobel(input, axis=-1, output=None, mode="reflect", cval=0.0):
+    """Calculate a Sobel filter.
+
+    Parameters
+    ----------
+    %(input)s
+    %(axis)s
+    %(output)s
+    %(mode_multiple)s
+    %(cval)s
+
+    Notes
+    -----
+    This function computes the axis-specific Sobel gradient.
+    The horizontal edges can emphasised with the horizontal trasform (axis=0),
+    the vertical edges with the vertical transform (axis=1) and so on for higher
+    dimensions. These can be combined to give the magnitude.
+
+    Examples
+    --------
+    >>> from scipy import ndimage, datasets
+    >>> import matplotlib.pyplot as plt
+    >>> import numpy as np
+    >>> ascent = datasets.ascent().astype('int32')
+    >>> sobel_h = ndimage.sobel(ascent, 0)  # horizontal gradient
+    >>> sobel_v = ndimage.sobel(ascent, 1)  # vertical gradient
+    >>> magnitude = np.sqrt(sobel_h**2 + sobel_v**2)
+    >>> magnitude *= 255.0 / np.max(magnitude)  # normalization
+    >>> fig, axs = plt.subplots(2, 2, figsize=(8, 8))
+    >>> plt.gray()  # show the filtered result in grayscale
+    >>> axs[0, 0].imshow(ascent)
+    >>> axs[0, 1].imshow(sobel_h)
+    >>> axs[1, 0].imshow(sobel_v)
+    >>> axs[1, 1].imshow(magnitude)
+    >>> titles = ["original", "horizontal", "vertical", "magnitude"]
+    >>> for i, ax in enumerate(axs.ravel()):
+    ...     ax.set_title(titles[i])
+    ...     ax.axis("off")
+    >>> plt.show()
+
+    """
+    input = numpy.asarray(input)
+    axis = normalize_axis_index(axis, input.ndim)
+    output = _ni_support._get_output(output, input)
+    modes = _ni_support._normalize_sequence(mode, input.ndim)
+    correlate1d(input, [-1, 0, 1], axis, output, modes[axis], cval, 0)
+    axes = [ii for ii in range(input.ndim) if ii != axis]
+    for ii in axes:
+        correlate1d(output, [1, 2, 1], ii, output, modes[ii], cval, 0)
+    return output
+
+
+@_ni_docstrings.docfiller
+def generic_laplace(input, derivative2, output=None, mode="reflect",
+                    cval=0.0,
+                    extra_arguments=(),
+                    extra_keywords=None):
+    """
+    N-D Laplace filter using a provided second derivative function.
+
+    Parameters
+    ----------
+    %(input)s
+    derivative2 : callable
+        Callable with the following signature::
+
+            derivative2(input, axis, output, mode, cval,
+                        *extra_arguments, **extra_keywords)
+
+        See `extra_arguments`, `extra_keywords` below.
+    %(output)s
+    %(mode_multiple)s
+    %(cval)s
+    %(extra_keywords)s
+    %(extra_arguments)s
+    """
+    if extra_keywords is None:
+        extra_keywords = {}
+    input = numpy.asarray(input)
+    output = _ni_support._get_output(output, input)
+    axes = list(range(input.ndim))
+    if len(axes) > 0:
+        modes = _ni_support._normalize_sequence(mode, len(axes))
+        derivative2(input, axes[0], output, modes[0], cval,
+                    *extra_arguments, **extra_keywords)
+        for ii in range(1, len(axes)):
+            tmp = derivative2(input, axes[ii], output.dtype, modes[ii], cval,
+                              *extra_arguments, **extra_keywords)
+            output += tmp
+    else:
+        output[...] = input[...]
+    return output
+
+
+@_ni_docstrings.docfiller
+def laplace(input, output=None, mode="reflect", cval=0.0):
+    """N-D Laplace filter based on approximate second derivatives.
+
+    Parameters
+    ----------
+    %(input)s
+    %(output)s
+    %(mode_multiple)s
+    %(cval)s
+
+    Examples
+    --------
+    >>> from scipy import ndimage, datasets
+    >>> import matplotlib.pyplot as plt
+    >>> fig = plt.figure()
+    >>> plt.gray()  # show the filtered result in grayscale
+    >>> ax1 = fig.add_subplot(121)  # left side
+    >>> ax2 = fig.add_subplot(122)  # right side
+    >>> ascent = datasets.ascent()
+    >>> result = ndimage.laplace(ascent)
+    >>> ax1.imshow(ascent)
+    >>> ax2.imshow(result)
+    >>> plt.show()
+    """
+    def derivative2(input, axis, output, mode, cval):
+        return correlate1d(input, [1, -2, 1], axis, output, mode, cval, 0)
+    return generic_laplace(input, derivative2, output, mode, cval)
+
+
+@_ni_docstrings.docfiller
+def gaussian_laplace(input, sigma, output=None, mode="reflect",
+                     cval=0.0, **kwargs):
+    """Multidimensional Laplace filter using Gaussian second derivatives.
+
+    Parameters
+    ----------
+    %(input)s
+    sigma : scalar or sequence of scalars
+        The standard deviations of the Gaussian filter are given for
+        each axis as a sequence, or as a single number, in which case
+        it is equal for all axes.
+    %(output)s
+    %(mode_multiple)s
+    %(cval)s
+    Extra keyword arguments will be passed to gaussian_filter().
+
+    Examples
+    --------
+    >>> from scipy import ndimage, datasets
+    >>> import matplotlib.pyplot as plt
+    >>> ascent = datasets.ascent()
+
+    >>> fig = plt.figure()
+    >>> plt.gray()  # show the filtered result in grayscale
+    >>> ax1 = fig.add_subplot(121)  # left side
+    >>> ax2 = fig.add_subplot(122)  # right side
+
+    >>> result = ndimage.gaussian_laplace(ascent, sigma=1)
+    >>> ax1.imshow(result)
+
+    >>> result = ndimage.gaussian_laplace(ascent, sigma=3)
+    >>> ax2.imshow(result)
+    >>> plt.show()
+    """
+    input = numpy.asarray(input)
+
+    def derivative2(input, axis, output, mode, cval, sigma, **kwargs):
+        order = [0] * input.ndim
+        order[axis] = 2
+        return gaussian_filter(input, sigma, order, output, mode, cval,
+                               **kwargs)
+
+    return generic_laplace(input, derivative2, output, mode, cval,
+                           extra_arguments=(sigma,),
+                           extra_keywords=kwargs)
+
+
+@_ni_docstrings.docfiller
+def generic_gradient_magnitude(input, derivative, output=None,
+                               mode="reflect", cval=0.0,
+                               extra_arguments=(), extra_keywords=None):
+    """Gradient magnitude using a provided gradient function.
+
+    Parameters
+    ----------
+    %(input)s
+    derivative : callable
+        Callable with the following signature::
+
+            derivative(input, axis, output, mode, cval,
+                       *extra_arguments, **extra_keywords)
+
+        See `extra_arguments`, `extra_keywords` below.
+        `derivative` can assume that `input` and `output` are ndarrays.
+        Note that the output from `derivative` is modified inplace;
+        be careful to copy important inputs before returning them.
+    %(output)s
+    %(mode_multiple)s
+    %(cval)s
+    %(extra_keywords)s
+    %(extra_arguments)s
+    """
+    if extra_keywords is None:
+        extra_keywords = {}
+    input = numpy.asarray(input)
+    output = _ni_support._get_output(output, input)
+    axes = list(range(input.ndim))
+    if len(axes) > 0:
+        modes = _ni_support._normalize_sequence(mode, len(axes))
+        derivative(input, axes[0], output, modes[0], cval,
+                   *extra_arguments, **extra_keywords)
+        numpy.multiply(output, output, output)
+        for ii in range(1, len(axes)):
+            tmp = derivative(input, axes[ii], output.dtype, modes[ii], cval,
+                             *extra_arguments, **extra_keywords)
+            numpy.multiply(tmp, tmp, tmp)
+            output += tmp
+        # This allows the sqrt to work with a different default casting
+        numpy.sqrt(output, output, casting='unsafe')
+    else:
+        output[...] = input[...]
+    return output
+
+
+@_ni_docstrings.docfiller
+def gaussian_gradient_magnitude(input, sigma, output=None,
+                                mode="reflect", cval=0.0, **kwargs):
+    """Multidimensional gradient magnitude using Gaussian derivatives.
+
+    Parameters
+    ----------
+    %(input)s
+    sigma : scalar or sequence of scalars
+        The standard deviations of the Gaussian filter are given for
+        each axis as a sequence, or as a single number, in which case
+        it is equal for all axes.
+    %(output)s
+    %(mode_multiple)s
+    %(cval)s
+    Extra keyword arguments will be passed to gaussian_filter().
+
+    Returns
+    -------
+    gaussian_gradient_magnitude : ndarray
+        Filtered array. Has the same shape as `input`.
+
+    Examples
+    --------
+    >>> from scipy import ndimage, datasets
+    >>> import matplotlib.pyplot as plt
+    >>> fig = plt.figure()
+    >>> plt.gray()  # show the filtered result in grayscale
+    >>> ax1 = fig.add_subplot(121)  # left side
+    >>> ax2 = fig.add_subplot(122)  # right side
+    >>> ascent = datasets.ascent()
+    >>> result = ndimage.gaussian_gradient_magnitude(ascent, sigma=5)
+    >>> ax1.imshow(ascent)
+    >>> ax2.imshow(result)
+    >>> plt.show()
+    """
+    input = numpy.asarray(input)
+
+    def derivative(input, axis, output, mode, cval, sigma, **kwargs):
+        order = [0] * input.ndim
+        order[axis] = 1
+        return gaussian_filter(input, sigma, order, output, mode,
+                               cval, **kwargs)
+
+    return generic_gradient_magnitude(input, derivative, output, mode,
+                                      cval, extra_arguments=(sigma,),
+                                      extra_keywords=kwargs)
+
+
+def _correlate_or_convolve(input, weights, output, mode, cval, origin,
+                           convolution):
+    input = numpy.asarray(input)
+    weights = numpy.asarray(weights)
+    complex_input = input.dtype.kind == 'c'
+    complex_weights = weights.dtype.kind == 'c'
+    if complex_input or complex_weights:
+        if complex_weights and not convolution:
+            # As for numpy.correlate, conjugate weights rather than input.
+            weights = weights.conj()
+        kwargs = dict(
+            mode=mode, origin=origin, convolution=convolution
+        )
+        output = _ni_support._get_output(output, input, complex_output=True)
+
+        return _complex_via_real_components(_correlate_or_convolve, input,
+                                            weights, output, cval, **kwargs)
+
+    origins = _ni_support._normalize_sequence(origin, input.ndim)
+    weights = numpy.asarray(weights, dtype=numpy.float64)
+    wshape = [ii for ii in weights.shape if ii > 0]
+    if len(wshape) != input.ndim:
+        raise RuntimeError('filter weights array has incorrect shape.')
+    if convolution:
+        weights = weights[tuple([slice(None, None, -1)] * weights.ndim)]
+        for ii in range(len(origins)):
+            origins[ii] = -origins[ii]
+            if not weights.shape[ii] & 1:
+                origins[ii] -= 1
+    for origin, lenw in zip(origins, wshape):
+        if _invalid_origin(origin, lenw):
+            raise ValueError('Invalid origin; origin must satisfy '
+                             '-(weights.shape[k] // 2) <= origin[k] <= '
+                             '(weights.shape[k]-1) // 2')
+
+    if not weights.flags.contiguous:
+        weights = weights.copy()
+    output = _ni_support._get_output(output, input)
+    temp_needed = numpy.may_share_memory(input, output)
+    if temp_needed:
+        # input and output arrays cannot share memory
+        temp = output
+        output = _ni_support._get_output(output.dtype, input)
+    if not isinstance(mode, str) and isinstance(mode, Iterable):
+        raise RuntimeError("A sequence of modes is not supported")
+    mode = _ni_support._extend_mode_to_code(mode)
+    _nd_image.correlate(input, weights, output, mode, cval, origins)
+    if temp_needed:
+        temp[...] = output
+        output = temp
+    return output
+
+
+@_ni_docstrings.docfiller
+def correlate(input, weights, output=None, mode='reflect', cval=0.0,
+              origin=0):
+    """
+    Multidimensional correlation.
+
+    The array is correlated with the given kernel.
+
+    Parameters
+    ----------
+    %(input)s
+    weights : ndarray
+        array of weights, same number of dimensions as input
+    %(output)s
+    %(mode_reflect)s
+    %(cval)s
+    %(origin_multiple)s
+
+    Returns
+    -------
+    result : ndarray
+        The result of correlation of `input` with `weights`.
+
+    See Also
+    --------
+    convolve : Convolve an image with a kernel.
+
+    Examples
+    --------
+    Correlation is the process of moving a filter mask often referred to
+    as kernel over the image and computing the sum of products at each location.
+
+    >>> from scipy.ndimage import correlate
+    >>> import numpy as np
+    >>> input_img = np.arange(25).reshape(5,5)
+    >>> print(input_img)
+    [[ 0  1  2  3  4]
+    [ 5  6  7  8  9]
+    [10 11 12 13 14]
+    [15 16 17 18 19]
+    [20 21 22 23 24]]
+
+    Define a kernel (weights) for correlation. In this example, it is for sum of
+    center and up, down, left and right next elements.
+
+    >>> weights = [[0, 1, 0],
+    ...            [1, 1, 1],
+    ...            [0, 1, 0]]
+
+    We can calculate a correlation result:
+    For example, element ``[2,2]`` is ``7 + 11 + 12 + 13 + 17 = 60``.
+
+    >>> correlate(input_img, weights)
+    array([[  6,  10,  15,  20,  24],
+        [ 26,  30,  35,  40,  44],
+        [ 51,  55,  60,  65,  69],
+        [ 76,  80,  85,  90,  94],
+        [ 96, 100, 105, 110, 114]])
+
+    """
+    return _correlate_or_convolve(input, weights, output, mode, cval,
+                                  origin, False)
+
+
+@_ni_docstrings.docfiller
+def convolve(input, weights, output=None, mode='reflect', cval=0.0,
+             origin=0):
+    """
+    Multidimensional convolution.
+
+    The array is convolved with the given kernel.
+
+    Parameters
+    ----------
+    %(input)s
+    weights : array_like
+        Array of weights, same number of dimensions as input
+    %(output)s
+    %(mode_reflect)s
+    cval : scalar, optional
+        Value to fill past edges of input if `mode` is 'constant'. Default
+        is 0.0
+    origin : int, optional
+        Controls the origin of the input signal, which is where the
+        filter is centered to produce the first element of the output.
+        Positive values shift the filter to the right, and negative values
+        shift the filter to the left. Default is 0.
+
+    Returns
+    -------
+    result : ndarray
+        The result of convolution of `input` with `weights`.
+
+    See Also
+    --------
+    correlate : Correlate an image with a kernel.
+
+    Notes
+    -----
+    Each value in result is :math:`C_i = \\sum_j{I_{i+k-j} W_j}`, where
+    W is the `weights` kernel,
+    j is the N-D spatial index over :math:`W`,
+    I is the `input` and k is the coordinate of the center of
+    W, specified by `origin` in the input parameters.
+
+    Examples
+    --------
+    Perhaps the simplest case to understand is ``mode='constant', cval=0.0``,
+    because in this case borders (i.e., where the `weights` kernel, centered
+    on any one value, extends beyond an edge of `input`) are treated as zeros.
+
+    >>> import numpy as np
+    >>> a = np.array([[1, 2, 0, 0],
+    ...               [5, 3, 0, 4],
+    ...               [0, 0, 0, 7],
+    ...               [9, 3, 0, 0]])
+    >>> k = np.array([[1,1,1],[1,1,0],[1,0,0]])
+    >>> from scipy import ndimage
+    >>> ndimage.convolve(a, k, mode='constant', cval=0.0)
+    array([[11, 10,  7,  4],
+           [10,  3, 11, 11],
+           [15, 12, 14,  7],
+           [12,  3,  7,  0]])
+
+    Setting ``cval=1.0`` is equivalent to padding the outer edge of `input`
+    with 1.0's (and then extracting only the original region of the result).
+
+    >>> ndimage.convolve(a, k, mode='constant', cval=1.0)
+    array([[13, 11,  8,  7],
+           [11,  3, 11, 14],
+           [16, 12, 14, 10],
+           [15,  6, 10,  5]])
+
+    With ``mode='reflect'`` (the default), outer values are reflected at the
+    edge of `input` to fill in missing values.
+
+    >>> b = np.array([[2, 0, 0],
+    ...               [1, 0, 0],
+    ...               [0, 0, 0]])
+    >>> k = np.array([[0,1,0], [0,1,0], [0,1,0]])
+    >>> ndimage.convolve(b, k, mode='reflect')
+    array([[5, 0, 0],
+           [3, 0, 0],
+           [1, 0, 0]])
+
+    This includes diagonally at the corners.
+
+    >>> k = np.array([[1,0,0],[0,1,0],[0,0,1]])
+    >>> ndimage.convolve(b, k)
+    array([[4, 2, 0],
+           [3, 2, 0],
+           [1, 1, 0]])
+
+    With ``mode='nearest'``, the single nearest value in to an edge in
+    `input` is repeated as many times as needed to match the overlapping
+    `weights`.
+
+    >>> c = np.array([[2, 0, 1],
+    ...               [1, 0, 0],
+    ...               [0, 0, 0]])
+    >>> k = np.array([[0, 1, 0],
+    ...               [0, 1, 0],
+    ...               [0, 1, 0],
+    ...               [0, 1, 0],
+    ...               [0, 1, 0]])
+    >>> ndimage.convolve(c, k, mode='nearest')
+    array([[7, 0, 3],
+           [5, 0, 2],
+           [3, 0, 1]])
+
+    """
+    return _correlate_or_convolve(input, weights, output, mode, cval,
+                                  origin, True)
+
+
+
+[docs] +@_ni_docstrings.docfiller +def uniform_filter1d(input, size, axis=-1, output=None, + mode="reflect", cval=0.0, origin=0): + """Calculate a 1-D uniform filter along the given axis. + + The lines of the array along the given axis are filtered with a + uniform filter of given size. + + Parameters + ---------- + %(input)s + size : int + length of uniform filter + %(axis)s + %(output)s + %(mode_reflect)s + %(cval)s + %(origin)s + + Examples + -------- + >>> from scipy.ndimage import uniform_filter1d + >>> uniform_filter1d([2, 8, 0, 4, 1, 9, 9, 0], size=3) + array([4, 3, 4, 1, 4, 6, 6, 3]) + """ + input = numpy.asarray(input) + axis = normalize_axis_index(axis, input.ndim) + if size < 1: + raise RuntimeError('incorrect filter size') + complex_output = input.dtype.kind == 'c' + output = _ni_support._get_output(output, input, + complex_output=complex_output) + if (size // 2 + origin < 0) or (size // 2 + origin >= size): + raise ValueError('invalid origin') + mode = _ni_support._extend_mode_to_code(mode) + if not complex_output: + _nd_image.uniform_filter1d(input, size, axis, output, mode, cval, + origin) + else: + _nd_image.uniform_filter1d(input.real, size, axis, output.real, mode, + numpy.real(cval), origin) + _nd_image.uniform_filter1d(input.imag, size, axis, output.imag, mode, + numpy.imag(cval), origin) + return output
+ + + +
+[docs] +@_ni_docstrings.docfiller +def uniform_filter(input, size=3, output=None, mode="reflect", + cval=0.0, origin=0, *, axes=None): + """Multidimensional uniform filter. + + Parameters + ---------- + %(input)s + size : int or sequence of ints, optional + The sizes of the uniform filter are given for each axis as a + sequence, or as a single number, in which case the size is + equal for all axes. + %(output)s + %(mode_multiple)s + %(cval)s + %(origin_multiple)s + axes : tuple of int or None, optional + If None, `input` is filtered along all axes. Otherwise, + `input` is filtered along the specified axes. When `axes` is + specified, any tuples used for `size`, `origin`, and/or `mode` + must match the length of `axes`. The ith entry in any of these tuples + corresponds to the ith entry in `axes`. + + Returns + ------- + uniform_filter : ndarray + Filtered array. Has the same shape as `input`. + + Notes + ----- + The multidimensional filter is implemented as a sequence of + 1-D uniform filters. The intermediate arrays are stored + in the same data type as the output. Therefore, for output types + with a limited precision, the results may be imprecise because + intermediate results may be stored with insufficient precision. + + Examples + -------- + >>> from scipy import ndimage, datasets + >>> import matplotlib.pyplot as plt + >>> fig = plt.figure() + >>> plt.gray() # show the filtered result in grayscale + >>> ax1 = fig.add_subplot(121) # left side + >>> ax2 = fig.add_subplot(122) # right side + >>> ascent = datasets.ascent() + >>> result = ndimage.uniform_filter(ascent, size=20) + >>> ax1.imshow(ascent) + >>> ax2.imshow(result) + >>> plt.show() + """ + input = numpy.asarray(input) + output = _ni_support._get_output(output, input, + complex_output=input.dtype.kind == 'c') + axes = _ni_support._check_axes(axes, input.ndim) + num_axes = len(axes) + sizes = _ni_support._normalize_sequence(size, num_axes) + origins = _ni_support._normalize_sequence(origin, num_axes) + modes = _ni_support._normalize_sequence(mode, num_axes) + axes = [(axes[ii], sizes[ii], origins[ii], modes[ii]) + for ii in range(num_axes) if sizes[ii] > 1] + if len(axes) > 0: + for axis, size, origin, mode in axes: + uniform_filter1d(input, int(size), axis, output, mode, + cval, origin) + input = output + else: + output[...] = input[...] + return output
+ + + +@_ni_docstrings.docfiller +def minimum_filter1d(input, size, axis=-1, output=None, + mode="reflect", cval=0.0, origin=0): + """Calculate a 1-D minimum filter along the given axis. + + The lines of the array along the given axis are filtered with a + minimum filter of given size. + + Parameters + ---------- + %(input)s + size : int + length along which to calculate 1D minimum + %(axis)s + %(output)s + %(mode_reflect)s + %(cval)s + %(origin)s + + Notes + ----- + This function implements the MINLIST algorithm [1]_, as described by + Richard Harter [2]_, and has a guaranteed O(n) performance, `n` being + the `input` length, regardless of filter size. + + References + ---------- + .. [1] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.42.2777 + .. [2] http://www.richardhartersworld.com/cri/2001/slidingmin.html + + + Examples + -------- + >>> from scipy.ndimage import minimum_filter1d + >>> minimum_filter1d([2, 8, 0, 4, 1, 9, 9, 0], size=3) + array([2, 0, 0, 0, 1, 1, 0, 0]) + """ + input = numpy.asarray(input) + if numpy.iscomplexobj(input): + raise TypeError('Complex type not supported') + axis = normalize_axis_index(axis, input.ndim) + if size < 1: + raise RuntimeError('incorrect filter size') + output = _ni_support._get_output(output, input) + if (size // 2 + origin < 0) or (size // 2 + origin >= size): + raise ValueError('invalid origin') + mode = _ni_support._extend_mode_to_code(mode) + _nd_image.min_or_max_filter1d(input, size, axis, output, mode, cval, + origin, 1) + return output + + +@_ni_docstrings.docfiller +def maximum_filter1d(input, size, axis=-1, output=None, + mode="reflect", cval=0.0, origin=0): + """Calculate a 1-D maximum filter along the given axis. + + The lines of the array along the given axis are filtered with a + maximum filter of given size. + + Parameters + ---------- + %(input)s + size : int + Length along which to calculate the 1-D maximum. + %(axis)s + %(output)s + %(mode_reflect)s + %(cval)s + %(origin)s + + Returns + ------- + maximum1d : ndarray, None + Maximum-filtered array with same shape as input. + None if `output` is not None + + Notes + ----- + This function implements the MAXLIST algorithm [1]_, as described by + Richard Harter [2]_, and has a guaranteed O(n) performance, `n` being + the `input` length, regardless of filter size. + + References + ---------- + .. [1] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.42.2777 + .. [2] http://www.richardhartersworld.com/cri/2001/slidingmin.html + + Examples + -------- + >>> from scipy.ndimage import maximum_filter1d + >>> maximum_filter1d([2, 8, 0, 4, 1, 9, 9, 0], size=3) + array([8, 8, 8, 4, 9, 9, 9, 9]) + """ + input = numpy.asarray(input) + if numpy.iscomplexobj(input): + raise TypeError('Complex type not supported') + axis = normalize_axis_index(axis, input.ndim) + if size < 1: + raise RuntimeError('incorrect filter size') + output = _ni_support._get_output(output, input) + if (size // 2 + origin < 0) or (size // 2 + origin >= size): + raise ValueError('invalid origin') + mode = _ni_support._extend_mode_to_code(mode) + _nd_image.min_or_max_filter1d(input, size, axis, output, mode, cval, + origin, 0) + return output + + +def _min_or_max_filter(input, size, footprint, structure, output, mode, + cval, origin, minimum, axes=None): + if (size is not None) and (footprint is not None): + warnings.warn("ignoring size because footprint is set", UserWarning, stacklevel=3) + if structure is None: + if footprint is None: + if size is None: + raise RuntimeError("no footprint provided") + separable = True + else: + footprint = numpy.asarray(footprint, dtype=bool) + if not footprint.any(): + raise ValueError("All-zero footprint is not supported.") + if footprint.all(): + size = footprint.shape + footprint = None + separable = True + else: + separable = False + else: + structure = numpy.asarray(structure, dtype=numpy.float64) + separable = False + if footprint is None: + footprint = numpy.ones(structure.shape, bool) + else: + footprint = numpy.asarray(footprint, dtype=bool) + input = numpy.asarray(input) + if numpy.iscomplexobj(input): + raise TypeError('Complex type not supported') + output = _ni_support._get_output(output, input) + temp_needed = numpy.may_share_memory(input, output) + if temp_needed: + # input and output arrays cannot share memory + temp = output + output = _ni_support._get_output(output.dtype, input) + axes = _ni_support._check_axes(axes, input.ndim) + num_axes = len(axes) + if separable: + origins = _ni_support._normalize_sequence(origin, num_axes) + sizes = _ni_support._normalize_sequence(size, num_axes) + modes = _ni_support._normalize_sequence(mode, num_axes) + axes = [(axes[ii], sizes[ii], origins[ii], modes[ii]) + for ii in range(len(axes)) if sizes[ii] > 1] + if minimum: + filter_ = minimum_filter1d + else: + filter_ = maximum_filter1d + if len(axes) > 0: + for axis, size, origin, mode in axes: + filter_(input, int(size), axis, output, mode, cval, origin) + input = output + else: + output[...] = input[...] + else: + origins = _ni_support._normalize_sequence(origin, input.ndim) + if num_axes < input.ndim: + if footprint.ndim != num_axes: + raise RuntimeError("footprint array has incorrect shape") + footprint = numpy.expand_dims( + footprint, + tuple(ax for ax in range(input.ndim) if ax not in axes) + ) + fshape = [ii for ii in footprint.shape if ii > 0] + if len(fshape) != input.ndim: + raise RuntimeError('footprint array has incorrect shape.') + for origin, lenf in zip(origins, fshape): + if (lenf // 2 + origin < 0) or (lenf // 2 + origin >= lenf): + raise ValueError('invalid origin') + if not footprint.flags.contiguous: + footprint = footprint.copy() + if structure is not None: + if len(structure.shape) != input.ndim: + raise RuntimeError('structure array has incorrect shape') + if num_axes != structure.ndim: + structure = numpy.expand_dims( + structure, + tuple(ax for ax in range(structure.ndim) if ax not in axes) + ) + if not structure.flags.contiguous: + structure = structure.copy() + if not isinstance(mode, str) and isinstance(mode, Iterable): + raise RuntimeError( + "A sequence of modes is not supported for non-separable " + "footprints") + mode = _ni_support._extend_mode_to_code(mode) + _nd_image.min_or_max_filter(input, footprint, structure, output, + mode, cval, origins, minimum) + if temp_needed: + temp[...] = output + output = temp + return output + + +@_ni_docstrings.docfiller +def minimum_filter(input, size=None, footprint=None, output=None, + mode="reflect", cval=0.0, origin=0, *, axes=None): + """Calculate a multidimensional minimum filter. + + Parameters + ---------- + %(input)s + %(size_foot)s + %(output)s + %(mode_multiple)s + %(cval)s + %(origin_multiple)s + axes : tuple of int or None, optional + If None, `input` is filtered along all axes. Otherwise, + `input` is filtered along the specified axes. When `axes` is + specified, any tuples used for `size`, `origin`, and/or `mode` + must match the length of `axes`. The ith entry in any of these tuples + corresponds to the ith entry in `axes`. + + Returns + ------- + minimum_filter : ndarray + Filtered array. Has the same shape as `input`. + + Notes + ----- + A sequence of modes (one per axis) is only supported when the footprint is + separable. Otherwise, a single mode string must be provided. + + Examples + -------- + >>> from scipy import ndimage, datasets + >>> import matplotlib.pyplot as plt + >>> fig = plt.figure() + >>> plt.gray() # show the filtered result in grayscale + >>> ax1 = fig.add_subplot(121) # left side + >>> ax2 = fig.add_subplot(122) # right side + >>> ascent = datasets.ascent() + >>> result = ndimage.minimum_filter(ascent, size=20) + >>> ax1.imshow(ascent) + >>> ax2.imshow(result) + >>> plt.show() + """ + return _min_or_max_filter(input, size, footprint, None, output, mode, + cval, origin, 1, axes) + + +@_ni_docstrings.docfiller +def maximum_filter(input, size=None, footprint=None, output=None, + mode="reflect", cval=0.0, origin=0, *, axes=None): + """Calculate a multidimensional maximum filter. + + Parameters + ---------- + %(input)s + %(size_foot)s + %(output)s + %(mode_multiple)s + %(cval)s + %(origin_multiple)s + axes : tuple of int or None, optional + If None, `input` is filtered along all axes. Otherwise, + `input` is filtered along the specified axes. When `axes` is + specified, any tuples used for `size`, `origin`, and/or `mode` + must match the length of `axes`. The ith entry in any of these tuples + corresponds to the ith entry in `axes`. + + Returns + ------- + maximum_filter : ndarray + Filtered array. Has the same shape as `input`. + + Notes + ----- + A sequence of modes (one per axis) is only supported when the footprint is + separable. Otherwise, a single mode string must be provided. + + Examples + -------- + >>> from scipy import ndimage, datasets + >>> import matplotlib.pyplot as plt + >>> fig = plt.figure() + >>> plt.gray() # show the filtered result in grayscale + >>> ax1 = fig.add_subplot(121) # left side + >>> ax2 = fig.add_subplot(122) # right side + >>> ascent = datasets.ascent() + >>> result = ndimage.maximum_filter(ascent, size=20) + >>> ax1.imshow(ascent) + >>> ax2.imshow(result) + >>> plt.show() + """ + return _min_or_max_filter(input, size, footprint, None, output, mode, + cval, origin, 0, axes) + + +@_ni_docstrings.docfiller +def _rank_filter(input, rank, size=None, footprint=None, output=None, + mode="reflect", cval=0.0, origin=0, operation='rank', + axes=None): + if (size is not None) and (footprint is not None): + warnings.warn("ignoring size because footprint is set", UserWarning, stacklevel=3) + input = numpy.asarray(input) + if numpy.iscomplexobj(input): + raise TypeError('Complex type not supported') + axes = _ni_support._check_axes(axes, input.ndim) + num_axes = len(axes) + origins = _ni_support._normalize_sequence(origin, num_axes) + if footprint is None: + if size is None: + raise RuntimeError("no footprint or filter size provided") + sizes = _ni_support._normalize_sequence(size, num_axes) + footprint = numpy.ones(sizes, dtype=bool) + else: + footprint = numpy.asarray(footprint, dtype=bool) + if num_axes < input.ndim: + # set origin = 0 for any axes not being filtered + origins_temp = [0,] * input.ndim + for o, ax in zip(origins, axes): + origins_temp[ax] = o + origins = origins_temp + + if not isinstance(mode, str) and isinstance(mode, Iterable): + # set mode = 'constant' for any axes not being filtered + modes = _ni_support._normalize_sequence(mode, num_axes) + modes_temp = ['constant'] * input.ndim + for m, ax in zip(modes, axes): + modes_temp[ax] = m + mode = modes_temp + + # insert singleton dimension along any non-filtered axes + if footprint.ndim != num_axes: + raise RuntimeError("footprint array has incorrect shape") + footprint = numpy.expand_dims( + footprint, + tuple(ax for ax in range(input.ndim) if ax not in axes) + ) + fshape = [ii for ii in footprint.shape if ii > 0] + if len(fshape) != input.ndim: + raise RuntimeError('footprint array has incorrect shape.') + for origin, lenf in zip(origins, fshape): + if (lenf // 2 + origin < 0) or (lenf // 2 + origin >= lenf): + raise ValueError('invalid origin') + if not footprint.flags.contiguous: + footprint = footprint.copy() + filter_size = numpy.where(footprint, 1, 0).sum() + if operation == 'median': + rank = filter_size // 2 + elif operation == 'percentile': + percentile = rank + if percentile < 0.0: + percentile += 100.0 + if percentile < 0 or percentile > 100: + raise RuntimeError('invalid percentile') + if percentile == 100.0: + rank = filter_size - 1 + else: + rank = int(float(filter_size) * percentile / 100.0) + if rank < 0: + rank += filter_size + if rank < 0 or rank >= filter_size: + raise RuntimeError('rank not within filter footprint size') + if rank == 0: + return minimum_filter(input, None, footprint, output, mode, cval, + origins, axes=None) + elif rank == filter_size - 1: + return maximum_filter(input, None, footprint, output, mode, cval, + origins, axes=None) + else: + output = _ni_support._get_output(output, input) + temp_needed = numpy.may_share_memory(input, output) + if temp_needed: + # input and output arrays cannot share memory + temp = output + output = _ni_support._get_output(output.dtype, input) + if not isinstance(mode, str) and isinstance(mode, Iterable): + raise RuntimeError( + "A sequence of modes is not supported by non-separable rank " + "filters") + mode = _ni_support._extend_mode_to_code(mode) + _nd_image.rank_filter(input, rank, footprint, output, mode, cval, + origins) + if temp_needed: + temp[...] = output + output = temp + return output + + +@_ni_docstrings.docfiller +def rank_filter(input, rank, size=None, footprint=None, output=None, + mode="reflect", cval=0.0, origin=0, *, axes=None): + """Calculate a multidimensional rank filter. + + Parameters + ---------- + %(input)s + rank : int + The rank parameter may be less than zero, i.e., rank = -1 + indicates the largest element. + %(size_foot)s + %(output)s + %(mode_reflect)s + %(cval)s + %(origin_multiple)s + axes : tuple of int or None, optional + If None, `input` is filtered along all axes. Otherwise, + `input` is filtered along the specified axes. + + Returns + ------- + rank_filter : ndarray + Filtered array. Has the same shape as `input`. + + Examples + -------- + >>> from scipy import ndimage, datasets + >>> import matplotlib.pyplot as plt + >>> fig = plt.figure() + >>> plt.gray() # show the filtered result in grayscale + >>> ax1 = fig.add_subplot(121) # left side + >>> ax2 = fig.add_subplot(122) # right side + >>> ascent = datasets.ascent() + >>> result = ndimage.rank_filter(ascent, rank=42, size=20) + >>> ax1.imshow(ascent) + >>> ax2.imshow(result) + >>> plt.show() + """ + rank = operator.index(rank) + return _rank_filter(input, rank, size, footprint, output, mode, cval, + origin, 'rank', axes=axes) + + +@_ni_docstrings.docfiller +def median_filter(input, size=None, footprint=None, output=None, + mode="reflect", cval=0.0, origin=0, *, axes=None): + """ + Calculate a multidimensional median filter. + + Parameters + ---------- + %(input)s + %(size_foot)s + %(output)s + %(mode_reflect)s + %(cval)s + %(origin_multiple)s + axes : tuple of int or None, optional + If None, `input` is filtered along all axes. Otherwise, + `input` is filtered along the specified axes. + + Returns + ------- + median_filter : ndarray + Filtered array. Has the same shape as `input`. + + See Also + -------- + scipy.signal.medfilt2d + + Notes + ----- + For 2-dimensional images with ``uint8``, ``float32`` or ``float64`` dtypes + the specialised function `scipy.signal.medfilt2d` may be faster. It is + however limited to constant mode with ``cval=0``. + + Examples + -------- + >>> from scipy import ndimage, datasets + >>> import matplotlib.pyplot as plt + >>> fig = plt.figure() + >>> plt.gray() # show the filtered result in grayscale + >>> ax1 = fig.add_subplot(121) # left side + >>> ax2 = fig.add_subplot(122) # right side + >>> ascent = datasets.ascent() + >>> result = ndimage.median_filter(ascent, size=20) + >>> ax1.imshow(ascent) + >>> ax2.imshow(result) + >>> plt.show() + """ + return _rank_filter(input, 0, size, footprint, output, mode, cval, + origin, 'median', axes=axes) + + +@_ni_docstrings.docfiller +def percentile_filter(input, percentile, size=None, footprint=None, + output=None, mode="reflect", cval=0.0, origin=0, *, + axes=None): + """Calculate a multidimensional percentile filter. + + Parameters + ---------- + %(input)s + percentile : scalar + The percentile parameter may be less than zero, i.e., + percentile = -20 equals percentile = 80 + %(size_foot)s + %(output)s + %(mode_reflect)s + %(cval)s + %(origin_multiple)s + axes : tuple of int or None, optional + If None, `input` is filtered along all axes. Otherwise, + `input` is filtered along the specified axes. + + Returns + ------- + percentile_filter : ndarray + Filtered array. Has the same shape as `input`. + + Examples + -------- + >>> from scipy import ndimage, datasets + >>> import matplotlib.pyplot as plt + >>> fig = plt.figure() + >>> plt.gray() # show the filtered result in grayscale + >>> ax1 = fig.add_subplot(121) # left side + >>> ax2 = fig.add_subplot(122) # right side + >>> ascent = datasets.ascent() + >>> result = ndimage.percentile_filter(ascent, percentile=20, size=20) + >>> ax1.imshow(ascent) + >>> ax2.imshow(result) + >>> plt.show() + """ + return _rank_filter(input, percentile, size, footprint, output, mode, + cval, origin, 'percentile', axes=axes) + + +@_ni_docstrings.docfiller +def generic_filter1d(input, function, filter_size, axis=-1, + output=None, mode="reflect", cval=0.0, origin=0, + extra_arguments=(), extra_keywords=None): + """Calculate a 1-D filter along the given axis. + + `generic_filter1d` iterates over the lines of the array, calling the + given function at each line. The arguments of the line are the + input line, and the output line. The input and output lines are 1-D + double arrays. The input line is extended appropriately according + to the filter size and origin. The output line must be modified + in-place with the result. + + Parameters + ---------- + %(input)s + function : {callable, scipy.LowLevelCallable} + Function to apply along given axis. + filter_size : scalar + Length of the filter. + %(axis)s + %(output)s + %(mode_reflect)s + %(cval)s + %(origin)s + %(extra_arguments)s + %(extra_keywords)s + + Notes + ----- + This function also accepts low-level callback functions with one of + the following signatures and wrapped in `scipy.LowLevelCallable`: + + .. code:: c + + int function(double *input_line, npy_intp input_length, + double *output_line, npy_intp output_length, + void *user_data) + int function(double *input_line, intptr_t input_length, + double *output_line, intptr_t output_length, + void *user_data) + + The calling function iterates over the lines of the input and output + arrays, calling the callback function at each line. The current line + is extended according to the border conditions set by the calling + function, and the result is copied into the array that is passed + through ``input_line``. The length of the input line (after extension) + is passed through ``input_length``. The callback function should apply + the filter and store the result in the array passed through + ``output_line``. The length of the output line is passed through + ``output_length``. ``user_data`` is the data pointer provided + to `scipy.LowLevelCallable` as-is. + + The callback function must return an integer error status that is zero + if something went wrong and one otherwise. If an error occurs, you should + normally set the python error status with an informative message + before returning, otherwise a default error message is set by the + calling function. + + In addition, some other low-level function pointer specifications + are accepted, but these are for backward compatibility only and should + not be used in new code. + + """ + if extra_keywords is None: + extra_keywords = {} + input = numpy.asarray(input) + if numpy.iscomplexobj(input): + raise TypeError('Complex type not supported') + output = _ni_support._get_output(output, input) + if filter_size < 1: + raise RuntimeError('invalid filter size') + axis = normalize_axis_index(axis, input.ndim) + if (filter_size // 2 + origin < 0) or (filter_size // 2 + origin >= + filter_size): + raise ValueError('invalid origin') + mode = _ni_support._extend_mode_to_code(mode) + _nd_image.generic_filter1d(input, function, filter_size, axis, output, + mode, cval, origin, extra_arguments, + extra_keywords) + return output + + +@_ni_docstrings.docfiller +def generic_filter(input, function, size=None, footprint=None, + output=None, mode="reflect", cval=0.0, origin=0, + extra_arguments=(), extra_keywords=None): + """Calculate a multidimensional filter using the given function. + + At each element the provided function is called. The input values + within the filter footprint at that element are passed to the function + as a 1-D array of double values. + + Parameters + ---------- + %(input)s + function : {callable, scipy.LowLevelCallable} + Function to apply at each element. + %(size_foot)s + %(output)s + %(mode_reflect)s + %(cval)s + %(origin_multiple)s + %(extra_arguments)s + %(extra_keywords)s + + Notes + ----- + This function also accepts low-level callback functions with one of + the following signatures and wrapped in `scipy.LowLevelCallable`: + + .. code:: c + + int callback(double *buffer, npy_intp filter_size, + double *return_value, void *user_data) + int callback(double *buffer, intptr_t filter_size, + double *return_value, void *user_data) + + The calling function iterates over the elements of the input and + output arrays, calling the callback function at each element. The + elements within the footprint of the filter at the current element are + passed through the ``buffer`` parameter, and the number of elements + within the footprint through ``filter_size``. The calculated value is + returned in ``return_value``. ``user_data`` is the data pointer provided + to `scipy.LowLevelCallable` as-is. + + The callback function must return an integer error status that is zero + if something went wrong and one otherwise. If an error occurs, you should + normally set the python error status with an informative message + before returning, otherwise a default error message is set by the + calling function. + + In addition, some other low-level function pointer specifications + are accepted, but these are for backward compatibility only and should + not be used in new code. + + Examples + -------- + Import the necessary modules and load the example image used for + filtering. + + >>> import numpy as np + >>> from scipy import datasets + >>> from scipy.ndimage import generic_filter + >>> import matplotlib.pyplot as plt + >>> ascent = datasets.ascent() + + Compute a maximum filter with kernel size 10 by passing a simple NumPy + aggregation function as argument to `function`. + + >>> maximum_filter_result = generic_filter(ascent, np.amax, [10, 10]) + + While a maximmum filter could also directly be obtained using + `maximum_filter`, `generic_filter` allows generic Python function or + `scipy.LowLevelCallable` to be used as a filter. Here, we compute the + range between maximum and minimum value as an example for a kernel size + of 5. + + >>> def custom_filter(image): + ... return np.amax(image) - np.amin(image) + >>> custom_filter_result = generic_filter(ascent, custom_filter, [5, 5]) + + Plot the original and filtered images. + + >>> fig, axes = plt.subplots(3, 1, figsize=(4, 12)) + >>> plt.gray() # show the filtered result in grayscale + >>> top, middle, bottom = axes + >>> for ax in axes: + ... ax.set_axis_off() # remove coordinate system + >>> top.imshow(ascent) + >>> top.set_title("Original image") + >>> middle.imshow(maximum_filter_result) + >>> middle.set_title("Maximum filter, Kernel: 10x10") + >>> bottom.imshow(custom_filter_result) + >>> bottom.set_title("Custom filter, Kernel: 5x5") + >>> fig.tight_layout() + + """ + if (size is not None) and (footprint is not None): + warnings.warn("ignoring size because footprint is set", UserWarning, stacklevel=2) + if extra_keywords is None: + extra_keywords = {} + input = numpy.asarray(input) + if numpy.iscomplexobj(input): + raise TypeError('Complex type not supported') + origins = _ni_support._normalize_sequence(origin, input.ndim) + if footprint is None: + if size is None: + raise RuntimeError("no footprint or filter size provided") + sizes = _ni_support._normalize_sequence(size, input.ndim) + footprint = numpy.ones(sizes, dtype=bool) + else: + footprint = numpy.asarray(footprint, dtype=bool) + fshape = [ii for ii in footprint.shape if ii > 0] + if len(fshape) != input.ndim: + raise RuntimeError('filter footprint array has incorrect shape.') + for origin, lenf in zip(origins, fshape): + if (lenf // 2 + origin < 0) or (lenf // 2 + origin >= lenf): + raise ValueError('invalid origin') + if not footprint.flags.contiguous: + footprint = footprint.copy() + output = _ni_support._get_output(output, input) + mode = _ni_support._extend_mode_to_code(mode) + _nd_image.generic_filter(input, function, footprint, output, mode, + cval, origins, extra_arguments, extra_keywords) + return output +
+ +
+ + + +
+ + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 0000000..e760386 --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 270px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_static/binder_badge_logo.svg b/_static/binder_badge_logo.svg new file mode 100644 index 0000000..327f6b6 --- /dev/null +++ b/_static/binder_badge_logo.svg @@ -0,0 +1 @@ + launchlaunchbinderbinder \ No newline at end of file diff --git a/_static/broken_example.png b/_static/broken_example.png new file mode 100644 index 0000000000000000000000000000000000000000..4fea24e7df4781c2c32c8d7995511ac89e953145 GIT binary patch literal 21404 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 { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/_static/documentation_options.js b/_static/documentation_options.js new file mode 100644 index 0000000..e1dfb20 --- /dev/null +++ b/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: false, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: true, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/_static/file.png b/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/_static/jupyterlite_badge_logo.svg b/_static/jupyterlite_badge_logo.svg new file mode 100644 index 0000000..5de36d7 --- /dev/null +++ b/_static/jupyterlite_badge_logo.svg @@ -0,0 +1,3 @@ + + +launchlaunchlitelite \ No newline at end of file diff --git a/_static/language_data.js b/_static/language_data.js new file mode 100644 index 0000000..250f566 --- /dev/null +++ b/_static/language_data.js @@ -0,0 +1,199 @@ +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, is available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/_static/minus.png b/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d96755fdaf8bb2214971e0db9c1fd3077d7c419d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK literal 0 HcmV?d00001 diff --git a/_static/no_image.png b/_static/no_image.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2d48d5d3f0044cf0399b3608d8eb5db6f9d12d GIT binary patch literal 4315 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 HW8D7$6^1w` literal 0 HcmV?d00001 diff --git a/_static/plus.png b/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7107cec93a979b9a5f64843235a16651d563ce2d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz literal 0 HcmV?d00001 diff --git a/_static/pydata-custom.css b/_static/pydata-custom.css new file mode 100644 index 0000000..4bba9cd --- /dev/null +++ b/_static/pydata-custom.css @@ -0,0 +1,17 @@ +/*Tweaks to the Pydata default CSS */ + +/*No yellow background highlight when targeted by summary tables */ +/*dt:target { background-color: #f8f8f8; border: 1px solid black, }*/ +dt:target { background: transparent;} +/*More space between H1s and signatures in API reference*/ +h1 { margin-bottom: 40px; } + +/*No line underneath summary table headings (clashes with line above first member)*/ +p.rubric { border-bottom: 0px; } + +/*Fit to maxwidth*/ + +.bd-content { + flex-grow: 1; + max-width: 100%; +} diff --git a/_static/pygments.css b/_static/pygments.css new file mode 100644 index 0000000..997797f --- /dev/null +++ b/_static/pygments.css @@ -0,0 +1,152 @@ +html[data-theme="light"] .highlight pre { line-height: 125%; } +html[data-theme="light"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight .hll { background-color: #7971292e } +html[data-theme="light"] .highlight { background: #fefefe; color: #545454 } +html[data-theme="light"] .highlight .c { color: #797129 } /* Comment */ +html[data-theme="light"] .highlight .err { color: #d91e18 } /* Error */ +html[data-theme="light"] .highlight .k { color: #7928a1 } /* Keyword */ +html[data-theme="light"] .highlight .l { color: #797129 } /* Literal */ +html[data-theme="light"] .highlight .n { color: #545454 } /* Name */ +html[data-theme="light"] .highlight .o { color: #008000 } /* Operator */ +html[data-theme="light"] .highlight .p { color: #545454 } /* Punctuation */ +html[data-theme="light"] .highlight .ch { color: #797129 } /* Comment.Hashbang */ +html[data-theme="light"] .highlight .cm { color: #797129 } /* Comment.Multiline */ +html[data-theme="light"] .highlight .cp { color: #797129 } /* Comment.Preproc */ +html[data-theme="light"] .highlight .cpf { color: #797129 } /* Comment.PreprocFile */ +html[data-theme="light"] .highlight .c1 { color: #797129 } /* Comment.Single */ +html[data-theme="light"] .highlight .cs { color: #797129 } /* Comment.Special */ +html[data-theme="light"] .highlight .gd { color: #007faa } /* Generic.Deleted */ +html[data-theme="light"] .highlight .ge { font-style: italic } /* Generic.Emph */ +html[data-theme="light"] .highlight .gh { color: #007faa } /* Generic.Heading */ +html[data-theme="light"] .highlight .gs { font-weight: bold } /* Generic.Strong */ +html[data-theme="light"] .highlight .gu { color: #007faa } /* Generic.Subheading */ +html[data-theme="light"] .highlight .kc { color: #7928a1 } /* Keyword.Constant */ +html[data-theme="light"] .highlight .kd { color: #7928a1 } /* Keyword.Declaration */ +html[data-theme="light"] .highlight .kn { color: #7928a1 } /* Keyword.Namespace */ +html[data-theme="light"] .highlight .kp { color: #7928a1 } /* Keyword.Pseudo */ +html[data-theme="light"] .highlight .kr { color: #7928a1 } /* Keyword.Reserved */ +html[data-theme="light"] .highlight .kt { color: #797129 } /* Keyword.Type */ +html[data-theme="light"] .highlight .ld { color: #797129 } /* Literal.Date */ +html[data-theme="light"] .highlight .m { color: #797129 } /* Literal.Number */ +html[data-theme="light"] .highlight .s { color: #008000 } /* Literal.String */ +html[data-theme="light"] .highlight .na { color: #797129 } /* Name.Attribute */ +html[data-theme="light"] .highlight .nb { color: #797129 } /* Name.Builtin */ +html[data-theme="light"] .highlight .nc { color: #007faa } /* Name.Class */ +html[data-theme="light"] .highlight .no { color: #007faa } /* Name.Constant */ +html[data-theme="light"] .highlight .nd { color: #797129 } /* Name.Decorator */ +html[data-theme="light"] .highlight .ni { color: #008000 } /* Name.Entity */ +html[data-theme="light"] .highlight .ne { color: #7928a1 } /* Name.Exception */ +html[data-theme="light"] .highlight .nf { color: #007faa } /* Name.Function */ +html[data-theme="light"] .highlight .nl { color: #797129 } /* Name.Label */ +html[data-theme="light"] .highlight .nn { color: #545454 } /* Name.Namespace */ +html[data-theme="light"] .highlight .nx { color: #545454 } /* Name.Other */ +html[data-theme="light"] .highlight .py { color: #007faa } /* Name.Property */ +html[data-theme="light"] .highlight .nt { color: #007faa } /* Name.Tag */ +html[data-theme="light"] .highlight .nv { color: #d91e18 } /* Name.Variable */ +html[data-theme="light"] .highlight .ow { color: #7928a1 } /* Operator.Word */ +html[data-theme="light"] .highlight .pm { color: #545454 } /* Punctuation.Marker */ +html[data-theme="light"] .highlight .w { color: #545454 } /* Text.Whitespace */ +html[data-theme="light"] .highlight .mb { color: #797129 } /* Literal.Number.Bin */ +html[data-theme="light"] .highlight .mf { color: #797129 } /* Literal.Number.Float */ +html[data-theme="light"] .highlight .mh { color: #797129 } /* Literal.Number.Hex */ +html[data-theme="light"] .highlight .mi { color: #797129 } /* Literal.Number.Integer */ +html[data-theme="light"] .highlight .mo { color: #797129 } /* Literal.Number.Oct */ +html[data-theme="light"] .highlight .sa { color: #008000 } /* Literal.String.Affix */ +html[data-theme="light"] .highlight .sb { color: #008000 } /* Literal.String.Backtick */ +html[data-theme="light"] .highlight .sc { color: #008000 } /* Literal.String.Char */ +html[data-theme="light"] .highlight .dl { color: #008000 } /* Literal.String.Delimiter */ +html[data-theme="light"] .highlight .sd { color: #008000 } /* Literal.String.Doc */ +html[data-theme="light"] .highlight .s2 { color: #008000 } /* Literal.String.Double */ +html[data-theme="light"] .highlight .se { color: #008000 } /* Literal.String.Escape */ +html[data-theme="light"] .highlight .sh { color: #008000 } /* Literal.String.Heredoc */ +html[data-theme="light"] .highlight .si { color: #008000 } /* Literal.String.Interpol */ +html[data-theme="light"] .highlight .sx { color: #008000 } /* Literal.String.Other */ +html[data-theme="light"] .highlight .sr { color: #d91e18 } /* Literal.String.Regex */ +html[data-theme="light"] .highlight .s1 { color: #008000 } /* Literal.String.Single */ +html[data-theme="light"] .highlight .ss { color: #007faa } /* Literal.String.Symbol */ +html[data-theme="light"] .highlight .bp { color: #797129 } /* Name.Builtin.Pseudo */ +html[data-theme="light"] .highlight .fm { color: #007faa } /* Name.Function.Magic */ +html[data-theme="light"] .highlight .vc { color: #d91e18 } /* Name.Variable.Class */ +html[data-theme="light"] .highlight .vg { color: #d91e18 } /* Name.Variable.Global */ +html[data-theme="light"] .highlight .vi { color: #d91e18 } /* Name.Variable.Instance */ +html[data-theme="light"] .highlight .vm { color: #797129 } /* Name.Variable.Magic */ +html[data-theme="light"] .highlight .il { color: #797129 } /* Literal.Number.Integer.Long */ +html[data-theme="dark"] .highlight pre { line-height: 125%; } +html[data-theme="dark"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight .hll { background-color: #ffd9002e } +html[data-theme="dark"] .highlight { background: #2b2b2b; color: #f8f8f2 } +html[data-theme="dark"] .highlight .c { color: #ffd900 } /* Comment */ +html[data-theme="dark"] .highlight .err { color: #ffa07a } /* Error */ +html[data-theme="dark"] .highlight .k { color: #dcc6e0 } /* Keyword */ +html[data-theme="dark"] .highlight .l { color: #ffd900 } /* Literal */ +html[data-theme="dark"] .highlight .n { color: #f8f8f2 } /* Name */ +html[data-theme="dark"] .highlight .o { color: #abe338 } /* Operator */ +html[data-theme="dark"] .highlight .p { color: #f8f8f2 } /* Punctuation */ +html[data-theme="dark"] .highlight .ch { color: #ffd900 } /* Comment.Hashbang */ +html[data-theme="dark"] .highlight .cm { color: #ffd900 } /* Comment.Multiline */ +html[data-theme="dark"] .highlight .cp { color: #ffd900 } /* Comment.Preproc */ +html[data-theme="dark"] .highlight .cpf { color: #ffd900 } /* Comment.PreprocFile */ +html[data-theme="dark"] .highlight .c1 { color: #ffd900 } /* Comment.Single */ +html[data-theme="dark"] .highlight .cs { color: #ffd900 } /* Comment.Special */ +html[data-theme="dark"] .highlight .gd { color: #00e0e0 } /* Generic.Deleted */ +html[data-theme="dark"] .highlight .ge { font-style: italic } /* Generic.Emph */ +html[data-theme="dark"] .highlight .gh { color: #00e0e0 } /* Generic.Heading */ +html[data-theme="dark"] .highlight .gs { font-weight: bold } /* Generic.Strong */ +html[data-theme="dark"] .highlight .gu { color: #00e0e0 } /* Generic.Subheading */ +html[data-theme="dark"] .highlight .kc { color: #dcc6e0 } /* Keyword.Constant */ +html[data-theme="dark"] .highlight .kd { color: #dcc6e0 } /* Keyword.Declaration */ +html[data-theme="dark"] .highlight .kn { color: #dcc6e0 } /* Keyword.Namespace */ +html[data-theme="dark"] .highlight .kp { color: #dcc6e0 } /* Keyword.Pseudo */ +html[data-theme="dark"] .highlight .kr { color: #dcc6e0 } /* Keyword.Reserved */ +html[data-theme="dark"] .highlight .kt { color: #ffd900 } /* Keyword.Type */ +html[data-theme="dark"] .highlight .ld { color: #ffd900 } /* Literal.Date */ +html[data-theme="dark"] .highlight .m { color: #ffd900 } /* Literal.Number */ +html[data-theme="dark"] .highlight .s { color: #abe338 } /* Literal.String */ +html[data-theme="dark"] .highlight .na { color: #ffd900 } /* Name.Attribute */ +html[data-theme="dark"] .highlight .nb { color: #ffd900 } /* Name.Builtin */ +html[data-theme="dark"] .highlight .nc { color: #00e0e0 } /* Name.Class */ +html[data-theme="dark"] .highlight .no { color: #00e0e0 } /* Name.Constant */ +html[data-theme="dark"] .highlight .nd { color: #ffd900 } /* Name.Decorator */ +html[data-theme="dark"] .highlight .ni { color: #abe338 } /* Name.Entity */ +html[data-theme="dark"] .highlight .ne { color: #dcc6e0 } /* Name.Exception */ +html[data-theme="dark"] .highlight .nf { color: #00e0e0 } /* Name.Function */ +html[data-theme="dark"] .highlight .nl { color: #ffd900 } /* Name.Label */ +html[data-theme="dark"] .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ +html[data-theme="dark"] .highlight .nx { color: #f8f8f2 } /* Name.Other */ +html[data-theme="dark"] .highlight .py { color: #00e0e0 } /* Name.Property */ +html[data-theme="dark"] .highlight .nt { color: #00e0e0 } /* Name.Tag */ +html[data-theme="dark"] .highlight .nv { color: #ffa07a } /* Name.Variable */ +html[data-theme="dark"] .highlight .ow { color: #dcc6e0 } /* Operator.Word */ +html[data-theme="dark"] .highlight .pm { color: #f8f8f2 } /* Punctuation.Marker */ +html[data-theme="dark"] .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ +html[data-theme="dark"] .highlight .mb { color: #ffd900 } /* Literal.Number.Bin */ +html[data-theme="dark"] .highlight .mf { color: #ffd900 } /* Literal.Number.Float */ +html[data-theme="dark"] .highlight .mh { color: #ffd900 } /* Literal.Number.Hex */ +html[data-theme="dark"] .highlight .mi { color: #ffd900 } /* Literal.Number.Integer */ +html[data-theme="dark"] .highlight .mo { color: #ffd900 } /* Literal.Number.Oct */ +html[data-theme="dark"] .highlight .sa { color: #abe338 } /* Literal.String.Affix */ +html[data-theme="dark"] .highlight .sb { color: #abe338 } /* Literal.String.Backtick */ +html[data-theme="dark"] .highlight .sc { color: #abe338 } /* Literal.String.Char */ +html[data-theme="dark"] .highlight .dl { color: #abe338 } /* Literal.String.Delimiter */ +html[data-theme="dark"] .highlight .sd { color: #abe338 } /* Literal.String.Doc */ +html[data-theme="dark"] .highlight .s2 { color: #abe338 } /* Literal.String.Double */ +html[data-theme="dark"] .highlight .se { color: #abe338 } /* Literal.String.Escape */ +html[data-theme="dark"] .highlight .sh { color: #abe338 } /* Literal.String.Heredoc */ +html[data-theme="dark"] .highlight .si { color: #abe338 } /* Literal.String.Interpol */ +html[data-theme="dark"] .highlight .sx { color: #abe338 } /* Literal.String.Other */ +html[data-theme="dark"] .highlight .sr { color: #ffa07a } /* Literal.String.Regex */ +html[data-theme="dark"] .highlight .s1 { color: #abe338 } /* Literal.String.Single */ +html[data-theme="dark"] .highlight .ss { color: #00e0e0 } /* Literal.String.Symbol */ +html[data-theme="dark"] .highlight .bp { color: #ffd900 } /* Name.Builtin.Pseudo */ +html[data-theme="dark"] .highlight .fm { color: #00e0e0 } /* Name.Function.Magic */ +html[data-theme="dark"] .highlight .vc { color: #ffa07a } /* Name.Variable.Class */ +html[data-theme="dark"] .highlight .vg { color: #ffa07a } /* Name.Variable.Global */ +html[data-theme="dark"] .highlight .vi { color: #ffa07a } /* Name.Variable.Instance */ +html[data-theme="dark"] .highlight .vm { color: #ffd900 } /* Name.Variable.Magic */ +html[data-theme="dark"] .highlight .il { color: #ffd900 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_static/scripts/bootstrap.js b/_static/scripts/bootstrap.js new file mode 100644 index 0000000..766173a --- /dev/null +++ b/_static/scripts/bootstrap.js @@ -0,0 +1,3 @@ +/*! For license information please see bootstrap.js.LICENSE.txt */ +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{afterMain:()=>w,afterRead:()=>b,afterWrite:()=>C,applyStyles:()=>$,arrow:()=>G,auto:()=>r,basePlacements:()=>a,beforeMain:()=>v,beforeRead:()=>m,beforeWrite:()=>A,bottom:()=>n,clippingParents:()=>h,computeStyles:()=>et,createPopper:()=>Dt,createPopperBase:()=>Lt,createPopperLite:()=>$t,detectOverflow:()=>mt,end:()=>c,eventListeners:()=>nt,flip:()=>_t,hide:()=>yt,left:()=>o,main:()=>y,modifierPhases:()=>T,offset:()=>wt,placements:()=>g,popper:()=>d,popperGenerator:()=>kt,popperOffsets:()=>At,preventOverflow:()=>Et,read:()=>_,reference:()=>f,right:()=>s,start:()=>l,top:()=>i,variationPlacements:()=>p,viewport:()=>u,write:()=>E});var i="top",n="bottom",s="right",o="left",r="auto",a=[i,n,s,o],l="start",c="end",h="clippingParents",u="viewport",d="popper",f="reference",p=a.reduce((function(t,e){return t.concat([e+"-"+l,e+"-"+c])}),[]),g=[].concat(a,[r]).reduce((function(t,e){return t.concat([e,e+"-"+l,e+"-"+c])}),[]),m="beforeRead",_="read",b="afterRead",v="beforeMain",y="main",w="afterMain",A="beforeWrite",E="write",C="afterWrite",T=[m,_,b,v,y,w,A,E,C];function O(t){return t?(t.nodeName||"").toLowerCase():null}function x(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function k(t){return t instanceof x(t).Element||t instanceof Element}function L(t){return t instanceof x(t).HTMLElement||t instanceof HTMLElement}function D(t){return"undefined"!=typeof ShadowRoot&&(t instanceof x(t).ShadowRoot||t instanceof ShadowRoot)}const $={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];L(s)&&O(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});L(n)&&O(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function S(t){return t.split("-")[0]}var I=Math.max,N=Math.min,P=Math.round;function j(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function M(){return!/^((?!chrome|android).)*safari/i.test(j())}function H(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&L(t)&&(s=t.offsetWidth>0&&P(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&P(n.height)/t.offsetHeight||1);var r=(k(t)?x(t):window).visualViewport,a=!M()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,u=n.height/o;return{width:h,height:u,top:c,right:l+h,bottom:c+u,left:l,x:l,y:c}}function W(t){var e=H(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function F(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&D(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function B(t){return x(t).getComputedStyle(t)}function z(t){return["table","td","th"].indexOf(O(t))>=0}function q(t){return((k(t)?t.ownerDocument:t.document)||window.document).documentElement}function R(t){return"html"===O(t)?t:t.assignedSlot||t.parentNode||(D(t)?t.host:null)||q(t)}function V(t){return L(t)&&"fixed"!==B(t).position?t.offsetParent:null}function K(t){for(var e=x(t),i=V(t);i&&z(i)&&"static"===B(i).position;)i=V(i);return i&&("html"===O(i)||"body"===O(i)&&"static"===B(i).position)?e:i||function(t){var e=/firefox/i.test(j());if(/Trident/i.test(j())&&L(t)&&"fixed"===B(t).position)return null;var i=R(t);for(D(i)&&(i=i.host);L(i)&&["html","body"].indexOf(O(i))<0;){var n=B(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Q(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function X(t,e,i){return I(t,N(e,i))}function Y(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function U(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const G={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,r=t.state,l=t.name,c=t.options,h=r.elements.arrow,u=r.modifiersData.popperOffsets,d=S(r.placement),f=Q(d),p=[o,s].indexOf(d)>=0?"height":"width";if(h&&u){var g=function(t,e){return Y("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:U(t,a))}(c.padding,r),m=W(h),_="y"===f?i:o,b="y"===f?n:s,v=r.rects.reference[p]+r.rects.reference[f]-u[f]-r.rects.popper[p],y=u[f]-r.rects.reference[f],w=K(h),A=w?"y"===f?w.clientHeight||0:w.clientWidth||0:0,E=v/2-y/2,C=g[_],T=A-m[p]-g[b],O=A/2-m[p]/2+E,x=X(C,O,T),k=f;r.modifiersData[l]=((e={})[k]=x,e.centerOffset=x-O,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&F(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function J(t){return t.split("-")[1]}var Z={top:"auto",right:"auto",bottom:"auto",left:"auto"};function tt(t){var e,r=t.popper,a=t.popperRect,l=t.placement,h=t.variation,u=t.offsets,d=t.position,f=t.gpuAcceleration,p=t.adaptive,g=t.roundOffsets,m=t.isFixed,_=u.x,b=void 0===_?0:_,v=u.y,y=void 0===v?0:v,w="function"==typeof g?g({x:b,y}):{x:b,y};b=w.x,y=w.y;var A=u.hasOwnProperty("x"),E=u.hasOwnProperty("y"),C=o,T=i,O=window;if(p){var k=K(r),L="clientHeight",D="clientWidth";k===x(r)&&"static"!==B(k=q(r)).position&&"absolute"===d&&(L="scrollHeight",D="scrollWidth"),(l===i||(l===o||l===s)&&h===c)&&(T=n,y-=(m&&k===O&&O.visualViewport?O.visualViewport.height:k[L])-a.height,y*=f?1:-1),l!==o&&(l!==i&&l!==n||h!==c)||(C=s,b-=(m&&k===O&&O.visualViewport?O.visualViewport.width:k[D])-a.width,b*=f?1:-1)}var $,S=Object.assign({position:d},p&&Z),I=!0===g?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:P(i*s)/s||0,y:P(n*s)/s||0}}({x:b,y},x(r)):{x:b,y};return b=I.x,y=I.y,f?Object.assign({},S,(($={})[T]=E?"0":"",$[C]=A?"0":"",$.transform=(O.devicePixelRatio||1)<=1?"translate("+b+"px, "+y+"px)":"translate3d("+b+"px, "+y+"px, 0)",$)):Object.assign({},S,((e={})[T]=E?y+"px":"",e[C]=A?b+"px":"",e.transform="",e))}const et={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:S(e.placement),variation:J(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,tt(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,tt(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var it={passive:!0};const nt={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=x(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,it)})),a&&l.addEventListener("resize",i.update,it),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,it)})),a&&l.removeEventListener("resize",i.update,it)}},data:{}};var st={left:"right",right:"left",bottom:"top",top:"bottom"};function ot(t){return t.replace(/left|right|bottom|top/g,(function(t){return st[t]}))}var rt={start:"end",end:"start"};function at(t){return t.replace(/start|end/g,(function(t){return rt[t]}))}function lt(t){var e=x(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ct(t){return H(q(t)).left+lt(t).scrollLeft}function ht(t){var e=B(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function ut(t){return["html","body","#document"].indexOf(O(t))>=0?t.ownerDocument.body:L(t)&&ht(t)?t:ut(R(t))}function dt(t,e){var i;void 0===e&&(e=[]);var n=ut(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=x(n),r=s?[o].concat(o.visualViewport||[],ht(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(dt(R(r)))}function ft(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function pt(t,e,i){return e===u?ft(function(t,e){var i=x(t),n=q(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=M();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+ct(t),y:l}}(t,i)):k(e)?function(t,e){var i=H(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):ft(function(t){var e,i=q(t),n=lt(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=I(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=I(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ct(t),l=-n.scrollTop;return"rtl"===B(s||i).direction&&(a+=I(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(q(t)))}function gt(t){var e,r=t.reference,a=t.element,h=t.placement,u=h?S(h):null,d=h?J(h):null,f=r.x+r.width/2-a.width/2,p=r.y+r.height/2-a.height/2;switch(u){case i:e={x:f,y:r.y-a.height};break;case n:e={x:f,y:r.y+r.height};break;case s:e={x:r.x+r.width,y:p};break;case o:e={x:r.x-a.width,y:p};break;default:e={x:r.x,y:r.y}}var g=u?Q(u):null;if(null!=g){var m="y"===g?"height":"width";switch(d){case l:e[g]=e[g]-(r[m]/2-a[m]/2);break;case c:e[g]=e[g]+(r[m]/2-a[m]/2)}}return e}function mt(t,e){void 0===e&&(e={});var o=e,r=o.placement,l=void 0===r?t.placement:r,c=o.strategy,p=void 0===c?t.strategy:c,g=o.boundary,m=void 0===g?h:g,_=o.rootBoundary,b=void 0===_?u:_,v=o.elementContext,y=void 0===v?d:v,w=o.altBoundary,A=void 0!==w&&w,E=o.padding,C=void 0===E?0:E,T=Y("number"!=typeof C?C:U(C,a)),x=y===d?f:d,D=t.rects.popper,$=t.elements[A?x:y],S=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=dt(R(t)),i=["absolute","fixed"].indexOf(B(t).position)>=0&&L(t)?K(t):t;return k(i)?e.filter((function(t){return k(t)&&F(t,i)&&"body"!==O(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=pt(t,i,n);return e.top=I(s.top,e.top),e.right=N(s.right,e.right),e.bottom=N(s.bottom,e.bottom),e.left=I(s.left,e.left),e}),pt(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(k($)?$:$.contextElement||q(t.elements.popper),m,b,p),P=H(t.elements.reference),j=gt({reference:P,element:D,strategy:"absolute",placement:l}),M=ft(Object.assign({},D,j)),W=y===d?M:P,z={top:S.top-W.top+T.top,bottom:W.bottom-S.bottom+T.bottom,left:S.left-W.left+T.left,right:W.right-S.right+T.right},V=t.modifiersData.offset;if(y===d&&V){var Q=V[l];Object.keys(z).forEach((function(t){var e=[s,n].indexOf(t)>=0?1:-1,o=[i,n].indexOf(t)>=0?"y":"x";z[t]+=Q[o]*e}))}return z}const _t={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,c=t.options,h=t.name;if(!e.modifiersData[h]._skip){for(var u=c.mainAxis,d=void 0===u||u,f=c.altAxis,m=void 0===f||f,_=c.fallbackPlacements,b=c.padding,v=c.boundary,y=c.rootBoundary,w=c.altBoundary,A=c.flipVariations,E=void 0===A||A,C=c.allowedAutoPlacements,T=e.options.placement,O=S(T),x=_||(O!==T&&E?function(t){if(S(t)===r)return[];var e=ot(t);return[at(t),e,at(e)]}(T):[ot(T)]),k=[T].concat(x).reduce((function(t,i){return t.concat(S(i)===r?function(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,l=i.flipVariations,c=i.allowedAutoPlacements,h=void 0===c?g:c,u=J(n),d=u?l?p:p.filter((function(t){return J(t)===u})):a,f=d.filter((function(t){return h.indexOf(t)>=0}));0===f.length&&(f=d);var m=f.reduce((function(e,i){return e[i]=mt(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[S(i)],e}),{});return Object.keys(m).sort((function(t,e){return m[t]-m[e]}))}(e,{placement:i,boundary:v,rootBoundary:y,padding:b,flipVariations:E,allowedAutoPlacements:C}):i)}),[]),L=e.rects.reference,D=e.rects.popper,$=new Map,I=!0,N=k[0],P=0;P=0,F=W?"width":"height",B=mt(e,{placement:j,boundary:v,rootBoundary:y,altBoundary:w,padding:b}),z=W?H?s:o:H?n:i;L[F]>D[F]&&(z=ot(z));var q=ot(z),R=[];if(d&&R.push(B[M]<=0),m&&R.push(B[z]<=0,B[q]<=0),R.every((function(t){return t}))){N=j,I=!1;break}$.set(j,R)}if(I)for(var V=function(t){var e=k.find((function(e){var i=$.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return N=e,"break"},K=E?3:1;K>0&&"break"!==V(K);K--);e.placement!==N&&(e.modifiersData[h]._skip=!0,e.placement=N,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function bt(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function vt(t){return[i,s,n,o].some((function(e){return t[e]>=0}))}const yt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=mt(e,{elementContext:"reference"}),a=mt(e,{altBoundary:!0}),l=bt(r,n),c=bt(a,s,o),h=vt(l),u=vt(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:u},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":u})}},wt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,n=t.options,r=t.name,a=n.offset,l=void 0===a?[0,0]:a,c=g.reduce((function(t,n){return t[n]=function(t,e,n){var r=S(t),a=[o,i].indexOf(r)>=0?-1:1,l="function"==typeof n?n(Object.assign({},e,{placement:t})):n,c=l[0],h=l[1];return c=c||0,h=(h||0)*a,[o,s].indexOf(r)>=0?{x:h,y:c}:{x:c,y:h}}(n,e.rects,l),t}),{}),h=c[e.placement],u=h.x,d=h.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=u,e.modifiersData.popperOffsets.y+=d),e.modifiersData[r]=c}},At={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=gt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},Et={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,r=t.options,a=t.name,c=r.mainAxis,h=void 0===c||c,u=r.altAxis,d=void 0!==u&&u,f=r.boundary,p=r.rootBoundary,g=r.altBoundary,m=r.padding,_=r.tether,b=void 0===_||_,v=r.tetherOffset,y=void 0===v?0:v,w=mt(e,{boundary:f,rootBoundary:p,padding:m,altBoundary:g}),A=S(e.placement),E=J(e.placement),C=!E,T=Q(A),O="x"===T?"y":"x",x=e.modifiersData.popperOffsets,k=e.rects.reference,L=e.rects.popper,D="function"==typeof y?y(Object.assign({},e.rects,{placement:e.placement})):y,$="number"==typeof D?{mainAxis:D,altAxis:D}:Object.assign({mainAxis:0,altAxis:0},D),P=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,j={x:0,y:0};if(x){if(h){var M,H="y"===T?i:o,F="y"===T?n:s,B="y"===T?"height":"width",z=x[T],q=z+w[H],R=z-w[F],V=b?-L[B]/2:0,Y=E===l?k[B]:L[B],U=E===l?-L[B]:-k[B],G=e.elements.arrow,Z=b&&G?W(G):{width:0,height:0},tt=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},et=tt[H],it=tt[F],nt=X(0,k[B],Z[B]),st=C?k[B]/2-V-nt-et-$.mainAxis:Y-nt-et-$.mainAxis,ot=C?-k[B]/2+V+nt+it+$.mainAxis:U+nt+it+$.mainAxis,rt=e.elements.arrow&&K(e.elements.arrow),at=rt?"y"===T?rt.clientTop||0:rt.clientLeft||0:0,lt=null!=(M=null==P?void 0:P[T])?M:0,ct=z+ot-lt,ht=X(b?N(q,z+st-lt-at):q,z,b?I(R,ct):R);x[T]=ht,j[T]=ht-z}if(d){var ut,dt="x"===T?i:o,ft="x"===T?n:s,pt=x[O],gt="y"===O?"height":"width",_t=pt+w[dt],bt=pt-w[ft],vt=-1!==[i,o].indexOf(A),yt=null!=(ut=null==P?void 0:P[O])?ut:0,wt=vt?_t:pt-k[gt]-L[gt]-yt+$.altAxis,At=vt?pt+k[gt]+L[gt]-yt-$.altAxis:bt,Et=b&&vt?function(t,e,i){var n=X(t,e,i);return n>i?i:n}(wt,pt,At):X(b?wt:_t,pt,b?At:bt);x[O]=Et,j[O]=Et-pt}e.modifiersData[a]=j}},requiresIfExists:["offset"]};function Ct(t,e,i){void 0===i&&(i=!1);var n,s,o=L(e),r=L(e)&&function(t){var e=t.getBoundingClientRect(),i=P(e.width)/t.offsetWidth||1,n=P(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=q(e),l=H(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==O(e)||ht(a))&&(c=(n=e)!==x(n)&&L(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:lt(n)),L(e)?((h=H(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=ct(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function Tt(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var Ot={placement:"bottom",modifiers:[],strategy:"absolute"};function xt(){for(var t=arguments.length,e=new Array(t),i=0;i{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e},Nt=t=>{const e=It(t);return e&&document.querySelector(e)?e:null},Pt=t=>{const e=It(t);return e?document.querySelector(e):null},jt=t=>{t.dispatchEvent(new Event(St))},Mt=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),Ht=t=>Mt(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,Wt=t=>{if(!Mt(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},Ft=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),Bt=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?Bt(t.parentNode):null},zt=()=>{},qt=t=>{t.offsetHeight},Rt=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Vt=[],Kt=()=>"rtl"===document.documentElement.dir,Qt=t=>{var e;e=()=>{const e=Rt();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(Vt.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of Vt)t()})),Vt.push(e)):e()},Xt=t=>{"function"==typeof t&&t()},Yt=(t,e,i=!0)=>{if(!i)return void Xt(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let s=!1;const o=({target:i})=>{i===e&&(s=!0,e.removeEventListener(St,o),Xt(t))};e.addEventListener(St,o),setTimeout((()=>{s||jt(e)}),n)},Ut=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},Gt=/[^.]*(?=\..*)\.|.*/,Jt=/\..*/,Zt=/::\d+$/,te={};let ee=1;const ie={mouseenter:"mouseover",mouseleave:"mouseout"},ne=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function se(t,e){return e&&`${e}::${ee++}`||t.uidEvent||ee++}function oe(t){const e=se(t);return t.uidEvent=e,te[e]=te[e]||{},te[e]}function re(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function ae(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=ue(t);return ne.has(o)||(o=t),[n,s,o]}function le(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=ae(e,i,n);if(e in ie){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=oe(t),c=l[a]||(l[a]={}),h=re(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const u=se(r,e.replace(Gt,"")),d=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return fe(s,{delegateTarget:r}),n.oneOff&&de.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return fe(n,{delegateTarget:t}),i.oneOff&&de.off(t,n.type,e),e.apply(t,[n])}}(t,r);d.delegationSelector=o?i:null,d.callable=r,d.oneOff=s,d.uidEvent=u,c[u]=d,t.addEventListener(a,d,o)}function ce(t,e,i,n,s){const o=re(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function he(t,e,i,n){const s=e[i]||{};for(const o of Object.keys(s))if(o.includes(n)){const n=s[o];ce(t,e,i,n.callable,n.delegationSelector)}}function ue(t){return t=t.replace(Jt,""),ie[t]||t}const de={on(t,e,i,n){le(t,e,i,n,!1)},one(t,e,i,n){le(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=ae(e,i,n),a=r!==e,l=oe(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))he(t,l,i,e.slice(1));for(const i of Object.keys(c)){const n=i.replace(Zt,"");if(!a||e.includes(n)){const e=c[i];ce(t,l,r,e.callable,e.delegationSelector)}}}else{if(!Object.keys(c).length)return;ce(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=Rt();let s=null,o=!0,r=!0,a=!1;e!==ue(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());let l=new Event(e,{bubbles:o,cancelable:!0});return l=fe(l,i),a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function fe(t,e){for(const[i,n]of Object.entries(e||{}))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}const pe=new Map,ge={set(t,e,i){pe.has(t)||pe.set(t,new Map);const n=pe.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>pe.has(t)&&pe.get(t).get(e)||null,remove(t,e){if(!pe.has(t))return;const i=pe.get(t);i.delete(e),0===i.size&&pe.delete(t)}};function me(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function _e(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const be={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${_e(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${_e(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=me(t.dataset[n])}return e},getDataAttribute:(t,e)=>me(t.getAttribute(`data-bs-${_e(e)}`))};class ve{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=Mt(e)?be.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...Mt(e)?be.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const n of Object.keys(e)){const s=e[n],o=t[n],r=Mt(o)?"element":null==(i=o)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class ye extends ve{constructor(t,e){super(),(t=Ht(t))&&(this._element=t,this._config=this._getConfig(e),ge.set(this._element,this.constructor.DATA_KEY,this))}dispose(){ge.remove(this._element,this.constructor.DATA_KEY),de.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){Yt(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return ge.get(Ht(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.2.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const we=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;de.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),Ft(this))return;const s=Pt(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},Ae=".bs.alert",Ee=`close${Ae}`,Ce=`closed${Ae}`;class Te extends ye{static get NAME(){return"alert"}close(){if(de.trigger(this._element,Ee).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),de.trigger(this._element,Ce),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Te.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}we(Te,"close"),Qt(Te);const Oe='[data-bs-toggle="button"]';class xe extends ye{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=xe.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}de.on(document,"click.bs.button.data-api",Oe,(t=>{t.preventDefault();const e=t.target.closest(Oe);xe.getOrCreateInstance(e).toggle()})),Qt(xe);const ke={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!Ft(t)&&Wt(t)))}},Le=".bs.swipe",De=`touchstart${Le}`,$e=`touchmove${Le}`,Se=`touchend${Le}`,Ie=`pointerdown${Le}`,Ne=`pointerup${Le}`,Pe={endCallback:null,leftCallback:null,rightCallback:null},je={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class Me extends ve{constructor(t,e){super(),this._element=t,t&&Me.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Pe}static get DefaultType(){return je}static get NAME(){return"swipe"}dispose(){de.off(this._element,Le)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),Xt(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&Xt(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(de.on(this._element,Ie,(t=>this._start(t))),de.on(this._element,Ne,(t=>this._end(t))),this._element.classList.add("pointer-event")):(de.on(this._element,De,(t=>this._start(t))),de.on(this._element,$e,(t=>this._move(t))),de.on(this._element,Se,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const He=".bs.carousel",We=".data-api",Fe="next",Be="prev",ze="left",qe="right",Re=`slide${He}`,Ve=`slid${He}`,Ke=`keydown${He}`,Qe=`mouseenter${He}`,Xe=`mouseleave${He}`,Ye=`dragstart${He}`,Ue=`load${He}${We}`,Ge=`click${He}${We}`,Je="carousel",Ze="active",ti=".active",ei=".carousel-item",ii=ti+ei,ni={ArrowLeft:qe,ArrowRight:ze},si={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},oi={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class ri extends ye{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=ke.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===Je&&this.cycle()}static get Default(){return si}static get DefaultType(){return oi}static get NAME(){return"carousel"}next(){this._slide(Fe)}nextWhenVisible(){!document.hidden&&Wt(this._element)&&this.next()}prev(){this._slide(Be)}pause(){this._isSliding&&jt(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?de.one(this._element,Ve,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void de.one(this._element,Ve,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?Fe:Be;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&de.on(this._element,Ke,(t=>this._keydown(t))),"hover"===this._config.pause&&(de.on(this._element,Qe,(()=>this.pause())),de.on(this._element,Xe,(()=>this._maybeEnableCycle()))),this._config.touch&&Me.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of ke.find(".carousel-item img",this._element))de.on(t,Ye,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ze)),rightCallback:()=>this._slide(this._directionToOrder(qe)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new Me(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=ni[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=ke.findOne(ti,this._indicatorsElement);e.classList.remove(Ze),e.removeAttribute("aria-current");const i=ke.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(Ze),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===Fe,s=e||Ut(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>de.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(Re).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),qt(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(Ze),i.classList.remove(Ze,c,l),this._isSliding=!1,r(Ve)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return ke.findOne(ii,this._element)}_getItems(){return ke.find(ei,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return Kt()?t===ze?Be:Fe:t===ze?Fe:Be}_orderToDirection(t){return Kt()?t===Be?ze:qe:t===Be?qe:ze}static jQueryInterface(t){return this.each((function(){const e=ri.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}de.on(document,Ge,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=Pt(this);if(!e||!e.classList.contains(Je))return;t.preventDefault();const i=ri.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===be.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),de.on(window,Ue,(()=>{const t=ke.find('[data-bs-ride="carousel"]');for(const e of t)ri.getOrCreateInstance(e)})),Qt(ri);const ai=".bs.collapse",li=`show${ai}`,ci=`shown${ai}`,hi=`hide${ai}`,ui=`hidden${ai}`,di=`click${ai}.data-api`,fi="show",pi="collapse",gi="collapsing",mi=`:scope .${pi} .${pi}`,_i='[data-bs-toggle="collapse"]',bi={parent:null,toggle:!0},vi={parent:"(null|element)",toggle:"boolean"};class yi extends ye{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=ke.find(_i);for(const t of i){const e=Nt(t),i=ke.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return bi}static get DefaultType(){return vi}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>yi.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(de.trigger(this._element,li).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(pi),this._element.classList.add(gi),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(gi),this._element.classList.add(pi,fi),this._element.style[e]="",de.trigger(this._element,ci)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(de.trigger(this._element,hi).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,qt(this._element),this._element.classList.add(gi),this._element.classList.remove(pi,fi);for(const t of this._triggerArray){const e=Pt(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(gi),this._element.classList.add(pi),de.trigger(this._element,ui)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(fi)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=Ht(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(_i);for(const e of t){const t=Pt(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=ke.find(mi,this._config.parent);return ke.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=yi.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}de.on(document,di,_i,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=Nt(this),i=ke.find(e);for(const t of i)yi.getOrCreateInstance(t,{toggle:!1}).toggle()})),Qt(yi);const wi="dropdown",Ai=".bs.dropdown",Ei=".data-api",Ci="ArrowUp",Ti="ArrowDown",Oi=`hide${Ai}`,xi=`hidden${Ai}`,ki=`show${Ai}`,Li=`shown${Ai}`,Di=`click${Ai}${Ei}`,$i=`keydown${Ai}${Ei}`,Si=`keyup${Ai}${Ei}`,Ii="show",Ni='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Pi=`${Ni}.${Ii}`,ji=".dropdown-menu",Mi=Kt()?"top-end":"top-start",Hi=Kt()?"top-start":"top-end",Wi=Kt()?"bottom-end":"bottom-start",Fi=Kt()?"bottom-start":"bottom-end",Bi=Kt()?"left-start":"right-start",zi=Kt()?"right-start":"left-start",qi={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Ri={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class Vi extends ye{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=ke.next(this._element,ji)[0]||ke.prev(this._element,ji)[0]||ke.findOne(ji,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return qi}static get DefaultType(){return Ri}static get NAME(){return wi}toggle(){return this._isShown()?this.hide():this.show()}show(){if(Ft(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!de.trigger(this._element,ki,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))de.on(t,"mouseover",zt);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Ii),this._element.classList.add(Ii),de.trigger(this._element,Li,t)}}hide(){if(Ft(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!de.trigger(this._element,Oi,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))de.off(t,"mouseover",zt);this._popper&&this._popper.destroy(),this._menu.classList.remove(Ii),this._element.classList.remove(Ii),this._element.setAttribute("aria-expanded","false"),be.removeDataAttribute(this._menu,"popper"),de.trigger(this._element,xi,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!Mt(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${wi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===e)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:Mt(this._config.reference)?t=Ht(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const i=this._getPopperConfig();this._popper=Dt(t,this._menu,i)}_isShown(){return this._menu.classList.contains(Ii)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return Bi;if(t.classList.contains("dropstart"))return zi;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?Hi:Mi:e?Fi:Wi}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(be.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=ke.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>Wt(t)));i.length&&Ut(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=Vi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=ke.find(Pi);for(const i of e){const e=Vi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ci,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ni)?this:ke.prev(this,Ni)[0]||ke.next(this,Ni)[0]||ke.findOne(Ni,t.delegateTarget.parentNode),o=Vi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}de.on(document,$i,Ni,Vi.dataApiKeydownHandler),de.on(document,$i,ji,Vi.dataApiKeydownHandler),de.on(document,Di,Vi.clearMenus),de.on(document,Si,Vi.clearMenus),de.on(document,Di,Ni,(function(t){t.preventDefault(),Vi.getOrCreateInstance(this).toggle()})),Qt(Vi);const Ki=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Qi=".sticky-top",Xi="padding-right",Yi="margin-right";class Ui{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,Xi,(e=>e+t)),this._setElementAttributes(Ki,Xi,(e=>e+t)),this._setElementAttributes(Qi,Yi,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,Xi),this._resetElementAttributes(Ki,Xi),this._resetElementAttributes(Qi,Yi)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&be.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=be.getDataAttribute(t,e);null!==i?(be.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(Mt(t))e(t);else for(const i of ke.find(t,this._element))e(i)}}const Gi="backdrop",Ji="show",Zi=`mousedown.bs.${Gi}`,tn={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},en={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class nn extends ve{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return tn}static get DefaultType(){return en}static get NAME(){return Gi}show(t){if(!this._config.isVisible)return void Xt(t);this._append();const e=this._getElement();this._config.isAnimated&&qt(e),e.classList.add(Ji),this._emulateAnimation((()=>{Xt(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ji),this._emulateAnimation((()=>{this.dispose(),Xt(t)}))):Xt(t)}dispose(){this._isAppended&&(de.off(this._element,Zi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=Ht(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),de.on(t,Zi,(()=>{Xt(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){Yt(t,this._getElement(),this._config.isAnimated)}}const sn=".bs.focustrap",on=`focusin${sn}`,rn=`keydown.tab${sn}`,an="backward",ln={autofocus:!0,trapElement:null},cn={autofocus:"boolean",trapElement:"element"};class hn extends ve{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return ln}static get DefaultType(){return cn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),de.off(document,sn),de.on(document,on,(t=>this._handleFocusin(t))),de.on(document,rn,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,de.off(document,sn))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=ke.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===an?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?an:"forward")}}const un=".bs.modal",dn=`hide${un}`,fn=`hidePrevented${un}`,pn=`hidden${un}`,gn=`show${un}`,mn=`shown${un}`,_n=`resize${un}`,bn=`click.dismiss${un}`,vn=`mousedown.dismiss${un}`,yn=`keydown.dismiss${un}`,wn=`click${un}.data-api`,An="modal-open",En="show",Cn="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},On={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class xn extends ye{constructor(t,e){super(t,e),this._dialog=ke.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new Ui,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return On}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||de.trigger(this._element,gn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(An),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(de.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(En),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){for(const t of[window,this._dialog])de.off(t,un);this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new nn({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new hn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=ke.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),qt(this._element),this._element.classList.add(En),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,de.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){de.on(this._element,yn,(t=>{if("Escape"===t.key)return this._config.keyboard?(t.preventDefault(),void this.hide()):void this._triggerBackdropTransition()})),de.on(window,_n,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),de.on(this._element,vn,(t=>{de.one(this._element,bn,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(An),this._resetAdjustments(),this._scrollBar.reset(),de.trigger(this._element,pn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(de.trigger(this._element,fn).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(Cn)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(Cn),this._queueCallback((()=>{this._element.classList.remove(Cn),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=Kt()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=Kt()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=xn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}de.on(document,wn,'[data-bs-toggle="modal"]',(function(t){const e=Pt(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),de.one(e,gn,(t=>{t.defaultPrevented||de.one(e,pn,(()=>{Wt(this)&&this.focus()}))}));const i=ke.findOne(".modal.show");i&&xn.getInstance(i).hide(),xn.getOrCreateInstance(e).toggle(this)})),we(xn),Qt(xn);const kn=".bs.offcanvas",Ln=".data-api",Dn=`load${kn}${Ln}`,$n="show",Sn="showing",In="hiding",Nn=".offcanvas.show",Pn=`show${kn}`,jn=`shown${kn}`,Mn=`hide${kn}`,Hn=`hidePrevented${kn}`,Wn=`hidden${kn}`,Fn=`resize${kn}`,Bn=`click${kn}${Ln}`,zn=`keydown.dismiss${kn}`,qn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Vn extends ye{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return qn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||de.trigger(this._element,Pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new Ui).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Sn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add($n),this._element.classList.remove(Sn),de.trigger(this._element,jn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(de.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(In),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove($n,In),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new Ui).reset(),de.trigger(this._element,Wn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new nn({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():de.trigger(this._element,Hn)}:null})}_initializeFocusTrap(){return new hn({trapElement:this._element})}_addEventListeners(){de.on(this._element,zn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():de.trigger(this._element,Hn))}))}static jQueryInterface(t){return this.each((function(){const e=Vn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}de.on(document,Bn,'[data-bs-toggle="offcanvas"]',(function(t){const e=Pt(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),Ft(this))return;de.one(e,Wn,(()=>{Wt(this)&&this.focus()}));const i=ke.findOne(Nn);i&&i!==e&&Vn.getInstance(i).hide(),Vn.getOrCreateInstance(e).toggle(this)})),de.on(window,Dn,(()=>{for(const t of ke.find(Nn))Vn.getOrCreateInstance(t).show()})),de.on(window,Fn,(()=>{for(const t of ke.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&Vn.getOrCreateInstance(t).hide()})),we(Vn),Qt(Vn);const Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Xn=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Yn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)||Xn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Un={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Gn={allowList:Un,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Jn={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Zn={entry:"(string|element|function|null)",selector:"(string|element)"};class ts extends ve{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Gn}static get DefaultType(){return Jn}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Zn)}_setContent(t,e,i){const n=ke.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?Mt(e)?this._putElementInTemplate(Ht(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Yn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return"function"==typeof t?t(this):t}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const es=new Set(["sanitize","allowList","sanitizeFn"]),is="fade",ns="show",ss=".modal",os="hide.bs.modal",rs="hover",as="focus",ls={AUTO:"auto",TOP:"top",RIGHT:Kt()?"left":"right",BOTTOM:"bottom",LEFT:Kt()?"right":"left"},cs={allowList:Un,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,0],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},hs={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class us extends ye{constructor(t,i){if(void 0===e)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,i),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return cs}static get DefaultType(){return hs}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),de.off(this._element.closest(ss),os,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=de.trigger(this._element,this.constructor.eventName("show")),e=(Bt(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),de.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(ns),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))de.on(t,"mouseover",zt);this._queueCallback((()=>{de.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!de.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(ns),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))de.off(t,"mouseover",zt);this._activeTrigger.click=!1,this._activeTrigger[as]=!1,this._activeTrigger[rs]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),de.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(is,ns),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(is),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new ts({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(is)}_isShown(){return this.tip&&this.tip.classList.contains(ns)}_createPopper(t){const e="function"==typeof this._config.placement?this._config.placement.call(this,t,this._element):this._config.placement,i=ls[e.toUpperCase()];return Dt(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)de.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===rs?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===rs?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");de.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?as:rs]=!0,e._enter()})),de.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?as:rs]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},de.on(this._element.closest(ss),os,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=be.getDataAttributes(this._element);for(const t of Object.keys(e))es.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:Ht(t.container),"number"==typeof 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()),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}Qt(us);const ds={...us.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},fs={...us.DefaultType,content:"(null|string|element|function)"};class ps extends us{static get Default(){return ds}static get DefaultType(){return fs}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=ps.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}Qt(ps);const gs=".bs.scrollspy",ms=`activate${gs}`,_s=`click${gs}`,bs=`load${gs}.data-api`,vs="active",ys="[href]",ws=".nav-link",As=`${ws}, .nav-item > ${ws}, .list-group-item`,Es={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},Cs={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Ts extends ye{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Es}static get DefaultType(){return Cs}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=Ht(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(de.off(this._config.target,_s),de.on(this._config.target,_s,ys,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=ke.find(ys,this._config.target);for(const e of t){if(!e.hash||Ft(e))continue;const t=ke.findOne(e.hash,this._element);Wt(t)&&(this._targetLinks.set(e.hash,e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(vs),this._activateParents(t),de.trigger(this._element,ms,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))ke.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(vs);else for(const e of ke.parents(t,".nav, .list-group"))for(const t of ke.prev(e,As))t.classList.add(vs)}_clearActiveClass(t){t.classList.remove(vs);const e=ke.find(`${ys}.${vs}`,t);for(const t of e)t.classList.remove(vs)}static jQueryInterface(t){return this.each((function(){const e=Ts.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}de.on(window,bs,(()=>{for(const t of ke.find('[data-bs-spy="scroll"]'))Ts.getOrCreateInstance(t)})),Qt(Ts);const Os=".bs.tab",xs=`hide${Os}`,ks=`hidden${Os}`,Ls=`show${Os}`,Ds=`shown${Os}`,$s=`click${Os}`,Ss=`keydown${Os}`,Is=`load${Os}`,Ns="ArrowLeft",Ps="ArrowRight",js="ArrowUp",Ms="ArrowDown",Hs="active",Ws="fade",Fs="show",Bs=":not(.dropdown-toggle)",zs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',qs=`.nav-link${Bs}, .list-group-item${Bs}, [role="tab"]${Bs}, ${zs}`,Rs=`.${Hs}[data-bs-toggle="tab"], .${Hs}[data-bs-toggle="pill"], .${Hs}[data-bs-toggle="list"]`;class Vs extends ye{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),de.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?de.trigger(e,xs,{relatedTarget:t}):null;de.trigger(t,Ls,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Hs),this._activate(Pt(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),de.trigger(t,Ds,{relatedTarget:e})):t.classList.add(Fs)}),t,t.classList.contains(Ws)))}_deactivate(t,e){t&&(t.classList.remove(Hs),t.blur(),this._deactivate(Pt(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),de.trigger(t,ks,{relatedTarget:e})):t.classList.remove(Fs)}),t,t.classList.contains(Ws)))}_keydown(t){if(![Ns,Ps,js,Ms].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=[Ps,Ms].includes(t.key),i=Ut(this._getChildren().filter((t=>!Ft(t))),t.target,e,!0);i&&(i.focus({preventScroll:!0}),Vs.getOrCreateInstance(i).show())}_getChildren(){return ke.find(qs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=Pt(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`#${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=ke.findOne(t,i);s&&s.classList.toggle(n,e)};n(".dropdown-toggle",Hs),n(".dropdown-menu",Fs),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Hs)}_getInnerElement(t){return t.matches(qs)?t:ke.findOne(qs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Vs.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}de.on(document,$s,zs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),Ft(this)||Vs.getOrCreateInstance(this).show()})),de.on(window,Is,(()=>{for(const t of ke.find(Rs))Vs.getOrCreateInstance(t)})),Qt(Vs);const Ks=".bs.toast",Qs=`mouseover${Ks}`,Xs=`mouseout${Ks}`,Ys=`focusin${Ks}`,Us=`focusout${Ks}`,Gs=`hide${Ks}`,Js=`hidden${Ks}`,Zs=`show${Ks}`,to=`shown${Ks}`,eo="hide",io="show",no="showing",so={animation:"boolean",autohide:"boolean",delay:"number"},oo={animation:!0,autohide:!0,delay:5e3};class ro extends ye{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return oo}static get DefaultType(){return so}static get NAME(){return"toast"}show(){de.trigger(this._element,Zs).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(eo),qt(this._element),this._element.classList.add(io,no),this._queueCallback((()=>{this._element.classList.remove(no),de.trigger(this._element,to),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(de.trigger(this._element,Gs).defaultPrevented||(this._element.classList.add(no),this._queueCallback((()=>{this._element.classList.add(eo),this._element.classList.remove(no,io),de.trigger(this._element,Js)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(io),super.dispose()}isShown(){return this._element.classList.contains(io)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){de.on(this._element,Qs,(t=>this._onInteraction(t,!0))),de.on(this._element,Xs,(t=>this._onInteraction(t,!1))),de.on(this._element,Ys,(t=>this._onInteraction(t,!0))),de.on(this._element,Us,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ro.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}var ao;we(ro),Qt(ro),ao=function(){[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(t){return new us(t,{delay:{show:500,hide:100}})}))},"loading"!=document.readyState?ao():document.addEventListener("DOMContentLoaded",ao)})(); +//# sourceMappingURL=bootstrap.js.map \ No newline at end of file diff --git a/_static/scripts/bootstrap.js.LICENSE.txt b/_static/scripts/bootstrap.js.LICENSE.txt new file mode 100644 index 0000000..91ad10a --- /dev/null +++ b/_static/scripts/bootstrap.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * Bootstrap v5.2.3 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ diff --git a/_static/scripts/bootstrap.js.map b/_static/scripts/bootstrap.js.map new file mode 100644 index 0000000..d83e2f7 --- /dev/null +++ b/_static/scripts/bootstrap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scripts/bootstrap.js","mappings":"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","sources":["webpack://pydata_sphinx_theme/webpack/bootstrap","webpack://pydata_sphinx_theme/webpack/runtime/define property getters","webpack://pydata_sphinx_theme/webpack/runtime/hasOwnProperty shorthand","webpack://pydata_sphinx_theme/webpack/runtime/make namespace object","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/enums.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/math.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/within.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/createPopper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://pydata_sphinx_theme/./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/mixin.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/bootstrap.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/*!\n * Bootstrap v5.2.3 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nimport * as Popper from '@popperjs/core';\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst MAX_UID = 1000000;\nconst MILLISECONDS_MULTIPLIER = 1000;\nconst TRANSITION_END = 'transitionend'; // Shout-out Angus Croll (https://goo.gl/pxwQGp)\n\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`;\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n/**\n * Public Util API\n */\n\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n};\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`;\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\n }\n\n return selector;\n};\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n};\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n};\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false;\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n\n return typeof object.nodeType !== 'undefined';\n};\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object;\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(object);\n }\n\n return null;\n};\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; // Handle `details` element as its content may falsie appear visible when it is closed\n\n const closedDetails = element.closest('details:not([open])');\n\n if (!closedDetails) {\n return elementIsVisible;\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary');\n\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n\n if (summary === null) {\n return false;\n }\n }\n\n return elementIsVisible;\n};\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n\n if (element.classList.contains('disabled')) {\n return true;\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return findShadowRoot(element.parentNode);\n};\n\nconst noop = () => {};\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\n\n\nconst reflow = element => {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n};\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n\n return null;\n};\n\nconst DOMContentLoadedCallbacks = [];\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback();\n }\n });\n }\n\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\n\nconst isRTL = () => document.documentElement.dir === 'rtl';\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n};\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback();\n }\n};\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n};\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\n\n\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length;\n let index = list.indexOf(activeElement); // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n }\n\n index += shouldGetNext ? 1 : -1;\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nconst stripNameRegex = /\\..*/;\nconst stripUidRegex = /::\\d+$/;\nconst eventRegistry = {}; // Events storage\n\nlet uidEvent = 1;\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n};\nconst nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n\n return fn.apply(element, [event]);\n };\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n\n hydrateObj(event, {\n delegateTarget: target\n });\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n\n return fn.apply(target, [event]);\n }\n }\n };\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'; // todo: tooltip passes `false` instead of selector, so we need to check\n\n const callable = isDelegated ? delegationFunction : handler || delegationFunction;\n let typeEvent = getTypeEvent(originalTypeEvent);\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n\n return [isDelegated, callable, typeEvent];\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n\n callable = wrapFunction(callable);\n }\n\n const events = getElementEvents(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n\n if (!fn) {\n return;\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n\n for (const handlerKey of Object.keys(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey];\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getElementEvents(element);\n const storeElementEvent = events[typeEvent] || {};\n const isNamespace = originalTypeEvent.startsWith('.');\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n\n for (const keyHandlers of Object.keys(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers];\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n let jQueryEvent = null;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n\n let evt = new Event(event, {\n bubbles,\n cancelable: true\n });\n evt = hydrateObj(evt, args);\n\n if (defaultPrevented) {\n evt.preventDefault();\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n\n return evt;\n }\n\n};\n\nfunction hydrateObj(obj, meta) {\n for (const [key, value] of Object.entries(meta || {})) {\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n\n get() {\n return value;\n }\n\n });\n }\n }\n\n return obj;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\nconst elementMap = new Map();\nconst Data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n\n const instanceMap = elementMap.get(element); // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n\n instanceMap.set(key, instance);\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n\n return null;\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key); // free up element references if there are no instances left for an element\n\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nfunction normalizeData(value) {\n if (value === 'true') {\n return true;\n }\n\n if (value === 'false') {\n return false;\n }\n\n if (value === Number(value).toString()) {\n return Number(value);\n }\n\n if (value === '' || value === 'null') {\n return null;\n }\n\n if (typeof value !== 'string') {\n return value;\n }\n\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n\n const attributes = {};\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n }\n\n return attributes;\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {};\n }\n\n static get DefaultType() {\n return {};\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n }\n\n _configAfterMerge(config) {\n return config;\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\n\n return { ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n };\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const property of Object.keys(configTypes)) {\n const expectedTypes = configTypes[property];\n const value = config[property];\n const valueType = isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst VERSION = '5.2.3';\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super();\n element = getElement(element);\n\n if (!element) {\n return;\n }\n\n this._element = element;\n this._config = this._getConfig(config);\n Data.set(this._element, this.constructor.DATA_KEY, this);\n } // Public\n\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null;\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n } // Static\n\n\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n\n static get VERSION() {\n return VERSION;\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\n const name = component.NAME;\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n const target = getElementFromSelector(this) || this.closest(`.${name}`);\n const instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n\n instance[method]();\n });\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$f = 'alert';\nconst DATA_KEY$a = 'bs.alert';\nconst EVENT_KEY$b = `.${DATA_KEY$a}`;\nconst EVENT_CLOSE = `close${EVENT_KEY$b}`;\nconst EVENT_CLOSED = `closed${EVENT_KEY$b}`;\nconst CLASS_NAME_FADE$5 = 'fade';\nconst CLASS_NAME_SHOW$8 = 'show';\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$f;\n } // Public\n\n\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n\n if (closeEvent.defaultPrevented) {\n return;\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\n } // Private\n\n\n _destroyElement() {\n this._element.remove();\n\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nenableDismissTrigger(Alert, 'close');\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$e = 'button';\nconst DATA_KEY$9 = 'bs.button';\nconst EVENT_KEY$a = `.${DATA_KEY$9}`;\nconst DATA_API_KEY$6 = '.data-api';\nconst CLASS_NAME_ACTIVE$3 = 'active';\nconst SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nconst EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$e;\n } // Public\n\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {\n event.preventDefault();\n const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n const data = Button.getOrCreateInstance(button);\n data.toggle();\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode.closest(selector);\n\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n\n return parents;\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling;\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n\n previous = previous.previousElementSibling;\n }\n\n return [];\n },\n\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling;\n\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n\n next = next.nextElementSibling;\n }\n\n return [];\n },\n\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',');\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$d = 'swipe';\nconst EVENT_KEY$9 = '.bs.swipe';\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;\nconst POINTER_TYPE_TOUCH = 'touch';\nconst POINTER_TYPE_PEN = 'pen';\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\nconst SWIPE_THRESHOLD = 40;\nconst Default$c = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n};\nconst DefaultType$c = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n};\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super();\n this._element = element;\n\n if (!element || !Swipe.isSupported()) {\n return;\n }\n\n this._config = this._getConfig(config);\n this._deltaX = 0;\n this._supportPointerEvents = Boolean(window.PointerEvent);\n\n this._initEvents();\n } // Getters\n\n\n static get Default() {\n return Default$c;\n }\n\n static get DefaultType() {\n return DefaultType$c;\n }\n\n static get NAME() {\n return NAME$d;\n } // Public\n\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY$9);\n } // Private\n\n\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX;\n return;\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX;\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX;\n }\n\n this._handleSwipe();\n\n execute(this._config.endCallback);\n }\n\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX);\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n\n const direction = absDeltaX / this._deltaX;\n this._deltaX = 0;\n\n if (!direction) {\n return;\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n } // Static\n\n\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$c = 'carousel';\nconst DATA_KEY$8 = 'bs.carousel';\nconst EVENT_KEY$8 = `.${DATA_KEY$8}`;\nconst DATA_API_KEY$5 = '.data-api';\nconst ARROW_LEFT_KEY$1 = 'ArrowLeft';\nconst ARROW_RIGHT_KEY$1 = 'ArrowRight';\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next';\nconst ORDER_PREV = 'prev';\nconst DIRECTION_LEFT = 'left';\nconst DIRECTION_RIGHT = 'right';\nconst EVENT_SLIDE = `slide${EVENT_KEY$8}`;\nconst EVENT_SLID = `slid${EVENT_KEY$8}`;\nconst EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;\nconst EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;\nconst EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;\nconst EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst CLASS_NAME_CAROUSEL = 'carousel';\nconst CLASS_NAME_ACTIVE$2 = 'active';\nconst CLASS_NAME_SLIDE = 'slide';\nconst CLASS_NAME_END = 'carousel-item-end';\nconst CLASS_NAME_START = 'carousel-item-start';\nconst CLASS_NAME_NEXT = 'carousel-item-next';\nconst CLASS_NAME_PREV = 'carousel-item-prev';\nconst SELECTOR_ACTIVE = '.active';\nconst SELECTOR_ITEM = '.carousel-item';\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\nconst SELECTOR_INDICATORS = '.carousel-indicators';\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT\n};\nconst Default$b = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n};\nconst DefaultType$b = {\n interval: '(number|boolean)',\n // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n};\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._interval = null;\n this._activeElement = null;\n this._isSliding = false;\n this.touchTimeout = null;\n this._swipeHelper = null;\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n\n this._addEventListeners();\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$b;\n }\n\n static get DefaultType() {\n return DefaultType$b;\n }\n\n static get NAME() {\n return NAME$c;\n } // Public\n\n\n next() {\n this._slide(ORDER_NEXT);\n }\n\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n\n prev() {\n this._slide(ORDER_PREV);\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element);\n }\n\n this._clearInterval();\n }\n\n cycle() {\n this._clearInterval();\n\n this._updateInterval();\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\n return;\n }\n\n this.cycle();\n }\n\n to(index) {\n const items = this._getItems();\n\n if (index > items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n\n const activeIndex = this._getItemIndex(this._getActive());\n\n if (activeIndex === index) {\n return;\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n\n this._slide(order, items[index]);\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose();\n }\n\n super.dispose();\n } // Private\n\n\n _configAfterMerge(config) {\n config.defaultInterval = config.interval;\n return config;\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());\n EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners();\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return;\n } // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n\n this.pause();\n\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n };\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n };\n this._swipeHelper = new Swipe(this._element, swipeConfig);\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n const direction = KEY_TO_DIRECTION[event.key];\n\n if (direction) {\n event.preventDefault();\n\n this._slide(this._directionToOrder(direction));\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element);\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return;\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement);\n\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);\n newActiveIndicator.setAttribute('aria-current', 'true');\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive();\n\n if (!element) {\n return;\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n this._config.interval = elementInterval || this._config.defaultInterval;\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return;\n }\n\n const activeElement = this._getActive();\n\n const isNext = order === ORDER_NEXT;\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\n\n if (nextElement === activeElement) {\n return;\n }\n\n const nextElementIndex = this._getItemIndex(nextElement);\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n });\n };\n\n const slideEvent = triggerEvent(EVENT_SLIDE);\n\n if (slideEvent.defaultPrevented) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // todo: change tests that use empty divs to avoid this check\n return;\n }\n\n const isCycling = Boolean(this._interval);\n this.pause();\n this._isSliding = true;\n\n this._setActiveIndicatorElement(nextElementIndex);\n\n this._activeElement = nextElement;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n this._isSliding = false;\n triggerEvent(EVENT_SLID);\n };\n\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n\n if (isCycling) {\n this.cycle();\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE);\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config);\n\n if (typeof config === 'number') {\n data.to(config);\n return;\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {\n const target = getElementFromSelector(this);\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n event.preventDefault();\n const carousel = Carousel.getOrCreateInstance(target);\n const slideIndex = this.getAttribute('data-bs-slide-to');\n\n if (slideIndex) {\n carousel.to(slideIndex);\n\n carousel._maybeEnableCycle();\n\n return;\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next();\n\n carousel._maybeEnableCycle();\n\n return;\n }\n\n carousel.prev();\n\n carousel._maybeEnableCycle();\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel);\n }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$b = 'collapse';\nconst DATA_KEY$7 = 'bs.collapse';\nconst EVENT_KEY$7 = `.${DATA_KEY$7}`;\nconst DATA_API_KEY$4 = '.data-api';\nconst EVENT_SHOW$6 = `show${EVENT_KEY$7}`;\nconst EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;\nconst EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;\nconst EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;\nconst EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;\nconst CLASS_NAME_SHOW$7 = 'show';\nconst CLASS_NAME_COLLAPSE = 'collapse';\nconst CLASS_NAME_COLLAPSING = 'collapsing';\nconst CLASS_NAME_COLLAPSED = 'collapsed';\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\nconst WIDTH = 'width';\nconst HEIGHT = 'height';\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nconst SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\nconst Default$a = {\n parent: null,\n toggle: true\n};\nconst DefaultType$a = {\n parent: '(null|element)',\n toggle: 'boolean'\n};\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n\n for (const elem of toggleList) {\n const selector = getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n\n this._initializeChildren();\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$a;\n }\n\n static get DefaultType() {\n return DefaultType$a;\n }\n\n static get NAME() {\n return NAME$b;\n } // Public\n\n\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n\n let activeChildren = []; // find active children\n\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n\n const dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$6);\n };\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n\n this._queueCallback(complete, this._element, true);\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n const dimension = this._getDimension();\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n for (const trigger of this._triggerArray) {\n const element = getElementFromSelector(trigger);\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$6);\n };\n\n this._element.style[dimension] = '';\n\n this._queueCallback(complete, this._element, true);\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\n } // Private\n\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n config.parent = getElement(config.parent);\n return config;\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);\n\n for (const element of children) {\n const selected = getElementFromSelector(element);\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth\n\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n } // Static\n\n\n static jQueryInterface(config) {\n const _config = {};\n\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n const selector = getSelectorFromElement(this);\n const selectorElements = SelectorEngine.find(selector);\n\n for (const element of selectorElements) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$a = 'dropdown';\nconst DATA_KEY$6 = 'bs.dropdown';\nconst EVENT_KEY$6 = `.${DATA_KEY$6}`;\nconst DATA_API_KEY$3 = '.data-api';\nconst ESCAPE_KEY$2 = 'Escape';\nconst TAB_KEY$1 = 'Tab';\nconst ARROW_UP_KEY$1 = 'ArrowUp';\nconst ARROW_DOWN_KEY$1 = 'ArrowDown';\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;\nconst EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;\nconst EVENT_SHOW$5 = `show${EVENT_KEY$6}`;\nconst EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;\nconst EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst CLASS_NAME_SHOW$6 = 'show';\nconst CLASS_NAME_DROPUP = 'dropup';\nconst CLASS_NAME_DROPEND = 'dropend';\nconst CLASS_NAME_DROPSTART = 'dropstart';\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center';\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';\nconst SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)';\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;\nconst SELECTOR_MENU = '.dropdown-menu';\nconst SELECTOR_NAVBAR = '.navbar';\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\nconst PLACEMENT_TOPCENTER = 'top';\nconst PLACEMENT_BOTTOMCENTER = 'bottom';\nconst Default$9 = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n};\nconst DefaultType$9 = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n};\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._popper = null;\n this._parent = this._element.parentNode; // dropdown wrapper\n // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/\n\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);\n this._inNavbar = this._detectNavbar();\n } // Getters\n\n\n static get Default() {\n return Default$9;\n }\n\n static get DefaultType() {\n return DefaultType$9;\n }\n\n static get NAME() {\n return NAME$a;\n } // Public\n\n\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._createPopper(); // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n\n this._element.classList.add(CLASS_NAME_SHOW$6);\n\n EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n };\n\n this._completeHide(relatedTarget);\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n\n super.dispose();\n }\n\n update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper) {\n this._popper.update();\n }\n } // Private\n\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n return;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.setAttribute('aria-expanded', 'false');\n\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);\n }\n\n _getConfig(config) {\n config = super._getConfig(config);\n\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME$a.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n\n return config;\n }\n\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n let referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n\n const popperConfig = this._getPopperConfig();\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW$6);\n }\n\n _getPlacement() {\n const parentDropdown = this._parent;\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER;\n } // We need to trim the value because custom properties can also include spaces\n\n\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null;\n }\n\n _getOffset() {\n const {\n offset\n } = this._config;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n\n return offset;\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }; // Disable Popper if we have a static display or Dropdown is in Navbar\n\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // todo:v6 remove\n\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n\n return { ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n };\n }\n\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));\n\n if (!items.length) {\n return;\n } // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {\n return;\n }\n\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);\n\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle);\n\n if (!context || context._config.autoClose === false) {\n continue;\n }\n\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n\n\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n\n const relatedTarget = {\n relatedTarget: context._element\n };\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n\n context._completeHide(relatedTarget);\n }\n }\n\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n const isInput = /input|textarea/i.test(event.target.tagName);\n const isEscapeEvent = event.key === ESCAPE_KEY$2;\n const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);\n\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return;\n }\n\n if (isInput && !isEscapeEvent) {\n return;\n }\n\n event.preventDefault(); // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n\n if (isUpOrDownEvent) {\n event.stopPropagation();\n instance.show();\n\n instance._selectMenuItem(event);\n\n return;\n }\n\n if (instance._isShown()) {\n // else is escape and we check if it is shown\n event.stopPropagation();\n instance.hide();\n getToggleButton.focus();\n }\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\nconst PROPERTY_PADDING = 'padding-right';\nconst PROPERTY_MARGIN = 'margin-right';\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body;\n } // Public\n\n\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n\n hide() {\n const width = this.getWidth();\n\n this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width\n\n\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n\n\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);\n }\n\n reset() {\n this._resetElementAttributes(this._element, 'overflow');\n\n this._resetElementAttributes(this._element, PROPERTY_PADDING);\n\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);\n\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);\n }\n\n isOverflowing() {\n return this.getWidth() > 0;\n } // Private\n\n\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n\n this._element.style.overflow = 'hidden';\n }\n\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth();\n\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n\n this._saveInitialAttribute(element, styleProperty);\n\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty);\n\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue);\n }\n }\n\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty); // We only want to remove the property if the value is `null`; the value can also be zero\n\n if (value === null) {\n element.style.removeProperty(styleProperty);\n return;\n }\n\n Manipulator.removeDataAttribute(element, styleProperty);\n element.style.setProperty(styleProperty, value);\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n return;\n }\n\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel);\n }\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$9 = 'backdrop';\nconst CLASS_NAME_FADE$4 = 'fade';\nconst CLASS_NAME_SHOW$5 = 'show';\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;\nconst Default$8 = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body' // give the choice to place backdrop under different elements\n\n};\nconst DefaultType$8 = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)'\n};\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n } // Getters\n\n\n static get Default() {\n return Default$8;\n }\n\n static get DefaultType() {\n return DefaultType$8;\n }\n\n static get NAME() {\n return NAME$9;\n } // Public\n\n\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._append();\n\n const element = this._getElement();\n\n if (this._config.isAnimated) {\n reflow(element);\n }\n\n element.classList.add(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n }\n\n dispose() {\n if (!this._isAppended) {\n return;\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n\n this._element.remove();\n\n this._isAppended = false;\n } // Private\n\n\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n\n this._element = backdrop;\n }\n\n return this._element;\n }\n\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement);\n return config;\n }\n\n _append() {\n if (this._isAppended) {\n return;\n }\n\n const element = this._getElement();\n\n this._config.rootElement.append(element);\n\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$8 = 'focustrap';\nconst DATA_KEY$5 = 'bs.focustrap';\nconst EVENT_KEY$5 = `.${DATA_KEY$5}`;\nconst EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;\nconst TAB_KEY = 'Tab';\nconst TAB_NAV_FORWARD = 'forward';\nconst TAB_NAV_BACKWARD = 'backward';\nconst Default$7 = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n\n};\nconst DefaultType$7 = {\n autofocus: 'boolean',\n trapElement: 'element'\n};\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n } // Getters\n\n\n static get Default() {\n return Default$7;\n }\n\n static get DefaultType() {\n return DefaultType$7;\n }\n\n static get NAME() {\n return NAME$8;\n } // Public\n\n\n activate() {\n if (this._isActive) {\n return;\n }\n\n if (this._config.autofocus) {\n this._config.trapElement.focus();\n }\n\n EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop\n\n EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\n this._isActive = true;\n }\n\n deactivate() {\n if (!this._isActive) {\n return;\n }\n\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$5);\n } // Private\n\n\n _handleFocusin(event) {\n const {\n trapElement\n } = this._config;\n\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return;\n }\n\n const elements = SelectorEngine.focusableChildren(trapElement);\n\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$7 = 'modal';\nconst DATA_KEY$4 = 'bs.modal';\nconst EVENT_KEY$4 = `.${DATA_KEY$4}`;\nconst DATA_API_KEY$2 = '.data-api';\nconst ESCAPE_KEY$1 = 'Escape';\nconst EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;\nconst EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;\nconst EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;\nconst EVENT_SHOW$4 = `show${EVENT_KEY$4}`;\nconst EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;\nconst EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;\nconst EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;\nconst EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;\nconst CLASS_NAME_OPEN = 'modal-open';\nconst CLASS_NAME_FADE$3 = 'fade';\nconst CLASS_NAME_SHOW$4 = 'show';\nconst CLASS_NAME_STATIC = 'modal-static';\nconst OPEN_SELECTOR$1 = '.modal.show';\nconst SELECTOR_DIALOG = '.modal-dialog';\nconst SELECTOR_MODAL_BODY = '.modal-body';\nconst SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\nconst Default$6 = {\n backdrop: true,\n focus: true,\n keyboard: true\n};\nconst DefaultType$6 = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n};\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._isShown = false;\n this._isTransitioning = false;\n this._scrollBar = new ScrollBarHelper();\n\n this._addEventListeners();\n } // Getters\n\n\n static get Default() {\n return Default$6;\n }\n\n static get DefaultType() {\n return DefaultType$6;\n }\n\n static get NAME() {\n return NAME$7;\n } // Public\n\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {\n relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n this._isTransitioning = true;\n\n this._scrollBar.hide();\n\n document.body.classList.add(CLASS_NAME_OPEN);\n\n this._adjustDialog();\n\n this._backdrop.show(() => this._showElement(relatedTarget));\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = false;\n this._isTransitioning = true;\n\n this._focustrap.deactivate();\n\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());\n }\n\n dispose() {\n for (const htmlElement of [window, this._dialog]) {\n EventHandler.off(htmlElement, EVENT_KEY$4);\n }\n\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n super.dispose();\n }\n\n handleUpdate() {\n this._adjustDialog();\n } // Private\n\n\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n });\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.scrollTop = 0;\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_SHOW$4);\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$4, {\n relatedTarget\n });\n };\n\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (event.key !== ESCAPE_KEY$1) {\n return;\n }\n\n if (this._config.keyboard) {\n event.preventDefault();\n this.hide();\n return;\n }\n\n this._triggerBackdropTransition();\n });\n EventHandler.on(window, EVENT_RESIZE$1, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog();\n }\n });\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return;\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n\n return;\n }\n\n if (this._config.backdrop) {\n this.hide();\n }\n });\n });\n }\n\n _hideModal() {\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n\n this._resetAdjustments();\n\n this._scrollBar.reset();\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$4);\n });\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const initialOverflowY = this._element.style.overflowY; // return if the following background transition hasn't yet completed\n\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n\n this._element.classList.add(CLASS_NAME_STATIC);\n\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC);\n\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY;\n }, this._dialog);\n }, this._dialog);\n\n this._element.focus();\n }\n /**\n * The following methods are used to handle overflowing modals\n */\n\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n const scrollbarWidth = this._scrollBar.getWidth();\n\n const isBodyOverflowing = scrollbarWidth > 0;\n\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n } // Static\n\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](relatedTarget);\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n EventHandler.one(target, EVENT_SHOW$4, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$4, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n }); // avoid conflict when clicking modal toggler while another one is open\n\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide();\n }\n\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$6 = 'offcanvas';\nconst DATA_KEY$3 = 'bs.offcanvas';\nconst EVENT_KEY$3 = `.${DATA_KEY$3}`;\nconst DATA_API_KEY$1 = '.data-api';\nconst EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst ESCAPE_KEY = 'Escape';\nconst CLASS_NAME_SHOW$3 = 'show';\nconst CLASS_NAME_SHOWING$1 = 'showing';\nconst CLASS_NAME_HIDING = 'hiding';\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nconst OPEN_SELECTOR = '.offcanvas.show';\nconst EVENT_SHOW$3 = `show${EVENT_KEY$3}`;\nconst EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;\nconst EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;\nconst EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;\nconst EVENT_RESIZE = `resize${EVENT_KEY$3}`;\nconst EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;\nconst SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\nconst Default$5 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n};\nconst DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n};\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isShown = false;\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n\n this._addEventListeners();\n } // Getters\n\n\n static get Default() {\n return Default$5;\n }\n\n static get DefaultType() {\n return DefaultType$5;\n }\n\n static get NAME() {\n return NAME$6;\n } // Public\n\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n\n this._backdrop.show();\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.classList.add(CLASS_NAME_SHOWING$1);\n\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate();\n }\n\n this._element.classList.add(CLASS_NAME_SHOW$3);\n\n this._element.classList.remove(CLASS_NAME_SHOWING$1);\n\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n\n this._queueCallback(completeCallBack, this._element, true);\n }\n\n hide() {\n if (!this._isShown) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._focustrap.deactivate();\n\n this._element.blur();\n\n this._isShown = false;\n\n this._element.classList.add(CLASS_NAME_HIDING);\n\n this._backdrop.hide();\n\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n };\n\n this._queueCallback(completeCallback, this._element, true);\n }\n\n dispose() {\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n super.dispose();\n } // Private\n\n\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n\n this.hide();\n }; // 'static' option will be translated to true, and booleans will keep their value\n\n\n const isVisible = Boolean(this._config.backdrop);\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n });\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return;\n }\n\n if (!this._config.keyboard) {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n\n this.hide();\n });\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n }); // avoid conflict when clicking a toggler of an offcanvas, while another is open\n\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide();\n }\n\n const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show();\n }\n});\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide();\n }\n }\n});\nenableDismissTrigger(Offcanvas);\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));\n }\n\n return true;\n } // Check if a regular expression validates the attribute.\n\n\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));\n};\n\nconst DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml);\n }\n\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase();\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n }\n }\n\n return createdDocument.body.innerHTML;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$5 = 'TemplateFactory';\nconst Default$4 = {\n allowList: DefaultAllowlist,\n content: {},\n // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '
'\n};\nconst DefaultType$4 = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n};\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n};\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n } // Getters\n\n\n static get Default() {\n return Default$4;\n }\n\n static get DefaultType() {\n return DefaultType$4;\n }\n\n static get NAME() {\n return NAME$5;\n } // Public\n\n\n getContent() {\n return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);\n }\n\n hasContent() {\n return this.getContent().length > 0;\n }\n\n changeContent(content) {\n this._checkContent(content);\n\n this._config.content = { ...this._config.content,\n ...content\n };\n return this;\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div');\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector);\n }\n\n const template = templateWrapper.children[0];\n\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '));\n }\n\n return template;\n } // Private\n\n\n _typeCheckConfig(config) {\n super._typeCheckConfig(config);\n\n this._checkContent(config.content);\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({\n selector,\n entry: content\n }, DefaultContentType);\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n\n if (!templateElement) {\n return;\n }\n\n content = this._resolvePossibleFunction(content);\n\n if (!content) {\n templateElement.remove();\n return;\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement);\n\n return;\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content);\n return;\n }\n\n templateElement.textContent = content;\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n }\n\n _resolvePossibleFunction(arg) {\n return typeof arg === 'function' ? arg(this) : arg;\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = '';\n templateElement.append(element);\n return;\n }\n\n templateElement.textContent = element.textContent;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$4 = 'tooltip';\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nconst CLASS_NAME_FADE$2 = 'fade';\nconst CLASS_NAME_MODAL = 'modal';\nconst CLASS_NAME_SHOW$2 = 'show';\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\nconst TRIGGER_HOVER = 'hover';\nconst TRIGGER_FOCUS = 'focus';\nconst TRIGGER_CLICK = 'click';\nconst TRIGGER_MANUAL = 'manual';\nconst EVENT_HIDE$2 = 'hide';\nconst EVENT_HIDDEN$2 = 'hidden';\nconst EVENT_SHOW$2 = 'show';\nconst EVENT_SHOWN$2 = 'shown';\nconst EVENT_INSERTED = 'inserted';\nconst EVENT_CLICK$1 = 'click';\nconst EVENT_FOCUSIN$1 = 'focusin';\nconst EVENT_FOCUSOUT$1 = 'focusout';\nconst EVENT_MOUSEENTER = 'mouseenter';\nconst EVENT_MOUSELEAVE = 'mouseleave';\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n};\nconst Default$3 = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 0],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '
' + '
' + '
' + '
',\n title: '',\n trigger: 'hover focus'\n};\nconst DefaultType$3 = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n};\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n\n super(element, config); // Private\n\n this._isEnabled = true;\n this._timeout = 0;\n this._isHovered = null;\n this._activeTrigger = {};\n this._popper = null;\n this._templateFactory = null;\n this._newContent = null; // Protected\n\n this.tip = null;\n\n this._setListeners();\n\n if (!this._config.selector) {\n this._fixTitle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$3;\n }\n\n static get DefaultType() {\n return DefaultType$3;\n }\n\n static get NAME() {\n return NAME$4;\n } // Public\n\n\n enable() {\n this._isEnabled = true;\n }\n\n disable() {\n this._isEnabled = false;\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n\n toggle() {\n if (!this._isEnabled) {\n return;\n }\n\n this._activeTrigger.click = !this._activeTrigger.click;\n\n if (this._isShown()) {\n this._leave();\n\n return;\n }\n\n this._enter();\n }\n\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n }\n\n this._disposePopper();\n\n super.dispose();\n }\n\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));\n const shadowRoot = findShadowRoot(this._element);\n\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n } // todo v6 remove this OR make it optional\n\n\n this._disposePopper();\n\n const tip = this._getTipElement();\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n\n const {\n container\n } = this._config;\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\n }\n\n this._popper = this._createPopper(tip);\n tip.classList.add(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));\n\n if (this._isHovered === false) {\n this._leave();\n }\n\n this._isHovered = false;\n };\n\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n\n hide() {\n if (!this._isShown()) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n const tip = this._getTipElement();\n\n tip.classList.remove(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n this._isHovered = null; // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n\n if (!this._isHovered) {\n this._disposePopper();\n }\n\n this._element.removeAttribute('aria-describedby');\n\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));\n };\n\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n\n update() {\n if (this._popper) {\n this._popper.update();\n }\n } // Protected\n\n\n _isWithContent() {\n return Boolean(this._getTitle());\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n }\n\n return this.tip;\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml(); // todo: remove this check on v6\n\n\n if (!tip) {\n return null;\n }\n\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); // todo: on v6 the following can be achieved with CSS only\n\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\n const tipId = getUID(this.constructor.NAME).toString();\n tip.setAttribute('id', tipId);\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n\n return tip;\n }\n\n setContent(content) {\n this._newContent = content;\n\n if (this._isShown()) {\n this._disposePopper();\n\n this.show();\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content);\n } else {\n this._templateFactory = new TemplateFactory({ ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n });\n }\n\n return this._templateFactory;\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n };\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');\n } // Private\n\n\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n\n _isAnimated() {\n return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);\n }\n\n _createPopper(tip) {\n const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement;\n const attachment = AttachmentMap[placement.toUpperCase()];\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n\n _getOffset() {\n const {\n offset\n } = this._config;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n\n return offset;\n }\n\n _resolvePossibleFunction(arg) {\n return typeof arg === 'function' ? arg.call(this._element) : arg;\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n }, {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement);\n }\n }]\n };\n return { ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n };\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n\n context.toggle();\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n\n context._enter();\n });\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n\n context._leave();\n });\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title');\n\n if (!title) {\n return;\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title);\n }\n\n this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\n\n\n this._element.removeAttribute('title');\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true;\n return;\n }\n\n this._isHovered = true;\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show();\n }\n }, this._config.delay.show);\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return;\n }\n\n this._isHovered = false;\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide();\n }\n }, this._config.delay.hide);\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(handler, timeout);\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true);\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute];\n }\n }\n\n config = { ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container);\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n return config;\n }\n\n _getDelegateConfig() {\n const config = {};\n\n for (const key in this._config) {\n if (this.constructor.Default[key] !== this._config[key]) {\n config[key] = this._config[key];\n }\n }\n\n config.selector = false;\n config.trigger = 'manual'; // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n\n return config;\n }\n\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n\n this._popper = null;\n }\n\n if (this.tip) {\n this.tip.remove();\n this.tip = null;\n }\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n}\n/**\n * jQuery\n */\n\n\ndefineJQueryPlugin(Tooltip);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$3 = 'popover';\nconst SELECTOR_TITLE = '.popover-header';\nconst SELECTOR_CONTENT = '.popover-body';\nconst Default$2 = { ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '
' + '
' + '

' + '
' + '
',\n trigger: 'click'\n};\nconst DefaultType$2 = { ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n};\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default$2;\n }\n\n static get DefaultType() {\n return DefaultType$2;\n }\n\n static get NAME() {\n return NAME$3;\n } // Overrides\n\n\n _isWithContent() {\n return this._getTitle() || this._getContent();\n } // Private\n\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n };\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n}\n/**\n * jQuery\n */\n\n\ndefineJQueryPlugin(Popover);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$2 = 'scrollspy';\nconst DATA_KEY$2 = 'bs.scrollspy';\nconst EVENT_KEY$2 = `.${DATA_KEY$2}`;\nconst DATA_API_KEY = '.data-api';\nconst EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;\nconst EVENT_CLICK = `click${EVENT_KEY$2}`;\nconst EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nconst CLASS_NAME_ACTIVE$1 = 'active';\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\nconst SELECTOR_TARGET_LINKS = '[href]';\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\nconst SELECTOR_NAV_LINKS = '.nav-link';\nconst SELECTOR_NAV_ITEMS = '.nav-item';\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;\nconst SELECTOR_DROPDOWN = '.dropdown';\nconst SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\nconst Default$1 = {\n offset: null,\n // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n};\nconst DefaultType$1 = {\n offset: '(number|null)',\n // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n};\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config); // this._element is the observablesContainer and config.target the menu links wrapper\n\n this._targetLinks = new Map();\n this._observableSections = new Map();\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;\n this._activeTarget = null;\n this._observer = null;\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n };\n this.refresh(); // initialize\n } // Getters\n\n\n static get Default() {\n return Default$1;\n }\n\n static get DefaultType() {\n return DefaultType$1;\n }\n\n static get NAME() {\n return NAME$2;\n } // Public\n\n\n refresh() {\n this._initializeTargetsAndObservables();\n\n this._maybeEnableSmoothScroll();\n\n if (this._observer) {\n this._observer.disconnect();\n } else {\n this._observer = this._getNewObserver();\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section);\n }\n }\n\n dispose() {\n this._observer.disconnect();\n\n super.dispose();\n } // Private\n\n\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body; // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));\n }\n\n return config;\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return;\n } // unregister any previous listeners\n\n\n EventHandler.off(this._config.target, EVENT_CLICK);\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash);\n\n if (observableSection) {\n event.preventDefault();\n const root = this._rootElement || window;\n const height = observableSection.offsetTop - this._element.offsetTop;\n\n if (root.scrollTo) {\n root.scrollTo({\n top: height,\n behavior: 'smooth'\n });\n return;\n } // Chrome 60 doesn't support `scrollTo`\n\n\n root.scrollTop = height;\n }\n });\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n };\n return new IntersectionObserver(entries => this._observerCallback(entries), options);\n } // The logic of selection\n\n\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);\n\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop;\n\n this._process(targetElement(entry));\n };\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\n this._previousScrollData.parentScrollTop = parentScrollTop;\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null;\n\n this._clearActiveClass(targetElement(entry));\n\n continue;\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; // if we are scrolling down, pick the bigger offsetTop\n\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry); // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n\n if (!parentScrollTop) {\n return;\n }\n\n continue;\n } // if we are scrolling up, pick the smallest offsetTop\n\n\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry);\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map();\n this._observableSections = new Map();\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue;\n }\n\n const observableSection = SelectorEngine.findOne(anchor.hash, this._element); // ensure that the observableSection exists & is visible\n\n if (isVisible(observableSection)) {\n this._targetLinks.set(anchor.hash, anchor);\n\n this._observableSections.set(anchor.hash, observableSection);\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return;\n }\n\n this._clearActiveClass(this._config.target);\n\n this._activeTarget = target;\n target.classList.add(CLASS_NAME_ACTIVE$1);\n\n this._activateParents(target);\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, {\n relatedTarget: target\n });\n }\n\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);\n return;\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both

$o1$-A=pGFo^JPYNr>2ehu{ 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